/** * 入力チェックを行う. * * @param SC_FormParam $objFormParam * @return array */ public function lfCheckError(SC_FormParam &$objFormParam) { // 入力データを渡す。 $arrRet = $objFormParam->getHashArray(); $objErr = new SC_CheckError_Ex($arrRet); $objErr->arrErr = $objFormParam->checkError(false); // HTMLタグチェックの実行 foreach ($this->arrTagCheckItem as $item) { $objErr->doFunc(array($item['disp_name'], $item['col'], $this->arrAllowedTag), array('HTML_TAG_CHECK')); } // このフォーム特有の複雑系のエラーチェックを行う if (count($objErr->arrErr) == 0) { $objErr->arrErr = $this->lfCheckErrorDetail($arrRet, $objErr->arrErr); } return $objErr->arrErr; }
/** * 入力内容のチェックを行なう. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param integer $subtotal 購入金額の小計 * @param integer $max_point 会員の保持ポイント * @return array 入力チェック結果の配列 */ function lfCheckError(&$objFormParam, $subtotal, $max_point) { $objPurchase = new SC_Helper_Purchase_Ex(); // 入力データを渡す。 $arrForm = $objFormParam->getHashArray(); $objErr = new SC_CheckError_Ex($arrForm); $objErr->arrErr = $objFormParam->checkError(); if (USE_POINT === false) { return $objErr->arrErr; } if ($arrForm['point_check'] == '1') { $objErr->doFunc(array('ポイントを使用する', 'point_check'), array('EXIST_CHECK')); $objErr->doFunc(array('ポイント', 'use_point'), array('EXIST_CHECK')); if ($max_point == '') { $max_point = 0; } // FIXME mobile 互換のため br は閉じない... if ($arrForm['use_point'] > $max_point) { $objErr->arrErr['use_point'] = '※ ご利用ポイントが所持ポイントを超えています。<br>'; } if ($arrForm['use_point'] * POINT_VALUE > $subtotal) { $objErr->arrErr['use_point'] = '※ ご利用ポイントがご購入金額を超えています。<br>'; } // ポイント差し引き後の決済方法チェック $arrPayments = $objPurchase->getPaymentsByPaymentsId($arrForm['payment_id']); if ($arrPayments['rule_max'] > $subtotal - $arrForm['use_point'] * POINT_VALUE) { $objErr->arrErr['use_point'] = '※ 選択した支払方法では、ポイントは' . ($subtotal - $arrPayments['rule_max']) . 'ポイントまでご利用いただけます。<br>'; } } return $objErr->arrErr; }
/** * 入力内容のチェックを行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return void */ function lfCheckError(&$objFormParam) { $objErr = new SC_CheckError_Ex($objFormParam->getHashArray()); $objErr->arrErr = $objFormParam->checkError(); $objErr->doFunc(array('開始日', '終了日', 'search_startyear', 'search_startmonth', 'search_startday', 'search_endyear', 'search_endmonth', 'search_endday'), array('CHECK_SET_TERM')); return $objErr->arrErr; }
/** * 入力チェックを行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return array エラー情報の配列 */ public function lfCheckError(&$objFormParam) { $objCartSess = new SC_CartSession_Ex(); $objFormParam->convParam(); // 数量未入力は0に置換 $objFormParam->setValue('quantity', $objFormParam->getValue('quantity', 0)); $arrErr = $objFormParam->checkError(); $arrParams = $objFormParam->getSwapArray(); if (empty($arrErr)) { foreach ($arrParams as $index => $arrParam) { // 数量0で、お届け先を選択している場合 if ($arrParam['quantity'] == 0 && !SC_Utils_Ex::isBlank($arrParam['shipping'])) { $arrErr['shipping'][$index] = '※ 数量が0の場合、お届け先を入力できません。<br />'; } // 数量の入力があり、お届け先を選択していない場合 if ($arrParam['quantity'] > 0 && SC_Utils_Ex::isBlank($arrParam['shipping'])) { $arrErr['shipping'][$index] = '※ お届け先が入力されていません。<br />'; } } } // 入力エラーが無い場合、カゴの中身との数量の整合を確認 if (empty($arrErr)) { $arrQuantity = array(); // 入力内容を集計 foreach ($arrParams as $arrParam) { $product_class_id = $arrParam['product_class_id']; $arrQuantity[$product_class_id] += $arrParam['quantity']; } // カゴの中身と突き合わせ $cartLists =& $objCartSess->getCartList($objCartSess->getKey()); foreach ($cartLists as $arrCartRow) { $product_class_id = $arrCartRow['id']; // 差異がある場合、エラーを記録 if ($arrCartRow['quantity'] != $arrQuantity[$product_class_id]) { foreach ($arrParams as $index => $arrParam) { if ($arrParam['product_class_id'] == $product_class_id) { $arrErr['quantity'][$index] = '※ 数量合計を「' . $arrCartRow['quantity'] . '」にしてください。<br />'; } } } } } return $arrErr; }
/** * エラーチェック * * @param SC_FormParam $objFormParam * @param boolean $add 追加か * @return void */ function checkError(&$objFormParam, $add) { $objQuery =& SC_Query_Ex::getSingletonInstance(); // 入力項目チェック $arrErr = $objFormParam->checkError(); if (!empty($arrErr)) { return $arrErr; } $category_id = $objFormParam->getValue('category_id'); $parent_category_id = $objFormParam->getValue('parent_category_id'); $category_name = $objFormParam->getValue('category_name'); // 追加の場合に固有のチェック if ($add) { // 登録数上限チェック $where = 'del_flg = 0'; $count = $objQuery->count('dtb_category', $where); if ($count >= CATEGORY_MAX) { $arrErr['category_name'] = t('c_* The maximum number of categories that can be registered has been exceeded.<br/>_01'); return $arrErr; } // 階層上限チェック if ($this->isOverLevel($parent_category_id)) { $arrErr['category_name'] = t('c_* Registration of the T_ARG1 hierarchy or higher is not possible.<br/>_01', array('T_ARG1' => LEVEL_MAX)); return $arrErr; } } // 重複チェック $arrWhereVal = array(); $where = 'del_flg = 0 AND parent_category_id = ? AND category_name = ?'; $arrWhereVal[] = $parent_category_id; $arrWhereVal[] = $category_name; // 更新の場合、抽出対象から自己を除外する if (!$add) { $where .= ' AND category_id <> ?'; $arrWhereVal[] = $category_id; } $exists = $objQuery->exists('dtb_category', $where, $arrWhereVal); if ($exists) { $arrErr['category_name'] = t('c_* Registration of the same contents already exists.<br/>_01'); return $arrErr; } return $arrErr; }
/** * 入力内容のチェックを行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return void */ function lfCheckError(&$objFormParam) { $objErr = new SC_CheckError_Ex($objFormParam->getHashArray()); $objErr->arrErr = $objFormParam->checkError(); // 相関チェック $objErr->doFunc(array(t('c_Order number 1_01'), t('c_Order number 2_01'), 'search_order_id1', 'search_order_id2'), array('GREATER_CHECK')); $objErr->doFunc(array(t('c_Age 1_01'), t('c_Age 2_01'), 'search_age1', 'search_age2'), array('GREATER_CHECK')); $objErr->doFunc(array(t('c_Purchase amount 1_01'), t('c_Purchase amount 2_01'), 'search_total1', 'search_total2'), array('GREATER_CHECK')); // 受注日 $objErr->doFunc(array(t('c_Start_01'), 'search_sorderyear', 'search_sordermonth', 'search_sorderday'), array('CHECK_DATE')); $objErr->doFunc(array(t('c_Complete_01'), 'search_eorderyear', 'search_eordermonth', 'search_eorderday'), array('CHECK_DATE')); $objErr->doFunc(array(t('c_Start_01'), t('c_Complete_01'), 'search_sorderyear', 'search_sordermonth', 'search_sorderday', 'search_eorderyear', 'search_eordermonth', 'search_eorderday'), array('CHECK_SET_TERM')); // 更新日 $objErr->doFunc(array(t('c_Start_01'), 'search_supdateyear', 'search_supdatemonth', 'search_supdateday'), array('CHECK_DATE')); $objErr->doFunc(array(t('c_Complete_01'), 'search_eupdateyear', 'search_eupdatemonth', 'search_eupdateday'), array('CHECK_DATE')); $objErr->doFunc(array(t('c_Start_01'), t('c_Complete_01'), 'search_supdateyear', 'search_supdatemonth', 'search_supdateday', 'search_eupdateyear', 'search_eupdatemonth', 'search_eupdateday'), array('CHECK_SET_TERM')); // 生年月日 $objErr->doFunc(array(t('c_Start_01'), 'search_sbirthyear', 'search_sbirthmonth', 'search_sbirthday'), array('CHECK_DATE')); $objErr->doFunc(array(t('c_Complete_01'), 'search_ebirthyear', 'search_ebirthmonth', 'search_ebirthday'), array('CHECK_DATE')); $objErr->doFunc(array(t('c_Start_01'), t('c_Complete_01'), 'search_sbirthyear', 'search_sbirthmonth', 'search_sbirthday', 'search_ebirthyear', 'search_ebirthmonth', 'search_ebirthday'), array('CHECK_SET_TERM')); return $objErr->arrErr; }
/** * 商品規格エラーチェック. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return array エラー結果の配列 */ function lfCheckProductsClass(&$objFormParam) { $arrValues = $objFormParam->getHashArray(); $arrErr = $objFormParam->checkError(); $total = $objFormParam->getValue('total'); if (SC_Utils_Ex::isBlank($arrValues['check'])) { $arrErr['check_empty'] = '※ 規格が選択されていません。<br />'; } for ($i = 0; $i < $total; $i++) { /* * チェックボックスの入っている項目のみ, 必須チェックを行う. * エラーを配列で返す必要があるため, SC_CheckError を使用しない. */ if (!SC_Utils_Ex::isBlank($arrValues['check'][$i])) { /* * 販売価格の必須チェック */ if (SC_Utils_Ex::isBlank($arrValues['price02'][$i])) { $arrErr['price02'][$i] = '※ ' . SALE_PRICE_TITLE . 'が入力されていません。<br />'; } /* * 在庫数の必須チェック */ if ((SC_Utils_Ex::isBlank($arrValues['stock_unlimited'][$i]) || $arrValues['stock_unlimited'][$i] != 1) && SC_Utils_Ex::isBlank($arrValues['stock'][$i])) { $arrErr['stock'][$i] = '※ 在庫数が入力されていません。<br />'; } /* * 商品種別の必須チェック */ if (SC_Utils_Ex::isBlank($arrValues['product_type_id'][$i])) { $arrErr['product_type_id'][$i] = '※ 商品種別は、いずれかを選択してください。<br />'; } /* * ダウンロード商品の必須チェック */ if ($arrValues['product_type_id'][$i] == PRODUCT_TYPE_DOWNLOAD) { if (SC_Utils_Ex::isBlank($arrValues['down_filename'][$i])) { $arrErr['down_filename'][$i] = '※ ダウンロード商品の場合はダウンロードファイル名を入力してください。<br />'; } if (SC_Utils_Ex::isBlank($arrValues['down_realfilename'][$i])) { $arrErr['down_realfilename'][$i] = '※ ダウンロード商品の場合はダウンロード商品用ファイルをアップロードしてください。<br />'; } } else { if ($arrValues['product_type_id'][$i] == PRODUCT_TYPE_NORMAL) { if (!SC_Utils_Ex::isBlank($arrValues['down_filename'][$i])) { $arrErr['down_filename'][$i] = '※ 通常商品の場合はダウンロードファイル名を設定できません。<br />'; } if (!SC_Utils_Ex::isBlank($arrValues['down_realfilename'][$i])) { $arrErr['down_realfilename'][$i] = '※ 実商品の場合はダウンロード商品用ファイルをアップロードできません。<br />ファイルを取り消してください。<br />'; } } } } } return $arrErr; }
/** * 入力内容のチェックを行なう. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return array 入力チェック結果の配列 */ function lfCheckError(&$objFormParam) { // 入力データを渡す。 $arrForm = $objFormParam->getHashArray(); $objErr = new SC_CheckError_Ex($arrForm); $objErr->arrErr = $objFormParam->checkError(); $objErr->doFunc(array(t('c_E-mail address_01'), t('c_E-mail address (confirmation)_01'), 'email', 'email02'), array('EQUAL_CHECK')); return $objErr->arrErr; }
/** * エラーチェック * * @param SC_FormParam $objFormParam フォームパラメータークラス * @return array エラー配列 */ public function lfCheckError(&$objFormParam) { $objQuery =& SC_Query_Ex::getSingletonInstance(); $arrForm = $objFormParam->getHashArray(); // パラメーターの基本チェック $arrErr = $objFormParam->checkError(); if (!SC_Utils_Ex::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; }
/** * 入力内容のチェックを行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return void */ public function lfCheckError(&$objFormParam) { // 入力データを渡す。 $arrRet = $objFormParam->getHashArray(); $objErr = new SC_CheckError_Ex($arrRet); $objErr->arrErr = $objFormParam->checkError(); switch ($this->getMode()) { case 'search': $objErr->doFunc(array('開始日', 'search_startyear', 'search_startmonth', 'search_startday'), array('CHECK_DATE')); $objErr->doFunc(array('終了日', 'search_endyear', 'search_endmonth', 'search_endday'), array('CHECK_DATE')); $objErr->doFunc(array('開始日', '終了日', 'search_startyear', 'search_startmonth', 'search_startday', 'search_endyear', 'search_endmonth', 'search_endday'), array('CHECK_SET_TERM')); break; case 'complete': $objErr->doFunc(array('おすすめレベル', 'recommend_level'), array('SELECT_CHECK')); $objErr->doFunc(array('タイトル', 'title', STEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); $objErr->doFunc(array('コメント', 'comment', LTEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); break; default: break; } return $objErr->arrErr; }
/** * 入力内容のチェックを行う. * * 追加の必須チェック, 相関チェックを行うため, SC_CheckError を使用する. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return array エラー情報の配 */ function lfCheckError(&$objFormParam) { // 入力値の変換 $objFormParam->convParam(); $objFormParam->toLower('order_mail'); $objFormParam->toLower('order_mail_check'); $arrParams = $objFormParam->getHashArray(); $objErr = new SC_CheckError_Ex($arrParams); $objErr->arrErr = $objFormParam->checkError(); // 別のお届け先チェック if (isset($arrParams['deliv_check']) && $arrParams['deliv_check'] == "1") { $objErr->doFunc(array("お名前(姓)", "shipping_name01"), array("EXIST_CHECK")); $objErr->doFunc(array("お名前(名)", "shipping_name02"), array("EXIST_CHECK")); $objErr->doFunc(array("お名前(フリガナ・姓)", "shipping_kana01"), array("EXIST_CHECK")); $objErr->doFunc(array("お名前(フリガナ・名)", "shipping_kana02"), array("EXIST_CHECK")); $objErr->doFunc(array("郵便番号1", "shipping_zip01"), array("EXIST_CHECK")); $objErr->doFunc(array("郵便番号2", "shipping_zip02"), array("EXIST_CHECK")); $objErr->doFunc(array("都道府県", "shipping_pref"), array("EXIST_CHECK")); $objErr->doFunc(array("住所1", "shipping_addr01"), array("EXIST_CHECK")); $objErr->doFunc(array("住所2", "shipping_addr02"), array("EXIST_CHECK")); $objErr->doFunc(array("電話番号1", "shipping_tel01"), array("EXIST_CHECK")); $objErr->doFunc(array("電話番号2", "shipping_tel02"), array("EXIST_CHECK")); $objErr->doFunc(array("電話番号3", "shipping_tel03"), array("EXIST_CHECK")); } // 複数項目チェック $objErr->doFunc(array('TEL', "order_tel01", "order_tel02", "order_tel03"), array("TEL_CHECK")); $objErr->doFunc(array('FAX', "order_fax01", "order_fax02", "order_fax03"), array("TEL_CHECK")); $objErr->doFunc(array("郵便番号", "order_zip01", "order_zip02"), array("ALL_EXIST_CHECK")); $objErr->doFunc(array('TEL', "shipping_tel01", "shipping_tel02", "shipping_tel03"), array("TEL_CHECK")); $objErr->doFunc(array("郵便番号", "shipping_zip01", "shipping_zip02"), array("ALL_EXIST_CHECK")); $objErr->doFunc(array("生年月日", 'year', 'month', 'day'), array("CHECK_BIRTHDAY")); $objErr->doFunc(array("メールアドレス", "メールアドレス(確認)", "order_email", "order_email02"), array("EQUAL_CHECK")); return $objErr->arrErr; }
/** * 入力内容のチェックを行なう. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param integer $subtotal 購入金額の小計 * @param integer $max_point 会員の保持ポイント * @return array 入力チェック結果の配列 */ function lfCheckError(&$objFormParam, $subtotal, $max_point) { // 入力データを渡す。 $arrForm = $objFormParam->getHashArray(); $objErr = new SC_CheckError_Ex($arrForm); $objErr->arrErr = $objFormParam->checkError(); if (USE_POINT === false) { return $objErr->arrErr; } if ($arrForm['point_check'] == '1') { $objErr->doFunc(array("ポイントを使用する", "point_check"), array("EXIST_CHECK")); $objErr->doFunc(array("ポイント", "use_point"), array("EXIST_CHECK")); if ($max_point == "") { $max_point = 0; } // FIXME mobile 互換のため br は閉じない... if ($arrForm['use_point'] > $max_point) { $objErr->arrErr['use_point'] = "※ ご利用ポイントが所持ポイントを超えています。<br>"; } if ($arrForm['use_point'] * POINT_VALUE > $subtotal) { $objErr->arrErr['use_point'] = "※ ご利用ポイントがご購入金額を超えています。<br>"; } } return $objErr->arrErr; }
/** * 入力内容のチェック * @var SC_FormParam * @param SC_FormParam $objFormParam */ public function lfCheckError(&$objFormParam) { // 入力データを渡す。 $arrParams = $objFormParam->getHashArray(); $arrErr = $objFormParam->checkError(); $objError = new SC_CheckError_Ex($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 SC_FormParam $objFormParam * @return array $objErr->arrErr エラー内容 */ public function lfCheckError(&$objFormParam, SC_Helper_Maker_Ex &$objMaker) { $arrErr = $objFormParam->checkError(); $arrForm = $objFormParam->getHashArray(); // maker_id の正当性チェック if (!empty($arrForm['maker_id'])) { if (!SC_Utils_Ex::sfIsInt($arrForm['maker_id']) || SC_Utils_Ex::sfIsZeroFilling($arrForm['maker_id']) || !$objMaker->getMaker($arrForm['maker_id'])) { // maker_idが指定されていて、且つその値が不正と思われる場合はエラー $arrErr['maker_id'] = '※ メーカーIDが不正です<br />'; } } if (!isset($arrErr['name'])) { $arrMaker = $objMaker->getByName($arrForm['name']); // 編集中のレコード以外に同じ名称が存在する場合 if (!SC_Utils_Ex::isBlank($arrMaker) && $arrMaker['maker_id'] != $arrForm['maker_id'] && $arrMaker['name'] == $arrForm['name']) { $arrErr['name'] = '※ 既に同じ内容の登録が存在します。<br />'; } } return $arrErr; }
/** * 入力内容のチェックを行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return array エラーメッセージの配列 */ public function lfCheckError(&$objFormParam) { $objProduct = new SC_Product_Ex(); $arrValues = $objFormParam->getHashArray(); $arrErr = array(); $arrErrTemp = $objFormParam->checkError(); $arrErrDate = array(); foreach ($arrValues['shipping_date_year'] as $key_index => $year) { $month = $arrValues['shipping_date_month'][$key_index]; $day = $arrValues['shipping_date_day'][$key_index]; $objError = new SC_CheckError_Ex(array('shipping_date_year' => $year, 'shipping_date_month' => $month, 'shipping_date_day' => $day)); $objError->doFunc(array('お届け日', 'shipping_date_year', 'shipping_date_month', 'shipping_date_day'), array('CHECK_DATE')); $arrErrDate['shipping_date_year'][$key_index] = $objError->arrErr['shipping_date_year']; } $arrErrTemp = array_merge($arrErrTemp, $arrErrDate); // 複数項目チェック $year = $arrValues['order_birth_year']; $month = $arrValues['order_birth_month']; $day = $arrValues['order_birth_day']; $objError = new SC_CheckError_Ex(array('order_birth_year' => $year, 'order_birth_month' => $month, 'order_birth_day' => $day)); $objError->doFunc(array('生年月日', 'order_birth_year', 'order_birth_month', 'order_birth_day'), array('CHECK_BIRTHDAY')); $arrErrTemp['order_birth_year'] = $objError->arrErr['order_birth_year']; // 商品の種類数 $max = count($arrValues['quantity']); $subtotal = 0; $totalpoint = 0; $totaltax = 0; for ($i = 0; $i < $max; $i++) { // 小計の計算 $subtotal += SC_Helper_DB_Ex::sfCalcIncTax($arrValues['price'][$i], $arrValues['tax_rate'][$i], $arrValues['tax_rule'][$i]) * $arrValues['quantity'][$i]; // 小計の計算 $totaltax += SC_Utils_Ex::sfTax($arrValues['price'][$i], $arrValues['tax_rate'][$i], $arrValues['tax_rule'][$i]) * $arrValues['quantity'][$i]; // 加算ポイントの計算 $totalpoint += SC_Utils_Ex::sfPrePoint($arrValues['price'][$i], $arrValues['point_rate'][$i]) * $arrValues['quantity'][$i]; // 在庫数のチェック $arrProduct = $objProduct->getDetailAndProductsClass($arrValues['product_class_id'][$i]); // 編集前の値と比較するため受注詳細を取得 $objPurchase = new SC_Helper_Purchase_Ex(); $arrOrderDetail = SC_Utils_Ex::sfSwapArray($objPurchase->getOrderDetail($objFormParam->getValue('order_id'), false)); if ($arrProduct['stock_unlimited'] != '1' && $arrProduct['stock'] < $arrValues['quantity'][$i] - $arrOrderDetail['quantity'][$i]) { $class_name1 = $arrValues['classcategory_name1'][$i]; $class_name1 = SC_Utils_Ex::isBlank($class_name1) ? 'なし' : $class_name1; $class_name2 = $arrValues['classcategory_name2'][$i]; $class_name2 = SC_Utils_Ex::isBlank($class_name2) ? 'なし' : $class_name2; $arrErr['quantity'][$i] .= $arrValues['product_name'][$i] . '/(' . $class_name1 . ')/(' . $class_name2 . ') の在庫が不足しています。 設定できる数量は「' . ($arrOrderDetail['quantity'][$i] + $arrProduct['stock']) . '」までです。<br />'; } } // 消費税 $arrValues['tax'] = $totaltax; // 小計 $arrValues['subtotal'] = $subtotal; // 合計 $arrValues['total'] = $subtotal - $arrValues['discount'] + $arrValues['deliv_fee'] + $arrValues['charge']; // お支払い合計 $arrValues['payment_total'] = $arrValues['total'] - $arrValues['use_point'] * POINT_VALUE; // 加算ポイント $arrValues['add_point'] = SC_Helper_DB_Ex::sfGetAddPoint($totalpoint, $arrValues['use_point']) + $arrValues['birth_point']; // 最終保持ポイント $arrValues['total_point'] = $objFormParam->getValue('point') - $arrValues['use_point']; if ($arrValues['total'] < 0) { $arrErr['total'] = '合計額がマイナス表示にならないように調整して下さい。<br />'; } if ($arrValues['payment_total'] < 0) { $arrErr['payment_total'] = 'お支払い合計額がマイナス表示にならないように調整して下さい。<br />'; } if ($arrValues['total_point'] < 0) { $arrErr['use_point'] = '最終保持ポイントがマイナス表示にならないように調整して下さい。<br />'; } $objFormParam->setParam($arrValues); $arrErr = array_merge($arrErr, $arrErrTemp); return $arrErr; }
/** * 商品規格エラーチェック. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return array エラー結果の配列 */ function lfCheckProductsClass(&$objFormParam) { $arrValues = $objFormParam->getHashArray(); $arrErr = $objFormParam->checkError(); $total = $objFormParam->getValue('total'); if (SC_Utils_Ex::isBlank($arrValues['check'])) { $arrErr['check_empty'] = t('c_* A standard is not selected.<br />_01'); } for ($i = 0; $i < $total; $i++) { /* * チェックボックスの入っている項目のみ, 必須チェックを行う. * エラーを配列で返す必要があるため, SC_CheckError を使用しない. */ if (!SC_Utils_Ex::isBlank($arrValues['check'][$i])) { /* * 販売価格の必須チェック */ if (SC_Utils_Ex::isBlank($arrValues['price02'][$i])) { $arrErr['price02'][$i] = t('c_* T_ARG1 is blank. <br />_01', array('T_ARG1' => SALE_PRICE_TITLE)); } /* * 在庫数の必須チェック */ if ((SC_Utils_Ex::isBlank($arrValues['stock_unlimited'][$i]) || $arrValues['stock_unlimited'][$i] != 1) && SC_Utils_Ex::isBlank($arrValues['stock'][$i])) { $arrErr['stock'][$i] = t('c_* Inventory count is not entered.<br />_01'); } /* * 商品種別の必須チェック */ if (SC_Utils_Ex::isBlank($arrValues['product_type_id'][$i])) { $arrErr['product_type_id'][$i] = t('c_* Select one for the product type.<br />_01'); } /* * ダウンロード商品の必須チェック */ if ($arrValues['product_type_id'][$i] == PRODUCT_TYPE_DOWNLOAD) { if (SC_Utils_Ex::isBlank($arrValues['down_filename'][$i])) { $arrErr['down_filename'][$i] = t('c_* For downloaded products, enter the name of the downloaded file.<br />_01'); } if (SC_Utils_Ex::isBlank($arrValues['down_realfilename'][$i])) { $arrErr['down_realfilename'][$i] = t('c_* For downloaded products, please upload the file for the downloaded product. <br />_01'); } } else { if ($arrValues['product_type_id'][$i] == PRODUCT_TYPE_NORMAL) { if (!SC_Utils_Ex::isBlank($arrValues['down_filename'][$i])) { $arrErr['down_filename'][$i] = t('c_* For regular products, it is not possible to set a download file name.<br />_01'); } if (!SC_Utils_Ex::isBlank($arrValues['down_realfilename'][$i])) { $arrErr['down_realfilename'][$i] = t('c_* For actual products, it is not possible to upload the file for the downloaded product. <br /> Please cancel the file. <br />_01'); } } } } } return $arrErr; }
/** * uploadモードのパラメーター検証を行う. * * @param SC_FormParam $objFormParam SC_FormParamのインスタンス * @param SC_UploadFile_Ex $objUpFile SC_UploadFileのインスタンス * @return array エラー情報を格納した連想配列, エラーが無ければ(多分)nullを返す */ public function lfCheckError(&$objFormParam, &$objUpFile) { $arrErr = $objFormParam->checkError(); $template_code = $objFormParam->getValue('template_code'); // 同名のフォルダが存在する場合はエラー if (file_exists(USER_TEMPLATE_REALDIR . $template_code) && $template_code != "") { $arrErr['template_code'] = '※ 同名のファイルがすでに存在します。<br/>'; } // 登録不可の文字列チェック $arrIgnoreCode = array('admin', MOBILE_DEFAULT_TEMPLATE_NAME, SMARTPHONE_DEFAULT_TEMPLATE_NAME, DEFAULT_TEMPLATE_NAME); if (in_array($template_code, $arrIgnoreCode)) { $arrErr['template_code'] = '※ このテンプレートコードは使用できません。<br/>'; } // DBにすでに登録されていないかチェック $objQuery =& SC_Query_Ex::getSingletonInstance(); $exists = $objQuery->exists('dtb_templates', 'template_code = ?', array($template_code)); if ($exists) { $arrErr['template_code'] = '※ すでに登録されているテンプレートコードです。<br/>'; } /* * ファイル形式チェック * ファイルが壊れていることも考慮して, 展開可能かチェックする. */ $tar = new Archive_Tar($_FILES['template_file']['tmp_name'], true); $arrArchive = $tar->listContent(); if (!is_array($arrArchive)) { $arrErr['template_file'] = '※ テンプレートファイルが解凍できません。許可されている形式は、tar/tar.gzです。<br />'; } else { $make_temp_error = $objUpFile->makeTempFile('template_file', false); if (!SC_Utils_Ex::isBlank($make_temp_error)) { $arrErr['template_file'] = $make_temp_error; } } return $arrErr; }
/** * アクセスチェック * * @return boolean */ public function isValidAccess($mode) { $objLog = new LC_Upgrade_Helper_Log(); switch ($mode) { // モジュールダウンロード case 'download': if ($this->isLoggedInAdminPage() === true) { $objLog->log('* admin login ok'); return true; } break; // 自動アップロード最新ファイル取得 // 自動アップロード最新ファイル取得 case 'patch_download': // モジュール自動アップロード // モジュール自動アップロード case 'auto_update': $objForm = new SC_FormParam(); $objForm->addParam('public_key', 'public_key', MTEXT_LEN, '', array('EXIST_CHECK', 'ALNUM_CHECK', 'MAX_LENGTH_CHECK')); $objForm->addParam('sha1_key', 'sha1_key', MTEXT_LEN, '', array('EXIST_CHECK', 'ALNUM_CHECK', 'MAX_LENGTH_CHECK')); $objForm->setParam($_POST); $objLog->log('* param check start'); $arrErr = $objForm->checkError(); if ($arrErr) { $objLog->log('* invalid param ' . print_r($arrErr, true)); return false; } $objLog->log('* public_key check start'); $public_key = $this->getPublicKey(); if (empty($public_key)) { $objLog->log('* public_key not found'); return false; } $sha1_key = $objForm->getValue('sha1_key'); $public_key_sha1 = $objForm->getValue('public_key'); $objLog->log('* ip check start'); if ($public_key_sha1 === sha1($public_key . $sha1_key)) { $objLog->log('* auto update login ok'); return true; } break; default: $objLog->log('* mode invalid ' . $mode); return false; } return false; }
/** * 入力内容のチェックを行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return void */ function lfCheckError(&$objFormParam) { // 入力データを渡す。 $arrRet = $objFormParam->getHashArray(); $objErr = new SC_CheckError_Ex($arrRet); $objErr->arrErr = $objFormParam->checkError(); switch ($this->getMode()) { case 'search': $objErr->doFunc(array("投稿者", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE")); $objErr->doFunc(array("開始日", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE")); $objErr->doFunc(array("終了日", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_DATE")); $objErr->doFunc(array("開始日", "終了日", "search_startyear", "search_startmonth", "search_startday", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_SET_TERM")); break; case 'complete': $objErr->doFunc(array("おすすめレベル", "recommend_level"), array("SELECT_CHECK")); $objErr->doFunc(array("タイトル", 'title', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); $objErr->doFunc(array("コメント", 'comment', LTEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); break; } return $objErr->arrErr; }
/** * 入力内容のチェックを行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return void */ function lfCheckError(&$objFormParam) { $objErr = new SC_CheckError_Ex($objFormParam->getHashArray()); $objErr->arrErr = $objFormParam->checkError(); // 相関チェック $objErr->doFunc(array("注文番号1", "注文番号2", "search_order_id1", "search_order_id2"), array("GREATER_CHECK")); $objErr->doFunc(array("年齢1", "年齢2", "search_age1", "search_age2"), array("GREATER_CHECK")); $objErr->doFunc(array("購入金額1", "購入金額2", "search_total1", "search_total2"), array("GREATER_CHECK")); // 受注日 $objErr->doFunc(array("開始", "search_sorderyear", "search_sordermonth", "search_sorderday"), array("CHECK_DATE")); $objErr->doFunc(array("終了", "search_eorderyear", "search_eordermonth", "search_eorderday"), array("CHECK_DATE")); $objErr->doFunc(array("開始", "終了", "search_sorderyear", "search_sordermonth", "search_sorderday", "search_eorderyear", "search_eordermonth", "search_eorderday"), array("CHECK_SET_TERM")); // 更新日 $objErr->doFunc(array("開始", "search_supdateyear", "search_supdatemonth", "search_supdateday"), array("CHECK_DATE")); $objErr->doFunc(array("終了", "search_eupdateyear", "search_eupdatemonth", "search_eupdateday"), array("CHECK_DATE")); $objErr->doFunc(array("開始", "終了", "search_supdateyear", "search_supdatemonth", "search_supdateday", "search_eupdateyear", "search_eupdatemonth", "search_eupdateday"), array("CHECK_SET_TERM")); // 生年月日 $objErr->doFunc(array("開始", "search_sbirthyear", "search_sbirthmonth", "search_sbirthday"), array("CHECK_DATE")); $objErr->doFunc(array("終了", "search_ebirthyear", "search_ebirthmonth", "search_ebirthday"), array("CHECK_DATE")); $objErr->doFunc(array("開始", "終了", "search_sbirthyear", "search_sbirthmonth", "search_sbirthday", "search_ebirthyear", "search_ebirthmonth", "search_ebirthday"), array("CHECK_SET_TERM")); return $objErr->arrErr; }
/** * エラーチェック * * @param SC_FormParam $objFormParam * @param boolean $add 追加か * @return void */ function checkError(&$objFormParam, $add) { $objQuery =& SC_Query_Ex::getSingletonInstance(); // 入力項目チェック $arrErr = $objFormParam->checkError(); if (!empty($arrErr)) { return $arrErr; } $category_id = $objFormParam->getValue('category_id'); $parent_category_id = $objFormParam->getValue('parent_category_id'); $category_name = $objFormParam->getValue('category_name'); // 追加の場合に固有のチェック if ($add) { // 登録数上限チェック $where = 'del_flg = 0'; $count = $objQuery->count('dtb_category', $where); if ($count >= CATEGORY_MAX) { $arrErr['category_name'] = '※ カテゴリの登録最大数を超えました。<br/>'; return $arrErr; } // 階層上限チェック if ($this->isOverLevel($parent_category_id)) { $arrErr['category_name'] = '※ ' . LEVEL_MAX . '階層以上の登録はできません。<br/>'; return $arrErr; } } // 重複チェック $arrWhereVal = array(); $where = 'del_flg = 0 AND parent_category_id = ? AND category_name = ?'; $arrWhereVal[] = $parent_category_id; $arrWhereVal[] = $category_name; // 更新の場合、抽出対象から自己を除外する if (!$add) { $where .= ' AND category_id <> ?'; $arrWhereVal[] = $category_id; } $exists = $objQuery->exists('dtb_category', $where, $arrWhereVal); if ($exists) { $arrErr['category_name'] = '※ 既に同じ内容の登録が存在します。<br/>'; return $arrErr; } return $arrErr; }
/** * 入力内容のチェックを行う. * * 追加の必須チェック, 相関チェックを行うため, SC_CheckError を使用する. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return array エラー情報の配 */ function lfCheckError(&$objFormParam) { // 入力値の変換 $objFormParam->convParam(); $objFormParam->toLower('order_mail'); $objFormParam->toLower('order_mail_check'); $arrParams = $objFormParam->getHashArray(); $objErr = new SC_CheckError_Ex($arrParams); $objErr->arrErr = $objFormParam->checkError(); // 別のお届け先チェック if (isset($arrParams['deliv_check']) && $arrParams['deliv_check'] == '1') { $objErr->doFunc(array('お名前(姓)', 'shipping_name01'), array('EXIST_CHECK')); $objErr->doFunc(array('お名前(名)', 'shipping_name02'), array('EXIST_CHECK')); $objErr->doFunc(array('お名前(フリガナ・姓)', 'shipping_kana01'), array('EXIST_CHECK')); $objErr->doFunc(array('お名前(フリガナ・名)', 'shipping_kana02'), array('EXIST_CHECK')); $objErr->doFunc(array('郵便番号1', 'shipping_zip01'), array('EXIST_CHECK')); $objErr->doFunc(array('郵便番号2', 'shipping_zip02'), array('EXIST_CHECK')); $objErr->doFunc(array('都道府県', 'shipping_pref'), array('EXIST_CHECK')); $objErr->doFunc(array('住所1', 'shipping_addr01'), array('EXIST_CHECK')); $objErr->doFunc(array('住所2', 'shipping_addr02'), array('EXIST_CHECK')); $objErr->doFunc(array('電話番号1', 'shipping_tel01'), array('EXIST_CHECK')); $objErr->doFunc(array('電話番号2', 'shipping_tel02'), array('EXIST_CHECK')); $objErr->doFunc(array('電話番号3', 'shipping_tel03'), array('EXIST_CHECK')); } // 複数項目チェック $objErr->doFunc(array('TEL', 'order_tel01', 'order_tel02', 'order_tel03'), array('TEL_CHECK')); $objErr->doFunc(array('FAX', 'order_fax01', 'order_fax02', 'order_fax03'), array('TEL_CHECK')); $objErr->doFunc(array('郵便番号', 'order_zip01', 'order_zip02'), array('ALL_EXIST_CHECK')); $objErr->doFunc(array('TEL', 'shipping_tel01', 'shipping_tel02', 'shipping_tel03'), array('TEL_CHECK')); $objErr->doFunc(array('郵便番号', 'shipping_zip01', 'shipping_zip02'), array('ALL_EXIST_CHECK')); $objErr->doFunc(array('生年月日', 'year', 'month', 'day'), array('CHECK_BIRTHDAY')); $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', 'order_email', 'order_email02'), array('EQUAL_CHECK')); return $objErr->arrErr; }
/** * 入力内容のチェックを行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return array エラーメッセージの配列 */ function lfCheckError(&$objFormParam) { $objProduct = new SC_Product_Ex(); $arrErr = $objFormParam->checkError(); if (!SC_Utils_Ex::isBlank($objErr->arrErr)) { return $arrErr; } $arrValues = $objFormParam->getHashArray(); // 商品の種類数 $max = count($arrValues['quantity']); $subtotal = 0; $totalpoint = 0; $totaltax = 0; for ($i = 0; $i < $max; $i++) { // 小計の計算 $subtotal += SC_Helper_DB_Ex::sfCalcIncTax($arrValues['price'][$i]) * $arrValues['quantity'][$i]; // 小計の計算 $totaltax += SC_Helper_DB_Ex::sfTax($arrValues['price'][$i]) * $arrValues['quantity'][$i]; // 加算ポイントの計算 $totalpoint += SC_Utils_Ex::sfPrePoint($arrValues['price'][$i], $arrValues['point_rate'][$i]) * $arrValues['quantity'][$i]; // 在庫数のチェック $arrProduct = $objProduct->getDetailAndProductsClass($arrValues['product_class_id'][$i]); // 編集前の値と比較するため受注詳細を取得 $objPurchase = new SC_Helper_Purchase_Ex(); $arrOrderDetail = SC_Utils_Ex::sfSwapArray($objPurchase->getOrderDetail($objFormParam->getValue('order_id'), false)); if ($arrProduct['stock_unlimited'] != '1' && $arrProduct['stock'] < $arrValues['quantity'][$i] - $arrOrderDetail['quantity'][$i]) { $class_name1 = $arrValues['classcategory_name1'][$i]; $class_name1 = SC_Utils_Ex::isBlank($class_name1) ? 'なし' : $class_name1; $class_name2 = $arrValues['classcategory_name2'][$i]; $class_name2 = SC_Utils_Ex::isBlank($class_name2) ? 'なし' : $class_name2; $arrErr['quantity'][$i] .= $arrValues['product_name'][$i] . '/(' . $class_name1 . ')/(' . $class_name2 . ') の在庫が不足しています。 設定できる数量は「' . ($arrOrderDetail['quantity'][$i] + $arrProduct['stock']) . '」までです。<br />'; } } // 消費税 $arrValues['tax'] = $totaltax; // 小計 $arrValues['subtotal'] = $subtotal; // 合計 $arrValues['total'] = $subtotal - $arrValues['discount'] + $arrValues['deliv_fee'] + $arrValues['charge']; // お支払い合計 $arrValues['payment_total'] = $arrValues['total'] - $arrValues['use_point'] * POINT_VALUE; // 加算ポイント $arrValues['add_point'] = SC_Helper_DB_Ex::sfGetAddPoint($totalpoint, $arrValues['use_point']); // 最終保持ポイント $arrValues['total_point'] = $objFormParam->getValue('point') - $arrValues['use_point']; if ($arrValues['total'] < 0) { $arrErr['total'] = '合計額がマイナス表示にならないように調整して下さい。<br />'; } if ($arrValues['payment_total'] < 0) { $arrErr['payment_total'] = 'お支払い合計額がマイナス表示にならないように調整して下さい。<br />'; } if ($arrValues['total_point'] < 0) { $arrErr['use_point'] = '最終保持ポイントがマイナス表示にならないように調整して下さい。<br />'; } $objFormParam->setParam($arrValues); return $arrErr; }
/** * 入力内容のチェックを行なう. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param integer $subtotal 購入金額の小計 * @param integer $max_point 会員の保持ポイント * @return array 入力チェック結果の配列 */ function lfCheckError(&$objFormParam, $subtotal, $max_point) { $objPurchase = new SC_Helper_Purchase_Ex(); // 入力データを渡す。 $arrForm = $objFormParam->getHashArray(); $objErr = new SC_CheckError_Ex($arrForm); $objErr->arrErr = $objFormParam->checkError(); if (USE_POINT === false) { return $objErr->arrErr; } if ($arrForm['point_check'] == '1') { $objErr->doFunc(array(t('c_Use points_01'), 'point_check'), array('EXIST_CHECK')); $objErr->doFunc(array(t('c_Points_01'), 'use_point'), array('EXIST_CHECK')); if ($max_point == '') { $max_point = 0; } // FIXME mobile 互換のため br は閉じない... if ($arrForm['use_point'] > $max_point) { $objErr->arrErr['use_point'] = t('c_* The number of points you want to use exceeds the number of points you have.<br />_01'); } if ($arrForm['use_point'] * POINT_VALUE > $subtotal) { $objErr->arrErr['use_point'] = t('c_* The number of points you want to use exceeds the amount of your purchase.<br />_01'); } // ポイント差し引き後の決済方法チェック $arrPayments = $objPurchase->getPaymentsByPaymentsId($arrForm['payment_id']); if ($arrPayments['rule_max'] > $subtotal - $arrForm['use_point'] * POINT_VALUE) { $objErr->arrErr['use_point'] = t('c_* Based on the selected payment method, it is possible to use (T_ARG1 - T_ARG2) points.<br />_01', array('T_ARG1' => $subtotal, 'T_ARG2' => $arrPayments['rule_max'])); } } return $objErr->arrErr; }
/** * 入力内容のチェックを行なう. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return array 入力チェック結果の配列 */ function lfCheckError(&$objFormParam) { // 入力データを渡す。 $arrForm = $objFormParam->getHashArray(); $objErr = new SC_CheckError_Ex($arrForm); $objErr->arrErr = $objFormParam->checkError(); $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', 'email', 'email02'), array('EQUAL_CHECK')); return $objErr->arrErr; }
/** * 入力内容のチェックを行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return void */ function lfCheckError(&$objFormParam) { $objErr = new SC_CheckError_Ex($objFormParam->getHashArray()); $objErr->arrErr = $objFormParam->checkError(); // 相関チェック $objErr->doFunc(array('注文番号1', '注文番号2', 'search_order_id1', 'search_order_id2'), array('GREATER_CHECK')); $objErr->doFunc(array('年齢1', '年齢2', 'search_age1', 'search_age2'), array('GREATER_CHECK')); $objErr->doFunc(array('購入金額1', '購入金額2', 'search_total1', 'search_total2'), array('GREATER_CHECK')); // 受注日 $objErr->doFunc(array('開始', 'search_sorderyear', 'search_sordermonth', 'search_sorderday'), array('CHECK_DATE')); $objErr->doFunc(array('終了', 'search_eorderyear', 'search_eordermonth', 'search_eorderday'), array('CHECK_DATE')); $objErr->doFunc(array('開始', '終了', 'search_sorderyear', 'search_sordermonth', 'search_sorderday', 'search_eorderyear', 'search_eordermonth', 'search_eorderday'), array('CHECK_SET_TERM')); // 更新日 $objErr->doFunc(array('開始', 'search_supdateyear', 'search_supdatemonth', 'search_supdateday'), array('CHECK_DATE')); $objErr->doFunc(array('終了', 'search_eupdateyear', 'search_eupdatemonth', 'search_eupdateday'), array('CHECK_DATE')); $objErr->doFunc(array('開始', '終了', 'search_supdateyear', 'search_supdatemonth', 'search_supdateday', 'search_eupdateyear', 'search_eupdatemonth', 'search_eupdateday'), array('CHECK_SET_TERM')); // 生年月日 $objErr->doFunc(array('開始', 'search_sbirthyear', 'search_sbirthmonth', 'search_sbirthday'), array('CHECK_DATE')); $objErr->doFunc(array('終了', 'search_ebirthyear', 'search_ebirthmonth', 'search_ebirthday'), array('CHECK_DATE')); $objErr->doFunc(array('開始', '終了', 'search_sbirthyear', 'search_sbirthmonth', 'search_sbirthday', 'search_ebirthyear', 'search_ebirthmonth', 'search_ebirthday'), array('CHECK_SET_TERM')); return $objErr->arrErr; }
/** * 入力内容のチェックを行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return array エラーメッセージの配列 */ function lfCheckError(&$objFormParam) { $arrErr = $objFormParam->checkError(); $arrForm = $objFormParam->getHashArray(); // 重複メッセージの判定 $objQuery =& SC_Query_Ex::getSingletonInstance(); $exists = $objQuery->exists('dtb_review', 'product_id = ? AND title = ? ', array($arrForm['product_id'], $arrForm['title'])); if ($exists) { $arrErr['title'] .= '重複したタイトルは登録できません。'; } if (REVIEW_ALLOW_URL == false) { $objErr = new SC_CheckError_Ex($objFormParam->getHashArray()); // コメント欄へのURLの入力を禁止 $objErr->doFunc(array('URL', 'comment', $this->arrReviewDenyURL), array('PROHIBITED_STR_CHECK')); $arrErr += $objErr->arrErr; } return $arrErr; }
/** * 入力内容のチェックを行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return array エラーメッセージの配列 */ public function lfCheckError(&$objFormParam) { $arrErr = $objFormParam->checkError(); if (REVIEW_ALLOW_URL == false) { $objErr = new SC_CheckError_Ex($objFormParam->getHashArray()); // コメント欄へのURLの入力を禁止 $objErr->doFunc(array('URL', 'comment', $this->arrReviewDenyURL), array('PROHIBITED_STR_CHECK')); $arrErr += $objErr->arrErr; } return $arrErr; }
/** * 会員検索パラメーター エラーチェック(管理画面用) * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @access public * @return array エラー配列 */ public function sfCheckErrorSearchParam(&$objFormParam) { // パラメーターの基本チェック $arrErr = $objFormParam->checkError(); // エラーチェック対象のパラメータ取得 $array = $objFormParam->getHashArray(); // 拡張エラーチェック初期化 $objErr = new SC_CheckError_Ex($array); // 拡張エラーチェック $objErr->doFunc(array('誕生日(開始日)', 'search_b_start_year', 'search_b_start_month', 'search_b_start_day'), array('CHECK_DATE')); $objErr->doFunc(array('誕生日(終了日)', 'search_b_end_year', 'search_b_end_month', 'search_b_end_day'), array('CHECK_DATE')); $objErr->doFunc(array('誕生日(開始日)', '誕生日(終了日)', 'search_b_start_year', 'search_b_start_month', 'search_b_start_day', 'search_b_end_year', 'search_b_end_month', 'search_b_end_day'), array('CHECK_SET_TERM')); $objErr->doFunc(array('登録・更新日(開始日)', 'search_start_year', 'search_start_month', 'search_start_day'), array('CHECK_DATE')); $objErr->doFunc(array('登録・更新日(終了日)', 'search_end_year', 'search_end_month', 'search_end_day'), array('CHECK_DATE')); $objErr->doFunc(array('登録・更新日(開始日)', '登録・更新日(終了日)', 'search_start_year', 'search_start_month', 'search_start_day', 'search_end_year', 'search_end_month', 'search_end_day'), array('CHECK_SET_TERM')); $objErr->doFunc(array('最終購入日(開始)', 'search_buy_start_year', 'search_buy_start_month', 'search_buy_start_day'), array('CHECK_DATE')); $objErr->doFunc(array('最終購入日(終了)', 'search_buy_end_year', 'search_buy_end_month', 'search_buy_end_day'), array('CHECK_DATE')); // 開始 > 終了 の場合はエラーとする $objErr->doFunc(array('最終購入日(開始)', '最終購入日(終了)', 'search_buy_start_year', 'search_buy_start_month', 'search_buy_start_day', 'search_buy_end_year', 'search_buy_end_month', 'search_buy_end_day'), array('CHECK_SET_TERM')); if (SC_Utils_Ex::sfIsInt($array['search_buy_total_from']) && SC_Utils_Ex::sfIsInt($array['search_buy_total_to']) && $array['search_buy_total_from'] > $array['search_buy_total_to']) { $objErr->arrErr['search_buy_total_from'] .= '※ 購入金額の指定範囲が不正です。'; } if (SC_Utils_Ex::sfIsInt($array['search_buy_times_from']) && SC_Utils_Ex::sfIsInt($array['search_buy_times_to']) && $array['search_buy_times_from'] > $array['search_buy_times_to']) { $objErr->arrErr['search_buy_times_from'] .= '※ 購入回数の指定範囲が不正です。'; } if (!SC_Utils_Ex::isBlank($objErr->arrErr)) { $arrErr = array_merge($arrErr, $objErr->arrErr); } return $arrErr; }
/** * 入力内容のチェックを行う. * * 追加の必須チェック, 相関チェックを行うため, SC_CheckError を使用する. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return array エラー情報の配 */ function lfCheckError(&$objFormParam) { // 入力値の変換 $objFormParam->convParam(); $objFormParam->toLower('order_mail'); $objFormParam->toLower('order_mail_check'); $arrParams = $objFormParam->getHashArray(); $objErr = new SC_CheckError_Ex($arrParams); $objErr->arrErr = $objFormParam->checkError(); // 別のお届け先チェック if (isset($arrParams['deliv_check']) && $arrParams['deliv_check'] == '1') { $objErr->doFunc(array(t('c_Name (last name)_01'), 'shipping_name01'), array('EXIST_CHECK')); $objErr->doFunc(array(t('c_Name (first name)_01'), 'shipping_name02'), array('EXIST_CHECK')); // $objErr->doFunc(array(t('c_Name (last name) KANA_01'), 'shipping_kana01'), array('EXIST_CHECK')); // $objErr->doFunc(array(t('c_Name (first name) KANA_01'), 'shipping_kana02'), array('EXIST_CHECK')); // $objErr->doFunc(array(t('c_Postal code 1_01'), 'shipping_zip01'), array('EXIST_CHECK')); // $objErr->doFunc(array(t('c_Postal code 2_01'), 'shipping_zip02'), array('EXIST_CHECK')); $objErr->doFunc(array(t('c_Postal code_01'), 'shipping_zipcode'), array('EXIST_CHECK')); $objErr->doFunc(array(t('c_Address 1_01'), 'shipping_addr01'), array('EXIST_CHECK')); $objErr->doFunc(array(t('c_Address 2_01'), 'shipping_addr02'), array('EXIST_CHECK')); $objErr->doFunc(array(t('c_Telephone number 1_01'), 'shipping_tel01'), array('EXIST_CHECK')); $objErr->doFunc(array(t('c_Telephone number 2_01'), 'shipping_tel02'), array('EXIST_CHECK')); $objErr->doFunc(array(t('c_Telephone number 3_01'), 'shipping_tel03'), array('EXIST_CHECK')); } // 複数項目チェック $objErr->doFunc(array(t('c_TEL_01'), 'order_tel01', 'order_tel02', 'order_tel03'), array('TEL_CHECK')); $objErr->doFunc(array(t('c_FAX_01'), 'order_fax01', 'order_fax02', 'order_fax03'), array('TEL_CHECK')); // $objErr->doFunc(array(t('c_Postal code_01'), 'order_zip01', 'order_zip02'), array('ALL_EXIST_CHECK')); $objErr->doFunc(array(t('c_TEL_01'), 'shipping_tel01', 'shipping_tel02', 'shipping_tel03'), array('TEL_CHECK')); // $objErr->doFunc(array(t('c_Postal code_01'), 'shipping_zip01', 'shipping_zip02'), array('ALL_EXIST_CHECK')); $objErr->doFunc(array(t('c_Date of birth_01'), 'year', 'month', 'day'), array('CHECK_BIRTHDAY')); $objErr->doFunc(array(t('c_E-mail address_01'), t('c_E-mail address (confirmation)_01'), 'order_email', 'order_email02'), array('EQUAL_CHECK')); return $objErr->arrErr; }