예제 #1
0
 /**
  * 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);
 }
예제 #2
0
 /**
  * 管理者データを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));
 }
예제 #3
0
 /**
  * 会員情報の登録・編集処理を行う.
  *
  * @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;
 }