Esempio n. 1
0
 /**
  * 入力内容をデータベースに登録する.
  *
  * @param  array                $arrParams フォームパラメーターの配列
  * @param  PageLayoutHelper $objLayout PageLayoutHelper インスタンス
  * @return integer              ページID
  */
 public function registerPage($arrParams, &$objLayout)
 {
     $objQuery = Application::alias('eccube.query');
     // ページIDが空の場合は新規登録
     $is_new = Utils::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 || Utils::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'];
 }