/** * ページデータを取得する. * * @param integer $device_type_id 端末種別ID * @param integer $page_id ページID * @param SC_Helper_PageLayout $objLayout SC_Helper_PageLayout インスタンス * @return array ページデータの配列 */ function getTplMainpage($device_type_id, $page_id, &$objLayout) { $arrPageData = $objLayout->getPageProperties($device_type_id, $page_id); $objBlob = new SC_Helper_Blob_Ex(); $containerName = $objBlob->getTemplateContainerName($device_type_id); $templatePath = $objLayout->getTemplatePath($device_type_id); $filename = $templatePath . $arrPageData[0]['filename'] . ".tpl"; if ($objBlob->blobExists($containerName, $arrPageData[0]['filename'] . ".tpl")) { $arrPageData[0]['tpl_data'] = $objBlob->getBlobData($containerName, $arrPageData[0]['filename'] . ".tpl"); } // ファイル名を画面表示用に加工しておく $arrPageData[0]['filename'] = preg_replace('|^' . preg_quote(USER_DIR) . '|', '', $arrPageData[0]['filename']); return $arrPageData[0]; }
public function getPageProperties($device_type_id = DEVICE_TYPE_PC, $page_id = null, $where = '', $arrParams = array()) { if (ADMIN_MODE) { // 管理モードの場合は通常表示 } else { // 管理モードの場合は不要な項目を非表示 if (is_null($where) || strlen($where) == 0) { $where = "status = 1"; } else { $where = "status = 1 AND {$where}"; } } return SC_Helper_PageLayout::getPageProperties($device_type_id, $page_id, $where, $arrParams); }
/** * プレビューするデータを DB に保存する. * * @param integer $page_id プレビューを行うページID * @param SC_Helper_PageLayout $objLayout SC_Helper_PageLayout インスタンス * @return string プレビューを行う tpl_mainpage ファイル名 */ function savePreviewData($page_id, &$objLayout) { $arrPageData = $objLayout->getPageProperties(DEVICE_TYPE_PC, $page_id); $objQuery =& SC_Query_Ex::getSingletonInstance(); $arrPageData[0]['page_id'] = 0; $objQuery->update('dtb_pagelayout', $arrPageData[0], 'page_id = 0 AND device_type_id = ?', array(DEVICE_TYPE_PC)); return $arrPageData[0]['filename']; }
/** * 入力内容をデータベースに登録する. * * @param array $arrParams フォームパラメーターの配列 * @param SC_Helper_PageLayout $objLayout SC_Helper_PageLayout インスタンス * @return integer ページID */ function registerPage($arrParams, &$objLayout) { $objQuery =& SC_Query_Ex::getSingletonInstance(); // ページIDが空の場合は新規登録 $is_new = SC_Utils_Ex::isBlank($arrParams['page_id']); // 既存ページの存在チェック if (!$is_new) { $arrExists = $objLayout->getPageProperties($arrParams['device_type_id'], $arrParams['page_id']); } $table = 'dtb_pagelayout'; $arrValues = $objQuery->extractOnlyColsOf($table, $arrParams); $arrValues['update_url'] = $_SERVER['HTTP_REFERER']; $arrValues['update_date'] = 'CURRENT_TIMESTAMP'; // 新規登録 if ($is_new || SC_Utils_Ex::isBlank($arrExists)) { $objQuery->setOrder(''); $arrValues['page_id'] = 1 + $objQuery->max('page_id', $table, 'device_type_id = ?', array($arrValues['device_type_id'])); $arrValues['create_date'] = 'CURRENT_TIMESTAMP'; $objQuery->insert($table, $arrValues); } else { // 編集不可ページは更新しない if (!$objLayout->isEditablePage($arrValues['device_type_id'], $arrValues['page_id'])) { unset($arrValues['page_name']); unset($arrValues['filename']); unset($arrValues['url']); } $objQuery->update($table, $arrValues, 'page_id = ? AND device_type_id = ?', array($arrValues['page_id'], $arrValues['device_type_id'])); } return $arrValues['page_id']; }