PageRenderTime 54ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/webapp_biz/modules/biz/page/fh_biz_schedule_edit.php

https://github.com/openpne/OpenPNE2
PHP | 261 lines | 202 code | 46 blank | 13 comment | 54 complexity | 3b2f7aa1c4264cfe2e419264b0f3a341 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception
  1. <?php
  2. /**
  3. * @copyright 2005-2008 OpenPNE Project
  4. * @license http://www.php.net/license/3_01.txt PHP License 3.01
  5. */
  6. class biz_page_fh_biz_schedule_edit extends OpenPNE_Action
  7. {
  8. function execute($requests)
  9. {
  10. $u = $GLOBALS['AUTH']->uid();
  11. if (!biz_isPermissionSchedule($u, $requests['schedule_id'])) {
  12. handle_kengen_error();
  13. }
  14. $form_val['subject'] = $requests['subject'];
  15. $form_val['body'] = $requests['body'];
  16. $this->set('banner', $requests['sc_bn']);
  17. if ($requests['sc_title']) {
  18. $requests['title'] = $requests['sc_title'];
  19. }
  20. if ($requests['sc_memo']) {
  21. $requests['value'] = $requests['sc_memo'];
  22. }
  23. if ($requests['sc_b_year'] && $requests['sc_b_month'] && $requests['sc_b_date']) {
  24. $requests['begin_date'] = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
  25. }
  26. if ($requests['sc_b_hour'] && $requests['sc_b_minute']) {
  27. $requests['begin_time'] = $requests['sc_b_hour'].':'.$requests['sc_b_minute'];
  28. }
  29. if ($requests['sc_f_hour'] && $requests['sc_f_minute']) {
  30. $requests['finish_time'] = $requests['sc_f_hour'].':'.$requests['sc_f_minute'];
  31. }
  32. $sessid = session_id();
  33. $schedule = biz_getScheduleInfo($requests['schedule_id']);
  34. if ($schedule['c_member_id'] == $u) {
  35. //自分自身
  36. $target_id = $u;
  37. $this->set('is_h', true); //判別フラグ
  38. $this->set('inc_navi',fetch_inc_navi('h'));
  39. } else {
  40. //他人
  41. $target_id = $requests['target_id'];
  42. $this->set('is_f', true); //判別フラグ
  43. $this->set('inc_navi',fetch_inc_navi('f'));
  44. }
  45. //プロフィール
  46. $this->set("target_member", db_member_c_member4c_member_id($u));
  47. $this->set("form_val", $form_val);
  48. //カレンダー関係
  49. //カレンダー開始用変数
  50. $year = date("Y");
  51. $month= date("n");
  52. //カレンダー用変数
  53. $date_val= array(
  54. 'year' => $year,
  55. 'month' => $month,
  56. 'day' => null,
  57. );
  58. $this->set("date_val", $date_val);
  59. //日記のカレンダー
  60. $calendar = db_common_diary_monthly_calendar($year, $month, $u);
  61. $this->set("calendar", $calendar['days']);
  62. $this->set("ym", $calendar['ym']);
  63. //日付関連
  64. if ($requests['rep_type']) {
  65. $begin_date = biz_getRepeatBegin($requests['schedule_id']);
  66. } else {
  67. $begin_date = $requests['begin_date'];
  68. }
  69. $nowyear = date("Y", strtotime($begin_date));
  70. $nowmonth = date("m", strtotime($begin_date));
  71. $nowday = date("d", strtotime($begin_date));
  72. for ($i = $nowyear; $i <= $nowyear+10; $i++) {
  73. if ($i == $nowyear) {
  74. $years = '<option value="'.$i.'" selected="selected">';
  75. } else {
  76. $years .= '<option value="'.$i.'">';
  77. }
  78. $years .= $i.'年';
  79. $years .= '</option>';
  80. }
  81. for ($i = 1; $i <= 12; $i++) {
  82. $i_f = sprintf("%02d",$i); //月は常に二桁
  83. if ($i == $nowmonth) {
  84. $monthes .= '<option value="'.$i_f.'" selected="selected">';
  85. } else {
  86. $monthes .= '<option value="'.$i_f.'">';
  87. }
  88. $monthes .= $i.'月';
  89. $monthes .= '</option>';
  90. }
  91. for ($i = 1; $i <= 31; $i++) {
  92. $i_f = sprintf("%02d",$i); //日は常に二桁
  93. if ($i == $nowday) {
  94. $days .= '<option value="'.$i_f.'" selected="selected">';
  95. } else {
  96. $days .= '<option value="'.$i_f.'">';
  97. }
  98. $days .= $i.'日';
  99. $days .= '</option>';
  100. }
  101. $hours = biz_makeSerialArray(23); //時
  102. $mins = biz_makeSerialArray(55, 0, 5); //分
  103. $wk = array('日', '月', '火', '水', '木', '金', '土'); //週
  104. $rp_count = biz_makeSerialArray(12, 1); //繰り返し回数
  105. $bn_num = biz_makeSerialArray(31, 1); //日数
  106. $this->set('years', $years);
  107. $this->set('monthes', $monthes);
  108. $this->set('days', $days);
  109. $this->set('hours', $hours);
  110. $this->set('mins', $mins);
  111. $this->set('wk', $wk);
  112. $this->set('rp_count', $rp_count);
  113. $this->set('bn_num', $bn_num);
  114. $this->set('title', $requests['title']);
  115. $this->set('value', $requests['value']);
  116. if (!is_null($requests['begin_time'])) {
  117. $this->set('begin_hour', date("G", strtotime($requests['begin_time'])));
  118. }
  119. if (!is_null($requests['begin_time'])) {
  120. $begin_min = date("i", strtotime($requests['begin_time']));
  121. if (substr($begin_min, 0, 1) == '0') {
  122. $begin_min = substr($begin_min, 1,1);
  123. }
  124. }
  125. if (!is_null($requests['begin_time'])) {
  126. $this->set('begin_min', $begin_min);
  127. }
  128. if (!is_null($requests['finish_time'])) {
  129. $this->set('finish_hour', date("G", strtotime($requests['finish_time'])));
  130. } else {
  131. $this->set('finish_hour', null);
  132. }
  133. if (!is_null($requests['finish_time'])) {
  134. $finish_min = date("i", strtotime($requests['finish_time']));
  135. }
  136. if (substr($finish_min, 0, 1) == '0') {
  137. $finish_min = substr($finish_min, 1,1);
  138. }
  139. if (!is_null($requests['begin_time'])) {
  140. $this->set('finish_min', $finish_min);
  141. } else {
  142. $this->set('finish_min', null);
  143. }
  144. if ($requests['rep_type']) {
  145. $is_rep = true;
  146. } else {
  147. if ($requests['sc_rp']) {
  148. $is_rep = true;
  149. } else {
  150. $is_rep = false;
  151. }
  152. }
  153. $dayofweek = array();
  154. if (empty($requests['rep_type'])) {
  155. foreach ($requests['sc_rwk'] as $value) {
  156. $rp_rule += 1 << $value;
  157. }
  158. $requests['rep_type'] = $rp_rule;
  159. }
  160. for ($i = 0; $i <= 6; $i++) {
  161. if ($requests['rep_type'] & (1 << $i)) {
  162. array_push($dayofweek, 1);
  163. } else {
  164. array_push($dayofweek, 0);
  165. }
  166. }
  167. $this->set('rep_type', $dayofweek);
  168. $this->set('is_rep', $is_rep);
  169. $this->set('schedule_id', $requests['schedule_id']);
  170. $repeat_begin = biz_getRepeatBegin($requests['schedule_id']);
  171. $repeat_finish = biz_getRepeatFinish($requests['schedule_id']);
  172. $repeat_term = strtotime($repeat_finish) - strtotime($repeat_begin);
  173. $daycount = $repeat_term / (24 * 60 * 60) / 6;
  174. $this->set('repeat_begin_date', $repeat_begin);
  175. if (isset($requests["sc_rcount"])) {
  176. $daycount = $requests["sc_rcount"];
  177. }
  178. $this->set('repeat_term', ceil($daycount));
  179. $biz_group_count = biz_getGroupCount($target_id);
  180. $biz_group_list = biz_getJoinGroupList($target_id, 1, $biz_group_count);
  181. $this->set('biz_group_list', $biz_group_list[0]);
  182. $this->set('target_biz_group_id', $schedule['biz_group_id']);
  183. if ($requests['public_flag']) {
  184. $this->set('public_flag', $requests['public_flag']);
  185. } else {
  186. $this->set('public_flag', $schedule['public_flag']);
  187. }
  188. //追加
  189. if ($requests['members']) {
  190. $j_members = array_keys(unserialize($requests['members']));
  191. sort($j_members);
  192. } elseif($requests['sc_j_mem']) {
  193. $j_members = $requests['sc_j_mem'];
  194. } else {
  195. $j_members = biz_getJoinMemberSchedule($requests['schedule_id']);
  196. }
  197. $this->set('j_members', $j_members);
  198. $members = array();
  199. $sql = 'SELECT c_member_id, nickname FROM c_member';
  200. $members = db_get_all($sql, $params);
  201. $i = 0;
  202. foreach ($members as $key => $value) {
  203. if (in_array($value['c_member_id'], $j_members)) {
  204. $members[$key]['checkflag'] = 1;
  205. $i++;
  206. }
  207. if (count($j_members) < $i) {
  208. break;
  209. }
  210. }
  211. $this->set('members', $members);
  212. return 'success';
  213. }
  214. }
  215. ?>