/** * 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; }
/** * 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; }
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; }
/** * 空メールから取得したメールアドレスを空メール管理テーブルに登録する。 * * @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; }
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); }