/** * フォームパラメータ初期化 * * @return void */ function initForm() { $objForm = new SC_FormParam(); $objForm->addParam('mode', 'mode', INT_LEN, '', array('ALPHA_CHECK', 'MAX_LENGTH_CHECK')); $objForm->setParam($_GET); $this->objForm = $objForm; }
function doPreEdit(SC_Query $objQuery, SC_FormParam &$objFormParam) { if (!SC_Utils_Ex::isBlank($this->arrErr)) { return; } $edit_device_id = $objFormParam->getValue("edit_device_id"); $arrHash = compact("edit_device_id"); $objSql = new SC_DeviceAndroidSelect_Ex($arrHash); if ($objSql->exists()) { $arrRet = $objSql->getOne(); GC_Utils_Ex::gfPrintLog(print_r($objSql, true), DEBUG_LOG_REALFILE); GC_Utils_Ex::gfPrintLog(print_r($arrRet, true), DEBUG_LOG_REALFILE); $arrRet["category_id"] = SC_Helper_Device_Ex::getCategoryIds($objQuery, $edit_device_id); $objFormParam->setParam($arrRet); GC_Utils_Ex::gfPrintLog(print_r($objFormParam->getHashArray(), true), DEBUG_LOG_REALFILE); GC_Utils_Ex::gfPrintLog(print_r($arrRet, true), DEBUG_LOG_REALFILE); } else { SC_Utils_Ex::sfDispError(""); } $arrDateColumn = $this->ARR_DATE_COLUMN; foreach ($arrDateColumn as $column) { if ($this->is1970($arrRet, $column)) { continue; } $date_keys = $this->date_keys($column); $value = $arrRet[$column]; $objFormParam->setDBDate($value, $date_keys["year"], $date_keys["month"], $date_keys["day"]); } GC_Utils_Ex::gfPrintLog(print_r($objFormParam->getHashArray(), true), DEBUG_LOG_REALFILE); $this->arrForm = $objFormParam->getHashArray(); }
/** * パラメーター情報の初期化を行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param boolean $deliv_only 必須チェックは deliv_id のみの場合 true * @param array $arrShipping 配送先情報の配列 * @return void */ function lfInitParam(&$objFormParam, $deliv_only, &$arrShipping) { $objFormParam->addParam('配送業者', 'deliv_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); $objFormParam->addParam('ポイント', 'use_point', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK', 'ZERO_START')); $objFormParam->addParam('その他お問い合わせ', 'message', LTEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('ポイントを使用する', 'point_check', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), '2'); if ($deliv_only) { $objFormParam->addParam('お支払い方法', 'payment_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); } else { $objFormParam->addParam('お支払い方法', 'payment_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); foreach ($arrShipping as $val) { $objFormParam->addParam('お届け時間', 'deliv_time_id' . $val['shipping_id'], INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); $objFormParam->addParam('お届け日', 'deliv_date' . $val['shipping_id'], STEXT_LEN, 'KVa', array('MAX_LENGTH_CHECK')); } } $objFormParam->setParam($arrParam); $objFormParam->convParam(); }
/** * 入力内容のチェックを行う. * * @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; }
/** * 規格の組み合わせ一覧を表示する. * * 規格1, 規格2における規格分類のすべての組み合わせを取得し, * 該当商品の商品規格の内容を取得後, フォームに設定する. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return void */ function doDisp(&$objFormParam) { $product_id = $objFormParam->getValue('product_id'); $class_id1 = $objFormParam->getValue('class_id1'); $class_id2 = $objFormParam->getValue('class_id2'); // すべての組み合わせを取得し, フォームに設定 $arrClassCat = $this->getAllClassCategory($class_id1, $class_id2); $total = count($arrClassCat); $objFormParam->setValue('total', $total); $objFormParam->setParam(SC_Utils_Ex::sfSwapArray($arrClassCat)); // class_id1, class_id2 を, 入力値で上書き $objFormParam->setValue('class_id1', $class_id1); $objFormParam->setValue('class_id2', $class_id2); // 商品情報を取得し, フォームに設定 $arrProductsClass = $this->getProductsClass($product_id); foreach ($arrProductsClass as $key => $val) { // 組み合わせ数分の値の配列を生成する $arrValues = array(); for ($i = 0; $i < $total; $i++) { $arrValues[] = $val; } $objFormParam->setValue($key, $arrValues); } // 商品種別を 1 に初期化 $objFormParam->setValue('product_type_id', array_pad(array(), $total, 1)); }
/** * 削除対象の確認、削除をする * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param array $arrProductClassIds 削除対象配列の商品規格ID * @param integer $delete_product_class_id 削除商品規? ?ID * @param array $arrDeleteKeys 削除項目 * @return void */ public function checkDeleteProducts(&$objFormParam, $arrProductClassIds, $delete_product_class_id, $arrDeleteKeys) { foreach ($arrProductClassIds as $relation_index => $product_class_id) { //product_class_idの重複はないので、1つ削除したら完了 if ($product_class_id == $delete_product_class_id) { foreach ($arrDeleteKeys as $delete_key) { $arrProducts = $objFormParam->getValue($delete_key); $arrUpdateParams = array(); foreach ($arrProducts as $index => $product_info) { if ($index != $relation_index) { $arrUpdateParams[$delete_key][] = $product_info; } } $objFormParam->setParam($arrUpdateParams); } break; } } }
/** * テンプレートIDから情報の取得して$objFormParamにset_paramする * * @param SC_FormParam $objFormParam フォームパラメータークラス * @param array $template_id テンプレートID * @return void */ public function lfGetTemplateData(&$objFormParam, $template_id) { $objQuery =& SC_Query_Ex::getSingletonInstance(); $objQuery->setOrder('template_id DESC'); $where = 'template_id = ?'; $arrResults = $objQuery->getRow('*', 'dtb_mailmaga_template', $where, array($template_id)); $objFormParam->setParam($arrResults); }
function lfInitDownload() { $objForm = new SC_FormParam(); $objForm->addParam('template_code_temp', 'template_code_temp', STEXT_LEN, '', array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK", "ALNUM_CHECK")); $objForm->setParam($_POST); return $objForm; }
/** * newアクションの初期化. * SC_FormParamのインスタンスをメンバ変数にセットする. * * @param void * @return void */ function initNewMode($mode = "") { $objForm = new SC_FormParam(); $objForm->addParam('名前', 'name', STEXT_LEN, 'KV', array('EXIST_CHECK', 'MAX_LENGTH_CHECK')); $objForm->addParam('所属', 'department', STEXT_LEN, 'KV', array('MAX_LENGTH_CHECK')); $objForm->addParam('ログインID', 'login_id', '', '', array('EXIST_CHECK', 'ALNUM_CHECK')); if ($mode == "edit" && $_POST['password'] == DUMMY_PASS) { $objForm->addParam('パスワード', 'password', '', '', array('EXIST_CHECK')); } else { $objForm->addParam('パスワード', 'password', '', '', array('EXIST_CHECK', 'ALNUM_CHECK')); } $objForm->addParam('権限', 'authority', INT_LEN, '', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); $objForm->setParam($_POST); $objForm->convParam(); $this->objForm = $objForm; }
/** * * テンプレートの文言をフォームに入れる。 * @param SC_FormParam $objFormParam */ function changeData(&$objFormParam) { if (SC_Utils_Ex::sfIsInt($objFormParam->getValue('template_id'))) { $objQuery =& SC_Query_Ex::getSingletonInstance(); $where = 'template_id = ?'; $mailTemplates = $objQuery->select('subject, header, footer', 'dtb_mailtemplate', $where, array($objFormParam->getValue('template_id'))); if (!is_null($mailTemplates)) { foreach (array('subject', 'header', 'footer') as $key) { $objFormParam->setValue($key, $mailTemplates[$key]); } } $objFormParam->setParam($mailTemplates[0]); } else { foreach (array('subject', 'header', 'footer') as $key) { $objFormParam->setValue($key, ''); } } return $objFormParam; }
function initParam() { $objForm = new SC_FormParam(); $objForm->addParam('pageno', 'pageno', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK', 'EXIST_CHECK')); $objForm->addParam('id', 'id', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); $objForm->setParam($_GET); $this->objForm = $objForm; }
/** * パラメーター情報の初期化 * * @param SC_FormParam $objFormParam * @return array */ public function lfInitParam(SC_FormParam &$objFormParam) { $objFormParam->addParam('規格1', 'classcategory_id1', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('規格2', 'classcategory_id2', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('数量', 'quantity', INT_LEN, 'n', array('EXIST_CHECK', 'ZERO_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('管理者ログイン', 'admin', INT_LEN, 'a', array('ALNUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('商品ID', 'product_id', INT_LEN, 'n', array('EXIST_CHECK', 'ZERO_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('お気に入り商品ID', 'favorite_product_id', INT_LEN, 'n', array('ZERO_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('商品規格ID', 'product_class_id', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); // 値の取得 $objFormParam->setParam($_REQUEST); // 入力値の変換 $objFormParam->convParam(); // 入力情報を渡す return $objFormParam->getFormParamList(); }
/** * 入力内容のチェックを行う. * * @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) ? t('c_None_01') : $class_name1; $class_name2 = $arrValues['classcategory_name2'][$i]; $class_name2 = SC_Utils_Ex::isBlank($class_name2) ? t('c_None_01') : $class_name2; $arrErr['quantity'][$i] .= t('c_There is an inventory shortage for T_ARG1/(T_ARG2)/(T_ARG3). Up to T_ARG4 can be set for the quantity.<br />_1', array('T_ARG1' => $arrValues['product_name'][$i], 'T_ARG2' => $class_name1, 'T_ARG3' => $class_name2, 'T_ARG4' => $arrOrderDetail['quantity'][$i] + $arrProduct['stock'])); } } // 消費税 $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'] = t('c_Adjust so that the total amount is not a negative number.<br />_01'); } if ($arrValues['payment_total'] < 0) { $arrErr['payment_total'] = t('c_Adjust so that a negative number is not displayed for the payment total.<br />_01'); } if ($arrValues['total_point'] < 0) { $arrErr['use_point'] = t('c_Adjust the final number of points registered so that it does not become a negative number.<br />_01'); } $objFormParam->setParam($arrValues); return $arrErr; }
/** * フォームパラメータの初期化 * * @return SC_FormParam */ function initParam() { $objForm = new SC_FormParam(); $objForm->addParam('お届け先ID', 'other_deliv_id', INT_LEN, '', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); $objForm->setParam($_POST); $objForm->convParam(); return $objForm; }
/** * パラメーター情報の初期化を行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param boolean $deliv_only 必須チェックは deliv_id のみの場合 true * @param array $arrShipping 配送先情報の配列 * @return void */ function lfInitParam(&$objFormParam, $deliv_only, &$arrShipping) { $objFormParam->addParam(t('c_Delivery company_01'), 'deliv_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); $objFormParam->addParam(t('c_Points_01'), 'use_point', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK', 'ZERO_START')); $objFormParam->addParam(t('c_Other inquiries_01'), 'message', LTEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam(t('c_Use points_01'), 'point_check', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), '2'); if ($deliv_only) { $objFormParam->addParam(t('c_Payment method_02'), 'payment_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); } else { $objFormParam->addParam(t('c_Payment method_02'), 'payment_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); foreach ($arrShipping as $val) { $objFormParam->addParam(t('c_Delivery time_01'), 'deliv_time_id' . $val['shipping_id'], INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); $objFormParam->addParam(t('c_Delivery date_01'), 'deliv_date' . $val['shipping_id'], STEXT_LEN, 'KVa', array('MAX_LENGTH_CHECK')); } } $objFormParam->setParam($arrParam); $objFormParam->convParam(); }
/** * * テンプレートの文言をフォームに入れる。 * @param SC_FormParam $objFormParam */ function changeData(&$objFormParam) { $objQuery =& SC_Query_Ex::getSingletonInstance(); $template_id = $objFormParam->getValue('template_id'); // 未選択時 if (strlen($template_id) === 0) { $mailTemplates = null; } elseif (SC_Utils_Ex::sfIsInt($template_id)) { $where = 'template_id = ?'; $arrWhereVal = array($template_id); $mailTemplates = $objQuery->getRow('subject, header, footer', 'dtb_mailtemplate', $where, $arrWhereVal); } 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 SC_FormParam $objFormParam SC_FormParam インスタンス * @param boolean $deliv_only 必須チェックは deliv_id のみの場合 true * @param array $arrShipping 配送先情報の配列 * @return void */ function lfInitParam(&$objFormParam, $deliv_only, &$arrShipping) { $objFormParam->addParam("配送業者", "deliv_id", INT_LEN, 'n', array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); $objFormParam->addParam("ポイント", "use_point", INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK", "ZERO_START")); $objFormParam->addParam("その他お問い合わせ", 'message', LTEXT_LEN, 'KVa', array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); $objFormParam->addParam("ポイントを使用する", "point_check", INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK"), '2'); if ($deliv_only) { $objFormParam->addParam("お支払い方法", "payment_id", INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK")); } else { $objFormParam->addParam("お支払い方法", "payment_id", INT_LEN, 'n', array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); foreach ($arrShipping as $val) { $objFormParam->addParam("お届け時間", "deliv_time_id" . $val['shipping_id'], INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK")); $objFormParam->addParam("お届け日", "deliv_date" . $val['shipping_id'], STEXT_LEN, 'KVa', array("MAX_LENGTH_CHECK")); } } $objFormParam->setParam($arrParam); $objFormParam->convParam(); }
} } $objPage = new LC_Page(); $objView = new SC_SiteView(); $objSiteSess = new SC_SiteSession(); $objCartSess = new SC_CartSession(); $objCampaignSess = new SC_CampaignSession(); $objSiteInfo = $objView->objSiteInfo; $objCustomer = new SC_Customer(); $arrInfo = $objSiteInfo->data; // パラメータ管理クラス $objFormParam = new SC_FormParam(); // パラメータ情報の初期化 lfInitParam(); // POST値の取得 $objFormParam->setParam($_POST); // アクセスの正当性の判定 $uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess); //コンビニの種類で処理ファイルを切り替える switch ($_POST['mode']) { //完了 case 'complete': //エラーチェック $objPage->arrErr = lfCheckError(); if ($objPage->arrErr == "") { // マーチャント情報設定ファイルをインクルード //require("merchant.ini"); // 決済処理パッケージをインクルード require_once DATA_PATH . "vtcvsmdk/mdk/lib/BSCVS/Transaction.php"; require_once DATA_PATH . "vtcvsmdk/mdk/lib/BSCVS/Config.php"; require_once DATA_PATH . "vtcvsmdk/mdk/lib/BSCVS/Log.php";
function initParam() { $objForm = new SC_FormParam(); $objForm->addParam('log_id', 'log_id', INT_LEN, '', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); $objForm->setParam($_GET); return $objForm; }
/** * SC_FormParamクラスの初期化. * * @param void * @retrun object SC_FormParamのインスタンス */ function lfInitUpload() { $objForm = new SC_FormParam(); $objForm->addParam("テンプレートコード", "template_code", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK", "ALNUM_CHECK")); $objForm->addParam("テンプレート名", "template_name", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); $objForm->setParam($_POST); return $objForm; }
/** * 編集対象のカテゴリ名を, 入力ボックスへ表示する. * * @param SC_FormParam $objFormParam * @return void */ public function doPreEdit(&$objFormParam) { $category_id = $objFormParam->getValue('category_id'); $objCategory = new SC_Helper_Category_Ex(); $arrRes = $objCategory->get($category_id); $objFormParam->setParam($arrRes); $this->arrForm = $objFormParam->getHashArray(); }
/** * * テンプレートの文言をフォームに入れる。 * @param SC_FormParam $objFormParam */ public function changeData(&$objFormParam) { $template_id = $objFormParam->getValue('template_id'); // 未選択時 if (strlen($template_id) === 0) { $mailTemplates = null; // 有効選択時 } elseif (SC_Utils_Ex::sfIsInt($template_id)) { $objMailtemplate = new SC_Helper_Mailtemplate_Ex(); $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; }
/** * アクセスチェック * * @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 インスタンス * @param SC_CartSession $objCartSess SC_CartSession インスタンス * @return void */ public function setParamToSplitItems(&$objFormParam, &$objCartSess) { $cartLists =& $objCartSess->getCartList($objCartSess->getKey()); $arrItems = array(); $index = 0; foreach (array_keys($cartLists) as $key) { $arrProductsClass = $cartLists[$key]['productsClass']; $quantity = (int) $cartLists[$key]['quantity']; for ($i = 0; $i < $quantity; $i++) { foreach ($arrProductsClass as $key2 => $val) { $arrItems[$key2][$index] = $val; } $arrItems['quantity'][$index] = 1; $arrItems['price'][$index] = $cartLists[$key]['price']; $arrItems['price_inctax'][$index] = $cartLists[$key]['price_inctax']; $index++; } } $objFormParam->setParam($arrItems); $objFormParam->setValue('line_of_num', $index); }
/** * CSVアップロードを実行する * * @param SC_FormParam $objFormParam * @param SC_UploadFile $objUpFile * @param SC_Helper_DB $objDb * @return void */ function doUploadCsv(&$objFormParam, &$objUpFile) { // ファイルアップロードのチェック $objUpFile->makeTempFile('csv_file'); $arrErr = $objUpFile->checkExists(); if (count($arrErr) > 0) { $this->arrErr = $arrErr; return; } // 一時ファイル名の取得 $filepath = $objUpFile->getTempFilePath('csv_file'); // CSVファイルの文字コード変換 $enc_filepath = SC_Utils_Ex::sfEncodeFile($filepath, CHAR_CODE, CSV_TEMP_REALDIR); // CSVファイルのオープン $fp = fopen($enc_filepath, 'r'); // 失敗した場合はエラー表示 if (!$fp) { SC_Utils_Ex::sfDispError(''); } // 登録先テーブル カラム情報の初期化 $this->lfInitTableInfo(); // 登録フォーム カラム情報 $this->arrFormKeyList = $objFormParam->getKeyList(); // 登録対象の列数 $col_max_count = $objFormParam->getCount(); // 行数 $line_count = 0; $objQuery =& SC_Query_Ex::getSingletonInstance(); $objQuery->begin(); $errFlag = false; while (!feof($fp)) { $arrCSV = fgetcsv($fp, CSV_LINE_MAX); // 行カウント $line_count++; // ヘッダ行はスキップ if ($line_count == 1) { continue; } // 空行はスキップ if (empty($arrCSV)) { continue; } // 列数が異なる場合はエラー $col_count = count($arrCSV); if ($col_max_count != $col_count) { $this->addRowErr($line_count, t('c_* T_ARG1 was detected for the item quantity. The item quantity is T_ARG2._01', array('T_ARG1' => $col_count, 'T_ARG2' => $col_max_count))); $errFlag = true; break; } // シーケンス配列を格納する。 $objFormParam->setParam($arrCSV, true); $arrRet = $objFormParam->getHashArray(); $objFormParam->setParam($arrRet); // 入力値の変換 $objFormParam->convParam(); // <br>なしでエラー取得する。 $arrCSVErr = $this->lfCheckError($objFormParam); // 入力エラーチェック if (count($arrCSVErr) > 0) { foreach ($arrCSVErr as $err) { $this->addRowErr($line_count, $err); } $errFlag = true; break; } $category_id = $this->lfRegistCategory($objQuery, $line_count, $objFormParam); $this->addRowResult($line_count, t('c_Category ID: T_ARG1 /Category name: T_ARG2_01', array('T_ARG1' => $category_id, 'T_ARG2' => $objFormParam->getValue('category_name')))); } // 実行結果画面を表示 $this->tpl_mainpage = 'products/upload_csv_category_complete.tpl'; fclose($fp); if ($errFlag) { $objQuery->rollback(); return; } $objQuery->commit(); // カテゴリ件数を更新 SC_Helper_DB_EX::sfCountCategory($objQuery); return; }
/** * 編集対象のカテゴリ名を, 入力ボックスへ表示する. * * @param SC_FormParam $objFormParam * @return void */ function doPreEdit(&$objFormParam) { $category_id = $objFormParam->getValue('category_id'); $objQuery =& SC_Query_Ex::getSingletonInstance(); // 編集対象のカテゴリ名をDBより取得する $where = 'category_id = ?'; $arrRes = $objQuery->getRow('*', 'dtb_category', $where, array($category_id)); $objFormParam->setParam($arrRes); $this->arrForm = $objFormParam->getHashArray(); }
/** * registerアクションの初期化. * SC_FormParamを初期化しメンバ変数にセットする. * * @param void * @return void */ function initRegisterMode() { // 前後の空白を削除 if (isset($_POST['public_key'])) { $_POST['public_key'] = trim($_POST['public_key']); } $objForm = new SC_FormParam(); $objForm->addParam('認証キー', 'public_key', LTEXT_LEN, '', array('EXIST_CHECK', 'ALNUM_CHECK', 'MAX_LENGTH_CHECK')); $objForm->setParam($_POST); $this->objForm = $objForm; }
/** * 受注データを取得して, SC_FormParam へ設定する. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param integer $order_id 取得元の受注ID * @return void */ function setOrderToFormParam(&$objFormParam, $order_id) { $objPurchase = new SC_Helper_Purchase_Ex(); // 受注詳細を設定 $arrOrderDetail = $objPurchase->getOrderDetail($order_id, false); $objFormParam->setParam(SC_Utils_Ex::sfSwapArray($arrOrderDetail)); $arrShippingsTmp = $objPurchase->getShippings($order_id); $arrShippings = array(); foreach ($arrShippingsTmp as $row) { // お届け日の処理 if (!SC_Utils_Ex::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->setValue('shipping_quantity', count($arrShippings)); $objFormParam->setParam(SC_Utils_Ex::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); $objFormParam->setParam($arrOrder); // ポイントを設定 list($db_point, $rollback_point) = SC_Helper_DB_Ex::sfGetRollbackPoint($order_id, $arrOrder['use_point'], $arrOrder['add_point'], $arrOrder['status']); $objFormParam->setValue('total_point', $db_point); $objFormParam->setValue('point', $rollback_point); if (!SC_Utils_Ex::isBlank($objFormParam->getValue('customer_id'))) { $arrCustomer = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($objFormParam->getValue('customer_id')); $objFormParam->setValue('customer_point', $arrCustomer['point']); } }
/** * 入力済みの購入情報をフォームに設定する. * * 受注一時テーブル, セッションの配送情報から入力済みの購入情報を取得し, * フォームに設定する. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス * @param integer $uniqid 購入一時情報のユニークID * @return void */ function setFormParams(&$objFormParam, &$objPurchase, $uniqid) { $arrOrderTemp = $objPurchase->getOrderTemp($uniqid); if (SC_Utils_Ex::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 { $objFormParam->setParam($arrShippingTemp[0]); } $objFormParam->setValue('order_email02', $arrOrderTemp['order_email']); $objFormParam->setDBDate($arrOrderTemp['order_birth']); }