/** * パラメーターの初期化. * * @param FormParam $objFormParam * @return void */ public function lfInitParam(&$objFormParam) { $objFormParam->addParam('ファイル', 'log', null, '', array()); $objFormParam->addParam('行数', 'line_max', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), 50); }
/** * エラーチェックを行う. * * @param FormParam $objFormParam FormParam インスタンス * @return array エラーメッセージの配列 */ public function lfCheckError(&$objFormParam, &$arrErr) { $arrParams = $objFormParam->getHashArray(); /* @var $objErr CheckError */ $objErr = Application::alias('eccube.check_error', $arrParams); $objErr->arrErr =& $arrErr; $objErr->doFunc(array('CSSファイル名', 'css_name', STEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK', 'FILE_NAME_CHECK_BY_NOUPLOAD')); $css_name = $objFormParam->getValue('css_name'); $old_css_name = $objFormParam->getValue('old_css_name'); $device_type_id = $objFormParam->getValue('device_type_id', DEVICE_TYPE_PC); $is_error = false; // 重複チェック if (Utils::isBlank($objErr->arrErr['css_name'])) { $arrCSSList = $this->getCSSList($this->getCSSDir($device_type_id)); foreach ($arrCSSList as $val) { if ($val['css_name'] == $css_name) { if (Utils::isBlank($old_css_name) || $old_css_name != $css_name) { $is_error = true; } } } if ($is_error) { $objErr->arrErr['css_name'] = '※ 同じファイル名のデータが存在しています。別の名称を付けてください。<br />'; } } return $objErr->arrErr; }
/** * 表示するファイルにエラーチェックを行う * * @param FormParam $objFormParam FormParam インスタンス * @return boolean $file_check_flg エラーチェックの結果 */ public function checkErrorDispFile($objFormParam) { $file_check_flg = false; // FIXME パスのチェック関数が必要 $file = $objFormParam->getValue('file'); $path_exists = Utils::checkFileExistsWithInBasePath($file, USER_REALDIR); if ($path_exists) { $file_check_flg = true; } return $file_check_flg; }
/** * 入力内容のチェック * @var FormParam * @param FormParam $objFormParam */ public function lfCheckError(&$objFormParam) { // 入力データを渡す。 $arrParams = $objFormParam->getHashArray(); $arrErr = $objFormParam->checkError(); /* @var $objErr CheckError */ $objError = Application::alias('eccube.check_error', $arrParams); $year = $objFormParam->getValue('year'); if (!is_numeric($year)) { $arrErr['year'] = '発行年は数値で入力してください。'; } $month = $objFormParam->getValue('month'); if (!is_numeric($month)) { $arrErr['month'] = '発行月は数値で入力してください。'; } elseif (0 >= $month && 12 < $month) { $arrErr['month'] = '発行月は1〜12の間で入力してください。'; } $day = $objFormParam->getValue('day'); if (!is_numeric($day)) { $arrErr['day'] = '発行日は数値で入力してください。'; } elseif (0 >= $day && 31 < $day) { $arrErr['day'] = '発行日は1〜31の間で入力してください。'; } $objError->doFunc(array('発行日', 'year', 'month', 'day'), array('CHECK_DATE')); $arrErr = array_merge($arrErr, $objError->arrErr); return $arrErr; }
/** * パラメーターの妥当性検証を行う. * * @param void * @param string|null $mode * @param FormParam $objFormParam * @return array エラー情報の連想配列 */ public function validateData(&$objFormParam, &$arrParams, $mode) { $arrErr = $objFormParam->checkError(); if (isset($arrErr) && count($arrErr) > 0) { return $arrErr; } // ログインID・パスワードの文字数チェック /* @var $objErr CheckError */ $objErr = Application::alias('eccube.check_error'); if ($mode == 'new') { $objErr->doFunc(array('パスワード', 'password', ID_MIN_LEN, ID_MAX_LEN), array('NUM_RANGE_CHECK')); $objErr->doFunc(array('ログインID', 'login_id', ID_MIN_LEN, ID_MAX_LEN), array('NUM_RANGE_CHECK')); } elseif ($mode == 'edit') { $objErr->doFunc(array('パスワード', 'password', ID_MIN_LEN, ID_MAX_LEN), array('SPTAB_CHECK', 'NUM_RANGE_CHECK')); $objErr->doFunc(array('ログインID', 'login_id', ID_MIN_LEN, ID_MAX_LEN), array('SPTAB_CHECK', 'NUM_RANGE_CHECK')); } $objErr->doFunc(array('パスワード', 'パスワード(確認)', 'password', 'password02'), array('EQUAL_CHECK')); $arrErr = $objErr->arrErr; switch ($mode) { case 'new': // 管理者名が登録済みでないか if ($this->memberDataExists('name = ? AND del_flg = 0', $arrParams['name'])) { $arrErr['name'] = '既に登録されている名前なので利用できません。<br>'; } // ログインIDが登録済みでないか if ($this->memberDataExists('login_id = ? AND del_flg = 0', $arrParams['login_id'])) { $arrErr['login_id'] = '既に登録されているIDなので利用できません。<br>'; } break; case 'edit': // ログインIDが変更されている場合はチェックする。 if ($arrParams['login_id'] != $arrParams['old_login_id']) { // ログインIDが登録済みでないか if ($this->memberDataExists('login_id = ? AND del_flg = 0', $arrParams['login_id'])) { $arrErr['login_id'] = '既に登録されているIDなので利用できません。<br>'; } } break; } return $arrErr; }
/** * パラメーター初期化. * * @param FormParam $objFormParam * @param array $arrParams $_POST値 * @return void */ public function initParam(&$objFormParam, &$arrParams) { $objFormParam->addParam('ディレクトリ名', 'admin_dir', ID_MAX_LEN, 'a', array('EXIST_CHECK', 'SPTAB_CHECK', 'ALNUM_CHECK')); $objFormParam->addParam('SSL制限', 'admin_force_ssl', 1, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('IP制限', 'admin_allow_hosts', LTEXT_LEN, 'a', array('IP_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->setParam($arrParams); $objFormParam->convParam(); }
/** * エラーチェック * * @param FormParam $objFormParam フォームパラメータークラス * @return array エラー配列 */ public function lfCheckError(&$objFormParam) { $objQuery = Application::alias('eccube.query'); $arrForm = $objFormParam->getHashArray(); // パラメーターの基本チェック $arrErr = $objFormParam->checkError(); if (!Utils::isBlank($arrErr)) { return $arrErr; } else { $arrForm = $objFormParam->getHashArray(); } $where = 'del_flg = 0 AND name = ?'; $arrClass = $objQuery->select('class_id, name', 'dtb_class', $where, array($arrForm['name'])); // 編集中のレコード以外に同じ名称が存在する場合 if ($arrClass[0]['class_id'] != $arrForm['class_id'] && $arrClass[0]['name'] == $arrForm['name']) { $arrErr['name'] = '※ 既に同じ内容の登録が存在します。<br>'; } return $arrErr; }
/** * クエリを構築する. * * 検索条件のキーに応じた WHERE 句と, クエリパラメーターを構築する. * クエリパラメーターは, FormParam の入力値から取得する. * * 構築内容は, 引数の $where 及び $arrValues にそれぞれ追加される. * * @param string $key 検索条件のキー * @param string $where 構築する WHERE 句 * @param array $arrValues 構築するクエリパラメーター * @param FormParam $objFormParam FormParam インスタンス * @param FormParam $objDb DbHelper インスタンス * @return void */ public function buildQuery($key, &$where, &$arrValues, &$objFormParam, &$objDb) { /* @var $dbFactory DBFactory */ $dbFactory = Application::alias('eccube.db.factory'); switch ($key) { // 商品ID case 'search_product_id': $where .= ' AND product_id = ?'; $arrValues[] = sprintf('%d', $objFormParam->getValue($key)); break; // 商品コード // 商品コード case 'search_product_code': $where .= ' AND product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ? AND del_flg = 0)'; $arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key)); break; // 商品名 // 商品名 case 'search_name': $where .= ' AND name LIKE ?'; $arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key)); break; // カテゴリ // カテゴリ case 'search_category_id': list($tmp_where, $tmp_Values) = $objDb->getCatWhere($objFormParam->getValue($key)); if ($tmp_where != '') { $where .= ' AND product_id IN (SELECT product_id FROM dtb_product_categories WHERE ' . $tmp_where . ')'; $arrValues = array_merge((array) $arrValues, (array) $tmp_Values); } break; // 種別 // 種別 case 'search_status': $tmp_where = ''; foreach ($objFormParam->getValue($key) as $element) { if ($element != '') { if (Utils::isBlank($tmp_where)) { $tmp_where .= ' AND (status = ?'; } else { $tmp_where .= ' OR status = ?'; } $arrValues[] = $element; } } if (!Utils::isBlank($tmp_where)) { $tmp_where .= ')'; $where .= " {$tmp_where} "; } break; // 登録・更新日(開始) // 登録・更新日(開始) case 'search_startyear': $date = Utils::sfGetTimestamp($objFormParam->getValue('search_startyear'), $objFormParam->getValue('search_startmonth'), $objFormParam->getValue('search_startday')); $where .= ' AND update_date >= ?'; $arrValues[] = $date; break; // 登録・更新日(終了) // 登録・更新日(終了) case 'search_endyear': $date = Utils::sfGetTimestamp($objFormParam->getValue('search_endyear'), $objFormParam->getValue('search_endmonth'), $objFormParam->getValue('search_endday'), true); $where .= ' AND update_date <= ?'; $arrValues[] = $date; break; // 商品ステータス // 商品ステータス case 'search_product_statuses': $arrPartVal = $objFormParam->getValue($key); $count = count($arrPartVal); if ($count >= 1) { $where .= ' ' . 'AND product_id IN (' . ' SELECT product_id FROM dtb_product_status WHERE product_status_id IN (' . Utils::repeatStrWithSeparator('?', $count) . ')' . ')'; $arrValues = array_merge($arrValues, $arrPartVal); } break; default: break; } }
/** * ブロックを配置する. * * @param FormParam $objFormParam FormParam インスタンス * @param boolean $is_preview プレビュー時の場合 true * @return void */ public function placingBlocs(&$objFormParam, $is_preview = false) { $page_id = $is_preview ? 0 : $objFormParam->getValue('page_id'); $device_type_id = $objFormParam->getValue('device_type_id'); $bloc_cnt = $objFormParam->getValue('bloc_cnt'); $objQuery = Application::alias('eccube.query'); $objQuery->begin(); $objQuery->delete('dtb_blocposition', 'page_id = ? AND device_type_id = ?', array($page_id, $device_type_id)); $arrTargetFlip = array_flip($this->arrTarget); for ($i = 1; $i <= $bloc_cnt; $i++) { // bloc_id が取得できない場合は INSERT しない $id = $objFormParam->getValue('id_' . $i); if (Utils::isBlank($id)) { continue; } // 未使用は INSERT しない $arrParams['target_id'] = $arrTargetFlip[$objFormParam->getValue('target_id_' . $i)]; if ($arrParams['target_id'] == TARGET_ID_UNUSED) { continue; } // 他のページに anywhere が存在する場合は INSERT しない $arrParams['anywhere'] = intval($objFormParam->getValue('anywhere_' . $i)); if ($arrParams['anywhere'] == 1) { $exists = $objQuery->exists('dtb_blocposition', 'anywhere = 1 AND bloc_id = ? AND device_type_id = ?', array($id, $device_type_id)); if ($exists) { continue; } } $arrParams['device_type_id'] = $device_type_id; $arrParams['page_id'] = $page_id; $arrParams['bloc_id'] = $id; $arrParams['bloc_row'] = $objFormParam->getValue('top_' . $i); if ($arrParams['page_id'] == 0) { $arrParams['anywhere'] = 0; } $objQuery->insert('dtb_blocposition', $arrParams); } $objQuery->commit(); }
/** * 入力エラーチェック * * @param KiyakuHelper $objKiyaku * @param FormParam $objFormParam * @return array */ public function lfCheckError($objFormParam, KiyakuHelper &$objKiyaku) { $arrErr = $objFormParam->checkError(); $arrForm = $objFormParam->getHashArray(); $isTitleExist = $objKiyaku->isTitleExist($arrForm['kiyaku_title'], $arrForm['kiyaku_id']); // 編集中のレコード以外に同じ名称が存在する場合 if ($isTitleExist) { $arrErr['name'] = '※ 既に同じ内容の登録が存在します。<br />'; } return $arrErr; }
/** * 入力エラーチェック * * @param FormParam $objFormParam * @param HolidayHelper $objHoliday * @return array */ public function lfCheckError(&$objFormParam, HolidayHelper &$objHoliday) { $arrErr = $objFormParam->checkError(); $arrForm = $objFormParam->getHashArray(); // 日付の妥当性チェック // 閏年への対応. if ($arrForm['month'] == 2 && $arrForm['day'] == 29) { $valid_date = true; } else { $valid_date = checkdate($arrForm['month'], $arrForm['day'], date('Y')); } if (!$valid_date) { $arrErr['date'] = '※ 妥当な日付ではありません。<br />'; } // 編集中のレコード以外に同じ日付が存在する場合 if ($objHoliday->isDateExist($arrForm['month'], $arrForm['day'], $arrForm['holiday_id'])) { $arrErr['date'] = '※ 既に同じ日付の登録が存在します。<br />'; } return $arrErr; }
/** * APIのリクエスト基本パラメーターのチェック * * @param FormParam $objFormParam * @return array $arrErr */ protected function checkParam($objFormParam) { $arrErr = $objFormParam->checkError(); if (!preg_match("/^[a-zA-Z0-9\\-\\_]+\$/", $objFormParam->getValue('Operation')) && !Utils::isBlank($objFormParam->getValue('Operation'))) { $arrErr['ECCUBE.Operation.ParamError'] = 'Operationの値が不正です。'; } if (!preg_match("/^[a-zA-Z0-9\\-\\_]+\$/", $objFormParam->getValue('Service')) && !Utils::isBlank($objFormParam->getValue('Service'))) { $arrErr['ECCUBE.Service.ParamError'] = 'Serviceの値が不正です。'; } if (!preg_match("/^[a-zA-Z0-9\\-\\_]+\$/", $objFormParam->getValue('Style')) && !Utils::isBlank($objFormParam->getValue('Style'))) { $arrErr['ECCUBE.Style.ParamError'] = 'Styleの値が不正です。'; } if (!preg_match("/^[a-zA-Z0-9\\-\\_]+\$/", $objFormParam->getValue('Validate')) && !Utils::isBlank($objFormParam->getValue('Validate'))) { $arrErr['ECCUBE.Validate.ParamError'] = 'Validateの値が不正です。'; } if (!preg_match("/^[a-zA-Z0-9\\-\\_\\.]+\$/", $objFormParam->getValue('Version')) && !Utils::isBlank($objFormParam->getValue('Version'))) { $arrErr['ECCUBE.Version.ParamError'] = 'Versionの値が不正です。'; } return $arrErr; }
/** * カテゴリ登録を行う. * * FIXME: 登録の実処理自体は、LC_Page_Admin_Products_Categoryと共通化して欲しい。 * * @param integer $line 処理中の行数 * @param FormParam $objFormParam * @return integer カテゴリID */ public function lfRegisterCategory($line, FormParam &$objFormParam) { // 登録データ対象取得 $arrList = $objFormParam->getDbArray(); // 登録情報を生成する。 // テーブルのカラムに存在しているもののうち、Form投入設定されていないデータは上書きしない。 $sqlval = Utils::sfArrayIntersectKeys($arrList, $this->arrRegistColumn); // 必須入力では無い項目だが、空文字では問題のある特殊なカラム値の初期値設定 $sqlval = $this->lfSetCategoryDefaultData($sqlval); /* @var $objCategory CategoryHelper */ $objCategory = Application::alias('eccube.helper.category'); $category_id = $objCategory->save($sqlval); return $category_id; }
/** * * テンプレートの文言をフォームに入れる。 * @param FormParam $objFormParam */ public function changeData(&$objFormParam) { $template_id = $objFormParam->getValue('template_id'); // 未選択時 if (strlen($template_id) === 0) { $mailTemplates = null; // 有効選択時 } elseif (Utils::sfIsInt($template_id)) { /* @var $objMailtemplate MailtemplateHelper */ $objMailtemplate = Application::alias('eccube.helper.mailtemplate'); $mailTemplates = $objMailtemplate->get($template_id); // 不正選択時 } else { trigger_error('テンプレートの指定が不正。', E_USER_ERROR); } if (empty($mailTemplates)) { foreach (array('subject', 'header', 'footer') as $key) { $objFormParam->setValue($key, ''); } } else { $objFormParam->setParam($mailTemplates); } return $objFormParam; }
/** * エラーチェックを行う. * * @param FormParam $objFormParam FormParam インスタンス * @return array エラーメッセージの配列 */ public function lfCheckError(&$objFormParam, &$arrErr) { $arrParams = $objFormParam->getHashArray(); /* @var $objErr CheckError */ $objErr = Application::alias('eccube.check_error', $arrParams); $objErr->arrErr =& $arrErr; $objErr->doFunc(array('名称', 'page_name', STEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); $objErr->doFunc(array('URL', 'filename', STEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); /* * URL チェック * ここでチェックするのは, パスのみなので CheckError::URL_CHECK() * は使用しない */ $valid_url = true; foreach (explode('/', $arrParams['filename']) as $val) { if (!preg_match('/^[a-zA-Z0-9:_~\\.\\-]+$/', $val)) { $valid_url = false; } if ($val == '.' || $val == '..') { $valid_url = false; } } if (!$valid_url) { $objErr->arrErr['filename'] = '※ URLを正しく入力してください。<br />'; } // 同一URLの存在チェック $where = 'page_id <> 0 AND device_type_id = ? AND filename = ?'; $arrValues = array($arrParams['device_type_id'], USER_DIR . $arrParams['filename']); // 変更の場合は自 URL を除外 if (!Utils::isBlank($arrParams['page_id'])) { $where .= ' AND page_id <> ?'; $arrValues[] = $arrParams['page_id']; } $objQuery = Application::alias('eccube.query'); $exists = $objQuery->exists('dtb_pagelayout', $where, $arrValues); if ($exists) { $objErr->arrErr['filename'] = '※ 同じURLのデータが存在しています。別のURLを入力してください。<br />'; } return $objErr->arrErr; }
/** * パラメーターの初期化を行う * @param FormParam $objFormParam */ public function lfInitParam(&$objFormParam) { $objFormParam->addParam('news_id', 'news_id'); $objFormParam->addParam('日付(年)', 'year', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('日付(月)', 'month', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('日付(日)', 'day', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('タイトル', 'news_title', MTEXT_LEN, 'KVa', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'SPTAB_CHECK')); $objFormParam->addParam('URL', 'news_url', URL_LEN, 'KVa', array('MAX_LENGTH_CHECK')); $objFormParam->addParam('本文', 'news_comment', LTEXT_LEN, 'KVa', array('MAX_LENGTH_CHECK')); $objFormParam->addParam('別ウィンドウで開く', 'link_method', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); }
/** * パラメーター情報の初期化 * * @param FormParam $objFormParam * @return void */ public function lfInitParam($tpl_mode, &$objFormParam) { if ($tpl_mode == 'manual') { $objFormParam->addParam('開始行', 'startRowNum', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); } }
/** * 入力エラーチェック * * @param string $mode * @param FormParam $objFormParam * @return array */ public function lfCheckError($mode, &$objFormParam) { $arrErr = array(); switch ($mode) { case 'delete': case 'up': case 'down': $objFormParam->addParam('配送業者ID', 'deliv_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->convParam(); $arrErr = $objFormParam->checkError(); break; default: break; } return $arrErr; }
/** * @param FormParam $objFormParam */ public function lfCheckError($post, $objFormParam, PaymentHelper $objPayment) { // DBのデータを取得 $arrPaymentData = $objPayment->get($post['payment_id']); // 手数料を設定できない場合には、手数料を0にする if ($arrPaymentData['charge_flg'] == 2) { $objFormParam->setValue('charge', '0'); } // 入力データを渡す。 $arrRet = $objFormParam->getHashArray(); /* @var $objErr CheckError */ $objErr = Application::alias('eccube.check_error', $arrRet); $objErr->arrErr = $objFormParam->checkError(); // 利用条件(下限)チェック if ($arrRet['rule_max'] < $arrPaymentData['rule_min'] and $arrPaymentData['rule_min'] != '') { $objErr->arrErr['rule'] = '利用条件(下限)は' . $arrPaymentData['rule_min'] . '円以上にしてください。<br>'; } // 利用条件(上限)チェック if ($arrRet['upper_rule'] > $arrPaymentData['upper_rule_max'] and $arrPaymentData['upper_rule_max'] != '') { $objErr->arrErr['upper_rule'] = '利用条件(上限)は' . $arrPaymentData['upper_rule_max'] . '円以下にしてください。<br>'; } // 利用条件チェック $objErr->doFunc(array('利用条件(~円以上)', '利用条件(~円以下)', 'rule_max', 'upper_rule'), array('GREATER_CHECK')); return $objErr->arrErr; }
/** * DBおよびファイルシステムにテンプレートパッケージを追加する. * * エラーが発生した場合は, エラーを出力し, false を返す. * * @param FormParam $objFormParam FormParamのインスタンス * @param UploadFile $objUpFile UploadFileのインスタンス * @return boolean 成功した場合 true; 失敗した場合 false */ public function doUpload($objFormParam, $objUpFile) { $template_code = $objFormParam->getValue('template_code'); $template_name = $objFormParam->getValue('template_name'); $device_type_id = $objFormParam->getValue('device_type_id'); $template_dir = SMARTY_TEMPLATES_REALDIR . $template_code; $compile_dir = DATA_REALDIR . 'Smarty/templates_c/' . $template_code; $objQuery = Application::alias('eccube.query'); $objQuery->begin(); $arrValues = array('template_code' => $template_code, 'device_type_id' => $device_type_id, 'template_name' => $template_name, 'create_date' => 'CURRENT_TIMESTAMP', 'update_date' => 'CURRENT_TIMESTAMP'); $objQuery->insert('dtb_templates', $arrValues); // フォルダ作成 if (!file_exists($template_dir)) { if (!mkdir($template_dir)) { $this->arrErr['err'] = '※ テンプレートフォルダが作成できませんでした。<br/>'; $objQuery->rollback(); return false; } } if (!file_exists($compile_dir)) { if (!mkdir($compile_dir)) { $this->arrErr['err'] = '※ Smarty コンパイルフォルダが作成できませんでした。<br/>'; $objQuery->rollback(); return false; } } // 一時フォルダから保存ディレクトリへ移動 $objUpFile->moveTempFile(); // 解凍 if (!Application::alias('eccube.helper.file_manager')->unpackFile($template_dir . '/' . $_FILES['template_file']['name'])) { $this->arrErr['err'] = '※ テンプレートファイルの解凍に失敗しました。<br/>'; $objQuery->rollback(); return false; } // ユーザデータの下のファイルをコピーする $from_dir = SMARTY_TEMPLATES_REALDIR . $template_code . '/_packages/'; $to_dir = USER_REALDIR . 'packages/' . $template_code . '/'; if (!Utils::recursiveMkdir($to_dir)) { $this->arrErr['err'] = '※ ' . $to_dir . ' の作成に失敗しました。<br/>'; $objQuery->rollback(); return false; } Utils::sfCopyDir($from_dir, $to_dir); $objQuery->commit(); return true; }
/** * パラメーター情報の初期化 * @param FormParam * @param FormParam $objFormParam */ public function lfInitParam(&$objFormParam) { $objFormParam->addParam('注文番号', 'order_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); $objFormParam->addParam('変更前対応状況', 'status', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); $objFormParam->addParam('ページ番号', 'search_pageno', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); if ($this->getMode() == 'update') { $objFormParam->addParam('変更後対応状況', 'change_status', STEXT_LEN, 'KVa', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); $objFormParam->addParam('移動注文番号', 'move', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); } }
/** * パラメーター初期化. * * @param FormParam $objFormParam * @param array $arrParams $_POST値 * @return void */ public function initParam(&$objFormParam, &$arrParams) { $objFormParam->addParam('バックアップ名', 'bkup_name', STEXT_LEN, 'a', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NO_SPTAB', 'FILE_NAME_CHECK_BY_NOUPLOAD')); $objFormParam->addParam('バックアップメモ', 'bkup_memo', MTEXT_LEN, 'KVa', array('MAX_LENGTH_CHECK')); $objFormParam->addParam('バックアップ名(リスト)', 'list_name', STEXT_LEN, 'a', array('MAX_LENGTH_CHECK', 'NO_SPTAB', 'FILE_NAME_CHECK_BY_NOUPLOAD')); $objFormParam->setParam($arrParams); $objFormParam->convParam(); }
/** * メールアドレス確認におけるパラメーター情報の初期化 * * @param FormParam $objFormParam フォームパラメータークラス * @param array $device_type デバイスタイプ * @return void */ public function lfInitMailCheckParam(&$objFormParam, $device_type) { $objFormParam->addParam('お名前(姓)', 'name01', STEXT_LEN, 'aKV', array('EXIST_CHECK', 'NO_SPTAB', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('お名前(名)', 'name02', STEXT_LEN, 'aKV', array('EXIST_CHECK', 'NO_SPTAB', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); if ($device_type === DEVICE_TYPE_MOBILE) { $objFormParam->addParam('メールアドレス', 'email', null, 'a', array('EXIST_CHECK', 'EMAIL_CHECK', 'NO_SPTAB', 'EMAIL_CHAR_CHECK', 'MOBILE_EMAIL_CHECK')); } else { $objFormParam->addParam('メールアドレス', 'email', null, 'a', array('NO_SPTAB', 'EXIST_CHECK', 'EMAIL_CHECK', 'SPTAB_CHECK', 'EMAIL_CHAR_CHECK')); } return; }
/** * 入力済みの購入情報をフォームに設定する. * * 受注一時テーブル, セッションの配送情報から入力済みの購入情報を取得し, * フォームに設定する. * * @param FormParam $objFormParam FormParam インスタンス * @param PurchaseHelper $objPurchase PurchaseHelper インスタンス * @param integer $uniqid 購入一時情報のユニークID * @return void */ public function setFormParams(&$objFormParam, &$objPurchase, $uniqid) { $arrOrderTemp = $objPurchase->getOrderTemp($uniqid); if (Utils::isBlank($arrOrderTemp)) { $arrOrderTemp = array('order_email' => '', 'order_birth' => ''); } $arrShippingTemp = $objPurchase->getShippingTemp(); $objFormParam->setParam($arrOrderTemp); /* * count($arrShippingTemp) > 1 は複数配送であり, * $arrShippingTemp[0] は注文者が格納されている */ if (count($arrShippingTemp) > 1) { $objFormParam->setParam($arrShippingTemp[1]); } else { if ($arrOrderTemp['deliv_check'] == 1) { $objFormParam->setParam($arrShippingTemp[1]); } else { $objFormParam->setParam($arrShippingTemp[0]); } } $objFormParam->setValue('order_email02', $arrOrderTemp['order_email']); $objFormParam->setDBDate($arrOrderTemp['order_birth'], 'order_year', 'order_month', 'order_day'); }
/** * パラメーター情報の初期化 * * @param FormParam $objFormParam FormParamインスタンス * @return void */ public function lfInitParam(&$objFormParam) { $objFormParam->addParam('端末種別ID', 'device_type_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('template_code', 'template_code', STEXT_LEN, 'a', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK', 'ALNUM_CHECK')); }
/** * フォームパラメーター取得 * - 登録モード * * @param FormParam $objFormParam FormParamインスタンス * @return array フォームパラメーター配列 */ public function lfGetFormParam_Complete(&$objFormParam) { $arrForm = $objFormParam->getHashArray(); $arrForm['category_id'] = Utils::jsonDecode($arrForm['category_id']); $objFormParam->setValue('category_id', $arrForm['category_id']); return $arrForm; }
/** * パラメーター情報の初期化. * * @param FormParam $objFormParam パラメーター管理クラス * @return void */ public function lfInitParam(&$objFormParam) { $objFormParam->addParam('記憶する', 'login_memory', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); $objFormParam->addParam('メールアドレス', 'login_email', MTEXT_LEN, 'a', array('EXIST_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('パスワード', 'login_pass', PASSWORD_MAX_LEN, '', array('EXIST_CHECK', 'MAX_LENGTH_CHECK')); }
/** * @param FormParam $objFormParam */ public function lfInitParam(&$objFormParam) { $objFormParam->addParam('商品ID', 'product_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('商品イメージキー', 'image_key', STEXT_LEN, '', array('GRAPH_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('画像ファイル名', 'image', STEXT_LEN, 'a', array('MAX_LENGTH_CHECK')); $objFormParam->addParam('画像の幅', 'width', STEXT_LEN, 'n', array('NUM_CHECK')); $objFormParam->addParam('画像の高さ', 'height', STEXT_LEN, 'n', array('NUM_CHECK')); }
/** * 受注データを取得して, FormParam へ設定する. * * @param FormParam $objFormParam FormParam インスタンス * @param integer $order_id 取得元の受注ID * @return void */ public function setOrderToFormParam(&$objFormParam, $order_id) { /* @var $objPurchase PurchaseHelper */ $objPurchase = Application::alias('eccube.helper.purchase'); // 受注詳細を設定 $arrOrderDetail = $objPurchase->getOrderDetail($order_id, false); $objFormParam->setParam(Utils::sfSwapArray($arrOrderDetail)); $arrShippingsTmp = $objPurchase->getShippings($order_id); $arrShippings = array(); foreach ($arrShippingsTmp as $row) { // お届け日の処理 if (!Utils::isBlank($row['shipping_date'])) { $ts = strtotime($row['shipping_date']); $row['shipping_date_year'] = date('Y', $ts); $row['shipping_date_month'] = date('n', $ts); $row['shipping_date_day'] = date('j', $ts); } $arrShippings[$row['shipping_id']] = $row; } $objFormParam->setParam(Utils::sfSwapArray($arrShippings)); /* * 配送商品を設定 * * $arrShipmentItem['shipment_(key)'][$shipping_id][$item_index] = 値 * $arrProductQuantity[$shipping_id] = 配送先ごとの配送商品数量 */ $arrProductQuantity = array(); $arrShipmentItem = array(); foreach ($arrShippings as $shipping_id => $arrShipping) { $arrProductQuantity[$shipping_id] = count($arrShipping['shipment_item']); foreach ($arrShipping['shipment_item'] as $item_index => $arrItem) { foreach ($arrItem as $item_key => $item_val) { $arrShipmentItem['shipment_' . $item_key][$shipping_id][$item_index] = $item_val; } } } $objFormParam->setValue('shipping_product_quantity', $arrProductQuantity); $objFormParam->setParam($arrShipmentItem); /* * 受注情報を設定 * $arrOrderDetail と項目が重複しており, $arrOrderDetail は連想配列の値 * が渡ってくるため, $arrOrder で上書きする. */ $arrOrder = $objPurchase->getOrder($order_id); // 生年月日の処理 if (!Utils::isBlank($arrOrder['order_birth'])) { $order_birth = substr($arrOrder['order_birth'], 0, 10); $arrOrderBirth = explode("-", $order_birth); $arrOrder['order_birth_year'] = intval($arrOrderBirth[0]); $arrOrder['order_birth_month'] = intval($arrOrderBirth[1]); $arrOrder['order_birth_day'] = intval($arrOrderBirth[2]); } $objFormParam->setParam($arrOrder); // ポイントを設定 list($db_point, $rollback_point) = Application::alias('eccube.helper.db')->getRollbackPoint($order_id, $arrOrder['use_point'], $arrOrder['add_point'], $arrOrder['status']); $objFormParam->setValue('total_point', $db_point); $objFormParam->setValue('point', $rollback_point); if (!Utils::isBlank($objFormParam->getValue('customer_id'))) { $arrCustomer = Application::alias('eccube.helper.customer')->sfGetCustomerDataFromId($objFormParam->getValue('customer_id')); $objFormParam->setValue('customer_point', $arrCustomer['point']); } }
/** * お問い合わせ入力時のパラメーター情報の初期化を行う. * * @param FormParam $objFormParam FormParam インスタンス * @return void */ public function lfInitParam(&$objFormParam) { $objFormParam->addParam('メール形式', 'mail_method', INT_LEN, 'n', array('EXIST_CHECK', 'ALNUM_CHECK')); $objFormParam->addParam('Subject', 'subject', STEXT_LEN, 'KVa', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('本文', 'body', LLTEXT_LEN, 'KVCa', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('テンプレートID', 'template_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false); }