Beispiel #1
0
 /**
  * パラメーターの初期化.
  *
  * @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);
 }
Beispiel #2
0
 /**
  * エラーチェックを行う.
  *
  * @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;
 }
Beispiel #3
0
 /**
  * 表示するファイルにエラーチェックを行う
  *
  * @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;
 }
Beispiel #4
0
 /**
  *  入力内容のチェック
  *  @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;
 }
Beispiel #5
0
 /**
  * パラメーターの妥当性検証を行う.
  *
  * @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;
 }
Beispiel #6
0
 /**
  * パラメーター初期化.
  *
  * @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();
 }
Beispiel #7
0
 /**
  * エラーチェック
  *
  * @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;
 }
Beispiel #8
0
 /**
  * クエリを構築する.
  *
  * 検索条件のキーに応じた 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;
     }
 }
Beispiel #9
0
 /**
  * ブロックを配置する.
  *
  * @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();
 }
Beispiel #10
0
 /**
  * 入力エラーチェック
  *
  * @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;
 }
Beispiel #11
0
 /**
  * 入力エラーチェック
  *
  * @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;
 }
Beispiel #12
0
 /**
  * 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;
 }
Beispiel #14
0
 /**
  *
  * テンプレートの文言をフォームに入れる。
  * @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;
 }
Beispiel #15
0
 /**
  * エラーチェックを行う.
  *
  * @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;
 }
Beispiel #16
0
 /**
  * パラメーターの初期化を行う
  * @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'));
 }
Beispiel #17
0
 /**
  * パラメーター情報の初期化
  *
  * @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'));
     }
 }
Beispiel #18
0
 /**
  * 入力エラーチェック
  *
  * @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;
 }
Beispiel #19
0
 /**
  * @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;
 }
Beispiel #20
0
 /**
  * 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;
 }
Beispiel #21
0
 /**
  *  パラメーター情報の初期化
  *  @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'));
     }
 }
Beispiel #22
0
 /**
  * パラメーター初期化.
  *
  * @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();
 }
Beispiel #23
0
 /**
  * メールアドレス確認におけるパラメーター情報の初期化
  *
  * @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;
 }
Beispiel #24
0
 /**
  * 入力済みの購入情報をフォームに設定する.
  *
  * 受注一時テーブル, セッションの配送情報から入力済みの購入情報を取得し,
  * フォームに設定する.
  *
  * @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');
 }
Beispiel #25
0
 /**
  * パラメーター情報の初期化
  *
  * @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'));
 }
Beispiel #26
0
 /**
  * フォームパラメーター取得
  * - 登録モード
  *
  * @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;
 }
Beispiel #27
0
 /**
  * パラメーター情報の初期化.
  *
  * @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'));
 }
Beispiel #28
0
 /**
  * @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'));
 }
Beispiel #29
0
 /**
  * 受注データを取得して, 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']);
     }
 }
Beispiel #30
0
 /**
  * お問い合わせ入力時のパラメーター情報の初期化を行う.
  *
  * @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);
 }