/** * モジュールのデータを取得 * * @access private */ function _callbackModules(&$recordSet, &$params) { $request = $actionChain =& $this->_container->getComponent("Request"); $block_id = $request->getParameter("block_id"); $target_modules = $this->_session->getParameter(array("search_select", $block_id, "target_modules")); $actionChain =& $this->_container->getComponent("ActionChain"); $actionName = $actionChain->getCurActionName(); $search_blocks_obj = $params[0]; $ret = array(); while ($row = $recordSet->fetchRow()) { if ($row["search_action"] == "") { continue; } $pathList = explode("_", $row["action_name"]); $row["dir_name"] = $pathList[0]; if ($actionName == "search_view_main_init" && $search_blocks_obj["show_mode"] == SEARCH_SHOW_MODE_SIMPLE && !in_array($row["dir_name"], $search_blocks_obj["default_target_module_arr"])) { continue; } $row["module_name"] = $this->_modulesView->loadModuleName($row["dir_name"]); if (isset($search_blocks_obj)) { if (isset($target_modules) && in_array($row["module_id"], $target_modules) || !isset($target_modules) && in_array($row["dir_name"], $search_blocks_obj["default_target_module_arr"])) { $row["target_module_flag"] = true; } else { $row["target_module_flag"] = false; } } $ret[] = $row; } return $ret; }
function _getSearchResults(&$recordSet) { $result = array(); while ($row = $recordSet->fetchRow()) { $ret_row = array(); if ($row["room_id"] == 0) { $ret_row["room_name"] = RESERVATION_NO_RESERVE_FLAG; } else { $ret_row["room_name"] = $row["page_name"]; } $ret_row["pubDate"] = $row["start_time_full"]; $ret_row["title_icon"] = $row["title_icon"]; $ret_row["title"] = $row["title"]; $ret_row["url"] = "?action=" . DEFAULT_ACTION . "&page_id=" . $this->_session->getParameter("_main_page_id") . "&active_center=reservation_view_main_init" . "&reserve_id=" . $row["reserve_id"]; $ret_row["description"] = ""; $ret_row["description"] .= sprintf(RESERVATION_WHATSNEW_LOCATION, $row["location_name"]); if (!empty($row["contact"])) { $ret_row["description"] .= sprintf(RESERVATION_WHATSNEW_CONTACT, $row["contact"]); } if (!empty($row["description"])) { $ret_row["description"] .= sprintf(RESERVATION_WHATSNEW_DESCRIPTION, $row["description"]); } $ret_row["user_id"] = $row["insert_user_id"]; $ret_row["user_name"] = $row["insert_user_name"]; $result[] = $ret_row; } return $result; }
/** * 投票権限を取得する * * @param array $post 記事ID、状態、投稿者ID、動作の配列 * @return boolean true:権限有り、false:権限無し * @access public */ function _hasVoteAuthority($post) { if ($post["status"] != BBS_STATUS_RELEASED_VALUE) { return false; } if ($post["activity"] != _ON) { return false; } if ($post["vote_flag"] != _ON) { return false; } $votes = $this->_session->getParameter("bbs_votes"); if (!empty($votes) && in_array($post["post_id"], $votes)) { return false; } $userID = $this->_session->getParameter("_user_id"); if (empty($userID)) { return true; } $params = array($userID, $post["post_id"]); $sql = "SELECT vote_flag " . "FROM {bbs_user_post} " . "WHERE user_id = ? " . "AND post_id = ?"; $voteFlags = $this->_db->execute($sql, $params, null, null, false); if ($voteFlags === false) { $this->_db->addError(); return false; } if (empty($voteFlags) || $voteFlags[0][0] != _ON) { return true; } return false; }
/** * conf_nameよりConfig情報取得 * * @param int $conf_modid モジュールID * @param string $conf_name conf名 * @return array * @access public */ function &getConfigByConfname($conf_modid, $conf_name) { if (!$this->isMultiLanguage) { $where_params = array("conf_modid" => $conf_modid, "conf_name" => $conf_name); $configs =& $this->_db->selectExecute("config", $where_params); if ($configs === false) { return $configs; } } else { $params = array($this->_session->getParameter('_lang'), $conf_modid, $conf_name); $sql = $this->_getConfigSQL() . "AND C.conf_name = ?"; $configs = $this->_db->execute($sql, $params); if ($configs === false) { $this->_db->addError(); return $configs; } } if (empty($configs)) { $configs = null; return $configs; } $config = $configs[0]; if (isset($config['CLValue'])) { $config['conf_value'] = $config['CLValue']; } return $config; }
/** * コメント権限を取得する * * @return boolean true:権限有り、false:権限無し * @access public */ function _hasCommentAuthority() { $authID = $this->_session->getParameter("_auth_id"); if ($authID <= _AUTH_GUEST) { return false; } $album = $this->_request->getParameter("album"); if ($album["comment_flag"] != _ON) { return false; } return true; }
/** * 編集権限チェック * * @access public */ function _hasEditAuthority(&$file) { $_user_id = $this->_session->getParameter("_user_id"); $_auth_id = $this->_session->getParameter("_auth_id"); $_hierarchy = $this->_session->getParameter("_hierarchy"); if ($_auth_id >= _AUTH_CHIEF) { return true; } if ($file["file_type"] == CABINET_FILETYPE_FOLDER && $this->childExists($file["file_id"])) { return false; } $authCheck =& $this->_container->getComponent("authCheck"); $file_hierarchy = $authCheck->getPageHierarchy($file["insert_user_id"], $this->_request->getParameter("room_id")); if ($file["insert_user_id"] == $_user_id || $_hierarchy > $file_hierarchy) { return true; } else { return false; } }
/** * 個人情報データを取得する * * @return array 個人情報データ配列 * @access public */ function &getPersonalAssignments() { $ownUserID = $this->_session->getParameter("_user_id"); $otherUserID = $this->_request->getParameter("user_id"); $pagesView =& $this->_container->getComponent("pagesView"); if ($ownUserID != $otherUserID) { $ownRoomIDs = $pagesView->getRoomIdByUserId($ownUserID); $otherRoomIDs = $pagesView->getRoomIdByUserId($otherUserID, _AUTH_GENERAL); $roomIDs = array_intersect($otherRoomIDs, $ownRoomIDs); } else { $roomIDs = $pagesView->getRoomIdByUserId($ownUserID, _AUTH_GENERAL); } if (empty($roomIDs)) { return $roomIDs; } $sql = "SELECT Assign.room_id, Assign.assignment_name, Assign.icon_name, " . "Assign.activity, Assign.period, Assign.grade_authority, " . "Assign.insert_time, Assign.insert_user_id, " . "Submitter.submit_flag, Submitter.grade_value, " . "Submitter.insert_user_id AS submit_user_id, Submitter.update_time AS submit_update_time," . "Page.page_name, AssignBlock.block_id" . " FROM {assignment_block} AssignBlock" . " INNER JOIN {blocks} Block ON (AssignBlock.block_id = Block.block_id)" . " INNER JOIN {assignment} Assign ON (AssignBlock.assignment_id = Assign.assignment_id)" . " INNER JOIN {pages} Page ON (Assign.room_id = Page.page_id)" . " LEFT JOIN {assignment_submitter} Submitter" . " ON (Assign.assignment_id = Submitter.assignment_id AND Submitter.insert_user_id = ?)" . " WHERE Assign.room_id IN (" . implode(",", $roomIDs) . ")" . " GROUP BY Assign.assignment_id" . " ORDER BY Assign.room_id, Assign.assignment_id DESC"; $params = array("insert_user_id" => $otherUserID); $personalAssignments = $this->_db->execute($sql, $params, null, null, true, array($this, "_makePersonalAssignments"), $roomIDs); if ($personalAssignments === false) { $this->_db->addError(); return $personalAssignments; } return $personalAssignments; }
/** * 新着情報の更新 * * @access public */ function setWhatsnew() { //--新着情報関連 Start-- $whatsnewAction =& $this->_container->getComponent("whatsnewAction"); $user_id = $this->_session->getParameter("_user_id"); $user_name = $this->_session->getParameter("_handle"); $block_id = $this->_reservationView->getBlockIdByWhatsnew(); $reserve_id = $this->_request->getParameter("reserve_id"); $reserve = $this->_reservationView->getReserve($reserve_id); if ($reserve === false) { return false; } $location = $this->_request->getParameter("location"); $result = $whatsnewAction->delete($reserve["reserve_details_id"]); if ($result === false) { return false; } $whatsnew_description = ""; $whatsnew_description .= sprintf(RESERVATION_WHATSNEW_LOCATION, $location["location_name"]); if ($reserve["start_date_view"] == $reserve["end_date_view"]) { $whatsnew_description .= sprintf(RESERVATION_WHATSNEW_TIME_FMTO, $reserve["start_date_str"] . " " . $reserve["start_time_str"], $reserve["end_time_str"]); } else { $whatsnew_description .= sprintf(RESERVATION_WHATSNEW_TIME_FMTO, $reserve["start_date_str"] . " " . $reserve["start_time_str"], $reserve["end_date_str"] . " " . $reserve["end_time_str"]); } if (!empty($reserve["contact"])) { $whatsnew_description .= sprintf(RESERVATION_WHATSNEW_CONTACT, $reserve["contact"]); } if (!empty($reserve["description"])) { $whatsnew_description .= sprintf(RESERVATION_WHATSNEW_DESCRIPTION, $reserve["description"]); } if (!empty($reserve["rrule_str"])) { $whatsnew_description .= sprintf(RESERVATION_WHATSNEW_RRULE, $reserve["rrule_str"]); } $whatsnew = array("room_id" => $reserve["room_id"], "unique_id" => $reserve["reserve_details_id"], "title" => $reserve["title"] . " ", "description" => $whatsnew_description, "action_name" => "reservation_view_main_init", "parameters" => "reserve_details_id=" . $reserve["reserve_details_id"] . "&block_id=" . $block_id . "#_" . $block_id); $actionChain =& $this->_container->getComponent("ActionChain"); $actionName = $actionChain->getCurActionName(); if ($actionName == "reservation_action_main_reserve_modify") { $whatsnew["insert_time"] = $reserve["insert_time"]; $whatsnew["insert_user_id"] = $reserve["insert_user_id"]; $whatsnew["insert_user_name"] = $reserve["insert_user_name"]; } if ($reserve["room_id"] == 0 && $location["allroom_flag"] == _OFF) { if ($location["use_private_flag"] == _ON) { $whatsnew["user_id"] = $user_id; $whatsnew["authority_id"] = _AUTH_ADMIN; $result = $whatsnewAction->insert($whatsnew, _ON); if ($result === false) { return false; } } $whatsnew["authority_id"] = _AUTH_GUEST; $select_rooms = $this->_reservationView->getLocationRoom($location["location_id"]); if (empty($select_rooms)) { $select_rooms = array(); } $whatsnew["user_id"] = 0; $whatsnew["room_id"] = $select_rooms; } $result = $whatsnewAction->insert($whatsnew, _ON); if ($result === false) { return false; } //--新着情報関連 End-- return true; }
/** * 提出データを登録処理 * * @return boolean true or false * @access public */ function submitReport($update = false) { $submit_id = $this->_request->getParameter("submit_id"); if (empty($submit_id)) { $params = array("assignment_id" => $this->_request->getParameter("assignment_id"), "user_id" => $this->_session->getParameter("_user_id")); $sql = "SELECT submit_id" . " FROM {assignment_submitter}" . " WHERE assignment_id = ?" . " AND insert_user_id = ?"; $submit_ids = $this->_db->execute($sql, $params); if ($submit_ids === false) { $this->_db->addError(); return false; } if (!empty($submit_ids)) { $submit_id = $submit_ids[0]["submit_id"]; } } $submitterInsert = false; $temporary = intval($this->_request->getParameter("temporary")); $update_time = timezone_date(); if (empty($submit_id)) { $params = array("assignment_id" => $this->_request->getParameter("assignment_id"), "submit_flag" => $temporary == _ON ? ASSIGNMENT_SUBMIT_FLAG_YET_REREASED : ASSIGNMENT_SUBMIT_FLAG_SUBMITTED, "grade_value" => "", "insert_time" => $update_time, "update_time" => $update_time); $result = $this->_db->insertExecute("assignment_submitter", $params, true, "submit_id"); if (!$result) { return false; } $submit_id = $result; $submitterInsert = true; } else { $params = array("submit_id" => $submit_id, "grade_value" => ""); if ($temporary != _ON) { $params["submit_flag"] = ASSIGNMENT_SUBMIT_FLAG_SUBMITTED; $params["update_time"] = $update_time; } $result = $this->_db->updateExecute("assignment_submitter", $params, "submit_id", false); if (!$result) { return false; } } if (!$update) { $params = array("assignment_id" => $this->_request->getParameter("assignment_id"), "body" => $this->_request->getParameter("report_body")); $result = $this->_db->insertExecute("assignment_body", $params, true, "body_id"); if (!$result) { return false; } $body_id = $result; $params = array("assignment_id" => $this->_request->getParameter("assignment_id"), "submit_id" => $submit_id, "body_id" => $body_id, "status" => $temporary == _ON ? ASSIGNMENT_STATUS_BEFORE_REREASED : ASSIGNMENT_STATUS_REREASED, "insert_time" => $update_time, "update_time" => $update_time); $result = $this->_db->insertExecute("assignment_report", $params, true, "report_id"); $status = $params["status"]; if (!$result) { return false; } $report_id = $result; $this->_request->setParameter("report_id", $report_id); $params = array("report_id" => $report_id, "body_id" => $body_id); $result = $this->_db->updateExecute("assignment_body", $params, "body_id", true); $insertFlag = true; } else { $report = $this->_request->getParameter("report"); $body_id = $report["body_id"]; $params = array("body_id" => $body_id, "body" => $this->_request->getParameter("report_body")); $result = $this->_db->updateExecute("assignment_body", $params, "body_id", true); if (!$result) { return false; } $report_id = $this->_request->getParameter("report_id"); $params = array("report_id" => $report["report_id"], "status" => $temporary == _ON ? ASSIGNMENT_STATUS_TEMPORARY : ASSIGNMENT_STATUS_REREASED, "update_time" => $update_time); if ($report["status"] == ASSIGNMENT_STATUS_BEFORE_REREASED && $temporary == _ON) { $params["status"] = ASSIGNMENT_STATUS_BEFORE_REREASED; } if ($report["status"] == ASSIGNMENT_STATUS_BEFORE_REREASED && $temporary == _OFF) { $params["insert_time"] = $update_time; } $result = $this->_db->updateExecute("assignment_report", $params, "report_id", true); $status = $params["status"]; $insertFlag = false; if (!$submitterInsert && $temporary != _ON) { $params = array("submit_id" => $submit_id, "update_time" => $update_time); $result = $this->_db->updateExecute("assignment_submitter", $params, "submit_id", true); } } if (!$result) { return false; } $assignment = $this->_request->getParameter("assignment"); if ($assignment["mail_send"] == _ON && $status == ASSIGNMENT_STATUS_REREASED && ($insertFlag || $report["status"] == ASSIGNMENT_STATUS_BEFORE_REREASED)) { $this->_session->setParameter("assignment_mail_report_id", $report_id); } return true; }
/** * 新着情報の変更 * * @access public */ function update(&$whatsnew, $noblock = 0) { $module_whatsnew =& $this->_modulesView->getModuleByDirname("whatsnew"); if (!$module_whatsnew) { return true; } $site_id = $this->_session->getParameter("_site_id"); $user_id = $this->_session->getParameter("_user_id"); $user_name = $this->_session->getParameter("_handle"); if (!isset($user_name)) { $user_name = ""; } if (!isset($whatsnew["update_user_id"])) { $whatsnew["update_user_id"] = $user_id; } if (!isset($whatsnew["update_user_name"])) { $whatsnew["update_user_name"] = $user_name; } $default = array_merge(array(), $whatsnew); $result = $this->_default($default, $noblock); if ($result === false) { return false; } $params = array(); $params["room_id"] = 0; if (!empty($whatsnew["module_id"])) { $params["module_id"] = $whatsnew["module_id"]; } if (!empty($whatsnew["user_id"])) { $params["user_id"] = $whatsnew["user_id"]; } if (!empty($whatsnew["authority_id"])) { $params["authority_id"] = $whatsnew["authority_id"]; } if (isset($whatsnew["title"])) { if (!empty($whatsnew["title"])) { $params["title"] = $default["title"]; } elseif (!empty($whatsnew["description"])) { $params["title"] = mb_substr($default["description"], 0, _SEARCH_SUBJECT_LEN, INTERNAL_CODE); } else { $params["title"] = _SEARCH_SUBJECT_NONEXISTS; } } if (isset($whatsnew["description"])) { $params["description"] = $default["description"]; } if (isset($whatsnew["action_name"])) { $params["action_name"] = $default["action_name"]; } if (isset($whatsnew["parameters"])) { $params["parameters"] = $default["parameters"]; } if (isset($whatsnew["count_num"])) { $params["count_num"] = $whatsnew["count_num"]; } if (isset($whatsnew["insert_time"])) { $params["insert_time"] = $whatsnew["insert_time"]; } if (isset($whatsnew["insert_user_id"])) { $params["insert_user_id"] = $whatsnew["insert_user_id"]; } if (isset($whatsnew["insert_user_name"])) { $params["insert_user_name"] = $whatsnew["insert_user_name"]; } if (isset($default["child_update_time"])) { $params["child_update_time"] = $default["child_update_time"]; } $params["update_time"] = $default["update_time"]; $params["update_site_id"] = $site_id; $params["update_user_id"] = $default["update_user_id"]; $params["update_user_name"] = $default["update_user_name"]; if (isset($whatsnew["room_id"]) && is_array($whatsnew["room_id"])) { foreach ($whatsnew["room_id"] as $i => $room_id) { $params["room_id"] = $room_id; $result = $this->_db->updateExecute("whatsnew", $params, array("module_id" => $this->_request->getParameter("module_id"), "unique_id" => $whatsnew["unique_id"])); if ($result === false) { return false; } } } else { if (!isset($whatsnew["room_id"])) { $whatsnew["room_id"] = $this->_request->getParameter("room_id"); } $params["room_id"] = $whatsnew["room_id"]; $result = $this->_db->updateExecute("whatsnew", $params, array("module_id" => $this->_request->getParameter("module_id"), "unique_id" => $whatsnew["unique_id"])); if ($result === false) { return false; } } return $this->_deletePeriod($this->_request->getParameter("module_id"), $whatsnew["room_id"]); }