/** * Page のプロセス. * * @return void */ function process() { $conn = new SC_DBConn(); $objView = new SC_AdminView(); $objSess = new SC_Session(); $objQuery = new SC_Query(); $objDb = new SC_Helper_DB_Ex(); // 認証可否の判定 SC_Utils_Ex::sfIsSuccess($objSess); if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } // 要求判定 switch ($_POST['mode']) { // 編集処理 case 'edit': // POST値の引き継ぎ $this->arrForm = $_POST; // 入力文字の変換 $this->arrForm = $this->lfConvertParam($this->arrForm); // エラーチェック $this->arrErr = $this->lfErrorCheck(); if (count($this->arrErr) <= 0) { if ($_POST['class_id'] == "") { $this->lfInsertClass($this->arrForm); // 新規作成 } else { $this->lfUpdateClass($this->arrForm); // 既存編集 } // 再表示 $this->reload(); } else { // POSTデータを引き継ぐ $this->tpl_class_id = $_POST['class_id']; } break; // 削除 // 削除 case 'delete': $objDb->sfDeleteRankRecord("dtb_class", "class_id", $_POST['class_id'], "", true); $objQuery = new SC_Query(); $objQuery->delete("dtb_classcategory", "class_id = ?", $_POST['class_id']); // 再表示 $this->reload(); break; // 編集前処理 // 編集前処理 case 'pre_edit': // 編集項目をDBより取得する。 $where = "class_id = ?"; $class_name = $objQuery->get("dtb_class", "name", $where, array($_POST['class_id'])); // 入力項目にカテゴリ名を入力する。 $this->arrForm['name'] = $class_name; // POSTデータを引き継ぐ $this->tpl_class_id = $_POST['class_id']; break; case 'down': $objDb->sfRankDown("dtb_class", "class_id", $_POST['class_id']); // 再表示 $this->reload(); break; case 'up': $objDb->sfRankUp("dtb_class", "class_id", $_POST['class_id']); // 再表示 $this->reload(); break; default: break; } // 規格の読込 $where = "del_flg <> 1"; $objQuery->setorder("rank DESC"); $this->arrClass = $objQuery->select("name, class_id", "dtb_class", $where); $this->arrClassCatCount = SC_Utils_Ex::sfGetClassCatCount(); $objView->assignobj($this); $objView->display(MAIN_FRAME); }
/** * 関連商品登録を行う. * * FIXME: 商品規格登録の実処理自体は、LC_Page_Admin_Products_Productと共通化して欲しい。 * DELETE/INSERT ではなく UPDATEへの変更も・・・ * * @param SC_Query $objQuery SC_Queryインスタンス * @param array $arrList 商品規格情報配列 * @param integer $product_id 商品ID * @return void */ public function lfRegistReccomendProducts($objQuery, $arrList, $product_id) { $objQuery->delete('dtb_recommend_products', 'product_id = ?', array($product_id)); for ($i = 1; $i <= RECOMMEND_PRODUCT_MAX; $i++) { $keyname = 'recommend_product_id' . $i; $comment_key = 'recommend_comment' . $i; if ($arrList[$keyname] != '') { $arrProduct = $objQuery->select('product_id', 'dtb_products', 'product_id = ?', array($arrList[$keyname])); if ($arrProduct[0]['product_id'] != '') { $arrWhereVal = array(); $arrWhereVal['product_id'] = $product_id; $arrWhereVal['recommend_product_id'] = $arrProduct[0]['product_id']; $arrWhereVal['comment'] = $arrList[$comment_key]; $arrWhereVal['update_date'] = $arrList['update_date']; $arrWhereVal['create_date'] = $arrList['update_date']; $arrWhereVal['creator_id'] = $_SESSION['member_id']; $arrWhereVal['rank'] = RECOMMEND_PRODUCT_MAX - $i + 1; $objQuery->insert('dtb_recommend_products', $arrWhereVal); } } } }
function doEdit(SC_Query $objQuery, SC_FormParam &$objFormParam) { if (is_array($this->arrErr)) { $this->arrErr = array_filter($this->arrErr); if (count($this->arrErr)) { GC_Utils_Ex::gfPrintLog(print_r($this->arrErr, TRUE), ERROR_LOG_REALFILE); return; } } $this->arrErr = $objFormParam->checkError(); if (!SC_Utils_Ex::isBlank($this->arrErr)) { return; } $device_id = $objFormParam->getValue("device_id"); $sqldata = $objFormParam->getDbArray(); $arrDateColumn = $this->ARR_DATE_COLUMN; foreach ($arrDateColumn as $column) { $date_keys = $this->date_keys($column); $date = $objFormParam->getHashArray(array_values($date_keys)); $date = array_map("intval", $date); if (checkdate($date[$date_keys["month"]], $date[$date_keys["day"]], $date[$date_keys["year"]])) { $sqldata[$column] = SC_Utils_Ex::sfGetTimestamp($date[$date_keys["year"]], $date[$date_keys["month"]], $date[$date_keys["day"]], FALSE); } } $has_insert = false; $sqldata["update_date"] = "CURRENT_TIMESTAMP"; $device_id = intval($device_id); if ($device_id == 0) { $sqldata["device_id"] = $objQuery->nextVal("cp_dtb_device_device_id"); $sqldata["create_date"] = "CURRENT_TIMESTAMP"; $sqldata["del_flg"] = 0; $objQuery->insert("cp_dtb_device", $sqldata); $device_id = $sqldata["device_id"]; // 端末情報初期設定 $objFormParam->addParam("edit_device_id", "edit_device_id"); $objFormParam->setValue("edit_device_id", $device_id); $has_insert = true; } else { $sqldata["update_date"] = "CURRENT_TIMESTAMP"; $objQuery->update("cp_dtb_device", $sqldata, "device_id=?", (array) $device_id); $objQuery->delete("cp_dtb_device_categories", "device_id=?", (array) $device_id); } $form = $objFormParam->getHashArray(array("category_id")); if (is_array($form["category_id"]) && count($form["category_id"])) { foreach ($form["category_id"] as $category_id) { $sqldata = compact("category_id", "device_id"); $objQuery->insert("cp_dtb_device_categories", $sqldata); } if ($has_insert) { // 初回登録時のみ $this->doProductSupportinitial($objQuery, $objFormParam); } } $this->tpl_onload = "eccube.setValueAndSubmit('search_form', 'mode', 'return');"; return $device_id; }
/** * テンプレートパッケージの削除 */ function lfDeleteTemplate($template_code) { // DB更新 $objQuery = new SC_Query(); $objQuery->delete('dtb_templates', 'template_code = ?', array($template_code)); // テンプレート削除 $templates_dir = SMARTY_TEMPLATES_DIR . $template_code . "/"; SC_Utils_Ex::sfDelFile($templates_dir); // コンパイル削除 $templates_c_dir = DATA_PATH . "Smarty/templates_c/" . $template_code . "/"; SC_Utils_Ex::sfDelFile($templates_c_dir); // ユーザーデータ削除 $user_dir = USER_TEMPLATE_PATH . $template_code . "/"; SC_Utils_Ex::sfDelFile($user_dir); }
static function productSupportinitial($device_id, SC_Query $objQuery) { $objQuery->delete("cp_dtb_device_products", "device_id=?", (array) $device_id); $objQuery->insert("cp_dtb_device_products", array(), array("product_id" => "product_id", "device_id" => "device_id"), array(), "\n FROM dtb_product_categories\n INNER JOIN cp_dtb_device_categories USING(category_id)\n WHERE product_id IN (SELECT product_id FROM cp_dtb_device_products)\n AND device_id = ?", (array) $device_id); $objQuery->commit(); }
/** * ガーベジコレクションを実行する. * * 引数 $maxlifetime の代りに 定数 MAX_LIFETIME を使用する. * * @param integer $maxlifetime セッションの有効期限(使用しない) */ function sfSessGc($maxlifetime) { // MAX_LIFETIME以上更新されていないセッションを削除する。 if (!$this->objDb->sfTabaleExists("dtb_session")) { return false; } $objQuery = new SC_Query(); $where = "update_date < current_timestamp + '-" . MAX_LIFETIME . " secs'"; $objQuery->delete("dtb_session", $where); return true; }
/** * Page のプロセス. * * @return void */ function process() { $objView = new SC_AdminView(); $objDb = new SC_Helper_DB_Ex(); $objDate = new SC_Date(); // 登録・更新検索開始年 $objDate->setStartYear(RELEASE_YEAR); $objDate->setEndYear(DATE("Y")); $this->arrStartYear = $objDate->getYear(); $this->arrStartMonth = $objDate->getMonth(); $this->arrStartDay = $objDate->getDay(); // 登録・更新検索終了年 $objDate->setStartYear(RELEASE_YEAR); $objDate->setEndYear(DATE("Y")); $this->arrEndYear = $objDate->getYear(); $this->arrEndMonth = $objDate->getMonth(); $this->arrEndDay = $objDate->getDay(); // 認証可否の判定 $objSess = new SC_Session(); SC_Utils_Ex::sfIsSuccess($objSess); if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } //キャンペーンの編集時 if (isset($_POST['campaign_id']) && SC_Utils_Ex::sfIsInt($_POST['campaign_id']) && $_POST['mode'] == "camp_search") { $objQuery = new SC_Query(); $search_data = $objQuery->get("dtb_campaign", "search_condition", "campaign_id = ? ", array($_POST['campaign_id'])); $arrSearch = unserialize($search_data); foreach ($arrSearch as $key => $val) { $_POST[$key] = $val; } } // POST値の引き継ぎ $this->arrForm = $_POST; // 検索ワードの引き継ぎ foreach ($_POST as $key => $val) { if (ereg("^search_", $key) || ereg("^campaign_", $key)) { switch ($key) { case 'search_product_flag': case 'search_status': $this->arrHidden[$key] = SC_Utils_Ex::sfMergeParamCheckBoxes($val); if (!is_array($val)) { $this->arrForm[$key] = split("-", $val); } break; default: $this->arrHidden[$key] = $val; break; } } } // ページ送り用 $this->arrHidden['search_pageno'] = isset($_POST['search_pageno']) ? $_POST['search_pageno'] : ""; // 商品削除 if ($_POST['mode'] == "delete") { if ($_POST['category_id'] != "") { // ランク付きレコードの削除 $where = "category_id = " . SC_Utils_Ex::sfQuoteSmart($_POST['category_id']); $objDb->sfDeleteRankRecord("dtb_products", "product_id", $_POST['product_id'], $where); } else { $objDb->sfDeleteRankRecord("dtb_products", "product_id", $_POST['product_id']); } // 子テーブル(商品規格)の削除 $objQuery = new SC_Query(); $objQuery->delete("dtb_products_class", "product_id = ?", array($_POST['product_id'])); // 件数カウントバッチ実行 $objDb->sfCategory_Count($objQuery); } if ($_POST['mode'] == "search" || $_POST['mode'] == "csv" || $_POST['mode'] == "delete" || $_POST['mode'] == "delete_all" || $_POST['mode'] == "camp_search") { // 入力文字の強制変換 $this->lfConvertParam(); // エラーチェック $this->arrErr = $this->lfCheckError(); $where = "del_flg = 0"; $view_where = "del_flg = 0"; // 入力エラーなし if (count($this->arrErr) == 0) { $arrval = array(); foreach ($this->arrForm as $key => $val) { $val = SC_Utils_Ex::sfManualEscape($val); if ($val == "") { continue; } switch ($key) { case 'search_product_id': // 商品ID $where .= " AND product_id = ?"; $view_where .= " AND product_id = ?"; $arrval[] = $val; break; case 'search_product_class_name': //規格名称 $where_in = " (SELECT classcategory_id FROM dtb_classcategory WHERE class_id IN (SELECT class_id FROM dtb_class WHERE name LIKE ?)) "; $where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE classcategory_id1 IN " . $where_in; $where .= " OR classcategory_id2 IN" . $where_in . ")"; $view_where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE classcategory_id1 IN " . $where_in; $view_where .= " OR classcategory_id2 IN" . $where_in . ")"; $arrval[] = "%{$val}%"; $arrval[] = "%{$val}%"; $view_where = $where; break; case 'search_name': // 商品名 $where .= " AND name ILIKE ?"; $view_where .= " AND name ILIKE ?"; $arrval[] = "%{$val}%"; break; case 'search_category_id': // カテゴリー list($tmp_where, $tmp_arrval) = $objDb->sfGetCatWhere($val); if ($tmp_where != "") { $where .= " AND product_id IN (SELECT product_id FROM dtb_product_categories WHERE " . $tmp_where . ")"; $view_where .= " AND product_id IN (SELECT product_id FROM dtb_product_categories WHERE " . $tmp_where . ")"; $arrval = array_merge((array) $arrval, (array) $tmp_arrval); } break; case 'search_product_code': // 商品コード $where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ? GROUP BY product_id)"; $view_where .= " AND EXISTS (SELECT product_id FROM dtb_products_class as cls WHERE cls.product_code ILIKE ? AND dtb_products.product_id = cls.product_id GROUP BY cls.product_id )"; $arrval[] = "%{$val}%"; break; case 'search_startyear': // 登録更新日(FROM) $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_startyear'], $_POST['search_startmonth'], $_POST['search_startday']); $where .= " AND update_date >= '" . $_POST['search_startyear'] . "/" . $_POST['search_startmonth'] . "/" . $_POST['search_startday'] . "'"; $view_where .= " AND update_date >= '" . $_POST['search_startyear'] . "/" . $_POST['search_startmonth'] . "/" . $_POST['search_startday'] . "'"; break; case 'search_endyear': // 登録更新日(TO) $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_endyear'], $_POST['search_endmonth'], $_POST['search_endday']); $date = date('Y/m/d', strtotime($date) + 86400); $where .= " AND update_date < date('" . $date . "')"; $view_where .= " AND update_date < date('" . $date . "')"; break; case 'search_product_flag': //種別 global $arrSTATUS; $search_product_flag = SC_Utils_Ex::sfSearchCheckBoxes($val); if ($search_product_flag != "") { $where .= " AND product_flag LIKE ?"; $view_where .= " AND product_flag LIKE ?"; $arrval[] = $search_product_flag; } break; case 'search_status': // ステータス $tmp_where = ""; foreach ($val as $element) { if ($element != "") { if ($tmp_where == "") { $tmp_where .= "AND (status = ? "; } else { $tmp_where .= "OR status = ? "; } $arrval[] = $element; } } if ($tmp_where != "") { $tmp_where .= ")"; $where .= " {$tmp_where}"; $view_where .= " {$tmp_where}"; } break; default: break; } } $order = "update_date DESC, product_id DESC"; $objQuery = new SC_Query(); switch ($_POST['mode']) { case 'csv': require_once CLASS_EX_PATH . "helper_extends/SC_Helper_CSV_Ex.php"; $objCSV = new SC_Helper_CSV_Ex(); // オプションの指定 $option = "ORDER BY {$order}"; // CSV出力タイトル行の作成 $arrOutput = SC_Utils_Ex::sfSwapArray($objCSV->sfgetCsvOutput(1, " WHERE csv_id = 1 AND status = 1")); if (count($arrOutput) <= 0) { break; } $arrOutputCols = $arrOutput['col']; $arrOutputTitle = $arrOutput['disp_name']; $head = SC_Utils_Ex::sfGetCSVList($arrOutputTitle); $data = $objCSV->lfGetProductsCSV($where, $option, $arrval, $arrOutputCols); // CSVを送信する。 SC_Utils_Ex::sfCSVDownload($head . $data); exit; break; case 'delete_all': // 検索結果の取得 $col = "product_id"; $from = "vw_products_nonclass AS noncls "; $arrProducts = $objQuery->select($col, $from, $where, $arrval); // 検索結果をすべて削除 $sqlval['del_flg'] = 1; $where = "product_id = ?"; if (count($arrProducts) > 0) { foreach ($arrProducts as $key => $val) { $objQuery->update("dtb_products", $sqlval, $where, array($arrProducts[$key]["product_id"])); } } break; default: // 読み込む列とテーブルの指定 $col = "product_id, name, category_id, main_list_image, status, product_code, price01, price02, stock, stock_unlimited"; $from = "vw_products_nonclass AS noncls "; // 行数の取得 $linemax = $objQuery->count("dtb_products", $view_where, $arrval); $this->tpl_linemax = $linemax; // 何件が該当しました。表示用 // ページ送りの処理 if (is_numeric($_POST['search_page_max'])) { $page_max = $_POST['search_page_max']; } else { $page_max = SEARCH_PMAX; } // ページ送りの取得 $objNavi = new SC_PageNavi($this->arrHidden['search_pageno'], $linemax, $page_max, "fnNaviSearchPage", NAVI_PMAX); $startno = $objNavi->start_row; $this->arrPagenavi = $objNavi->arrPagenavi; //キャンペーン商品検索時は、全結果の商品IDを変数に格納する if (isset($_POST['search_mode']) && $_POST['search_mode'] == 'campaign') { $arrRet = $objQuery->select($col, $from, $where, $arrval); if (count($arrRet) > 0) { $arrRet = sfSwapArray($arrRet); $pid = implode("-", $arrRet['product_id']); $this->arrHidden['campaign_product_id'] = $pid; } } // 取得範囲の指定(開始行番号、行数のセット) // if(DB_TYPE != "mysql") $objQuery->setlimitoffset($page_max, $startno); $objQuery->setlimitoffset($page_max, $startno); // 表示順序 $objQuery->setorder($order); // 検索結果の取得 $this->arrProducts = $objQuery->select($col, $from, $where, $arrval); // 各商品ごとのカテゴリIDを取得 if (count($this->arrProducts) > 0) { foreach ($this->arrProducts as $key => $val) { $this->arrProducts[$key]["categories"] = $objDb->sfGetCategoryId($val["product_id"]); $objDb->g_category_on = false; } } } } } // カテゴリの読込 list($this->arrCatKey, $this->arrCatVal) = $objDb->sfGetLevelCatList(false); $this->arrCatList = $this->lfGetIDName($this->arrCatKey, $this->arrCatVal); // 画面の表示 $objView->assignobj($this); $objView->display(MAIN_FRAME); }
/** * 外部サイト連携用にセッションIDとパラメーターの組み合わせを保存する。 * * @param string $param_key パラメーター名 * @param string $param_value パラメーター値 * @param string $url URL * @return void */ function setExtSessionId($param_key, $param_value, $url) { $objQuery = new SC_Query(); // GC $lifetime = $this->state->getLifeTime(); $time = date('Y-m-d H:i:s', time() - $lifetime); $objQuery->delete('dtb_mobile_ext_session_id', 'create_date < ?', array($time)); $arrValues = array('session_id' => session_id(), 'param_key' => $param_key, 'param_value' => $param_value, 'url' => $url); $objQuery->insert('dtb_mobile_ext_session_id', $arrValues); }
function lfDeleteFavoriteProduct($customer_id, $product_id) { $objQuery = new SC_Query(); $objConn = new SC_DbConn(); $count = $objConn->getOne("SELECT COUNT(*) FROM dtb_customer_favorite_products WHERE customer_id = ? AND product_id = ?", array($customer_id, $product_id)); if ($count > 0) { $where = "customer_id = ? AND product_id = ?"; $sqlval['customer_id'] = $customer_id; $sqlval['product_id'] = $product_id; $objQuery->begin(); $objQuery->delete('dtb_customer_favorite_products', $where, $sqlval); $objQuery->commit(); } }
function lfRegistNewData() { $objQuery = new SC_Query(); $objQuery->begin(); // 入力データを渡す。 $arrRet = $this->objFormParam->getHashArray(); foreach ($arrRet as $key => $val) { // 配列は登録しない if (!is_array($val)) { $sqlval[$key] = $val; } } // postgresqlとmysqlとで処理を分ける if (DB_TYPE == "pgsql") { $order_id = $objQuery->nextval("dtb_order", "order_id"); } elseif (DB_TYPE == "mysql") { $order_id = $objQuery->get_auto_increment("dtb_order"); } $sqlval['order_id'] = $order_id; $sqlval['create_date'] = "Now()"; // 注文ステータス:指定が無ければ新規受付に設定 if ($sqlval["status"] == "") { $sqlval['status'] = '1'; } // customer_id if ($sqlval["customer_id"] == "") { $sqlval['customer_id'] = '0'; } unset($sqlval['total_point']); unset($sqlval['point']); $where = "order_id = ?"; // 受注ステータスの判定 if ($sqlval['status'] == ODERSTATUS_COMMIT) { // 受注テーブルの発送済み日を更新する $sqlval['commit_date'] = "Now()"; } // 受注テーブルの登録 $objQuery->insert("dtb_order", $sqlval); $sql = ""; $sql .= " UPDATE"; $sql .= " dtb_order"; $sql .= " SET"; $sql .= " payment_method = (SELECT payment_method FROM dtb_payment WHERE payment_id = ?)"; $sql .= " ,deliv_time = (SELECT deliv_time FROM dtb_delivtime WHERE time_id = ? AND deliv_id = (SELECT deliv_id FROM dtb_payment WHERE payment_id = ? ))"; $sql .= " WHERE order_id = ?"; if ($arrRet['deliv_time_id'] == "") { $deliv_time_id = 0; } else { $deliv_time_id = $arrRet['deliv_time_id']; } $arrUpdData = array($arrRet['payment_id'], $deliv_time_id, $arrRet['payment_id'], $order_id); $objQuery->query($sql, $arrUpdData); // 受注詳細データの更新 $arrDetail = $this->objFormParam->getSwapArray(array("product_id", "product_code", "product_name", "price", "quantity", "point_rate", "classcategory_id1", "classcategory_id2", "classcategory_name1", "classcategory_name2")); $objQuery->delete("dtb_order_detail", $where, array($order_id)); $max = count($arrDetail); for ($i = 0; $i < $max; $i++) { $sqlval = array(); $sqlval['order_id'] = $order_id; $sqlval['product_id'] = $arrDetail[$i]['product_id']; $sqlval['product_code'] = $arrDetail[$i]['product_code']; $sqlval['product_name'] = $arrDetail[$i]['product_name']; $sqlval['price'] = $arrDetail[$i]['price']; $sqlval['quantity'] = $arrDetail[$i]['quantity']; $sqlval['point_rate'] = $arrDetail[$i]['point_rate']; $sqlval['classcategory_id1'] = $arrDetail[$i]['classcategory_id1']; $sqlval['classcategory_id2'] = $arrDetail[$i]['classcategory_id2']; $sqlval['classcategory_name1'] = $arrDetail[$i]['classcategory_name1']; $sqlval['classcategory_name2'] = $arrDetail[$i]['classcategory_name2']; $objQuery->insert("dtb_order_detail", $sqlval); } $objQuery->commit(); return $order_id; }
/** * 関連商品登録を行う. * * FIXME: 商品規格登録の実処理自体は、LC_Page_Admin_Products_Productと共通化して欲しい。 * DELETE/INSERT ではなく UPDATEへの変更も・・・ * * @param SC_Query $objQuery SC_Queryインスタンス * @param array $arrList 商品規格情報配列 * @param integer $product_id 商品ID * @return void */ function lfRegistReccomendProducts($objQuery, $arrList, $product_id) { $objQuery->delete("dtb_recommend_products", "product_id = ?", array($product_id)); for ($i = 1; $i <= RECOMMEND_PRODUCT_MAX; $i++) { $keyname = "recommend_product_id" . $i; $comment_key = "recommend_comment" . $i; if ($arrList[$keyname] != "") { $arrProduct = $objQuery->select("product_id", "dtb_products", "product_id = ?", array($arrList[$keyname])); if ($arrProduct[0]['product_id'] != "") { $arrval['product_id'] = $product_id; $arrval['recommend_product_id'] = $arrProduct[0]['product_id']; $arrval['comment'] = $arrList[$comment_key]; $arrval['update_date'] = $arrList['update_date']; $arrval['create_date'] = $arrList['update_date']; $arrval['creator_id'] = $_SESSION['member_id']; $arrval['rank'] = RECOMMEND_PRODUCT_MAX - $i + 1; $objQuery->insert("dtb_recommend_products", $arrval); } } } }
/** * お届け先の削除 * * @param integer $customerId * @param integer $delivId */ function deleteOtherDeliv($customerId, $delivId) { $where = 'customer_id = ? AND other_deliv_id = ?'; $objQuery = new SC_Query(); $objQuery->delete("dtb_other_deliv", $where, array($customerId, $delivId)); }
/** * 外部サイト連携用にセッションIDとパラメーターの組み合わせを保存する。 * * @param string $param_key パラメーター名 * @param string $param_value パラメーター値 * @param string $url URL * @return void */ function sfMobileSetExtSessionId($param_key, $param_value, $url) { $objQuery = new SC_Query(); // GC $time = date('Y-m-d H:i:s', time() - MOBILE_SESSION_LIFETIME); $objQuery->delete('dtb_mobile_ext_session_id', 'create_date < ?', array($time)); $arrValues = array('session_id' => session_id(), 'param_key' => $param_key, 'param_value' => $param_value, 'url' => $url); $objQuery->insert('dtb_mobile_ext_session_id', $arrValues); }
/** * 商品規格登録を行う. * * @param SC_Query $objQuery SC_Queryインスタンス * @param array $arrList 商品規格情報配列 * @param integer $product_id 商品ID * @param integer $product_class_id 商品規格ID * @return void */ function lfRegistProductClass($objQuery, $arrList, $product_id, $product_class_id) { $sqlval['product_code'] = $arrList["product_code"]; $sqlval['stock'] = $arrList["stock"]; if ($sqlval['stock'] == "") { $sqlval['stock_unlimited'] = '1'; } else { $sqlval['stock_unlimited'] = '0'; } $sqlval['price01'] = $arrList['price01']; $sqlval['price02'] = $arrList['price02']; $sqlval['creator_id'] = $_SESSION['member_id']; // TODO $sqlval['member_id'] は何処から出てくる? if ($sqlval['member_id'] == "") { $sqlval['creator_id'] = '0'; } if ($product_class_id == "") { // 新規登録 $where = "product_id = ?"; // 念のために既存の規格を削除 $objQuery->delete("dtb_products_class", $where, array($product_id)); $sqlval['product_id'] = $product_id; $sqlval['classcategory_id1'] = '0'; $sqlval['classcategory_id2'] = '0'; $sqlval['create_date'] = "now()"; $objQuery->insert("dtb_products_class", $sqlval); } else { // 既存編集 $where = "product_id = ? AND product_class_id = ?"; $objQuery->update("dtb_products_class", $sqlval, $where, array($product_id, $product_class_id)); } }
/** * ページ情報を削除する. * * @param integer|string $page_id ページID * @return integer 削除数 */ function lfDelPageData($page_id) { // DBへデータを更新する $objQuery = new SC_Query(); // DB操作オブジェクト $sql = ""; // データ更新SQL生成用 $ret = ""; // データ更新結果格納用 $arrDelData = array(); // 更新データ生成用 // page_id が空でない場合にはdeleteを実行 if ($page_id != '') { $arrPageData = $this->lfgetPageData(" page_id = ? ", array($page_id)); // SQL実行 $ret = $objQuery->delete("dtb_pagelayout", "page_id = ?", array($page_id)); // ファイルの削除 $this->lfDelFile($arrPageData[0]); } return $ret; }
/** * 商品登録を行う. * * FIXME: 商品登録の実処理自体は、LC_Page_Admin_Products_Productと共通化して欲しい。 * * @param SC_Query $objQuery * SC_Queryインスタンス * @param string|integer $line * 処理中の行数 * @return void */ public function lfRegistProduct($objQuery, $line = '', &$objFormParam) { // 登録データ対象取得 $arrList = $objFormParam->getDbArray(); // 登録時間を生成(DBのCURRENT_TIMESTAMPだとcommitした際、全て同一の時間になってしまう) $arrList['update_date'] = $this->lfGetDbFormatTimeWithLine($line); // 商品登録情報を生成する。 // 商品テーブルのカラムに存在しているもののうち、Form投入設定されていないデータは上書きしない。 $sqlval = SC_Utils_Ex::sfArrayIntersectKeys($arrList, $this->arrProductColumn); // 必須入力では無い項目だが、空文字では問題のある特殊なカラム値の初期値設定 $sqlval = $this->lfSetProductDefaultData($sqlval); GC_Utils_Ex::gfPrintLog(print_r(array(__LINE__, $sqlval, $arrList), true), DEBUG_LOG_REALFILE); $sqlval = $objQuery->extractOnlyColsOf($this->table, $sqlval); if ($sqlval[$this->id_column] != '') { // 同じidが存在すればupdate存在しなければinsert $where = $this->id_column . ' = ?'; $product_exists = $objQuery->exists($this->table, $where, array($sqlval[$this->id_column])); if ($product_exists) { GC_Utils_Ex::gfPrintLog(print_r(array(__LINE__, $sqlval, $arrList), true), DEBUG_LOG_REALFILE); $objQuery->update($this->table, $sqlval, $where, array($sqlval[$this->id_column])); } else { $sqlval['create_date'] = $arrList['update_date']; // INSERTの実行 GC_Utils_Ex::gfPrintLog(print_r(array(__LINE__, $sqlval, $arrList), true), DEBUG_LOG_REALFILE); $objQuery->insert($this->table, $sqlval); // シーケンスの調整 $seq_count = $objQuery->currVal($this->seq_name); if ($seq_count < $sqlval[$this->id_column]) { $objQuery->setVal($this->seq_name, $sqlval[$this->id_column] + 1); } } $product_id = $sqlval[$this->id_column]; } else { // 新規登録 $sqlval[$this->id_column] = $objQuery->nextVal($this->seq_name); $product_id = $sqlval[$this->id_column]; $sqlval['create_date'] = $arrList['update_date']; // INSERTの実行 GC_Utils_Ex::gfPrintLog(print_r(array(__LINE__, $sqlval, $arrList), true), DEBUG_LOG_REALFILE); $objQuery->insert($this->table, $sqlval); } $objDb = new SC_Helper_DB_Ex(); // カテゴリ登録 if (isset($arrList['category_ids'])) { if ($objDb->sfColumnExists($this->categories_table, $this->id_column)) { $objQuery->delete($this->categories_table, $this->id_column . " = ?", array($sqlval[$this->id_column])); $arrCategory_id = explode(',', $arrList['category_ids']); $rank = 1; foreach ($arrCategory_id as $category_id) { $sqlval2 = array($this->id_column => $sqlval[$this->id_column], "category_id" => $category_id, "rank" => $rank++); $sqlval2 = $objQuery->extractOnlyColsOf($this->categories_table, $sqlval2); $objQuery->insert($this->categories_table, $sqlval2); } } } elseif (count($this->arrCategory) == 1) { if ($objDb->sfColumnExists($this->categories_table, $this->id_column)) { $objQuery->delete($this->categories_table, $this->id_column . " = ?", array($sqlval[$this->id_column])); $keys = array_keys($this->arrCategory); $sqlval2 = array($this->id_column => $sqlval[$this->id_column], "category_id" => $keys[0], "rank" => 1); $sqlval2 = $objQuery->extractOnlyColsOf($this->categories_table, $sqlval2); $objQuery->insert($this->categories_table, $sqlval2); } } }
/** * ランクを含むレコードを削除する. * * レコードごと削除する場合は、$deleteをtrueにする * * @param string $table テーブル名 * @param string $colname カラム名 * @param string|integer $id テーブルのキー * @param string $andwhere SQL の AND 条件である WHERE 句 * @param bool $delete レコードごと削除する場合 true, * レコードごと削除しない場合 false * @return void */ function sfDeleteRankRecord($table, $colname, $id, $andwhere = "", $delete = false) { $objQuery = new SC_Query(); $objQuery->begin(); // 削除レコードのランクを取得する。 $where = "{$colname} = ?"; if ($andwhere != "") { $where .= " AND {$andwhere}"; } $rank = $objQuery->get($table, "rank", $where, array($id)); if (!$delete) { // ランクを最下位にする、DELフラグON $sqlup = "UPDATE {$table} SET rank = 0, del_flg = 1 "; $sqlup .= "WHERE {$colname} = ?"; // UPDATEの実行 $objQuery->exec($sqlup, array($id)); } else { $objQuery->delete($table, "{$colname} = ?", array($id)); } // 追加レコードのランクより上のレコードを一つずらす。 $where = "rank > ?"; if ($andwhere != "") { $where .= " AND {$andwhere}"; } $sqlup = "UPDATE {$table} SET rank = (rank - 1) WHERE {$where}"; $objQuery->exec($sqlup, array($rank)); $objQuery->commit(); }
/** * CSVファイルからインサート実行. * * @param SC_Query $objQuery * @param string $dir * @param string $mode * @return boolean */ public function lfExeInsertSQL(&$objQuery, $dir, $mode) { $tbl_flg = false; $col_flg = false; $ret = true; $pagelayout_flg = false; $arrVal = array(); $arrCol = array(); $arrAllTableList = $objQuery->listTables(); $objDir = dir($dir); while (false !== ($file_name = $objDir->read())) { if (!preg_match('/^((dtb|mtb|plg)_(\\w+))\\.csv$/', $file_name, $matches)) { continue; } $file_path = $dir . $file_name; $table = $matches[1]; // テーブル存在チェック if (!in_array($table, $arrAllTableList)) { if ($mode === 'restore_config') { continue; } return false; } // csvファイルからデータの取得 $fp = fopen($file_path, 'r'); if ($fp === false) { trigger_error($file_name . ' のファイルオープンに失敗しました。', E_USER_ERROR); } GC_Utils_Ex::gfPrintLog('リストア実行: ' . $table); $objQuery->delete($table); $line = 0; $arrColName = array(); while (!feof($fp)) { $line++; $arrCsvLine = fgetcsv($fp, 1024 * 1024); // 1行目: 列名 if ($line === 1) { $arrColName = $arrCsvLine; continue; } // 空行を無視 // false との比較は PHP 5.2.x Windows バグ対応 // 参考: http://www.php.net/manual/ja/function.fgetcsv.php#98502 if ($arrCsvLine === array(null) || $arrCsvLine === false) { continue; } $arrVal = array_combine($arrColName, $arrCsvLine); $objQuery->insert($table, $arrVal); SC_Utils_Ex::extendTimeOut(); } fclose($fp); } return $ret; }
/** * DBに関連商品データを登録する * * @param SC_Query $objQuery SC_Queryインスタンス * @param string $arrList フォーム入力パラメーター配列 * @param integer $product_id 登録する商品ID * @return void */ public function lfInsertRecommendProducts(&$objQuery, $arrList, $product_id) { // 一旦関連商品を全て削除する $objQuery->delete('dtb_recommend_products', 'product_id = ?', array($product_id)); $sqlval['product_id'] = $product_id; $rank = RECOMMEND_PRODUCT_MAX; for ($i = 1; $i <= RECOMMEND_PRODUCT_MAX; $i++) { $keyname = 'recommend_id' . $i; $commentkey = 'recommend_comment' . $i; $deletekey = 'recommend_delete' . $i; if (!isset($arrList[$deletekey])) { $arrList[$deletekey] = null; } if ($arrList[$keyname] != '' && $arrList[$deletekey] != '1') { $sqlval['recommend_product_id'] = $arrList[$keyname]; $sqlval['comment'] = $arrList[$commentkey]; $sqlval['rank'] = $rank; $sqlval['creator_id'] = $_SESSION['member_id']; $sqlval['create_date'] = 'CURRENT_TIMESTAMP'; $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; $objQuery->insert('dtb_recommend_products', $sqlval); $rank--; } } }
function lfBatOrderAge($time) { $age_loop = intval(BAT_ORDER_AGE / 10); // 年齢の範囲を指定してデータ抽出 $sql = "SELECT COUNT(*) AS order_count, SUM(total) AS total, (AVG(total)) AS total_average "; $sql .= "FROM dtb_order "; // 集計対象日を取得する $date = date("Y-m-d", $time); $start = $date . " 00:00:00"; $end = $date . " 23:59:59"; $objQuery = new SC_Query(); $objQuery->delete("dtb_bat_order_daily_age", "order_date = ?", array($start)); /* 会員集計 */ $base_where = "WHERE (create_date BETWEEN ? AND ?) AND customer_id <> 0 AND del_flg = 0 AND status <> " . ORDER_CANCEL; $end_date = date("Y/m/d", time()); $start_date = date("Y/m/d", strtotime("-10 year", strtotime($end_date))); $end_date = date("Y/m/d", strtotime("1 day", strtotime($end_date))); // 年齢毎に集計する。 for ($i = 0; $i <= $age_loop; $i++) { $where = $base_where . " AND order_birth >= cast('{$start_date}' as date)"; $start_age = $i * 10; if ($i < $age_loop) { $end_age = $start_age + 9; $where = $where . " AND order_birth < cast('{$end_date}' as date)"; } else { $where = $base_where . " AND order_birth < cast('{$end_date}' as date)"; $end_age = 999; } $this->lfBatOrderAgeSub($sql . $where, $start, $end, $start_age, $end_age, 1); $end_date = date("Y/m/d", strtotime("1 day", strtotime($start_date))); $start_date = date("Y/m/d", strtotime("-10 year", strtotime($start_date))); } // 誕生日入力なし $where = $base_where . " AND order_birth IS NULL "; $this->lfBatOrderAgeSub($sql . $where, $start, $end, NULL, NULL, 1); /* 非会員集計 */ $base_where = "WHERE (create_date BETWEEN ? AND ?) AND customer_id = 0 AND del_flg = 0 AND status <> " . ORDER_CANCEL; $where = $base_where . " AND (to_number(to_char(age(current_timestamp, order_birth), 'YYY'), 999) BETWEEN ? AND ?) "; $end_date = date("Y/m/d", time()); $start_date = date("Y/m/d", strtotime("-10 year", strtotime($end_date))); $end_date = date("Y/m/d", strtotime("1 day", strtotime($end_date))); // 年齢毎に集計する。 for ($i = 0; $i <= $age_loop; $i++) { $where = $base_where . " AND order_birth >= cast('{$start_date}' as date)"; $start_age = $i * 10; if ($i < $age_loop) { $end_age = $start_age + 9; $where = $where . " AND order_birth < cast('{$end_date}' as date)"; } else { $where = $base_where . " AND order_birth < cast('{$end_date}' as date)"; $end_age = 999; } $this->lfBatOrderAgeSub($sql . $where, $start, $end, $start_age, $end_age, 0); $end_date = date("Y/m/d", strtotime("1 day", strtotime($start_date))); $start_date = date("Y/m/d", strtotime("-10 year", strtotime($start_date))); } // 誕生日入力なし $where = $base_where . " AND order_birth IS NULL AND del_flg = 0"; $this->lfBatOrderAgeSub($sql . $where, $start, $end, NULL, NULL, 0); }
/** * 配送情報を登録する * * @return $deliv_id */ function lfRegistData() { $arrRet = $this->objFormParam->getHashArray(); $objQuery = new SC_Query(); $objQuery->begin(); // 入力データを渡す。 $sqlval['name'] = $arrRet['name']; $sqlval['service_name'] = $arrRet['service_name']; $sqlval['confirm_url'] = $arrRet['confirm_url']; $sqlval['creator_id'] = $_SESSION['member_id']; $sqlval['update_date'] = 'Now()'; // deliv_id が決まっていた場合 if ($_POST['deliv_id'] != "") { $deliv_id = $_POST['deliv_id']; $where = "deliv_id = ?"; $objQuery->update("dtb_deliv", $sqlval, $where, array($deliv_id)); // 配送時間の登録 $table = "dtb_delivtime"; $where = "deliv_id = ? AND time_id = ?"; for ($cnt = 1; $cnt <= DELIVTIME_MAX; $cnt++) { $sqlval = array(); $keyname = "deliv_time" . $cnt; $arrval = array($deliv_id, $cnt * $deliv_id); // 既存データの有無を確認 $curData = $objQuery->select("*", $table, $where, $arrval); if (strcmp($arrRet[$keyname], "") != 0) { $sqlval['deliv_time'] = $arrRet[$keyname]; // 入力が空ではなく、DBに情報があれば更新 if (count($curData)) { $objQuery->update($table, $sqlval, $where, $arrval); } else { $sqlval['deliv_id'] = $deliv_id; $sqlval['time_id'] = $cnt * $deliv_id; $objQuery->insert($table, $sqlval); } } else { if (count($curData)) { $objQuery->delete($table, $where, $arrval); } } } // 配送料の登録 if (INPUT_DELIV_FEE) { for ($cnt = 1; $cnt <= DELIVFEE_MAX; $cnt++) { $keyname = "fee" . $cnt; if (strcmp($arrRet[$keyname], "") != 0) { $sqlval = array('fee' => $arrRet[$keyname]); $objQuery->update("dtb_delivfee", $sqlval, "deliv_id = ? AND pref = ?", array($deliv_id, $cnt)); } } } } else { // 登録する配送業者IDの取得 if (DB_TYPE == "pgsql") { $deliv_id = $objQuery->nextval('dtb_deliv', 'deliv_id'); $sqlval['deliv_id'] = $deliv_id; } $sqlval['rank'] = $objQuery->max("dtb_deliv", "rank") + 1; $sqlval['create_date'] = 'Now()'; // INSERTの実行 $objQuery->insert("dtb_deliv", $sqlval); if (DB_TYPE == "mysql") { $deliv_id = $objQuery->nextval('dtb_deliv', 'deliv_id'); } $sqlval = array(); // 配送時間の設定 for ($cnt = 1; $cnt <= DELIVTIME_MAX; $cnt++) { $keyname = "deliv_time{$cnt}"; if ($arrRet[$keyname] != "") { $sqlval['deliv_id'] = $deliv_id; $sqlval['time_id'] = $cnt * $deliv_id; $sqlval['deliv_time'] = $arrRet[$keyname]; // INSERTの実行 $objQuery->insert("dtb_delivtime", $sqlval); } } if (INPUT_DELIV_FEE) { $sqlval = array(); // 配送料金の設定 for ($cnt = 1; $cnt <= DELIVFEE_MAX; $cnt++) { $keyname = "fee{$cnt}"; if ($arrRet[$keyname] != "") { $sqlval['deliv_id'] = $deliv_id; $sqlval['fee'] = $arrRet[$keyname]; $sqlval['pref'] = $cnt; // INSERTの実行 $objQuery->insert("dtb_delivfee", $sqlval); } } } } $objQuery->commit(); return $deliv_id; }
function lfInsertProductClass($arrList, $product_id) { $objQuery = new SC_Query(); $objQuery->begin(); // 既存規格の削除 $where = "product_id = ?"; $objQuery->delete("dtb_products_class", $where, array($product_id)); $cnt = 1; // すべての規格を登録する。 while ($arrList["classcategory_id1:" . $cnt] != "") { if ($arrList["check:" . $cnt] == 1) { $sqlval = array(); $sqlval['product_id'] = $product_id; $sqlval['classcategory_id1'] = $arrList["classcategory_id1:" . $cnt]; $sqlval['classcategory_id2'] = $arrList["classcategory_id2:" . $cnt]; if (strlen($arrList["product_class_id:" . $cnt]) > 0) { $sqlval['product_class_id'] = $arrList["product_class_id:" . $cnt]; } $sqlval['product_code'] = $arrList["product_code:" . $cnt]; $sqlval['stock'] = $arrList["stock:" . $cnt]; $sqlval['stock_unlimited'] = $arrList["stock_unlimited:" . $cnt]; $sqlval['price01'] = $arrList['price01:' . $cnt]; $sqlval['price02'] = $arrList['price02:' . $cnt]; $sqlval['creator_id'] = $_SESSION['member_id']; $sqlval['create_date'] = "now()"; $sqlval['update_date'] = "now()"; // INSERTの実行 $objQuery->insert("dtb_products_class", $sqlval); } $cnt++; } $objQuery->commit(); }
/** * Page のプロセス(モバイル). * * @return void */ function mobileProcess() { $objView = new SC_MobileView(); $objSiteSess = new SC_SiteSession(); $objCartSess = new SC_CartSession(); $objCustomer = new SC_Customer(); // クッキー管理クラス $objCookie = new SC_Cookie(COOKIE_EXPIRE); // パラメータ管理クラス $this->objFormParam = new SC_FormParam(); // パラメータ情報の初期化 $this->lfInitParam(); // POST値の取得 $this->lfConvertEmail($_POST["login_email"]); $this->lfConvertLoginPass($_POST["login_pass"]); $this->objFormParam->setParam($_POST); $this->objLoginFormParam = new SC_FormParam(); // ログインフォーム用 $this->lfInitLoginFormParam(); // 初期設定 $this->objLoginFormParam->setParam($_POST); // POST値の取得 // ユーザユニークIDの取得と購入状態の正当性をチェック $uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess); $this->tpl_uniqid = $uniqid; if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } // ログインチェック if ($_POST['mode'] != 'login' && !$objCustomer->isLoginSuccess(true)) { // 不正アクセスとみなす SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR, "", false, "", true); } switch ($_POST['mode']) { case 'login': $this->objLoginFormParam->toLower('login_email'); $this->arrErr = $this->objLoginFormParam->checkError(); $arrForm = $this->objLoginFormParam->getHashArray(); // クッキー保存判定 if ($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") { $objCookie->setCookie('login_email', $_POST['login_email']); } else { $objCookie->setCookie('login_email', ''); } if (count($this->arrErr) == 0) { // ログイン判定 if (!$objCustomer->getCustomerDataFromMobilePhoneIdPass($arrForm['login_pass']) && !$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) { // 仮登録の判定 $objQuery = new SC_Query(); $where = "(email = ? OR email_mobile = ?) AND status = 1 AND del_flg = 0"; $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email'], $arrForm['login_email'])); if ($ret > 0) { SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR, "", false, "", true); } else { SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR, "", false, "", true); } } } else { // ログインページに戻る $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_TOP), true); exit; } // ログインが成功した場合は携帯端末IDを保存する。 $objCustomer->updateMobilePhoneId(); /* * 携帯メールアドレスが登録されていない場合は, * 携帯メールアドレス登録画面へ遷移 */ $objMobile = new SC_Helper_Mobile_Ex(); if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) { if (!$objCustomer->hasValue('email_mobile')) { $this->sendRedirect($this->getLocation("../entry/email_mobile.php"), true); exit; } } break; // 削除 // 削除 case 'delete': if (SC_Utils_Ex::sfIsInt($_POST['other_deliv_id'])) { $objQuery = new SC_Query(); $where = "other_deliv_id = ?"; $arrRet = $objQuery->delete("dtb_other_deliv", $where, array($_POST['other_deliv_id'])); $this->objFormParam->setValue('select_addr_id', ''); } break; // 会員登録住所に送る // 会員登録住所に送る case 'customer_addr': // お届け先がチェックされている場合には更新処理を行う if ($_POST['deli'] != "") { // 会員情報の住所を受注一時テーブルに書き込む $this->lfRegistDelivData($uniqid, $objCustomer); // 正常に登録されたことを記録しておく $objSiteSess->setRegistFlag(); // お支払い方法選択ページへ移動 $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT), true); exit; } else { // エラーを返す $arrErr['deli'] = '※ お届け先を選択してください。'; } break; // 登録済みの別のお届け先に送る // 登録済みの別のお届け先に送る case 'other_addr': // お届け先がチェックされている場合には更新処理を行う if ($_POST['deli'] != "") { if (SC_Utils_Ex::sfIsInt($_POST['other_deliv_id'])) { $objQuery = new SC_Query(); $deliv_count = $objQuery->count("dtb_other_deliv", "customer_id=? and other_deliv_id = ?", array($objCustomer->getValue('customer_id'), $_POST['other_deliv_id'])); if ($deliv_count != 1) { SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); } // 登録済みの別のお届け先を受注一時テーブルに書き込む $this->lfRegistOtherDelivData($uniqid, $objCustomer, $_POST['other_deliv_id']); // 正常に登録されたことを記録しておく $objSiteSess->setRegistFlag(); // お支払い方法選択ページへ移動 $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT), true); exit; } } else { // エラーを返す $arrErr['deli'] = '※ お届け先を選択してください。'; } break; // 前のページに戻る // 前のページに戻る case 'return': // 確認ページへ移動 $this->sendRedirect($this->getLocation(MOBILE_URL_CART_TOP), true); exit; break; default: $objQuery = new SC_Query(); $where = "order_temp_id = ?"; $arrRet = $objQuery->select("*", "dtb_order_temp", $where, array($uniqid)); $this->objFormParam->setParam($arrRet[0]); break; } /** 表示処理 **/ // 会員登録住所の取得 $col = "name01, name02, pref, addr01, addr02, zip01, zip02"; $where = "customer_id = ?"; $objQuery = new SC_Query(); $arrCustomerAddr = $objQuery->select($col, "dtb_customer", $where, array($_SESSION['customer']['customer_id'])); // 別のお届け先住所の取得 $col = "other_deliv_id, name01, name02, pref, addr01, addr02, zip01, zip02"; $objQuery->setorder("other_deliv_id DESC"); $objOtherAddr = $objQuery->select($col, "dtb_other_deliv", $where, array($_SESSION['customer']['customer_id'])); $this->arrAddr = $arrCustomerAddr; $cnt = 1; foreach ($objOtherAddr as $val) { $this->arrAddr[$cnt] = $val; $cnt++; } // 入力値の取得 if (!isset($arrErr)) { $arrErr = array(); } $this->arrForm = $this->objFormParam->getFormParamList(); $this->arrErr = $arrErr; $objView->assignobj($this); $objView->display(SITE_FRAME); }