/** * Page のAction. * * @return void */ public function action() { //決済処理中ステータスのロールバック /* @var $objPurchase PurchaseHelper */ $objPurchase = Application::alias('eccube.helper.purchase'); $objPurchase->cancelPendingOrder(PENDING_ORDER_CANCEL_FLAG); /* @var $objProduct Product */ $objProduct = Application::alias('eccube.product'); // パラメーター管理クラス $objFormParam = Application::alias('eccube.form_param'); // パラメーター情報の初期化 $this->lfInitParam($objFormParam); // 値の設定 $objFormParam->setParam($_REQUEST); // 入力値の変換 $objFormParam->convParam(); // 値の取得 $this->arrForm = $objFormParam->getHashArray(); //modeの取得 $this->mode = $this->getMode(); //表示条件の取得 $this->arrSearchData = array('category_id' => $this->lfGetCategoryId(intval($this->arrForm['category_id'])), 'maker_id' => intval($this->arrForm['maker_id']), 'name' => $this->arrForm['name']); $this->orderby = $this->arrForm['orderby']; //ページング設定 $this->tpl_pageno = $this->arrForm['pageno']; $this->disp_number = $this->lfGetDisplayNum($this->arrForm['disp_number']); // 画面に表示するサブタイトルの設定 $this->tpl_subtitle = $this->lfGetPageTitle($this->mode, $this->arrSearchData['category_id']); // 画面に表示する検索条件を設定 $this->arrSearch = $this->lfGetSearchConditionDisp($this->arrSearchData); // 商品一覧データの取得 $arrSearchCondition = $this->lfGetSearchCondition($this->arrSearchData); $this->tpl_linemax = $this->lfGetProductAllNum($arrSearchCondition); $urlParam = "category_id={$this->arrSearchData['category_id']}&pageno=#page#"; // モバイルの場合に検索条件をURLの引数に追加 if (Application::alias('eccube.display')->detectDevice() === DEVICE_TYPE_MOBILE) { $searchNameUrl = urlencode(mb_convert_encoding($this->arrSearchData['name'], 'SJIS-win', 'UTF-8')); $urlParam .= "&mode={$this->mode}&name={$searchNameUrl}&orderby={$this->orderby}"; } $this->objNavi = Application::alias('eccube.page_navi', $this->tpl_pageno, $this->tpl_linemax, $this->disp_number, 'eccube.movePage', NAVI_PMAX, $urlParam, Application::alias('eccube.display')->detectDevice() !== DEVICE_TYPE_MOBILE); $this->arrProducts = $this->lfGetProductsList($arrSearchCondition, $this->disp_number, $this->objNavi->start_row, $objProduct); switch ($this->getMode()) { case 'json': $this->doJson($objProduct); break; default: $this->doDefault($objProduct, $objFormParam); break; } $this->tpl_rnd = Utils::sfGetRandomString(3); }
/** * 管理者データをUpdateする. * * @param array 管理者データの連想配列 * @return void */ public function updateMemberData($member_id, $arrMemberData) { $objQuery = Application::alias('eccube.query'); // Updateする値を作成する. $sqlVal = array(); $sqlVal['name'] = $arrMemberData['name']; $sqlVal['department'] = $arrMemberData['department']; $sqlVal['login_id'] = $arrMemberData['login_id']; $sqlVal['authority'] = $arrMemberData['authority']; $sqlVal['work'] = $arrMemberData['work']; $sqlVal['update_date'] = 'CURRENT_TIMESTAMP'; if ($arrMemberData['password'] != DEFAULT_PASSWORD) { $salt = Utils::sfGetRandomString(10); $sqlVal['salt'] = $salt; $sqlVal['password'] = Utils::sfGetHashString($arrMemberData['password'], $salt); } $where = 'member_id = ?'; // UPDATEの実行 $objQuery->update('dtb_member', $sqlVal, $where, array($member_id)); }
/** * 会員情報の登録・編集処理を行う. * * @param array $arrData 登録するデータの配列(FormParamのgetDbArrayの戻り値) * @param array $customer_id nullの場合はinsert, 存在する場合はupdate * @access public * @return integer 登録編集したユーザーのcustomer_id */ public function sfEditCustomerData($arrData, $customer_id = null) { /* @var $objQuery Query*/ $objQuery = Application::alias('eccube.query'); $objQuery->begin(); $old_version_flag = false; $arrData['update_date'] = 'CURRENT_TIMESTAMP'; // 更新日 // salt値の生成(insert時)または取得(update時)。 if (is_numeric($customer_id)) { $salt = $objQuery->get('salt', 'dtb_customer', 'customer_id = ? ', array($customer_id)); // 旧バージョン(2.11未満)からの移行を考慮 if (strlen($salt) === 0) { $old_version_flag = true; } } else { $salt = Utils::sfGetRandomString(10); $arrData['salt'] = $salt; } //-- パスワードの更新がある場合は暗号化 if ($arrData['password'] == DEFAULT_PASSWORD or $arrData['password'] == '') { //更新しない unset($arrData['password']); } else { // 旧バージョン(2.11未満)からの移行を考慮 if ($old_version_flag) { $is_password_updated = true; $salt = Utils::sfGetRandomString(10); $arrData['salt'] = $salt; } $arrData['password'] = Utils::sfGetHashString($arrData['password'], $salt); } //-- 秘密の質問の更新がある場合は暗号化 if ($arrData['reminder_answer'] == DEFAULT_PASSWORD or $arrData['reminder_answer'] == '') { //更新しない unset($arrData['reminder_answer']); // 旧バージョン(2.11未満)からの移行を考慮 if ($old_version_flag && $is_password_updated) { // パスワードが更新される場合は、平文になっている秘密の質問を暗号化する $reminder_answer = $objQuery->get('reminder_answer', 'dtb_customer', 'customer_id = ? ', array($customer_id)); $arrData['reminder_answer'] = Utils::sfGetHashString($reminder_answer, $salt); } } else { // 旧バージョン(2.11未満)からの移行を考慮 if ($old_version_flag && !$is_password_updated) { // パスワードが更新されない場合は、平文のままにする unset($arrData['salt']); } else { $arrData['reminder_answer'] = Utils::sfGetHashString($arrData['reminder_answer'], $salt); } } //デフォルト国IDを追加 if (FORM_COUNTRY_ENABLE == false) { $arrData['country_id'] = DEFAULT_COUNTRY_ID; } //-- 編集登録実行 if (is_numeric($customer_id)) { // 編集 $objQuery->update('dtb_customer', $arrData, 'customer_id = ? ', array($customer_id)); } else { // 新規登録 // 会員ID $customer_id = $objQuery->nextVal('dtb_customer_customer_id'); $arrData['customer_id'] = $customer_id; // 作成日 if (is_null($arrData['create_date'])) { $arrData['create_date'] = 'CURRENT_TIMESTAMP'; } $objQuery->insert('dtb_customer', $arrData); } $objQuery->commit(); return $customer_id; }