/**
  * dtb_mobile_ext_session_id テーブルを検索してセッションIDを取得する。
  * PCサイトでもモバイルサイトでもこのテーブルを利用する.
  *
  * @return string|null 取得したセッションIDを返す。
  *                     取得できなかった場合は null を返す。
  */
 function getExtSessionId()
 {
     if (!preg_match('|^' . ROOT_URLPATH . '(.*)$|', $_SERVER['SCRIPT_NAME'], $matches)) {
         return null;
     }
     $url = $matches[1];
     $lifetime = $this->state->getLifeTime();
     $time = date('Y-m-d H:i:s', time() - $lifetime);
     $objQuery = new SC_Query_Ex();
     foreach ($_REQUEST as $key => $value) {
         $session_id = $objQuery->get('session_id', 'dtb_mobile_ext_session_id', 'param_key = ? AND param_value = ? AND url = ? AND create_date >= ?', array($key, $value, $url, $time));
         if (isset($session_id)) {
             return $session_id;
         }
     }
     return null;
 }
Пример #2
0
 /**
  * dtb_moduleのsub_dataを取得する.
  *
  * @access private
  * @param booean $force
  * @return mixed|null
  */
 function _getSubData($force = false)
 {
     if (isset($this->subData)) {
         return $this->subData;
     }
     $moduleCode = $this->getCode();
     $objQuery = new SC_Query_Ex();
     $ret = $objQuery->get('sub_data', 'dtb_module', 'module_code = ?', array($moduleCode));
     if (isset($ret)) {
         $this->subData = unserialize($ret);
         return $this->subData;
     }
     return null;
 }
Пример #3
0
 function sfGetProductClassId($product_id, $classcategory_id1, $classcategory_id2)
 {
     $where = "product_id = ?";
     $objQuery = new SC_Query_Ex();
     $ret = $objQuery->get("product_class_id", "dtb_products_class", $where, array($product_id));
     return $ret;
 }
Пример #4
0
 /**
  * 空メールから取得したメールアドレスを空メール管理テーブルに登録する。
  *
  * @param string $token トークン
  * @param string $email メールアドレス
  * @return boolean 成功した場合はtrue、失敗した場合はfalseを返す。
  */
 function gfRegisterKaraMail($token, $email)
 {
     $objQuery = new SC_Query_Ex();
     // GC
     $time = date('Y-m-d H:i:s', time() - MOBILE_SESSION_LIFETIME);
     $objQuery->delete('dtb_mobile_kara_mail', '(email IS NULL AND create_date < ?) OR (email IS NOT NULL AND receive_date < ?)', array($time, $time));
     $kara_mail_id = $objQuery->get('kara_mail_id', 'dtb_mobile_kara_mail', 'token = ?', array($token));
     if (!isset($kara_mail_id)) {
         return false;
     }
     $arrValues = array('email' => $email);
     $arrRawValues = array('receive_date' => 'CURRENT_TIMESTAMP');
     $objQuery->update('dtb_mobile_kara_mail', $arrValues, 'kara_mail_id = ?', array($kara_mail_id), $arrRawValues);
     return true;
 }
Пример #5
0
 function isLoginSuccess($dont_check_email_mobile = false)
 {
     // ログイン時のメールアドレスとDBのメールアドレスが一致している場合
     if (isset($_SESSION['customer']['customer_id']) && SC_Utils_Ex::sfIsInt($_SESSION['customer']['customer_id'])) {
         $objQuery = new SC_Query_Ex();
         $email = $objQuery->get('email', "dtb_customer", "customer_id = ?", array($_SESSION['customer']['customer_id']));
         if ($email == $_SESSION['customer']['email']) {
             // モバイルサイトの場合は携帯のメールアドレスが登録されていることもチェックする。
             // ただし $dont_check_email_mobile が true の場合はチェックしない。
             if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE && !$dont_check_email_mobile) {
                 $email_mobile = $objQuery->get("email_mobile", "dtb_customer", "customer_id = ?", array($_SESSION['customer']['customer_id']));
                 return isset($email_mobile);
             }
             return true;
         }
     }
     return false;
 }
 /**
  * Page のアクション.
  *
  * @return void
  */
 function action()
 {
     $objDb = new SC_Helper_DB_Ex();
     $objFormParam = new SC_FormParam_Ex();
     // 入力パラメーター初期化
     $this->initParam($objFormParam);
     $objFormParam->setParam($_POST);
     $objFormParam->convParam();
     switch ($this->getMode()) {
         // カテゴリー登録/編集実行
         case 'edit':
             $category_id = $objFormParam->getValue('category_id');
             if ($category_id == '') {
                 $this->doRegister($objFormParam);
             } else {
                 $this->doEdit($objFormParam);
             }
             break;
             // 入力ボックスへ編集対象のカテゴリ名をセット
         // 入力ボックスへ編集対象のカテゴリ名をセット
         case 'pre_edit':
             $this->doPreEdit($objFormParam);
             break;
             // カテゴリ削除
         // カテゴリ削除
         case 'delete':
             $this->doDelete($objFormParam, $objDb);
             break;
             // 表示順を上へ
         // 表示順を上へ
         case 'up':
             $this->doUp($objFormParam);
             break;
             // 表示順を下へ
         // 表示順を下へ
         case 'down':
             $this->doDown($objFormParam);
             break;
             // XXX 使われていないコード?
         // XXX 使われていないコード?
         case 'moveByDnD':
             // DnDしたカテゴリと移動先のセットを分解する
             $keys = explode("-", $_POST['keySet']);
             if ($keys[0] && $keys[1]) {
                 $objQuery = new SC_Query_Ex();
                 $objQuery->begin();
                 // 移動したデータのrank、level、parent_category_idを取得
                 $rank = $objQuery->get('rank', "dtb_category", "category_id = ?", array($keys[0]));
                 $level = $objQuery->get('level', "dtb_category", "category_id = ?", array($keys[0]));
                 $parent = $objQuery->get("parent_category_id", "dtb_category", "category_id = ?", array($keys[0]));
                 // 同一level内のrank配列を作成
                 $objQuery->setOption("ORDER BY rank DESC");
                 if ($level == 1) {
                     // 第1階層の時
                     $arrRet = $objQuery->select('rank', "dtb_category", "level = ?", array($level));
                 } else {
                     // 第2階層以下の時
                     $arrRet = $objQuery->select('rank', "dtb_category", "level = ? AND parent_category_id = ?", array($level, $parent));
                 }
                 for ($i = 0; $i < sizeof($arrRet); $i++) {
                     $rankAry[$i + 1] = $arrRet[$i]['rank'];
                 }
                 // 移動したデータのグループ内データ数
                 $my_count = $this->lfCountChilds($objQuery, "dtb_category", "parent_category_id", "category_id", $keys[0]);
                 if ($rankAry[$keys[1]] > $rank) {
                     // データが今の位置より上がった時
                     $up_count = $rankAry[$keys[1]] - $rank;
                     $decAry = $objQuery->select("category_id", "dtb_category", "level = ? AND rank > ? AND rank <= ?", array($level, $rank, $rankAry[$keys[1]]));
                     foreach ($decAry as $value) {
                         // 上のグループから減算
                         $this->lfDownRankChilds($objQuery, "dtb_category", "parent_category_id", "category_id", $value["category_id"], $my_count);
                     }
                     // 自分のグループに加算
                     $this->lfUpRankChilds($objQuery, "dtb_category", "parent_category_id", "category_id", $keys[0], $up_count);
                 } else {
                     if ($rankAry[$keys[1]] < $rank) {
                         // データが今の位置より下がった時
                         $down_count = 0;
                         $incAry = $objQuery->select("category_id", "dtb_category", "level = ? AND rank < ? AND rank >= ?", array($level, $rank, $rankAry[$keys[1]]));
                         foreach ($incAry as $value) {
                             // 下のグループに加算
                             $this->lfUpRankChilds($objQuery, "dtb_category", "parent_category_id", "category_id", $value["category_id"], $my_count);
                             // 合計減算値
                             $down_count += $this->lfCountChilds($objQuery, "dtb_category", "parent_category_id", "category_id", $value["category_id"]);
                         }
                         // 自分のグループから減算
                         $this->lfDownRankChilds($objQuery, "dtb_category", "parent_category_id", "category_id", $keys[0], $down_count);
                     }
                 }
                 $objQuery->commit();
             }
             break;
             // カテゴリツリークリック時
         // カテゴリツリークリック時
         case 'tree':
             break;
             // CSVダウンロード
         // CSVダウンロード
         case 'csv':
             // CSVを送信する
             $objCSV = new SC_Helper_CSV_Ex();
             $objCSV->sfDownloadCsv("5", "", array(), "", true);
             exit;
             break;
         default:
             break;
     }
     $parent_category_id = $objFormParam->getValue('parent_category_id');
     // 空の場合は親カテゴリを0にする
     if (empty($parent_category_id)) {
         $parent_category_id = 0;
     }
     // 親カテゴリIDの保持
     $this->arrForm['parent_category_id'] = $parent_category_id;
     // カテゴリ一覧を取得
     $this->arrList = $this->findCategoiesByParentCategoryId($parent_category_id);
     // カテゴリツリーを取得
     $this->arrTree = $objDb->sfGetCatTree($parent_category_id);
     // ぱんくずの生成
     $arrBread = array();
     $objDb->findTree($this->arrTree, $parent_category_id, $arrBread);
     $this->tpl_bread_crumbs = SC_Utils_Ex::jsonEncode($arrBread);
 }