/** * キャビネットを登録する * * @return boolean true or false * @access public */ function setCabinet() { $getdata =& $this->_container->getComponent("GetData"); $pages = $getdata->getParameter("pages"); $page_id = $this->_request->getParameter("page_id"); $private_flag = $pages[$page_id]["private_flag"]; if ($private_flag == _ON) { $params = array("cabinet_name" => $this->_request->getParameter("cabinet_name"), "add_authority_id" => intval($this->_request->getParameter("add_authority"))); } else { $params = array("cabinet_name" => $this->_request->getParameter("cabinet_name"), "add_authority_id" => intval($this->_request->getParameter("add_authority")), "upload_max_size" => intval($this->_request->getParameter("upload_max_size"))); } $actionChain =& $this->_container->getComponent("ActionChain"); $actionName = $actionChain->getCurActionName(); if ($actionName == "cabinet_action_edit_create") { $default = $this->_cabinetView->getDefaultCabinet(); $params = array_merge($default, $params); $result = $this->_db->insertExecute("cabinet_manage", $params, true, "cabinet_id"); } else { $cabinet_id = $this->_request->getParameter("cabinet_id"); $result = $this->_db->updateExecute("cabinet_manage", $params, array("cabinet_id" => $cabinet_id), true); } if (!$result) { return false; } if (empty($cabinet_id)) { $this->_request->setParameter("cabinet_id", $result); if (!$this->setBlock()) { return false; } } return true; }
/** * 受信情報に、フイルタ応用する * * @return boolean true or false * @access public */ function applyReceiverFiltering($receiver_user_id, $receiver_user_name, $receiver_auth_id, $receiver_id, $sender_id, $subject, $body) { $this->_request->setParameter("insert_user_id", $receiver_user_id); $filters = $this->_pmView->getFiltersInfoByInsertUserId(); $options = array("receiver_user_id" => $receiver_user_id, "receiver_user_name" => $receiver_user_name, "receiver_auth_id" => $receiver_auth_id); $result = array(); if (is_array($filters) && sizeof($filters) > 0) { $receivers = array($receiver_id); foreach ($filters as $filter) { if ($this->_checkFilterMatched($sender_id, $subject, $body, $filter)) { for ($i = 0; $i < sizeof($filter["actions"]); $i++) { $handle_func = $filter["actions"][$i]["func"]; $ret = $this->_pmFilterOperation->{$handle_func}($receivers, $filter["actions"][$i]["param"], $options); if (is_array($ret)) { $result = array_merge($result, $ret); } } } } } if (sizeof($result) > 0) { return $result; } else { return true; } }
/** * コメントデータ削除処理 * * @return boolean * @access public */ function deleteComment() { $params = array("comment_id" => $this->_request->getParameter("comment_id")); $result = $this->_db->deleteExecute("assignment_comment", $params); if ($result === false) { return false; } $this->_request->setParameter("comment_id", null); return true; }
/** * リンクリスト用ブロックデータを登録する * * @return boolean true or false * @access public */ function setBlock() { $blockID = $this->_request->getParameter("block_id"); $params = array($blockID); $sql = "SELECT block_id " . "FROM {linklist_block} " . "WHERE block_id = ?"; $blockIDs = $this->_db->execute($sql, $params); if ($blockIDs === false) { $this->_db->addError(); return false; } $params = array("block_id" => $blockID, "linklist_id" => $this->_request->getParameter("linklist_id")); $container =& DIContainerFactory::getContainer(); $actionChain =& $container->getComponent("ActionChain"); $actionName = $actionChain->getCurActionName(); if (!empty($blockIDs) && $actionName == "linklist_action_edit_current") { if (!$this->_db->updateExecute("linklist_block", $params, "block_id", true)) { return false; } return true; } if ($actionName == "linklist_action_edit_current") { $linklistView =& $container->getComponent("linklistView"); $linklist = $linklistView->getDefaultLinklist(); } if ($actionName == "linklist_action_edit_entry") { $linklist = $this->_request->getParameter("linklist"); } if (!empty($linklist)) { $this->_request->setParameter("display", $linklist["display"]); $this->_request->setParameter("target_blank_flag", $linklist["target_blank_flag"]); $this->_request->setParameter("view_count_flag", $linklist["view_count_flag"]); $this->_request->setParameter("line", $linklist["line"]); $this->_request->setParameter("mark", $linklist["mark"]); } else { $display = intval($this->_request->getParameter("display")); if ($display == LINKLIST_DISPLAY_LIST && $this->_request->getParameter("display_description") == _ON) { $display = LINKLIST_DISPLAY_DESCRIPTION; } $this->_request->setParameter("display", $display); } $params["display"] = intval($this->_request->getParameter("display")); $params["target_blank_flag"] = intval($this->_request->getParameter("target_blank_flag")); $params["view_count_flag"] = intval($this->_request->getParameter("view_count_flag")); $params["line"] = $this->_request->getParameter("line"); $params["mark"] = $this->_request->getParameter("mark"); if (!empty($blockIDs)) { $result = $this->_db->updateExecute("linklist_block", $params, "block_id", true); } else { $result = $this->_db->insertExecute("linklist_block", $params, true); } if (!$result) { return false; } return true; }
/** * 入力項目データを登録する * * @return boolean true or false * @access public */ function setData() { $registrationID = $this->_request->getParameter("registration_id"); $params = array("registration_id" => $registrationID); $dataID = $this->_db->insertExecute("registration_data", $params, true, "data_id"); if (empty($dataID)) { return false; } $this->_request->setParameter('dataID', $dataID); $container =& DIContainerFactory::getContainer(); $commonMain =& $container->getComponent("commonMain"); $uploadsAction =& $commonMain->registerClass(WEBAPP_DIR . '/components/uploads/Action.class.php', "Uploads_Action", "uploadsAction"); $session =& $container->getComponent("Session"); $entryDatas =& $session->getParameter("registration_entry_datas" . $this->_request->getParameter("block_id")); foreach ($entryDatas as $entryData) { $itemID = $entryData["item_id"]; if ($entryData["item_type"] == REGISTRATION_TYPE_FILE) { if (!empty($entryData["item_data_value"]["upload_id"])) { $uploadID = $entryData["item_data_value"]["upload_id"]; $itemDataValue = "?" . ACTION_KEY . "=" . $entryData["item_data_value"]["action_name"] . "&upload_id=" . $uploadID; if (!$uploadsAction->updGarbageFlag($uploadID)) { return false; } } else { $itemDataValue = ""; } } elseif ($entryData["item_type"] == REGISTRATION_TYPE_CHECKBOX && is_array($entryData["item_data_value"])) { $itemDataValue = implode(REGISTRATION_OPTION_SEPARATOR, $entryData["item_data_value"]); } elseif ($entryData["item_type"] == REGISTRATION_TYPE_EMAIL) { $itemDataValue = $entryData["item_data_value"]["first"]; } else { $itemDataValue = $entryData["item_data_value"]; } $params = array("registration_id" => $registrationID, "item_id" => $entryData["item_id"], "data_id" => $dataID, "item_data_value" => $itemDataValue); $itemDataID = $this->_db->insertExecute("registration_item_data", $params, true, "item_data_id"); if (empty($itemDataID)) { return false; } if ($entryData["item_type"] != REGISTRATION_TYPE_FILE || empty($entryData["item_data_value"]["upload_id"])) { continue; } $params = array("item_data_id" => $itemDataID, "upload_id" => $entryData["item_data_value"]["upload_id"], "file_name" => $entryData["item_data_value"]["file_name"], "room_id" => $this->_request->getParameter("room_id")); if (!$this->_db->insertExecute("registration_file", $params)) { return false; } } $registration = $this->_request->getParameter("registration"); if ($registration["mail_send"] == _ON) { $session->setParameter("registration_mail_data_id", $dataID); } return true; }
/** * CSVデータを作成する * * @return boolean true:正常、false:異常 * @access public */ function setCSV() { $questions = $this->getQuestions(); if ($questions === false) { return false; } $this->_request->setParameter("chiefItemShow", true); $summaries = $this->getSummaries(); if ($summaries === false) { return false; } $params = array($this->_request->getParameter("questionnaire_id")); $sql = $this->_getAnswerSQL("questionnaire_id"); $result = $this->_db->execute($sql, $params, null, null, true, array($this, "_makeCSV"), array($questions, $summaries)); if ($result === false) { $this->_db->addError(); return false; } return true; }
/** * 予約を登録する * * @access public */ function updateReserve() { $calendarAction =& $this->_container->getComponent("calendarAction"); $user_id = $this->_session->getParameter("_user_id"); $user_name = $this->_session->getParameter("_handle"); $edit_rrule = intval($this->_request->getParameter("edit_rrule")); $reserve = $this->_request->getParameter("reserve"); $location = $this->_request->getParameter("location"); $description = $this->_request->getParameter("description"); $reserve_room_id = $this->_request->getParameter("reserve_room_id"); $allday_flag = intval($this->_request->getParameter("allday_flag")); $entry_calendar = intval($this->_request->getParameter("entry_calendar")); $reserve_details_id = $reserve["reserve_details_id"]; $calendar_id = $reserve["calendar_id"]; $rrule = $this->_request->getParameter("rrule"); $rrule_str = $calendarAction->concatRRule($rrule); $timezone_offset = $this->_request->getParameter("timezone_offset"); $start_time_full = $this->_request->getParameter("start_time_full"); $start_time_full = $this->_reservationView->dateFormat($start_time_full, $timezone_offset, true); $end_time_full = $this->_request->getParameter("end_time_full"); $end_time_full = $this->_reservationView->dateFormat($end_time_full, $timezone_offset, true); $block_id = $this->_reservationView->getBlockIdByWhatsnew(); $details_params = array("contact" => $this->_request->getParameter("contact"), "description" => $description, "rrule" => $rrule_str, 'room_id' => $reserve_room_id); if ($edit_rrule == RESERVATION_RESERVE_EDIT_ALL) { $result = $this->_updateReserveByAll($reserve_details_id, $details_params); if ($result === false) { return false; } } elseif ($edit_rrule == RESERVATION_RESERVE_EDIT_AFTER) { $result = $this->_updateReserveByAfter($reserve_details_id, $start_time_full, $details_params); if ($result === false) { return false; } } else { $reserve_details_id = $this->_db->insertExecute("reservation_reserve_details", $details_params, false, "reserve_details_id"); if ($reserve_details_id === false) { return false; } } $this->_request->setParameter("reserve_details_id", $reserve_details_id); $time = timezone_date(); $reserve_params = array("reserve_details_id" => $reserve_details_id, "location_id" => $this->_request->getParameter("location_id"), "room_id" => $reserve_room_id, "user_id" => $reserve["user_id"], "user_name" => $reserve["user_name"], "title" => $this->_request->getParameter("title"), "title_icon" => $this->_request->getParameter("icon_name"), "allday_flag" => $allday_flag, "start_date" => substr($start_time_full, 0, 8), "start_time" => substr($start_time_full, 8), "start_time_full" => $start_time_full, "end_date" => substr($end_time_full, 0, 8), "end_time" => substr($end_time_full, 8), "end_time_full" => $end_time_full, "timezone_offset" => $this->_request->getParameter("timezone_offset"), "insert_time" => $reserve["insert_time"], "insert_site_id" => $reserve["insert_site_id"], "insert_user_id" => $reserve["insert_user_id"], "insert_user_name" => $reserve["insert_user_name"], "update_time" => timezone_date(), "update_site_id" => $this->_session->getParameter("_site_id"), "update_user_id" => $user_id, "update_user_name" => $user_name); $where_params = array("reserve_id" => $reserve["reserve_id"]); $result = $this->_db->updateExecute("reservation_reserve", $reserve_params, $where_params, false); if ($result === false) { return false; } if ($edit_rrule != RESERVATION_RESERVE_EDIT_THIS) { $sql = "DELETE FROM {reservation_reserve} " . "WHERE reserve_details_id = ? " . "AND reserve_id <> ?"; $params = array("reserve_details_id" => $reserve_details_id, "reserve_id" => $reserve["reserve_id"]); $result = $this->_db->execute($sql, $params); if ($result === false) { $this->_db->addError(); return false; } $repeat_time = $this->_request->getParameter("repeat_time"); if (!empty($repeat_time)) { foreach ($repeat_time as $i => $time) { $start_time_full = $this->_reservationView->dateFormat($time["start_time_full"], $timezone_offset, true); $end_time_full = $this->_reservationView->dateFormat($time["end_time_full"], $timezone_offset, true); $params = array("start_date" => substr($start_time_full, 0, 8), "start_time" => substr($start_time_full, 8), "start_time_full" => $start_time_full, "end_date" => substr($end_time_full, 0, 8), "end_time" => substr($end_time_full, 8), "end_time_full" => $end_time_full); $params = array_merge($reserve_params, $params); $result = $this->_db->insertExecute("reservation_reserve", $params, false, "reserve_id"); if ($result === false) { return false; } } } } if ($entry_calendar == _ON) { $link_params = array("location_name" => $location["location_name"], "link_module" => CALENDAR_LINK_RESERVATION, "link_id" => $reserve_details_id, "link_action_name" => "action=" . DEFAULT_ACTION . "&active_action=reservation_view_main_init" . "&view_date=" . substr($start_time_full, 0, 8) . "&reserve_id=" . $reserve["reserve_id"] . "&display_type=" . RESERVATION_DEF_LOCATION . "&block_id=" . $block_id . "#_" . $block_id); $params = array_merge($reserve_params, $details_params, $link_params); if ($calendar_id != 0) { $result = $calendarAction->updatePlan($calendar_id, $params, $edit_rrule); } else { $result = $calendarAction->insertPlan($params); } if ($result === false) { return false; } } elseif ($calendar_id != 0) { $result = $calendarAction->deletePlan($calendar_id); if ($result === false) { return false; } $params = array("reserve_id" => $reserve["reserve_id"], "calendar_id" => 0); if (!$this->_db->updateExecute("reservation_reserve", $params, "reserve_id", false)) { return false; } } $commonMain =& $this->_container->getComponent("commonMain"); $uploadsAction =& $commonMain->registerClass(WEBAPP_DIR . '/components/uploads/Action.class.php', "Uploads_Action", "uploadsAction"); $upload_id_arr = $uploadsAction->getUploadId($description); if (!empty($upload_id_arr)) { $params = array("room_id" => $reserve_room_id); $where_params = array("upload_id IN (" . implode(",", $upload_id_arr) . ")" => null); $result = $uploadsAction->updUploads($params, $where_params); if ($result === false) { return false; } } //--新着情報関連 Start-- $result = $this->setWhatsnew(); if ($result === false) { return false; } //--新着情報関連 End-- $notification_mail = intval($this->_request->getParameter("notification_mail")); if ($notification_mail == _ON) { $this->_session->setParameter("reservation_mail_reserve_id", $reserve["reserve_id"]); } else { $this->_session->setParameter("reservation_mail_reserve_id", 0); } return true; }
/** * 記事データを登録する * * @return boolean true or false * @access public */ function setPost() { // --- 記事テーブルに登録 --- $params = array("bbs_id" => $this->_request->getParameter("bbs_id"), "subject" => $this->_request->getParameter("subject")); $container =& DIContainerFactory::getContainer(); $session =& $container->getComponent("Session"); $mobile_flag = $session->getParameter('_mobile_flag'); if ($mobile_flag == _OFF) { $params['icon_name'] = $this->_request->getParameter('icon_name'); } $container =& DIContainerFactory::getContainer(); $bbsView =& $container->getComponent("bbsView"); $postID = $this->_request->getParameter("post_id"); $bbs = $this->_request->getParameter("bbs"); $insertFlag = false; if (empty($postID)) { $postID = $this->_db->nextSeq("bbs_post"); $parentID = $this->_request->getParameter("parent_id"); if (empty($parentID)) { $params["topic_id"] = $postID; $params["parent_id"] = 0; } else { $params["parent_id"] = $parentID; $params["topic_id"] = $bbsView->getTopicID($parentID); if ($params["topic_id"] === false) { return false; } } $insertFlag = true; $this->_request->setParameter("post_id", $postID); } else { $params["topic_id"] = $bbsView->getTopicID($postID); } $params["post_id"] = $postID; $temporary = intval($this->_request->getParameter("temporary")); if (!$insertFlag) { $post = $this->_request->getParameter("post"); if (empty($post)) { return false; } if ($temporary == _ON && $post["status"] != BBS_STATUS_BEFORE_RELEASED_VALUE) { $params["status"] = BBS_STATUS_TEMPORARY_VALUE; } } if (!isset($params["status"])) { if ($temporary == _ON) { $params["status"] = BBS_STATUS_BEFORE_RELEASED_VALUE; } else { $params["status"] = BBS_STATUS_RELEASED_VALUE; } } $body = $this->_request->getParameter("body"); if ($mobile_flag == _ON) { $mobile_images = $this->_request->getParameter('bbs_mobile_images'); $current_mobile_image = $session->getParameter('bbs_current_mobile_image'); $br = ''; if (substr(rtrim($body), -6) != '<br />') { $br = '<br />'; } if (!empty($mobile_images)) { foreach ($mobile_images as $image) { $body .= $br . $image; } } elseif (!empty($current_mobile_image)) { $body .= $br . $current_mobile_image; } } $params["contained_sign"] = $this->getContainedSignString($body); if ($insertFlag) { $result = $this->_db->insertExecute("bbs_post", $params, true); } else { if ($params["status"] == BBS_STATUS_RELEASED_VALUE && $post["status"] == BBS_STATUS_BEFORE_RELEASED_VALUE) { $params["insert_time"] = timezone_date(); $post["insert_time"] = $params["insert_time"]; } $result = $this->_db->updateExecute("bbs_post", $params, "post_id", true); } if ($result === false) { return false; } // --- 本文テーブルに登録 --- $status = $params["status"]; $topicID = $params["topic_id"]; $subject = $params["subject"]; $room_id = $this->_request->getParameter("room_id"); $params = array("post_id" => $postID, "body" => $body, "room_id" => $room_id); if ($insertFlag) { $result = $this->_db->insertExecute("bbs_post_body", $params); } else { $result = $this->_db->updateExecute("bbs_post_body", $params, "post_id"); } if ($result === false) { return false; } // --- 根記事テーブルに登録 --- $child_flag = $topicID == $postID ? _OFF : _ON; if ($topicID == $postID && $insertFlag) { $params = array("topic_id" => $postID, "newest_time" => timezone_date(), "child_num" => "0", "room_id" => $room_id); $result = $this->_db->insertExecute("bbs_topic", $params); } else { $countSQL = ""; if ($topicID != $postID) { $count = 0; if ($status == BBS_STATUS_TEMPORARY_VALUE && $post["status"] == BBS_STATUS_RELEASED_VALUE) { $count = -1; } elseif ($status == BBS_STATUS_RELEASED_VALUE && (!isset($post) || $post["status"] != BBS_STATUS_RELEASED_VALUE)) { $count = 1; } $countSQL = ", child_num = child_num + (" . $count . ") "; } $params = array(timezone_date(), $topicID); $sql = "UPDATE {bbs_topic} " . "SET newest_time = ? " . $countSQL . "WHERE topic_id = ?"; $result = $this->_db->execute($sql, $params); } if ($result === false) { return false; } // --- メール送信データ登録 --- if ($bbs["mail_send"] == _ON && $status == BBS_STATUS_RELEASED_VALUE && ($insertFlag || $post["status"] == BBS_STATUS_BEFORE_RELEASED_VALUE)) { $session->setParameter("bbs_mail_post_id", $postID); } //--URL短縮形関連 Start-- if ($insertFlag) { $container =& DIContainerFactory::getContainer(); $abbreviateurlAction =& $container->getComponent("abbreviateurlAction"); $result = $abbreviateurlAction->setAbbreviateUrl($this->_request->getParameter("bbs_id"), $postID); if ($result === false) { return false; } } //--URL短縮形関連 End-- //--新着情報関連 Start-- $whatsnewAction =& $container->getComponent("whatsnewAction"); if ($temporary != _ON) { $whatsnew = array("unique_id" => $postID, "title" => $subject, "description" => $body, "action_name" => "bbs_view_main_post", "parameters" => "post_id=" . $postID, "child_flag" => $child_flag); if (!empty($post)) { $whatsnew["insert_time"] = $post["insert_time"]; $whatsnew["insert_user_id"] = $post["insert_user_id"]; $whatsnew["insert_user_name"] = $post["insert_user_name"]; } $result = $whatsnewAction->auto($whatsnew); } else { $result = $whatsnewAction->delete($postID); } if ($result === false) { return false; } //--新着情報関連 End-- // --- 投稿回数更新 --- if ($status == BBS_STATUS_RELEASED_VALUE && ($insertFlag || $post["status"] == BBS_STATUS_BEFORE_RELEASED_VALUE)) { $monthlynumberAction =& $container->getComponent("monthlynumberAction"); if ($insertFlag) { $params = array("user_id" => $session->getParameter("_user_id")); } else { $params = array("user_id" => $post["insert_user_id"]); } if (!$monthlynumberAction->incrementMonthlynumber($params)) { return false; } } $session->removeParameter('bbs_current_mobile_image'); if (!$insertFlag) { return true; } // --- 既読、投票テーブルに登録 --- if (!$this->read($postID)) { return false; } return true; }
/** * フォトアルバム用ブロックデータを登録する * * @return boolean true or false * @access public */ function setBlock() { $blockID = $this->_request->getParameter("block_id"); $params = array($blockID); $sql = "SELECT block_id " . "FROM {photoalbum_block} " . "WHERE block_id = ?"; $blockIDs = $this->_db->execute($sql, $params); if ($blockIDs === false) { $this->_db->addError(); return false; } $params = array("block_id" => $blockID, "photoalbum_id" => $this->_request->getParameter("photoalbum_id")); $container =& DIContainerFactory::getContainer(); $actionChain =& $container->getComponent("ActionChain"); $actionName = $actionChain->getCurActionName(); if (!empty($blockIDs) && $actionName == "photoalbum_action_edit_current") { if (!$this->_db->updateExecute("photoalbum_block", $params, "block_id", true)) { return false; } return true; } if ($actionName == "photoalbum_action_edit_current") { $photoalbumView =& $container->getComponent("photoalbumView"); $photoalbum = $photoalbumView->getDefaultPhotoalbum(); } if ($actionName == "photoalbum_action_edit_entry") { $this->_request->setParameter("photoalbum_id", null); $photoalbum = $this->_request->getParameter("photoalbum"); } if (!empty($photoalbum)) { $this->_request->setParameter("display", $photoalbum["display"]); $this->_request->setParameter("slide_type", $photoalbum["slide_type"]); $this->_request->setParameter("slide_time", $photoalbum["slide_time"]); $this->_request->setParameter("size_flag", $photoalbum["size_flag"]); $this->_request->setParameter("width", $photoalbum["width"]); $this->_request->setParameter("height", $photoalbum["height"]); $this->_request->setParameter("album_visible_row", $photoalbum["album_visible_row"]); } $params["display"] = intval($this->_request->getParameter("display")); $params["slide_type"] = intval($this->_request->getParameter("slide_type")); $params["slide_time"] = intval($this->_request->getParameter("slide_time")); $params["size_flag"] = intval($this->_request->getParameter("size_flag")); $params["album_visible_row"] = intval($this->_request->getParameter("album_visible_row")); if ($params["display"] == PHOTOALBUM_DISPLAY_SLIDE) { $params["display_album_id"] = intval($this->_request->getParameter("display_album_id")); } else { $params["display_album_id"] = 0; } if ($params["size_flag"] == _ON || empty($blockIDs)) { $params["width"] = intval($this->_request->getParameter("width")); $params["height"] = intval($this->_request->getParameter("height")); } if (!empty($blockIDs)) { $result = $this->_db->updateExecute("photoalbum_block", $params, "block_id", true); } else { $result = $this->_db->insertExecute("photoalbum_block", $params, true); } if (!$result) { return false; } $session =& $container->getComponent("Session"); $session->removeParameter("photoalbum_visible_row" . $blockID); return true; }
/** * アンケートデータを登録する * * @return boolean true or false * @access public */ function setQuestionnaire() { $questionnaireType = intval($this->_request->getParameter("questionnaire_type")); if ($questionnaireType == QUESTIONNAIRE_TYPE_SEQUENCE_VALUE && $this->_request->getParameter("questionnaire_type_random") == _ON) { $questionnaireType = QUESTIONNAIRE_TYPE_RANDOM_VALUE; } $this->_request->setParameter("questionnaire_type", $questionnaireType); $container =& DIContainerFactory::getContainer(); $session =& $container->getComponent("Session"); $page = $session->getParameter('_main_room_page'); if ($session->getParameter("_space_type") != _SPACE_TYPE_PUBLIC && ($page['private_flag'] == _OFF || $page['default_entry_flag'] == _OFF)) { $this->_request->setParameter("nonmember_flag", _OFF); } else { if ($this->_request->getParameter("nonmember_flag") == _ON) { $this->_request->setParameter("repeat_flag", _ON); } } if (!function_exists("gd_info") || $session->getParameter("_space_type") != _SPACE_TYPE_PUBLIC && ($page['private_flag'] == _OFF || $page['default_entry_flag'] == _OFF)) { $this->_request->setParameter("image_authentication", _OFF); } if ($this->_request->getParameter("anonymity_flag") == _ON) { $this->_request->setParameter("mail_send", _OFF); } $params = array("image_authentication" => intval($this->_request->getParameter("image_authentication")), 'keypass_use_flag' => intval($this->_request->getParameter('keypass_use_flag')), 'keypass_phrase' => $this->_request->getParameter('keypass_phrase'), "total_flag" => intval($this->_request->getParameter("total_flag")), "answer_show_flag" => intval($this->_request->getParameter("answer_show_flag")), "mail_send" => intval($this->_request->getParameter("mail_send")), "mail_subject" => $this->_request->getParameter("mail_subject"), "mail_body" => $this->_request->getParameter("mail_body")); $questionnaire = $this->_request->getParameter("questionnaire"); if (empty($questionnaire) || $questionnaire["status"] == QUESTIONNAIRE_STATUS_INACTIVE_VALUE) { $params["questionnaire_name"] = $this->_request->getParameter("questionnaire_name"); $params["icon_name"] = $this->_request->getParameter("icon_name"); $params["questionnaire_type"] = $this->_request->getParameter("questionnaire_type"); $params["nonmember_flag"] = intval($this->_request->getParameter("nonmember_flag")); $params["anonymity_flag"] = intval($this->_request->getParameter("anonymity_flag")); $params["repeat_flag"] = intval($this->_request->getParameter("repeat_flag")); } if ($questionnaire["status"] != QUESTIONNAIRE_STATUS_END_VALUE) { $params["period"] = $this->_request->getParameter("period"); } $questionnaireID = $this->_request->getParameter("questionnaire_id"); if (empty($questionnaireID)) { $params["room_id"] = $this->_request->getParameter("room_id"); $params["status"] = QUESTIONNAIRE_STATUS_INACTIVE_VALUE; $result = $this->_db->insertExecute("questionnaire", $params, true, "questionnaire_id"); } else { $params["questionnaire_id"] = $questionnaireID; $result = $this->_db->updateExecute("questionnaire", $params, "questionnaire_id", true); } if (!$result) { return false; } if (!empty($questionnaireID)) { return true; } $questionnaireID = $result; $this->_request->setParameter("questionnaire_id", $questionnaireID); if ($this->_request->getParameter("old_use") != _ON) { return true; } $params = array($this->_request->getParameter("old_questionnaire_id")); $sql = "SELECT question_id, question_sequence, question_value, question_type, " . "require_flag, description " . "FROM {questionnaire_question} " . "WHERE questionnaire_id = ? " . "ORDER BY question_id"; $questions = $this->_db->execute($sql, $params); if ($questions === false) { $this->_db->addError(); return false; } $sql = "SELECT question_id, choice_sequence, choice_value, graph " . "FROM {questionnaire_choice} " . "WHERE questionnaire_id = ? " . "ORDER BY question_id, choice_sequence"; $choices = $this->_db->execute($sql, $params); if ($choices === false) { $this->_db->addError(); return false; } foreach ($questions as $question) { $oldQuestionID = $question["question_id"]; unset($question["question_id"]); $question["questionnaire_id"] = $questionnaireID; $questionID = $this->_db->insertExecute("questionnaire_question", $question, true, "question_id"); if (!$questionID) { return false; } reset($choices); $index = key($choices); foreach ($choices as $choice) { if ($choice["question_id"] != $oldQuestionID) { break; } $choice["question_id"] = $questionID; $choice["questionnaire_id"] = $questionnaireID; if (!$this->_db->insertExecute("questionnaire_choice", $choice, true, "choice_id")) { return false; } unset($choices[$index]); $index++; } } return true; }
/** * タスクデータを登録する * * @return boolean true or false * @access public */ function setTask() { $taskID = $this->_request->getParameter("task_id"); $todoID = $this->_request->getParameter("todo_id"); $priority = $this->_request->getParameter("priority"); $state = $this->_request->getParameter("state"); $period = $this->_request->getParameter("period"); $task_value = $this->_request->getParameter("task_value"); $progress = $this->_request->getParameter("progress"); $category_id = $this->_request->getParameter("category_id"); if ($state == _ON) { $progress = '100'; } if ($progress == '100') { $state = _ON; } else { $state = _OFF; } $whatsnewFlag = false; $calendarFlag = false; $session =& $this->_container->getComponent("Session"); if (empty($taskID)) { $params = array($todoID); $sql = "SELECT MAX(task_sequence) " . "FROM {todo_task} " . "WHERE todo_id = ?"; $sequences = $this->_db->execute($sql, $params, null, null, false); if ($sequences === false) { $this->_db->addError(); return false; } $params = array("todo_id" => $todoID, "task_sequence" => $sequences[0][0] + 1, "priority" => intval($priority), "state" => intval($state), "period" => $period, "progress" => intval($progress), "category_id" => intval($category_id), "task_value" => $task_value); $result = $this->_db->insertExecute("todo_task", $params, true, "task_id"); $whatsnewFlag = true; $calendarFlag = true; } else { $params = array("task_id" => $taskID); if (isset($priority)) { $params["priority"] = intval($priority); } if (isset($state) || $session->getParameter("_mobile_flag") == _ON) { $params["state"] = intval($state); } if (isset($period)) { $params["period"] = $period; } if (isset($progress)) { $params["progress"] = intval($progress); } if (isset($category_id)) { $params["category_id"] = intval($category_id); } if (isset($task_value)) { $params["task_value"] = $task_value; $whatsnewFlag = true; $calendarFlag = true; } $result = $this->_db->updateExecute("todo_task", $params, "task_id", true); } if (!$result) { return false; } $insertFlag = false; if (empty($taskID)) { $taskID = $result; $this->_request->setParameter("task_id", $taskID); $insertFlag = true; } if ($session->getParameter("_mobile_flag") == _ON) { $this->_request->setParameter("target_state", intval($state)); } // -- 新着情報関連 Start -- if ($whatsnewFlag) { $whatsnewAction =& $this->_container->getComponent("whatsnewAction"); $todo = $this->_request->getParameter("todo"); $value = $todo["todo_name"] . _SEARCH_SUBJECT_SEPARATOR . $task_value; $whatsnew = array("unique_id" => $taskID, "title" => $value, "description" => $value, "action_name" => "todo_view_main_init", "parameters" => "todo_id=" . $todo["todo_id"]); if ($insertFlag) { $result = $whatsnewAction->insert($whatsnew); } else { $result = $whatsnewAction->update($whatsnew); } if ($result === false) { return false; } } // -- 新着情報関連 End -- // -- カレンダ情報関連 Start -- if ($calendarFlag) { $task = $this->_request->getParameter("task"); $calendarAction =& $this->_container->getComponent("calendarAction"); $calendar = $this->_request->getParameter("calendar"); if ($calendar == _ON) { $params = array("room_id" => $this->_request->getParameter("room_id")); if (!empty($task["task_value"])) { $params["title"] = $task["task_value"]; } if (isset($task_value)) { $params["title"] = $task_value; } if (isset($period)) { $params["start_time_full"] = date("YmdHis", mktime(intval(substr($period, 8, 2)), intval(substr($period, 10, 2)), intval(substr($period, 12, 2)), intval(substr($period, 4, 2)), intval(substr($period, 6, 2)) - 1, intval(substr($period, 0, 4)))); $params["end_time_full"] = $period; $params["allday_flag"] = _ON; } $params["link_module"] = CALENDAR_LINK_TODO; $params["link_id"] = $taskID; $params["link_action_name"] = "todo_view_main_init&todo_id=" . $todoID . "&block_id=" . $this->_request->getParameter("block_id"); if (empty($task["calendar_id"])) { $result = $calendarAction->insertPlan($params); } else { $result = $calendarAction->updatePlan($task["calendar_id"], $params); } } elseif (!empty($task["calendar_id"])) { $result = $calendarAction->deletePlan($task["calendar_id"]); } if ($result === false) { return false; } if ($calendar == _ON && !empty($task["calendar_id"])) { return true; } if ($calendar == _ON) { $params = array("task_id" => $taskID, "calendar_id" => $result); } if ($calendar != _ON) { $params = array("task_id" => $taskID, "calendar_id" => 0); } if (!$this->_db->updateExecute("todo_task", $params, "task_id", true)) { return false; } } // -- カレンダ情報関連 End -- return true; }