Exemplo n.º 1
0
 /**
  * ルームIDの日誌件数を取得する
  *
  * @return string	日誌件数
  * @access	public
  */
 function getJournalCount()
 {
     $request =& $this->_container->getComponent("Request");
     $params["room_id"] = $request->getParameter("room_id");
     $count = $this->_db->countExecute("journal", $params);
     return $count;
 }
Exemplo n.º 2
0
 /**
  * キャビネット用ブロックデータを登録する
  *
  * @return boolean	true or false
  * @access	public
  */
 function setBlock()
 {
     $block_id = $this->_request->getParameter("block_id");
     $actionChain =& $this->_container->getComponent("ActionChain");
     $actionName = $actionChain->getCurActionName();
     $count = $this->_db->countExecute("cabinet_block", array("block_id" => $block_id));
     $params = array("block_id" => $block_id, "cabinet_id" => $this->_request->getParameter("cabinet_id"));
     if ($count == 0) {
         $default = $this->_cabinetView->getDefaultBlock(true);
         $params = array_merge($params, $default);
     }
     if ($actionName == "cabinet_action_edit_style") {
         $params["disp_standard_btn"] = _ON;
         $params["disp_address"] = intval($this->_request->getParameter("disp_address"));
         $params["disp_folder"] = intval($this->_request->getParameter("disp_folder"));
         $params["disp_size"] = intval($this->_request->getParameter("disp_size"));
         $params["disp_download_num"] = intval($this->_request->getParameter("disp_download_num"));
         $params["disp_comment"] = intval($this->_request->getParameter("disp_comment"));
         $params["disp_insert_user"] = intval($this->_request->getParameter("disp_insert_user"));
         $params["disp_insert_date"] = intval($this->_request->getParameter("disp_insert_date"));
         $params["disp_update_user"] = intval($this->_request->getParameter("disp_update_user"));
         $params["disp_update_date"] = intval($this->_request->getParameter("disp_update_date"));
     }
     if ($count > 0) {
         $result = $this->_db->updateExecute("cabinet_block", $params, "block_id", true);
     } else {
         $result = $this->_db->insertExecute("cabinet_block", $params, true);
     }
     if (!$result) {
         return false;
     }
     return true;
 }
Exemplo n.º 3
0
 /**
  * 集計データを変更する
  *
  * @param	string	$summaryID	集計ID
  * @return boolean	true or false
  * @access	public
  */
 function updateSummary($summaryID)
 {
     $params = array($summaryID);
     $updateParams["summary_id"] = $summaryID;
     $sql = "SELECT insert_time " . "FROM {questionnaire_answer} " . "WHERE summary_id = ? " . "ORDER BY answer_id DESC";
     $insertTimes = $this->_db->execute($sql, $params, 1, null, false);
     if ($insertTimes === false) {
         $this->_db->addError();
         return false;
     }
     $updateParams["answer_time"] = $insertTimes[0][0];
     $sql = "SELECT MIN(questionnaire_id), COUNT(answer_id) " . "FROM {questionnaire_answer} " . "WHERE summary_id = ?";
     $answers = $this->_db->execute($sql, $params, 1, null, false);
     if ($answers === false) {
         $this->_db->addError();
         return false;
     }
     list($questionnaireID, $answerCount) = $answers[0];
     $params = array("questionnaire_id" => $questionnaireID);
     $questionCount = $this->_db->countExecute("questionnaire_question", $params);
     $updateParams["answer_flag"] = QUESTIONNAIRE_ANSWER_DONE_VALUE;
     if ($answerCount < $questionCount) {
         $updateParams["answer_flag"] = QUESTIONNAIRE_ANSWER_NONE_VALUE;
     }
     if (!$this->_db->updateExecute("questionnaire_summary", $updateParams, "summary_id", true)) {
         return false;
     }
     return true;
 }
Exemplo n.º 4
0
 /**
  * 新着情報にセットする(コメント)
  *
  * @return bool
  * @access	public
  */
 function setCommentWhatsnew($comment_id)
 {
     $params = array("post_id" => $comment_id);
     $comment = $this->_db->selectExecute("journal_post", $params);
     if (empty($comment)) {
         return false;
     }
     $whatsnewAction =& $this->_container->getComponent("whatsnewAction");
     $count = $this->_db->countExecute("journal_post", array("parent_id" => $comment[0]['parent_id'], "direction_flag != " . JOURNAL_TRACKBACK_TRANSMIT => null));
     if ($count === false) {
         return false;
     }
     if ($comment[0]["agree_flag"] == JOURNAL_STATUS_AGREE_VALUE) {
         $journal_post = $this->_db->selectExecute("journal_post", array("post_id" => $comment[0]['parent_id']));
         if ($journal_post === false && !isset($journal_post[0])) {
             return false;
         }
         $time = timezone_date();
         if (intval($time) < intval($journal_post[0]['journal_date'])) {
             // 未来ならば、日誌の記事の時間をセット
             $time = $journal_post[0]['journal_date'];
         }
         $whatsnew = array("unique_id" => $comment[0]['parent_id'], "title" => $journal_post[0]['title'], "description" => $journal_post[0]['content'], "action_name" => "journal_view_main_detail", "parameters" => "post_id=" . $comment[0]['parent_id'] . "&comment_flag=1", "count_num" => $count, "child_flag" => _ON, "child_update_time" => $time, "insert_time" => $journal_post[0]['journal_date'], "insert_user_id" => $journal_post[0]['insert_user_id'], "insert_user_name" => $journal_post[0]['insert_user_name']);
         $result = $whatsnewAction->auto($whatsnew);
         if ($result === false) {
             return false;
         }
     } else {
         if ($count == 0) {
             $result = $whatsnewAction->delete($comment[0]['parent_id'], _ON);
         }
     }
     return true;
 }
Exemplo n.º 5
0
 /**
  * 項目データを登録する
  *
  * @return boolean	true or false
  * @access	public
  */
 function setItem()
 {
     $itemID = $this->_request->getParameter("item_id");
     if (empty($itemID)) {
         $params = array("registration_id" => $this->_request->getParameter("registration_id"));
         $count = $this->_db->countExecute("registration_item", $params);
         $params["item_sequence"] = $count + 1;
     }
     $params["item_name"] = $this->_request->getParameter("item_name");
     $params["item_type"] = intval($this->_request->getParameter("item_type"));
     $params["option_value"] = $this->_request->getParameter("option_value");
     $params["require_flag"] = intval($this->_request->getParameter("require_flag"));
     $params["list_flag"] = intval($this->_request->getParameter("list_flag"));
     $params["sort_flag"] = intval($this->_request->getParameter("sort_flag"));
     $params["description"] = $this->_request->getParameter("description");
     $itemID = $this->_request->getParameter("item_id");
     if (empty($itemID)) {
         $result = $this->_db->insertExecute("registration_item", $params, true, "item_id");
     } else {
         $params["item_id"] = $itemID;
         $result = $this->_db->updateExecute("registration_item", $params, "item_id", true);
     }
     if (!$result) {
         return false;
     }
     return true;
 }
Exemplo n.º 6
0
 /**
  * タグ設定操作
  *
  * @return boolean	true or false
  * @access	public
  */
 function applyTag($tagOperation, $tagID)
 {
     $receiver_id = $this->_request->getParameter("receiver_id");
     if (!is_array($receiver_id)) {
         $receivers = explode(" ", $receiver_id);
     } else {
         $receivers = $receiver_id;
     }
     if (!is_array($receivers)) {
         return false;
     }
     foreach ($receivers as $receiver_id) {
         if ($tagOperation == PM_ACTION_ADDTAG) {
             // タグを付ける
             $params = array("tag_id" => intval($tagID), "receiver_id" => intval($receiver_id));
             $count = $this->_db->countExecute("pm_message_tag_link", $params);
             if ($count == 0) {
                 // タグを付ける
                 $params["message_id"] = $this->_pmView->getMessageID($receiver_id);
                 $result = $this->_db->insertExecute("pm_message_tag_link", $params);
                 if (!$result) {
                     return false;
                 }
             }
         } elseif ($tagOperation == PM_ACTION_REMOVETAG) {
             // タグをはずす
             $params = array("tag_id" => intval($tagID), "receiver_id" => intval($receiver_id));
             $result = $this->_db->deleteExecute("pm_message_tag_link", $params);
             if (!$result) {
                 return false;
             }
         }
     }
     return true;
 }
Exemplo n.º 7
0
 /**
  * 集計データを変更する
  *
  * @param	string	$summaryID	集計ID
  * @return boolean	true or false
  * @access	public
  */
 function updateSummary($summaryID)
 {
     $params = array($summaryID);
     $updateParams["summary_id"] = $summaryID;
     $sql = "SELECT insert_time " . "FROM {quiz_answer} " . "WHERE summary_id = ? " . "ORDER BY answer_id DESC";
     $insertTimes = $this->_db->execute($sql, $params, 1, null, false);
     if ($insertTimes === false) {
         $this->_db->addError();
         return $insertTimes;
     }
     $updateParams["answer_time"] = $insertTimes[0][0];
     $sql = "SELECT MIN(quiz_id), COUNT(answer_id), MIN(answer_flag), SUM(score) " . "FROM {quiz_answer} " . "WHERE summary_id = ?";
     $answers = $this->_db->execute($sql, $params, 1, null, false);
     if ($answers === false) {
         $this->_db->addError();
         return $answers;
     }
     list($quizID, $answerCount, $answerFlag, $updateParams["summary_score"]) = $answers[0];
     $params = array("quiz_id" => $quizID);
     $questionCount = $this->_db->countExecute("quiz_question", $params);
     $updateParams["answer_flag"] = QUIZ_ANSWER_NOT_MARK_VALUE;
     if ($answerCount < $questionCount) {
         $updateParams["answer_flag"] = QUIZ_ANSWER_NONE_VALUE;
     } elseif ($answerFlag > QUIZ_ANSWER_SCORED_VALUE) {
         $updateParams["answer_flag"] = QUIZ_ANSWER_SCORED_VALUE;
     }
     if (!$this->_db->updateExecute("quiz_summary", $updateParams, "summary_id", true)) {
         return false;
     }
     return true;
 }
Exemplo n.º 8
0
 /**
  * レポートデータ削除処理
  *
  * @return boolean
  * @access public
  */
 function deleteReport()
 {
     $params = array("report_id" => $this->_request->getParameter("report_id"));
     $result = $this->_db->deleteExecute("assignment_report", $params);
     if ($result === false) {
         return false;
     }
     $result = $this->_db->deleteExecute("assignment_body", $params);
     if ($result === false) {
         return false;
     }
     $result = $this->_db->deleteExecute("assignment_comment", $params);
     if ($result === false) {
         return false;
     }
     $params = array("submit_id" => $this->_request->getParameter("submit_id"));
     $count = $this->_db->countExecute("assignment_report", $params);
     if ($count <= 0) {
         $result = $this->_db->deleteExecute("assignment_submitter", $params);
         if ($result === false) {
             return false;
         }
         $this->_request->setParameter("submit_id", null);
     }
     $this->_request->setParameter("report_id", null);
     return true;
 }
Exemplo n.º 9
0
 /**
  * 時間枠数取得
  *
  * @access	public
  */
 function getTimeframesCount()
 {
     $result = $this->_db->countExecute('reservation_timeframe');
     if ($result === false) {
         $this->_db->addError();
         return false;
     }
     return $result;
 }
Exemplo n.º 10
0
 /**
  * タスク件数を取得する
  *
  * @return array	タスク件数
  * @access	public
  */
 function &getTaskCount()
 {
     $params = array("todo_id" => $this->_request->getParameter("todo_id"));
     $targetState = $this->_request->getParameter("target_state");
     if (isset($targetState) || $this->_mobile_flag == _ON) {
         $params["state"] = intval($targetState);
     }
     $count = $this->_db->countExecute("todo_task", $params);
     return $count;
 }
Exemplo n.º 11
0
 /**
  * フォルダが空かどうかするか判断する
  *
  * @param	string	$folde_id	フォルダID
  * @return boolean	true:存在する、false:存在しない
  * @access	public
  */
 function childExists($folde_id)
 {
     $params["room_id"] = $this->_request->getParameter("room_id");
     $params["cabinet_id"] = $this->_request->getParameter("cabinet_id");
     $params["parent_id"] = $folde_id;
     $count = $this->_db->countExecute("cabinet_file", $params);
     if ($count > 0) {
         return true;
     }
     return false;
 }
Exemplo n.º 12
0
 /**
  * ブロックIDからチャットテキストデータ取得
  * @param int block_id,chat_id
  * @access	public
  */
 function &getChatText($block_id, $line_num, $chat_id = "")
 {
     $params = array("block_id" => $block_id);
     $sql = "SELECT * " . "FROM {chat_contents} " . "WHERE {chat_contents}.block_id=?";
     if ($chat_id) {
         $now_chat_id = $this->_db->countExecute("chat_contents", $params);
         if ($now_chat_id < $chat_id) {
             $chat_arr = array("chat_id" => 0);
         } else {
             $chat_arr = array("chat_id" => $chat_id);
         }
         $params = array_merge($params, $chat_arr);
         $sql .= " AND {chat_contents}.chat_id>?";
     }
     $sql .= " ORDER BY {chat_contents}.chat_id DESC";
     if (!$chat_id && $line_num) {
         $sql .= " LIMIT " . $line_num;
     }
     $result = $this->_db->execute($sql, $params);
     return $result;
 }
Exemplo n.º 13
0
 function addTag($ids = array(), $parameter = '', $options = array())
 {
     $pmView =& $this->_container->getComponent("pmView");
     if (is_array($ids)) {
         foreach ($ids as $id) {
             $tag_id = intval($parameter);
             $receiver_id = intval($id);
             if ($tag_id > 0) {
                 $params = array("tag_id" => $tag_id, "receiver_id" => $receiver_id);
                 $count = $this->_db->countExecute("pm_message_tag_link", $params);
                 if ($count == 0) {
                     $params["message_id"] = $pmView->getMessageID($receiver_id);
                     if (!$this->_db->insertExecute("pm_message_tag_link", $params)) {
                         return false;
                     }
                 }
             }
         }
     }
     return true;
 }
Exemplo n.º 14
0
 /**
  * 既読にする
  *
  * @access	public
  */
 function setRead()
 {
     $_user_id = $this->_session->getParameter("_user_id");
     if (empty($_user_id)) {
         return true;
     }
     $whatsnew = $this->_request->getParameter("whatsnew");
     if (empty($whatsnew)) {
         return false;
     }
     $params = array("whatsnew_id" => $whatsnew["whatsnew_id"], "user_id" => $_user_id, 'room_id' => $whatsnew['room_id']);
     $count = $this->_db->countExecute("whatsnew_user", $params);
     if ($count > 0) {
         return true;
     }
     $result = $this->_db->insertExecute("whatsnew_user", $params, false);
     if (!$result) {
         return false;
     }
     return true;
 }
Exemplo n.º 15
0
 /**
  * 質問用デフォルトデータを取得する
  *
  * @return array	質問用デフォルトデータ配列
  * @access	public
  */
 function &getDefaultQuestion()
 {
     $config = $this->getConfig();
     if ($config === false) {
         return $config;
     }
     $question = array("questionnaire_id" => $this->_request->getParameter("questionnaire_id"), "question_type" => constant($config["question_type"]["conf_value"]), "require_flag" => constant($config["require_flag"]["conf_value"]));
     $choiceCount = $config["choice_count"]["conf_value"];
     $choiceLabel = $config["choice_label"]["conf_value"];
     $graphColor = $config["graph_color"]["conf_value"];
     $question["choices"] = $this->getDefaultChoiceLists($choiceCount, $choiceLabel, $graphColor);
     $params = array("questionnaire_id" => $this->_request->getParameter("questionnaire_id"));
     $question["question_sequence"] = $this->_db->countExecute("questionnaire_question", $params);
     if ($question["question_sequence"] === false) {
         return $question["question_sequence"];
     }
     $question["question_sequence"]++;
     return $question;
 }
Exemplo n.º 16
0
 /**
  * 新着情報の更新
  *
  * @access	public
  */
 function setWhatsnew($plan_params)
 {
     $actionChain =& $this->_container->getComponent("ActionChain");
     $actionName = $actionChain->getCurActionName();
     //--新着情報関連 Start--
     $whatsnewAction =& $this->_container->getComponent("whatsnewAction");
     $result = true;
     if ($actionName == "calendar_action_main_plan_add" || $actionName == "calendar_action_main_plan_modify") {
         $description = "";
         if ($plan_params["location"] != "") {
             $description .= sprintf(CALENDAR_LOCATION, $plan_params["location"]);
         }
         if ($plan_params["contact"] != "") {
             $description .= sprintf(CALENDAR_CONTACT, $plan_params["contact"]);
         }
         if ($plan_params["description"] != "") {
             $description .= sprintf(CALENDAR_DESCRIPTION, $plan_params["description"]);
         }
         if (!empty($plan_params["rrule"])) {
             $rrule_str = $this->_calendarView->stringRRule($plan_params["rrule"]);
             $description .= sprintf(CALENDAR_RRULE, $rrule_str);
         }
         $block_id = $this->_calendarView->getBlockIdByWhatsnew();
         $whatsnew = array("room_id" => $plan_params["room_id"], "unique_id" => $plan_params["plan_id"], "title" => $plan_params["title"], "description" => $description, "action_name" => "calendar_view_main_init", "parameters" => "plan_id=" . $plan_params["plan_id"] . "&block_id=" . $block_id . "#_" . $block_id);
         if ($actionName == "calendar_action_main_plan_modify") {
             $plan = $this->_db->selectExecute("calendar_plan", array("plan_id" => $plan_params["plan_id"]));
             $whatsnew["insert_time"] = $plan[0]["insert_time"];
             $whatsnew["insert_user_id"] = $plan[0]["insert_user_id"];
             $whatsnew["insert_user_name"] = $plan[0]["insert_user_name"];
         }
         $result = $whatsnewAction->auto($whatsnew, _ON);
     } elseif ($actionName == "calendar_action_main_plan_delete" || "calendar_action_edit_ical_import") {
         $params = array("plan_id" => $plan_params["plan_id"]);
         $count = $this->_db->countExecute("calendar_plan", $params);
         if ($count == 0) {
             $result = $whatsnewAction->delete($plan_params["plan_id"]);
         }
     }
     return $result;
     //--新着情報関連 End--
 }
Exemplo n.º 17
0
 /**
  * 表示できないページID配列を取得する
  *
  * @return array 表示されないページのIDの配列
  * @access private
  */
 function getInvisiblePageIds($display_type, $each_room, $roomIds)
 {
     $request =& $this->_container->getComponent('Request');
     // もしもmobile_menu_detailにて非表示メニューが選ばれているなら、そちらを優先
     if ($this->_db->countExecute("mobile_menu_detail") > 0) {
         $sql = "SELECT page_id FROM {mobile_menu_detail} ";
         $invisiblePageIds = $this->_db->execute($sql, null, null, null, true, array($this, '_fetchInvisiblePage'));
     } else {
         $params = array('module_id' => $request->getParameter('module_id'));
         $menuCount = $this->_db->countExecute('blocks', $params);
         if ($each_room == _ON) {
             $roomIds = array($request->getParameter('room_id'));
         }
         $params = array(_OFF);
         $sql = "SELECT page_id, COUNT(block_id) AS pageCount " . "FROM {menu_detail} " . "WHERE room_id in (" . implode(",", $roomIds) . " )" . "AND visibility_flag = ? " . "GROUP BY page_id";
         $invisiblePageIds = $this->_db->execute($sql, $params, null, null, true, array($this, '_fetchInvisiblePage'), $menuCount);
     }
     if ($invisiblePageIds === false) {
         $this->_db->addError();
     }
     return $invisiblePageIds;
 }
Exemplo n.º 18
0
 /**
  * 入力データ件数を取得する
  *
  * @return string	項目件数
  * @access	public
  */
 function getDataCount()
 {
     $params["registration_id"] = $this->_request->getParameter("registration_id");
     $count = $this->_db->countExecute("registration_data", $params);
     return $count;
 }
Exemplo n.º 19
0
 /**
  * fetch時コールバックメソッド
  * @param result adodb object
  * @return array
  * @access	private
  */
 function &_getMDBDetailFetchcallback($result)
 {
     $session =& $this->_container->getComponent("Session");
     $request =& $this->_container->getComponent("Request");
     $metadatas = $request->getParameter("metadatas");
     $data = array();
     while ($row = $result->fetchRow()) {
         $layout = array();
         $items = array();
         foreach ($metadatas as $metadata) {
             if ($metadata['detail_flag'] == _ON) {
                 $layout[$metadata['display_pos']][$metadata['metadata_id']] = $metadata;
             }
             if ($metadata['type'] == MULTIDATABASE_META_TYPE_IMAGE || $metadata['type'] == MULTIDATABASE_META_TYPE_FILE) {
                 $items[$metadata['metadata_id']] = $this->getFileLink($row['content' . $metadata['metadata_id']], $row['file_name' . $metadata['metadata_id']], $row['physical_file_name' . $metadata['metadata_id']], $metadata, null, $row['insert_user_id'], $row['file_password' . $metadata['metadata_id']]);
                 unset($row['file_name' . $metadata['metadata_id']]);
                 unset($row['physical_file_name' . $metadata['metadata_id']]);
             } elseif ($metadata['type'] == MULTIDATABASE_META_TYPE_MULTIPLE) {
                 $itemArr = explode("|", $row['content' . $metadata['metadata_id']]);
                 $multiple = array();
                 foreach ($itemArr as $val) {
                     $multiple[] = $val;
                 }
                 $items[$metadata['metadata_id']] = $multiple;
             } else {
                 $items[$metadata['metadata_id']] = $row['content' . $metadata['metadata_id']];
             }
             unset($row['content' . $metadata['metadata_id']]);
         }
         $voted = false;
         $comment_count = 0;
         $comments = "";
         foreach ($row as $key => $val) {
             $items[$key] = $val;
         }
         $items['has_edit_auth'] = $this->_hasEditAuthority($items['insert_user_id']);
         $items['has_confirm_auth'] = $this->_hasConfirmAuthority();
         $comment_count = $this->_db->countExecute("multidatabase_comment", array("content_id" => $items['content_id']));
         $order_params = array("insert_time" => "ASC");
         $comments = $this->_db->selectExecute("multidatabase_comment", array("content_id" => $items['content_id']), $order_params);
         if ($comments === false) {
             return 'error';
         }
         foreach ($comments as $key => $val) {
             $edit_auth = $this->_hasEditAuthority($val['insert_user_id']);
             $comments[$key]['edit_auth'] = $edit_auth;
         }
         $items['comment_count'] = $comment_count;
         $items['comments'] = $comments;
         if ($items['vote'] != "") {
             $who_voted = explode(",", $items['vote']);
             $user_id = $session->getParameter("_user_id");
             if (empty($user_id)) {
                 $votes = $session->getParameter("multidatabase_votes");
                 if (!empty($votes)) {
                     if (in_array($items['content_id'], $votes)) {
                         $voted = true;
                     }
                 }
             } else {
                 if (in_array($user_id, $who_voted)) {
                     $voted = true;
                 }
             }
         }
         $items['voted'] = $voted;
         $data['metadata'] = $layout;
         $data['value'] = $items;
     }
     return $data;
 }
Exemplo n.º 20
0
 /**
  * ルームIDの掲示板件数を取得する
  *
  * @return string	掲示板件数
  * @access	public
  */
 function getBbsCount()
 {
     $params["room_id"] = $this->_request->getParameter("room_id");
     $count = $this->_db->countExecute("bbs", $params);
     return $count;
 }
Exemplo n.º 21
0
 /**
  * ルームIDの課題件数を取得する
  *
  * @return string	課題件数
  * @access	public
  */
 function getAssignmentCount()
 {
     $params = array("room_id" => $this->_request->getParameter("room_id"));
     $count = $this->_db->countExecute("assignment", $params);
     return $count;
 }
Exemplo n.º 22
0
 /**
  * コメント件数を取得する
  *
  * @return string	フォトアルバム件数
  * @access	public
  */
 function getCommentCount()
 {
     $params["photo_id"] = $this->_request->getParameter("photo_id");
     $count = $this->_db->countExecute("photoalbum_comment", $params);
     return $count;
 }
Exemplo n.º 23
0
 /**
  * フィルタ編集権限判定
  *
  * @return boolean	true or false
  * @access	public
  */
 function checkFilterAuth()
 {
     $params = array("filter_id" => $this->_request->getParameter("filter_id"), "insert_user_id" => $this->_session->getParameter("_user_id"));
     $count = $this->_db->countExecute("pm_filter", $params);
     return $count;
 }
Exemplo n.º 24
0
 /**
  * リンク件数を取得する
  *
  * @return string	リンクリスト件数
  * @access	public
  */
 function getLinkCount()
 {
     $params["category_id"] = $this->_request->getParameter("category_id");
     $count = $this->_db->countExecute("linklist_link", $params);
     return $count;
 }
Exemplo n.º 25
0
 /**
  * アルバムデータを登録する
  *
  * @return boolean	true or false
  * @access	public
  */
 function setAlbum()
 {
     $albumID = $this->_request->getParameter("album_id");
     if (empty($albumID)) {
         $params = array("photoalbum_id" => $this->_request->getParameter("photoalbum_id"));
         $count = $this->_db->countExecute("photoalbum_album", $params);
         $albumSequence = $count + 1;
     } else {
         $params["album_id"] = $albumID;
         $modifier_album = $this->_db->selectExecute("photoalbum_album", $params);
         if (!isset($modifier_album[0])) {
             return false;
         }
     }
     $container =& DIContainerFactory::getContainer();
     $photoalbumView =& $container->getComponent("photoalbumView");
     $uploadID = intval($this->_request->getParameter("upload_id"));
     $albumJacket = $this->_request->getParameter("album_jacket");
     if (empty($uploadID)) {
         $imageSize = $photoalbumView->getImageSize($albumJacket);
     } else {
         $imageSize = $photoalbumView->getImageSize($uploadID);
     }
     $params = array("album_name" => $this->_request->getParameter("album_name"), "upload_id" => $uploadID, "album_jacket" => $albumJacket, "width" => $imageSize[0], "height" => $imageSize[1], "album_description" => $this->_request->getParameter("album_description"), "photo_new_period" => intval($this->_request->getParameter("photo_new_period")), "vote_flag" => intval($this->_request->getParameter("vote_flag")), "comment_flag" => intval($this->_request->getParameter("comment_flag")), "public_flag" => intval($this->_request->getParameter("public_flag")));
     $blockID = $this->_request->getParameter("block_id");
     if (empty($albumID)) {
         $container =& DIContainerFactory::getContainer();
         $session =& $container->getComponent("Session");
         $session->setParameter("photoalbum_album_sort" . $blockID, PHOTOALBUM_ALBUM_SORT_NEW);
         $session->removeParameter("photoalbum_page_number" . $blockID);
     }
     $insertFlag = false;
     if (empty($albumID)) {
         $params["photoalbum_id"] = $this->_request->getParameter("photoalbum_id");
         $params["photo_upload_time"] = timezone_date();
         $params["album_sequence"] = $albumSequence;
         $result = $this->_db->insertExecute("photoalbum_album", $params, true, "album_id");
         $albumID = $result;
         $insertFlag = true;
     } else {
         $params["album_id"] = $albumID;
         $result = $this->_db->updateExecute("photoalbum_album", $params, "album_id", true);
         //--新着情報関連 Start--
         // 非公開から公開した場合を考え、既に写真があった場合
         // 新着に登録
         // アルバム登録時は、写真が一枚もないので
         // 新着には登録しない
         $whatsnewAction =& $container->getComponent("whatsnewAction");
         if ($modifier_album[0]['photo_count'] != 0 && $modifier_album[0]['public_flag'] == _OFF && $params['public_flag'] == _ON) {
             $commonMain =& $container->getComponent("commonMain");
             $id = $commonMain->getTopId($blockID, $this->_request->getParameter("module_id"), "");
             $photoalbum_photo_params = array("album_id" => $albumID, "photoalbum_id" => $this->_request->getParameter("photoalbum_id"));
             $photoalbum_photo_order_params = array("insert_time" => "DESC");
             $photoalbum_photo = $this->_db->selectExecute("photoalbum_photo", $photoalbum_photo_params, null, 1);
             if (!isset($photoalbum_photo[0])) {
                 return false;
             }
             $whatsnew = array("unique_id" => $albumID, "title" => $params["album_name"], "description" => $params["album_description"], "action_name" => "photoalbum_view_main_init", "parameters" => "album_id=" . $albumID . "&block_id=" . $blockID . "#photoalbum_album" . $id . "_" . $albumID, "count_num" => $modifier_album[0]['photo_count'], "insert_time" => $photoalbum_photo[0]["insert_time"], "insert_user_id" => $photoalbum_photo[0]["insert_user_id"], "insert_user_name" => $photoalbum_photo[0]["insert_user_name"]);
             $result = $whatsnewAction->auto($whatsnew, _ON);
             if ($result === false) {
                 return false;
             }
         } else {
             if ($modifier_album[0]['photo_count'] != 0 && $modifier_album[0]['public_flag'] == _ON && $params['public_flag'] == _OFF) {
                 $result = $whatsnewAction->delete($albumID);
                 if ($result === false) {
                     return false;
                 }
             }
         }
         //--新着情報関連 End--
     }
     if (!$result) {
         return false;
     }
     return true;
 }
Exemplo n.º 26
0
 /**
  * abbreviate_urlへ登録処理
  *
  * @param string $dir_name
  * @param string $contents_id
  * @param string $unique_id
  * @param string $url
  * @param string $room_id
  *
  * @return boolean
  * @access  public
  */
 function setAbbreviateUrl($contents_id, $unique_id, $dir_name = null, $module_id = null, $room_id = null)
 {
     //dir_nameが省略されている場合、実行アクションから取得
     if (!isset($dir_name)) {
         $dir_name = $this->_abbreviateurlView->getDefaultUniqueKey();
     }
     //module_idが省略されている場合、module_nameから取得
     $dirnameArray = explode("_", $dir_name);
     $module_name = $dirnameArray[0];
     if (empty($module_id)) {
         $module_id = $this->_abbreviateurlView->getDefaultModuleId($module_name);
     }
     //URL短縮形の重複チェック
     $params = array('dir_name' => $dir_name, 'unique_id' => $unique_id);
     $abbreviate = $this->_db->selectExecute('abbreviate_url', $params, null, 1);
     if ($abbreviate === false) {
         return $abbreviate;
     }
     if (empty($abbreviate)) {
         //登録する短縮URLの重複チェック
         $prefix = count($dirnameArray) > 1 ? substr($dirnameArray[0], 0, 1) . substr($dirnameArray[1], 0, 1) : substr($dirnameArray[0], 0, 2);
         for ($length = _ABBREVIATE_URL_LENGTH; $length < 17; $length++) {
             for ($j = 0; $j < 50; $j++) {
                 $short_url = $this->_abbreviateurlView->randString($length, $prefix);
                 $params = array("short_url" => $short_url);
                 $countUrl = $this->_db->countExecute('abbreviate_url', $params);
                 if ($countUrl === false) {
                     return $countUrl;
                 }
                 if ($countUrl > 0) {
                     continue;
                 }
                 $params = array("permalink" => $short_url);
                 $countPage = $this->_db->countExecute('pages', $params);
                 if ($countPage === false) {
                     return $countPage;
                 }
                 if ($countPage > 0) {
                     continue;
                 }
                 break;
             }
             if ($countUrl == 0 && $countPage == 0) {
                 break;
             }
         }
         if ($countUrl > 0 || $countPage > 0) {
             $result = false;
             return $result;
         }
         //URL短縮形の登録
         $setParams = array('short_url' => $short_url, 'dir_name' => $dir_name, 'module_id' => $module_id, 'contents_id' => $contents_id, 'unique_id' => $unique_id);
         if (isset($room_id)) {
             $setParams['room_id'] = $room_id;
         }
         $result = $this->_db->insertExecute('abbreviate_url', $setParams, true);
         if ($result === false) {
             return $result;
         }
     }
     $result = true;
     return $result;
 }