/** * Page を初期化する. * * @return void */ function init() { parent::init(); $this->tpl_mainpage = 'products/index.tpl'; $this->tpl_mainno = 'products'; $this->tpl_subno = 'index'; $this->tpl_pager = 'pager.tpl'; $this->tpl_maintitle = '商品管理'; $this->tpl_subtitle = '商品マスター'; $masterData = new SC_DB_MasterData_Ex(); $this->arrPageMax = $masterData->getMasterData('mtb_page_max'); $this->arrDISP = $masterData->getMasterData('mtb_disp'); $this->arrSTATUS = $masterData->getMasterData('mtb_status'); $this->arrPRODUCTSTATUS_COLOR = $masterData->getMasterData('mtb_product_status_color'); $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(); }
/** * Page のプロセス. * * @return void */ function process() { //---- 認証可否の判定 $objSess = new SC_Session(); SC_Utils_Ex::sfIsSuccess($objSess); $objView = new SC_AdminView(); $objQuery = new SC_Query(); $objFormParam = new SC_FormParam(); $objCSV = new SC_Helper_CSV_Ex(); // パラメータ情報の初期化 $this->lfInitParam($objFormParam); // フォームの値をセット $objFormParam->setParam($_POST); // 編集処理の場合は状態を保持 $this->is_update = isset($_POST['is_update']) ? $_POST['is_update'] : ""; // フォームの値をテンプレートへ渡す $this->arrForm = $objFormParam->getHashArray(); $campaign_id = isset($_POST['campaign_id']) ? $_POST['campaign_id'] : ""; if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } switch ($_POST['mode']) { // 新規登録/編集登録 case 'regist': // エラーチェック $this->arrErr = $this->lfErrorCheck($campaign_id, $objQuery, $objFormParam); if (count($this->arrErr) <= 0) { // 登録 $this->lfRegistCampaign($campaign_id, $objQuery, $objFormParam); // キャンペーンTOPへリダイレクト $this->sendRedirect($this->getLocation(URL_CAMPAIGN_TOP)); exit; } break; // 編集押下時 // 編集押下時 case 'update': // キャンペーン情報を取得 $this->arrForm = $this->lfGetCampaign($campaign_id, $objQuery); $this->is_update = true; break; // 削除押下時 // 削除押下時 case 'delete': // 削除 $this->lfDeleteCampaign($campaign_id, $objQuery); // キャンペーンTOPへリダイレクト $this->sendRedirect($this->getLocation(URL_CAMPAIGN_TOP)); exit; break; // CSV出力 // CSV出力 case 'csv': // オプションの指定 $option = "ORDER BY create_date DESC"; // CSV出力タイトル行の作成 $arrCsvOutput = SC_Utils_Ex::sfSwapArray($objCSV->sfgetCsvOutput(4, " WHERE csv_id = 4 AND status = 1")); if (count($arrCsvOutput) <= 0) { break; } $arrCsvOutputCols = $arrCsvOutput['col']; $arrCsvOutputTitle = $arrCsvOutput['disp_name']; $head = SC_Utils_Ex::sfGetCSVList($arrCsvOutputTitle); $data = $objCSV->lfGetCSV("dtb_campaign_order", "campaign_id = ?", $option, array($campaign_id), $arrCsvOutputCols); // CSVを送信する。 SC_Utils_Ex::sfCSVDownload($head . $data); exit; break; default: break; } // キャンペーン一覧取得 $this->arrCampaign = $this->lfGetCampaignList($objQuery); $this->campaign_id = $campaign_id; // キャンペーン期間用 $objDate = new SC_Date(); $this->arrYear = $objDate->getYear(min(date('Y'), $this->arrForm['start_year'])); $this->arrMonth = $objDate->getMonth(); $this->arrDay = $objDate->getDay(); $this->arrHour = $objDate->getHour(); $this->arrMinutes = $objDate->getMinutes(); //---- ページ表示 $objView->assignobj($this); $objView->display(MAIN_FRAME); }
/** * Page のプロセス. * * @return void */ function process() { $objView = new SC_SiteView(); $this->objQuery = new SC_Query(); $this->objCustomer = new SC_Customer(); $this->objFormParam = new SC_FormParam(); // レイアウトデザインを取得 $objLayout = new SC_Helper_PageLayout_Ex(); $objLayout->sfGetPageLayout($this, false, "mypage/index.php"); //日付プルダウン設定 $objDate = new SC_Date(1901); $this->arrYear = $objDate->getYear(); $this->arrMonth = $objDate->getMonth(); $this->arrDay = $objDate->getDay(); // ログインチェック if (!$this->objCustomer->isLoginSuccess()) { SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); } else { //マイページトップ顧客情報表示用 $this->CustomerName1 = $this->objCustomer->getvalue('name01'); $this->CustomerName2 = $this->objCustomer->getvalue('name02'); $this->CustomerPoint = $this->objCustomer->getvalue('point'); } //---- 登録用カラム配列 $arrRegistColumn = array(array("column" => "name01", "convert" => "aKV"), array("column" => "name02", "convert" => "aKV"), array("column" => "kana01", "convert" => "CKV"), array("column" => "kana02", "convert" => "CKV"), array("column" => "zip01", "convert" => "n"), array("column" => "zip02", "convert" => "n"), array("column" => "pref", "convert" => "n"), array("column" => "addr01", "convert" => "aKV"), array("column" => "addr02", "convert" => "aKV"), array("column" => "email", "convert" => "a"), array("column" => "email_mobile", "convert" => "a"), array("column" => "tel01", "convert" => "n"), array("column" => "tel02", "convert" => "n"), array("column" => "tel03", "convert" => "n"), array("column" => "fax01", "convert" => "n"), array("column" => "fax02", "convert" => "n"), array("column" => "fax03", "convert" => "n"), array("column" => "sex", "convert" => "n"), array("column" => "job", "convert" => "n"), array("column" => "birth", "convert" => "n"), array("column" => "password", "convert" => "an"), array("column" => "reminder", "convert" => "n"), array("column" => "reminder_answer", "convert" => "aKV"), array("column" => "mailmaga_flg", "convert" => "n")); //メールアドレス種別 $arrMailType = array("email" => true, "email_mobile" => true); if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } switch ($_POST['mode']) { case 'confirm': //エラーなしでかつメールアドレスが重複していない場合 if ($this->checkErrorTotal($arrRegistColumn, $arrMailType)) { //確認ページへ $this->tpl_mainpage = TEMPLATE_DIR . 'mypage/change_confirm.tpl'; $this->tpl_title = 'MYページ/会員登録内容変更(確認ページ)'; $passlen = strlen($this->arrForm['password']); $this->passlen = $this->lfPassLen($passlen); } else { $this->lfFormReturn($this->arrForm, $this); } break; case 'return': $this->arrForm = $_POST; $this->lfFormReturn($this->arrForm, $this); break; case 'gmo_oneclick': sfGMOMypageEdit(); $this->arrForm = $this->lfGetCustomerData(); $this->arrForm['password'] = DEFAULT_PASSWORD; $this->arrForm['password02'] = DEFAULT_PASSWORD; break; case 'complete': //エラーなしでかつメールアドレスが重複していない場合 if ($this->checkErrorTotal($arrRegistColumn, $arrMailType)) { $this->arrForm['customer_id'] = $this->objCustomer->getValue('customer_id'); //-- 編集登録 $objDb = new SC_Helper_DB_Ex(); $objDb->sfEditCustomerData($this->arrForm, $arrRegistColumn); //セッション情報を最新の状態に更新する $this->objCustomer->updateSession(); // Do楽SNS連携モジュールユーザ情報更新処理 if (function_exists('sfUpdateSourakuSNSUserInfo')) { sfUpdateSourakuSNSUserInfo(); } //完了ページへ $this->sendRedirect($this->getLocation("./change_complete.php")); exit; } else { SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); } break; default: //顧客情報取得 $this->arrForm = $this->lfGetCustomerData(); $this->arrForm['password'] = DEFAULT_PASSWORD; $this->arrForm['password02'] = DEFAULT_PASSWORD; break; } //誕生日データ登録の有無 $arrCustomer = $this->lfGetCustomerData(); if ($arrCustomer['birth'] != "") { $this->birth_check = true; } $objView->assignobj($this); //$objpage内の全てのテンプレート変数をsmartyに格納 $objView->display(SITE_FRAME); //パスとテンプレート変数の呼び出し、実行 }
/** * Page のプロセス. * * @return void */ function process() { //---- ページ初期設定 $objQuery = new SC_Query(); $objView = new SC_AdminView(); $objDate = new SC_Date(1901); $objDb = new SC_Helper_DB_Ex(); $this->arrYear = $objDate->getYear(); // 日付プルダウン設定 $this->arrMonth = $objDate->getMonth(); $this->arrDay = $objDate->getDay(); $this->objDate = $objDate; // 認証可否の判定 $objSess = new SC_Session(); SC_Utils_Ex::sfIsSuccess($objSess); // POST値の引き継ぎ $this->arrForm = $_POST; // ページ送り用 $this->arrHidden['search_pageno'] = isset($_POST['search_pageno']) ? $_POST['search_pageno'] : ""; // 検索ワードの引き継ぎ foreach ($_POST as $key => $val) { switch ($key) { case 'sex': case '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; } } if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } // 顧客削除 if ($_POST['mode'] == "delete") { $sql = "SELECT status,email FROM dtb_customer WHERE customer_id = ? AND del_flg = 0"; $result_customer = $objQuery->conn->getAll($sql, array($_POST["edit_customer_id"])); if ($result_customer[0]["status"] == 2) { //本会員削除 $arrDel = array("del_flg" => 1, "update_date" => "NOW()"); $objQuery->conn->autoExecute("dtb_customer", $arrDel, "customer_id = " . SC_Utils_Ex::sfQuoteSmart($_POST["edit_customer_id"])); } elseif ($result_customer[0]["status"] == 1) { //仮会員削除 $sql = "DELETE FROM dtb_customer WHERE customer_id = ?"; $objQuery->conn->query($sql, array($_POST["edit_customer_id"])); } } //if ($_POST['mode'] == "search" || $_POST['mode'] == "csv" || $_POST['mode'] == "delete" || $_POST['mode'] == "delete_all") { // 登録メール再送 if ($_POST['mode'] == "resend_mail") { $arrRet = $objQuery->select("name01, name02, secret_key, email", "dtb_customer", "customer_id = ? AND del_flg <> 1 AND status = 1", array($_POST["edit_customer_id"])); if (is_array($arrRet) === true && count($arrRet) > 0) { $CONF = $objDb->sf_getBasisData(); $this->CONF = $CONF; $objMailText = new SC_SiteView(); $objMailText->assignobj($this); $mailHelper = new SC_Helper_Mail_Ex(); $this->name01 = $arrRet[0]['name01']; $this->name02 = $arrRet[0]['name02']; $this->uniqid = $arrRet[0]['secret_key']; $subject = $mailHelper->sfMakesubject($objQuery, $objMailText, $this, '会員登録のご確認'); $toCustomerMail = $objMailText->fetch("mail_templates/customer_mail.tpl"); $objMail = new SC_SendMail(); $objMail->setItem('', $subject, $toCustomerMail, $CONF["email03"], $CONF["shop_name"], $CONF["email03"], $CONF["email04"], $CONF["email04"]); // 宛先の設定 $name = $this->name01 . $this->name02 . " 様"; $objMail->setTo($arrRet[0]["email"], $name); $objMail->sendMail(); } } if ($_POST['mode'] == "search" || $_POST['mode'] == "csv" || $_POST['mode'] == "delete" || $_POST['mode'] == "delete_all" || $_POST['mode'] == "resend_mail") { // 入力文字の強制変換 $this->lfConvertParam(); // エラーチェック $this->arrErr = $this->lfCheckError($this->arrForm); $where = "del_flg = 0"; /* 入力エラーなし */ if (count($this->arrErr) == 0) { //-- 検索データ取得 $objSelect = new SC_CustomerList($this->arrForm, "customer"); // 表示件数設定 $page_rows = $this->arrForm['page_rows']; if (is_numeric($page_rows)) { $page_max = $page_rows; } else { $page_max = SEARCH_PMAX; } if (!isset($this->arrForm['search_pageno'])) { $this->arrForm['search_pageno'] = ""; } if ($this->arrForm['search_pageno'] == 0) { $this->arrForm['search_pageno'] = 1; } $offset = $page_max * ($this->arrForm['search_pageno'] - 1); $objSelect->setLimitOffset($page_max, $offset); if ($_POST["mode"] == 'csv') { $searchSql = $objSelect->getListCSV($this->arrColumnCSV); } else { $searchSql = $objSelect->getList(); } $this->search_data = $objQuery->conn->getAll($searchSql, $objSelect->arrVal); switch ($_POST['mode']) { case 'csv': require_once CLASS_EX_PATH . "helper_extends/SC_Helper_CSV_Ex.php"; $objCSV = new SC_Helper_CSV_Ex(); $i = 0; $header = ""; // CSVカラム取得 $arrCsvOutput = $objCSV->sfgetCsvOutput(2, " WHERE csv_id = 2 AND status = 1"); if (count($arrCsvOutput) <= 0) { break; } foreach ($arrCsvOutput as $data) { $arrColumn[] = $data["col"]; if ($i != 0) { $header .= ", "; } $header .= $data["disp_name"]; $i++; } $header .= "\n"; //- 都道府県/職業の変換 for ($i = 0; $i < count($this->search_data); $i++) { $this->search_data[$i]["pref"] = $this->arrPref[$this->search_data[$i]["pref"]]; $this->search_data[$i]["job"] = $this->arrJob[$this->search_data[$i]["job"]]; } //- CSV出力 $data = SC_Utils_Ex::getCSVData($this->search_data, $arrColumn); SC_Utils_Ex::sfCSVDownload($header . $data); exit; break; case 'delete_all': // 検索結果をすべて削除 $where = "product_id IN (SELECT product_id FROM vw_products_nonclass AS noncls WHERE {$where})"; $sqlval['del_flg'] = 1; $objQuery->update("dtb_products", $sqlval, $where, $arrval); $sql = "SELECT status,email FROM dtb_customer WHERE customer_id = ? AND del_flg = 0"; $result_customer = $objQuery->conn->getAll($sql, array($_POST["del_customer_id"])); if ($result_customer[0]["status"] == 2) { //本会員削除 $arrDel = array("del_flg" => 1, "update_date" => "NOW()"); $objQuery->conn->autoExecute("dtb_customer", $arrDel, "customer_id = " . SC_Utils_Ex::sfQuoteSmart($_POST["del_customer_id"])); } elseif ($result_customer[0]["status"] == 1) { //仮会員削除 $sql = "DELETE FROM dtb_customer WHERE customer_id = ?"; $objQuery->conn->query($sql, array($_POST["del_customer_id"])); } break; default: // 行数の取得 $linemax = $objQuery->conn->getOne($objSelect->getListCount(), $objSelect->arrVal); $this->tpl_linemax = $linemax; // 何件が該当しました。表示用 // ページ送りの取得 $objNavi = new SC_PageNavi($this->arrHidden['search_pageno'], $linemax, $page_max, "fnCustomerPage", NAVI_PMAX); $startno = $objNavi->start_row; $this->arrPagenavi = $objNavi->arrPagenavi; } } } $this->arrCatList = $objDb->sfGetCategoryList(); //---- ページ表示 $objView->assignobj($this); $objView->display(MAIN_FRAME); }
/** * Page のプロセス. * * @return void */ function process() { $conn = new SC_DBConn(); $objView = new SC_AdminView(); $objDb = new SC_Helper_DB_Ex(); $objSess = new SC_Session(); // パラメータ管理クラス $this->objFormParam = new SC_FormParam(); // パラメータ情報の初期化 $this->lfInitParam(); $this->objFormParam->setParam($_POST); $this->objFormParam->splitParamCheckBoxes('search_order_sex'); $this->objFormParam->splitParamCheckBoxes('search_payment_id'); // 検索ワードの引き継ぎ foreach ($_POST as $key => $val) { if (ereg("^search_", $key)) { switch ($key) { case 'search_order_sex': case 'search_payment_id': $this->arrHidden[$key] = SC_Utils_Ex::sfMergeParamCheckBoxes($val); break; default: $this->arrHidden[$key] = $val; break; } } } // ページ送り用 $this->arrHidden['search_pageno'] = isset($_POST['search_pageno']) ? $_POST['search_pageno'] : ""; // 認証可否の判定 SC_Utils_Ex::sfIsSuccess($objSess); if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } if (!isset($arrRet)) { $arrRet = array(); } if ($_POST['mode'] == 'delete') { if (SC_Utils_Ex::sfIsInt($_POST['order_id'])) { $objQuery = new SC_Query(); $where = "order_id = ?"; $sqlval['del_flg'] = '1'; $objQuery->update("dtb_order", $sqlval, $where, array($_POST['order_id'])); } } switch ($_POST['mode']) { case 'delete': case 'csv': case 'pdf': case 'delete_all': case 'search': // 入力値の変換 $this->objFormParam->convParam(); $this->arrErr = $this->lfCheckError($arrRet); $arrRet = $this->objFormParam->getHashArray(); // 入力なし if (count($this->arrErr) == 0) { $where = "del_flg = 0"; foreach ($arrRet as $key => $val) { if ($val == "") { continue; } $val = SC_Utils_Ex::sfManualEscape($val); switch ($key) { case 'search_order_name': if (DB_TYPE == "pgsql") { $where .= " AND order_name01||order_name02 ILIKE ?"; } elseif (DB_TYPE == "mysql") { $where .= " AND concat(order_name01,order_name02) ILIKE ?"; } $nonsp_val = mb_ereg_replace("[ ]+", "", $val); $arrval[] = "%{$nonsp_val}%"; break; case 'search_order_kana': if (DB_TYPE == "pgsql") { $where .= " AND order_kana01||order_kana02 ILIKE ?"; } elseif (DB_TYPE == "mysql") { $where .= " AND concat(order_kana01,order_kana02) ILIKE ?"; } $nonsp_val = mb_ereg_replace("[ ]+", "", $val); $arrval[] = "%{$nonsp_val}%"; break; case 'search_order_id1': $where .= " AND order_id >= ?"; $arrval[] = $val; break; case 'search_order_id2': $where .= " AND order_id <= ?"; $arrval[] = $val; break; case 'search_order_sex': $tmp_where = ""; foreach ($val as $element) { if ($element != "") { if ($tmp_where == "") { $tmp_where .= " AND (order_sex = ?"; } else { $tmp_where .= " OR order_sex = ?"; } $arrval[] = $element; } } if ($tmp_where != "") { $tmp_where .= ")"; $where .= " {$tmp_where} "; } break; case 'search_order_tel': if (DB_TYPE == "pgsql") { $where .= " AND (order_tel01 || order_tel02 || order_tel03) LIKE ?"; } elseif (DB_TYPE == "mysql") { $where .= " AND concat(order_tel01,order_tel02,order_tel03) LIKE ?"; } $nonmark_val = ereg_replace("[()-]+", "", $val); $arrval[] = "%{$nonmark_val}%"; break; case 'search_order_email': $where .= " AND order_email ILIKE ?"; $arrval[] = "%{$val}%"; break; case 'search_payment_id': $tmp_where = ""; foreach ($val as $element) { if ($element != "") { if ($tmp_where == "") { $tmp_where .= " AND (payment_id = ?"; } else { $tmp_where .= " OR payment_id = ?"; } $arrval[] = $element; } } if ($tmp_where != "") { $tmp_where .= ")"; $where .= " {$tmp_where} "; } break; case 'search_total1': $where .= " AND total >= ?"; $arrval[] = $val; break; case 'search_total2': $where .= " AND total <= ?"; $arrval[] = $val; break; case 'search_sorderyear': $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_sorderyear'], $_POST['search_sordermonth'], $_POST['search_sorderday']); $where .= " AND create_date >= ?"; $arrval[] = $date; break; case 'search_eorderyear': $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_eorderyear'], $_POST['search_eordermonth'], $_POST['search_eorderday'], true); $where .= " AND create_date <= ?"; $arrval[] = $date; break; case 'search_supdateyear': $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_supdateyear'], $_POST['search_supdatemonth'], $_POST['search_supdateday']); $where .= " AND update_date >= ?"; $arrval[] = $date; break; case 'search_eupdateyear': $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_eupdateyear'], $_POST['search_eupdatemonth'], $_POST['search_eupdateday'], true); $where .= " AND update_date <= ?"; $arrval[] = $date; break; case 'search_sbirthyear': $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_sbirthyear'], $_POST['search_sbirthmonth'], $_POST['search_sbirthday']); $where .= " AND order_birth >= ?"; $arrval[] = $date; break; case 'search_ebirthyear': $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_ebirthyear'], $_POST['search_ebirthmonth'], $_POST['search_ebirthday'], true); $where .= " AND order_birth <= ?"; $arrval[] = $date; break; case 'search_order_status': $where .= " AND status = ?"; $arrval[] = $val; break; default: if (!isset($arrval)) { $arrval = array(); } break; } } $order = "update_date DESC"; 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出力タイトル行の作成 $arrCsvOutput = SC_Utils_Ex::sfSwapArray($objCSV->sfgetCsvOutput(3, " WHERE csv_id = 3 AND status = 1")); if (count($arrCsvOutput) <= 0) { break; } $arrCsvOutputCols = $arrCsvOutput['col']; $arrCsvOutputTitle = $arrCsvOutput['disp_name']; $head = SC_Utils_Ex::sfGetCSVList($arrCsvOutputTitle); $data = $objCSV->lfGetCSV("dtb_order", $where, $option, $arrval, $arrCsvOutputCols); // CSVを送信する。 SC_Utils_Ex::sfCSVDownload($head . $data); exit; break; case 'pdf': $objFpdf = new SC_Fpdf(1, '納品書'); $objFpdf->setData($arrRet); $objFpdf->createPdf(); break; case 'delete_all': // 検索結果をすべて削除 $sqlval['del_flg'] = 1; $objQuery = new SC_Query(); $objQuery->update("dtb_order", $sqlval, $where, $arrval); break; default: // 読み込む列とテーブルの指定 $col = "*"; $from = "dtb_order"; $objQuery = new SC_Query(); // 行数の取得 $linemax = $objQuery->count($from, $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; // 取得範囲の指定(開始行番号、行数のセット) $objQuery->setlimitoffset($page_max, $startno); // 表示順序 $objQuery->setorder($order); // 検索結果の取得 $this->arrResults = $objQuery->select($col, $from, $where, $arrval); } } break; default: break; } $objDate = new SC_Date(); // 登録・更新日検索用 $objDate->setStartYear(RELEASE_YEAR); $objDate->setEndYear(DATE("Y")); $this->arrRegistYear = $objDate->getYear(); // 生年月日検索用 $objDate->setStartYear(BIRTH_YEAR); $objDate->setEndYear(DATE("Y")); $this->arrBirthYear = $objDate->getYear(); // 月日の設定 $this->arrMonth = $objDate->getMonth(); $this->arrDay = $objDate->getDay(); // 入力値の取得 $this->arrForm = $this->objFormParam->getFormParamList(); // 支払い方法の取得 $arrRet = $objDb->sfGetPayment(); $this->arrPayment = SC_Utils_Ex::sfArrKeyValue($arrRet, 'payment_id', 'payment_method'); $objView->assignobj($this); $objView->display(MAIN_FRAME); }
/** * Page のプロセス. * * @return void */ function process() { // 認証可否の判定 $objSess = new SC_Session(); SC_Utils_Ex::sfIsSuccess($objSess); $this->objQuery = new SC_Query(); $this->objConn = new SC_DBConn(); $objView = new SC_AdminView(); $objDb = new SC_Helper_DB_Ex(); $objDate = new SC_Date(1901); $this->arrYear = $objDate->getYear(); // 日付プルダウン設定 $this->arrMonth = $objDate->getMonth(); $this->arrDay = $objDate->getDay(); //---- 登録用カラム配列 $arrRegistColumn = array(array("column" => "name01", "convert" => "aKV"), array("column" => "name02", "convert" => "aKV"), array("column" => "kana01", "convert" => "CKV"), array("column" => "kana02", "convert" => "CKV"), array("column" => "zip01", "convert" => "n"), array("column" => "zip02", "convert" => "n"), array("column" => "pref", "convert" => "n"), array("column" => "addr01", "convert" => "aKV"), array("column" => "addr02", "convert" => "aKV"), array("column" => "email", "convert" => "a"), array("column" => "email_mobile", "convert" => "a"), array("column" => "tel01", "convert" => "n"), array("column" => "tel02", "convert" => "n"), array("column" => "tel03", "convert" => "n"), array("column" => "fax01", "convert" => "n"), array("column" => "fax02", "convert" => "n"), array("column" => "fax03", "convert" => "n"), array("column" => "sex", "convert" => "n"), array("column" => "job", "convert" => "n"), array("column" => "birth", "convert" => "n"), array("column" => "password", "convert" => "a"), array("column" => "reminder", "convert" => "n"), array("column" => "reminder_answer", "convert" => "aKV"), array("column" => "mailmaga_flg", "convert" => "n"), array("column" => "note", "convert" => "aKV"), array("column" => "point", "convert" => "n"), array("column" => "status", "convert" => "n")); //---- 登録除外用カラム配列 $arrRejectRegistColumn = array("year", "month", "day"); // 検索条件を保持 if ($_POST['mode'] == "edit_search") { $arrSearch = $_POST; } else { $arrSearch = $_POST['search_data']; } if (is_array($arrSearch)) { foreach ($arrSearch as $key => $val) { $arrSearchData[$key] = $val; } } $this->arrSearchData = $arrSearchData; //---- 顧客編集情報取得 if (($_POST["mode"] == "edit" || $_POST["mode"] == "edit_search") && is_numeric($_POST["edit_customer_id"])) { //-- 顧客データ取得 $sql = "SELECT * FROM dtb_customer WHERE del_flg = 0 AND customer_id = ?"; $result = $this->objConn->getAll($sql, array($_POST["edit_customer_id"])); $this->list_data = $result[0]; $birth = split(" ", $this->list_data["birth"]); $birth = split("-", $birth[0]); $this->list_data["year"] = $birth[0]; $this->list_data["month"] = isset($birth[1]) ? $birth[1] : ""; $this->list_data["day"] = isset($birth[2]) ? $birth[2] : ""; $this->list_data["password"] = DEFAULT_PASSWORD; //DB登録のメールアドレスを渡す $this->tpl_edit_email = $result[0]['email']; //購入履歴情報の取得 $this->arrPurchaseHistory = $this->lfPurchaseHistory($_POST['edit_customer_id']); // 支払い方法の取得 $this->arrPayment = $objDb->sfGetIDValueList("dtb_payment", "payment_id", "payment_method"); } //---- 顧客情報編集 if ($_POST["mode"] != "edit" && $_POST["mode"] != "edit_search" && is_numeric($_POST["customer_id"])) { //-- POSTデータの引き継ぎ $this->arrForm = $_POST; $this->arrForm['email'] = strtolower($this->arrForm['email']); // emailはすべて小文字で処理 //-- 入力データの変換 $this->arrForm = $this->lfConvertParam($this->arrForm, $arrRegistColumn); //-- 入力チェック $this->arrErr = $this->lfErrorCheck($this->arrForm); //-- 入力エラー発生 or リターン時 if ($this->arrErr || $_POST["mode"] == "return") { foreach ($this->arrForm as $key => $val) { $this->list_data[$key] = $val; } //購入履歴情報の取得 $this->arrPurchaseHistory = $this->lfPurchaseHistory($_POST['customer_id']); // 支払い方法の取得 $this->arrPayment = $objDb->sfGetIDValueList("dtb_payment", "payment_id", "payment_method"); } else { //-- 確認 if ($_POST["mode"] == "confirm") { $this->tpl_mainpage = 'customer/edit_confirm.tpl'; $passlen = strlen($this->arrForm['password']); $this->passlen = $this->lfPassLen($passlen); } //-- 編集 if ($_POST["mode"] == "complete") { $this->tpl_mainpage = 'customer/edit_complete.tpl'; // 現在の会員情報を取得する $arrCusSts = $this->objQuery->getOne("SELECT status FROM dtb_customer WHERE customer_id = ?", array($_POST["customer_id"])); // 会員情報が変更されている場合にはシークレット№も更新する。 if ($arrCusSts != $_POST['status']) { $secret = SC_Utils_Ex::sfGetUniqRandomId("r"); $this->arrForm['secret_key'] = $secret; array_push($arrRegistColumn, array('column' => 'secret_key', 'convert' => 'n')); } //-- 編集登録 $objDb->sfEditCustomerData($this->arrForm, $arrRegistColumn); } } } //---- ページ表示 $objView->assignobj($this); $objView->display(MAIN_FRAME); }
/** * Page のプロセス. * * @return void */ function process() { $objView = new SC_AdminView(); $objSess = new SC_Session(); // 認証可否の判定 SC_Utils_Ex::sfIsSuccess($objSess); // 入力期間をセッションに記録する $this->lfSaveDateSession(); if (isset($_GET['draw_image']) && $_GET['draw_image'] != "") { define('DRAW_IMAGE', true); } else { define('DRAW_IMAGE', false); } // パラメータ管理クラス $this->objFormParam = new SC_FormParam(); // パラメータ情報の初期化 $this->lfInitParam(); $this->objFormParam->setParam($_POST); $this->objFormParam->setParam($_GET); // 検索ワードの引き継ぎ foreach ($_POST as $key => $val) { if (ereg("^search_", $key)) { $this->arrHidden[$key] = $val; } } $mode = $this->objFormParam->getValue('mode'); switch ($mode) { case 'pdf': case 'csv': case 'search': // 入力値の変換 $this->objFormParam->convParam(); $this->arrErr = $this->lfCheckError(); $arrRet = $this->objFormParam->getHashArray(); // 入力エラーなし if (empty($this->arrErr)) { foreach ($arrRet as $key => $val) { if ($val == "") { continue; } switch ($key) { case 'search_startyear': $sdate = $this->objFormParam->getValue('search_startyear') . "/" . $this->objFormParam->getValue('search_startmonth') . "/" . $this->objFormParam->getValue('search_startday'); break; case 'search_endyear': $edate = $this->objFormParam->getValue('search_endyear') . "/" . $this->objFormParam->getValue('search_endmonth') . "/" . $this->objFormParam->getValue('search_endday'); break; case 'search_startyear_m': list($sdate, $edate) = SC_Utils_Ex::sfTermMonth($this->objFormParam->getValue('search_startyear_m'), $this->objFormParam->getValue('search_startmonth_m'), CLOSE_DAY); break; default: break; } } if ($this->objFormParam->getValue('type') != "") { $type = $this->objFormParam->getValue('type'); } else { $type = ""; } $page = $this->objFormParam->getValue('page'); switch ($page) { // 商品別集計 case 'products': if ($type == "") { $type = 'all'; } $this->tpl_page_type = "total/page_products.tpl"; // 未集計データの集計を行う if (!DAILY_BATCH_MODE) { $this->objBatch->lfRealTimeDailyTotal($sdate, $edate); } // 検索結果の取得 $this->lfGetOrderProducts($type, $sdate, $edate, $this, $this->install_GD, $mode); break; // 職業別集計 // 職業別集計 case 'job': if ($type == "") { $type = 'all'; } $this->tpl_page_type = "total/page_job.tpl"; // 未集計データの集計を行う if (!DAILY_BATCH_MODE) { $this->objBatch->lfRealTimeDailyTotal($sdate, $edate); } // 検索結果の取得 $this->lfGetOrderJob($type, $sdate, $edate, $this, $this->install_GD); break; // 会員別集計 // 会員別集計 case 'member': if ($type == "") { $type = 'all'; } $this->tpl_page_type = "total/page_member.tpl"; // 未集計データの集計を行う if (!DAILY_BATCH_MODE) { $this->objBatch->lfRealTimeDailyTotal($sdate, $edate); } // 検索結果の取得 $this->lfGetOrderMember($type, $sdate, $edate, $this, $this->install_GD); break; // 年代別集計 // 年代別集計 case 'age': if ($type == "") { $type = 'all'; } $this->tpl_page_type = "total/page_age.tpl"; // 未集計データの集計を行う if (!DAILY_BATCH_MODE) { $this->objBatch->lfRealTimeDailyTotal($sdate, $edate); } // 検索結果の取得 $this->lfGetOrderAge($type, $sdate, $edate, $this, $this->install_GD); break; // 期間別集計 // 期間別集計 default: if (!isset($type)) { $type = ""; } if ($type == "") { $type = 'day'; } $this->tpl_page_type = "total/page_term.tpl"; // 未集計データの集計を行う if (!DAILY_BATCH_MODE) { $this->objBatch->lfRealTimeDailyTotal($sdate, $edate); } // 検索結果の取得 $this->lfGetOrderTerm($type, $sdate, $edate, $this, $this->install_GD); break; } if ($mode == 'csv') { // CSV出力タイトル行の取得 list($arrTitleCol, $arrDataCol) = $this->lfGetCSVColum($page, $this->keyname); $head = SC_Utils_Ex::sfGetCSVList($arrTitleCol); $data = $this->lfGetDataColCSV($this->arrResults, $arrDataCol); // CSVを送信する。 SC_Utils_Ex::sfCSVDownload($head . $data, $page . "_" . $type); exit; } if ($mode == 'pdf') { // CSV出力タイトル行の取得 list($arrTitleCol, $arrDataCol, $arrColSize, $arrAlign, $title) = $this->lfGetPDFColum($page, $type, $this->keyname); $head = SC_Utils_Ex::sfGetPDFList($arrTitleCol); $data = $this->lfGetDataColPDF($this->arrResults, $arrDataCol, 40); // PDF出力用 $graph_name = basename($this->tpl_image); $this->lfPDFDownload($graph_name, $head . $data, $arrColSize, $arrAlign, $sdate, $edate, $title, $page); exit; } } break; default: if (count($_GET) == 0) { // バッチモードの場合のみ実行する(当日の集計を行うため) if (DAILY_BATCH_MODE) { // 3日前までの集計 $this->objBatch->lfStartDailyTotal(3, 0); } } break; } // 登録・更新日検索用 $objDate = new SC_Date(); $objDate->setStartYear(RELEASE_YEAR); $objDate->setEndYear(DATE("Y")); $this->arrYear = $objDate->getYear(); $this->arrMonth = $objDate->getMonth(); $this->arrDay = $objDate->getDay(); // 入力値の取得 $this->arrForm = $this->objFormParam->getFormParamList(); $this->tpl_subtitle = $this->arrTitle[$this->objFormParam->getValue('page')]; $objView->assignobj($this); $objView->display(MAIN_FRAME); }
break; } } } break; // 前のページに戻る // 前のページに戻る case 'return': // 正常に登録されたことを記録しておく $objSiteSess->setRegistFlag(); // 確認ページへ移動 header("Location: " . URL_SHOP_CONFIRM); exit; break; } $objDate = new SC_Date(); $objDate->setStartYear(RELEASE_YEAR); $objDate->setEndYear(RELEASE_YEAR + CREDIT_ADD_YEAR); $objPage->arrYear = $objDate->getZeroYear(); $objPage->arrMonth = $objDate->getZeroMonth(); $objPage->arrForm = $objFormParam->getFormParamList(); $objView->assignobj($objPage); // フレームを選択(キャンペーンページから遷移なら変更) $objCampaignSess->pageView($objView); //----------------------------------------------------------------------------------------------------------------------------------- /* パラメータ情報の初期化 */ function lfInitParam() { global $objFormParam; $objFormParam->addParam("カード番号1", "card_no01", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); $objFormParam->addParam("カード番号2", "card_no02", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
/** * Page のプロセス. * * @return void */ function process() { $objView = new SC_AdminView(); $objSess = new SC_Session(); $objDate = new SC_Date(); $objQuery = new SC_Query(); // 登録・更新検索開始年 $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(); // 認証可否の判定 SC_Utils_Ex::sfIsSuccess($objSess); //レビュー情報のカラムの取得 $select = "review_id, A.product_id, reviewer_name, sex, recommend_level, "; $select .= "reviewer_url, title, comment, A.status, A.create_date, A.update_date, name"; $from = "dtb_review AS A LEFT JOIN dtb_products AS B ON A.product_id = B.product_id "; // 検索ワードの引き継ぎ foreach ($_POST as $key => $val) { if (ereg("^search_", $key)) { switch ($key) { case 'search_sex': $this->arrHidden[$key] = SC_Utils_Ex::sfMergeParamCheckBoxes($val); if (!is_array($val)) { $this->arrForm[$key] = split("-", $val); } break; default: $this->arrHidden[$key] = $val; break; } } } if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } if ($_POST['mode'] == "delete") { //レビューの削除 $objQuery->exec("UPDATE dtb_review SET del_flg=1 WHERE review_id=?", array($_POST['review_id'])); } if ($_POST['mode'] == 'search' || $_POST['mode'] == 'csv' || $_POST['mode'] == 'delete') { //削除されていない商品を検索 $where = "A.del_flg = 0 AND B.del_flg = 0"; $this->arrForm = $_POST; if (isset($_POST['search_sex']) && !is_array($_POST['search_sex'])) { $this->arrForm['search_sex'] = split("-", $_POST['search_sex']); } //エラーチェック $this->arrErr = $this->lfCheckError(); if (!$this->arrErr) { foreach ($_POST as $key => $val) { $val = SC_Utils_Ex::sfManualEscape($val); if ($val == "") { continue; } switch ($key) { case 'search_reviewer_name': $val = ereg_replace(" ", "%", $val); $val = ereg_replace(" ", "%", $val); $where .= " AND reviewer_name ILIKE ? "; $arrval[] = "%{$val}%"; break; case 'search_reviewer_url': $val = ereg_replace(" ", "%", $val); $val = ereg_replace(" ", "%", $val); $where .= " AND reviewer_url ILIKE ? "; $arrval[] = "%{$val}%"; break; case 'search_name': $val = ereg_replace(" ", "%", $val); $val = ereg_replace(" ", "%", $val); $where .= " AND name ILIKE ? "; $arrval[] = "%{$val}%"; break; case 'search_product_code': $val = ereg_replace(" ", "%", $val); $val = ereg_replace(" ", "%", $val); $where .= " AND A.product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ? )"; $arrval[] = "%{$val}%"; break; case 'search_sex': $tmp_where = ""; //$val=配列の中身,$element=各キーの値(1,2) if (is_array($val)) { foreach ($val as $element) { if ($element != "") { if ($tmp_where == "") { $tmp_where .= " AND (sex = ?"; } else { $tmp_where .= " OR sex = ?"; } $arrval[] = $element; } } if ($tmp_where != "") { $tmp_where .= ")"; $where .= " {$tmp_where} "; } } break; case 'search_recommend_level': $where .= " AND recommend_level = ? "; $arrval[] = $val; break; case 'search_startyear': if (isset($_POST['search_startyear']) && isset($_POST['search_startmonth']) && isset($_POST['search_startday'])) { $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_startyear'], $_POST['search_startmonth'], $_POST['search_startday']); $where .= " AND A.create_date >= ? "; $arrval[] = $date; } break; case 'search_endyear': if (isset($_POST['search_startyear']) && isset($_POST['search_startmonth']) && isset($_POST['search_startday'])) { $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_endyear'], $_POST['search_endmonth'], $_POST['search_endday']); $end_date = date("Y/m/d", strtotime("1 day", strtotime($date))); $where .= " AND A.create_date <= cast('{$end_date}' as date) "; } break; } } } $order = "A.create_date DESC"; // ページ送りの処理 if (is_numeric($_POST['search_page_max'])) { $page_max = $_POST['search_page_max']; } else { $page_max = SEARCH_PMAX; } if (!isset($arrval)) { $arrval = array(); } $linemax = $objQuery->count($from, $where, $arrval); $this->tpl_linemax = $linemax; $this->tpl_pageno = isset($_POST['search_pageno']) ? $_POST['search_pageno'] : ""; // ページ送りの取得 $objNavi = new SC_PageNavi($this->tpl_pageno, $linemax, $page_max, "fnNaviSearchPage", NAVI_PMAX); $this->arrPagenavi = $objNavi->arrPagenavi; $startno = $objNavi->start_row; // 取得範囲の指定(開始行番号、行数のセット) $objQuery->setlimitoffset($page_max, $startno); // 表示順序 $objQuery->setorder($order); //検索結果の取得 $this->arrReview = $objQuery->select($select, $from, $where, $arrval); //CSVダウンロード if ($_POST['mode'] == 'csv') { $objCSV = new SC_Helper_CSV_Ex(); // オプションの指定 $option = "ORDER BY review_id"; // CSV出力タイトル行の作成 $head = SC_Utils_Ex::sfGetCSVList($objCSV->arrREVIEW_CVSTITLE); $data = $objCSV->lfGetReviewCSV($where, '', $arrval); // CSVを送信する。 SC_Utils_Ex::sfCSVDownload($head . $data); exit; } } $objView->assignobj($this); $objView->display(MAIN_FRAME); }
/** * Page のプロセス(モバイル). * * @return void */ function mobileProcess() { $conn = new SC_DBConn(); $objView = new SC_MobileView(); $objSiteSess = new SC_SiteSession(); $objCartSess = new SC_CartSession(); $objCustomer = new SC_Customer(); $objCookie = new SC_Cookie(); $this->objFormParam = new SC_FormParam(); // フォーム用 $helperMobile = new SC_Helper_Mobile_Ex(); $this->lfInitParam(); // パラメータ情報の初期化 $this->objFormParam->setParam($_POST); // POST値の取得 // ユーザユニークIDの取得と購入状態の正当性をチェック $uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess); $this->tpl_uniqid = $uniqid; // ログインチェック if ($objCustomer->isLoginSuccess(true)) { // すでにログインされている場合は、お届け先設定画面に転送 $this->sendRedirect($this->getLocation('./deliv.php'), true); exit; } // 携帯端末IDが一致する会員が存在するかどうかをチェックする。 $this->tpl_valid_phone_id = $objCustomer->checkMobilePhoneId(); if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } switch ($_POST['mode']) { case 'nonmember_confirm': $this->lfSetNonMember($this); // ※breakなし // ※breakなし case 'confirm': // 入力値の変換 $this->objFormParam->convParam(); $this->objFormParam->toLower('order_mail'); $this->objFormParam->toLower('order_mail_check'); $this->arrErr = $this->lfCheckError(); // 入力エラーなし if (count($this->arrErr) == 0) { // DBへのデータ登録 $this->lfRegistData($uniqid); // お届け先のコピー $this->lfCopyDeliv($uniqid, $_POST); // 正常に登録されたことを記録しておく $objSiteSess->setRegistFlag(); // お支払い方法選択ページへ移動 $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT), true); exit; } break; // 前のページに戻る // 前のページに戻る case 'return': // 確認ページへ移動 $this->sendRedirect($this->getLocation(MOBILE_URL_CART_TOP), true); exit; break; case 'nonmember': $this->lfSetNonMember($this); // ※breakなし // ※breakなし default: if ($_GET['from'] == 'nonmember') { $this->lfSetNonMember($this); } // ユーザユニークIDの取得 $uniqid = $objSiteSess->getUniqId(); $objQuery = new SC_Query(); $where = "order_temp_id = ?"; $arrRet = $objQuery->select("*", "dtb_order_temp", $where, array($uniqid)); if (empty($arrRet)) { $arrRet = array(array('order_email' => "", 'order_birth' => "")); } // DB値の取得 $this->objFormParam->setParam($arrRet[0]); $this->objFormParam->setValue('order_email_check', $arrRet[0]['order_email']); $this->objFormParam->setDBDate($arrRet[0]['order_birth']); break; } // クッキー判定 $this->tpl_login_email = $objCookie->getCookie('login_email'); if ($this->tpl_login_email != "") { $this->tpl_login_memory = "1"; } // 選択用日付の取得 $objDate = new SC_Date(START_BIRTH_YEAR); $this->arrYear = $objDate->getYear('', 1950); // 日付プルダウン設定 $this->arrMonth = $objDate->getMonth(); $this->arrDay = $objDate->getDay(); if ($this->year == '') { $this->year = '----'; } // 入力値の取得 $this->arrForm = $this->objFormParam->getFormParamList(); if ($this->arrForm['year']['value'] == "") { $this->arrForm['year']['value'] = '----'; } $objView->assignobj($this); $objView->display(SITE_FRAME); }
/** * Page のプロセス. * * @return void */ function process() { $conn = new SC_DBConn(); $objView = new SC_AdminView(); $objDb = new SC_Helper_DB_Ex(); $objSess = new SC_Session(); $objDate = new SC_Date(1901); $objDate->setStartYear(RELEASE_YEAR); $this->arrYear = $objDate->getYear(); $this->arrMonth = $objDate->getMonth(); $this->arrDay = $objDate->getDay(); // 認証可否の判定 SC_Utils_Ex::sfIsSuccess($objSess); // 画面遷移の正当性チェック用にuniqidを埋め込む $objPage->tpl_uniqid = $objSess->getUniqId(); // パラメータ管理クラス $this->objFormParam = new SC_FormParam(); // パラメータ情報の初期化 $this->lfInitParam(); $this->objFormParam->setParam($_POST); if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } if (!isset($arrRet)) { $arrRet = array(); } switch ($_POST['mode']) { case "confirm": // 入力値の変換 $this->objFormParam->convParam(); $this->arrErr = $this->lfCheckError($arrRet); $arrRet = $this->objFormParam->getHashArray(); $this->arrForm = $arrRet; // エラー入力なし if (count($this->arrErr) == 0) { $i = 0; $objFpdf = new SC_Fpdf($arrRet['download'], $arrRet['title']); foreach ($arrRet['order_id'] as $key => $val) { $arrPdfData = $arrRet; $arrPdfData['order_id'] = $val; $objFpdf->setData($arrPdfData); ++$i; } $objFpdf->createPdf(); } break; default: // タイトルをセット $arrForm['title'] = "お買上げ明細書(納品書)"; // 今日の日付をセット $arrForm['year'] = date("Y"); $arrForm['month'] = date("m"); $arrForm['day'] = date("d"); // メッセージ $arrForm['msg1'] = 'このたびはお買上げいただきありがとうございます。'; $arrForm['msg2'] = '下記の内容にて納品させていただきます。'; $arrForm['msg3'] = 'ご確認いただきますよう、お願いいたします。'; // 注文番号があったら、セットする if (SC_Utils_Ex::sfIsInt($_GET['order_id'])) { $arrForm['order_id'][0] = $_GET['order_id']; } elseif (is_array($_POST['pdf_order_id'])) { sort($_POST['pdf_order_id']); foreach ($_POST['pdf_order_id'] as $key => $val) { $arrForm['order_id'][] = $val; } } $this->arrForm = $arrForm; break; } $objView->assignobj($this); $objView->display($this->tpl_mainpage); }
/** * 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); }
/** * Page のプロセス. * * @return void */ function process() { $conn = new SC_DBConn(); $objView = new SC_AdminView(); $objSess = new SC_Session(); $objSiteInfo = new SC_SiteInfo(); $objDb = new SC_Helper_DB_Ex(); $arrInfo = $objSiteInfo->data; // パラメータ管理クラス $this->objFormParam = new SC_FormParam(); // パラメータ情報の初期化 $this->lfInitParam(); // 認証可否の判定 SC_Utils_Ex::sfIsSuccess($objSess); // 検索パラメータの引き継ぎ foreach ($_POST as $key => $val) { if (ereg("^search_", $key)) { $this->arrSearchHidden[$key] = $val; } } // 表示モード判定 if (isset($_GET['order_id']) && SC_Utils_Ex::sfIsInt($_GET['order_id'])) { $this->disp_mode = true; $order_id = $_GET['order_id']; } else { $order_id = $_POST['order_id']; } $this->tpl_order_id = $order_id; // DBから受注情報を読み込む $this->lfGetOrderData($order_id); switch ($_POST['mode']) { case 'pre_edit': case 'order_id': break; case 'edit': case 'add': // POST情報で上書き $this->objFormParam->setParam($_POST); // 入力値の変換 $this->objFormParam->convParam(); $this->arrErr = $this->lfCheckError(); $this->arrErr = array_merge((array) $this->arrErr, (array) $this->lfCheek($arrInfo, $_POST['mode'])); if (count($this->arrErr) == 0) { if ($_POST['mode'] == 'add') { $order_id = $this->lfRegistNewData(); $this->tpl_order_id = $order_id; $this->tpl_mode = 'edit'; $arrData['order_id'] = $order_id; $this->objFormParam->setParam($arrData); $text = "'新規受注を登録しました。'"; } else { $this->lfRegistData($_POST['order_id']); $text = "'受注履歴を編集しました。'"; } // DBから受注情報を再読込 $this->lfGetOrderData($order_id); $this->tpl_onload = "window.alert(" . $text . ");"; } break; // 再計算 // 再計算 case 'cheek': // POST情報で上書き $this->objFormParam->setParam($_POST); // 入力値の変換 $this->objFormParam->convParam(); $this->arrErr = $this->lfCheckError(); if (count($this->arrErr) == 0) { $this->arrErr = $this->lfCheek($arrInfo, $_POST['mode']); } break; /* ペイジェント決済モジュール連携用 */ /* ペイジェント決済モジュール連携用 */ case 'paygent_order': $this->paygent_return = sfPaygentOrder($_POST['paygent_type'], $order_id); break; /* 商品削除*/ /* 商品削除*/ case 'delete_product': $delete_no = $_POST['delete_no']; foreach ($_POST as $key => $val) { if (is_array($val)) { foreach ($val as $k => $v) { if ($k != $delete_no) { $arrData[$key][] = $v; } } } else { $arrData[$key] = $val; } } // 情報上書き $this->objFormParam->setParam($arrData); // 入力値の変換 $this->objFormParam->convParam(); $this->arrErr = $this->lfCheckError(); if (count($this->arrErr) == 0) { $this->arrErr = $this->lfCheek($arrInfo, $_POST['mode']); } break; /* 商品追加ポップアップより商品選択後、商品情報取得*/ /* 商品追加ポップアップより商品選択後、商品情報取得*/ case 'select_product_detail': // POST情報で上書き $this->objFormParam->setParam($_POST); if (!empty($_POST['add_product_id'])) { $this->lfInsertProduct($_POST['add_product_id'], $_POST['add_classcategory_id1'], $_POST['add_classcategory_id2']); } elseif (!empty($_POST['edit_product_id'])) { $this->lfUpdateProduct($_POST['edit_product_id'], $_POST['edit_classcategory_id1'], $_POST['edit_classcategory_id2'], $_POST['no']); } $arrData = $_POST; foreach ($this->arrForm as $key => $val) { if (is_array($val)) { $arrData[$key] = $this->arrForm[$key]['value']; } else { $arrData[$key] = $val; } } // 情報上書き $this->objFormParam->setParam($arrData); // 入力値の変換 $this->objFormParam->convParam(); $this->arrErr = $this->lfCheckError(); if (count($this->arrErr) == 0) { $this->arrErr = $this->lfCheek($arrInfo, $_POST['mode']); } break; /* 顧客検索ポップアップより顧客指定後、顧客情報取得*/ /* 顧客検索ポップアップより顧客指定後、顧客情報取得*/ case 'search_customer': // POST情報で上書き $this->objFormParam->setParam($_POST); // 検索結果から顧客IDを指定された場合、顧客情報をフォームに代入する $this->lfSetCustomerInfo($_POST['edit_customer_id']); break; /* F-REGI決済モジュール連携用 */ /* F-REGI決済モジュール連携用 */ case 'fregi_status': $objFregiConfig = new LC_Page_Mdl_Fregi_Config(); $this->fregi_err = $objFregiConfig->getSaleInfo($order_id, $this->arrDisp); $this->lfGetOrderData($order_id); break; case 'fregi_card': $objFregiConfig = new LC_Page_Mdl_Fregi_Config(); $this->fregi_card_err = $objFregiConfig->setCardInfo($_POST['card_status'], $order_id, $this->arrDisp); $this->lfGetOrderData($order_id); break; /* SPS決済モジュール連携用 */ /* SPS決済モジュール連携用 */ case 'sps_request': $objErr = new SC_CheckError($_POST); $objErr->doFunc(array("年", "sps_year"), array('EXIST_CHECK')); $objErr->doFunc(array("月", "sps_month"), array('EXIST_CHECK')); $objErr->doFunc(array("日", "sps_date"), array('EXIST_CHECK')); $objErr->doFunc(array("売上・返金日", "sps_year", "sps_month", "sps_date"), array("CHECK_DATE")); if ($objErr->arrErr) { $this->arrErr = $objErr->arrErr; break; } $sps_return = sfSpsRequest($order_id, $_POST['request_type']); // DBから受注情報を再読込 $this->lfGetOrderData($order_id); $this->tpl_onload = "window.alert('" . $sps_return . "');"; break; /* GMOPG連携用 */ /* GMOPG連携用 */ case 'gmopg_order_edit': require_once MODULE_PATH . 'mdl_gmopg/class/LC_Mdl_GMOPG_OrderEdit.php'; $objGMOOrderEdit = new LC_MDL_GMOPG_OrderEdit(); $this->gmopg_order_edit_result = $objGMOOrderEdit->proccess(); $this->lfGetOrderData($order_id); break; default: break; } // 支払い方法の取得 $this->arrPayment = $objDb->sfGetIDValueList("dtb_payment", "payment_id", "payment_method"); // 配送時間の取得 $arrRet = $objDb->sfGetDelivTime($this->objFormParam->getValue('payment_id')); $this->arrDelivTime = SC_Utils_Ex::sfArrKeyValue($arrRet, 'time_id', 'deliv_time'); $this->arrForm = $this->objFormParam->getFormParamList(); $this->product_count = count($this->arrForm['quantity']['value']); // アンカーを設定 if (isset($_POST['anchor_key']) && !empty($_POST['anchor_key'])) { $anchor_hash = "location.hash='#" . $_POST['anchor_key'] . "'"; } else { $anchor_hash = ""; } $this->tpl_onload .= $anchor_hash; $this->arrInfo = $arrInfo; /** * SPS決済 クレジット判定用処理 */ if (file_exists(MODULE_PATH . 'mdl_sps/request.php') === TRUE) { $objQuery = new SC_Query(); $this->paymentType = $objQuery->getall("SELECT module_code, memo03 FROM dtb_payment WHERE payment_id = ? ", array($this->arrForm["payment_id"]['value'])); $objDate = new SC_Date(); $objDate->setStartYear(RELEASE_YEAR); $this->arrYear = $objDate->getYear(); $this->arrMonth = $objDate->getMonth(); $this->arrDay = $objDate->getDay(); } $objView->assignobj($this); // 表示モード判定 if (!$this->disp_mode) { $objView->display(MAIN_FRAME); } else { $objView->display('order/disp.tpl'); } }
/** * 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(); $objDate = new SC_Date(); $this->arrMonth = $objDate->getMonth(); $this->arrDay = $objDate->getDay(); // 認証可否の判定 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['holiday_id'] == "") { $this->lfInsertClass($this->arrForm); // 新規作成 } else { $this->lfUpdateClass($this->arrForm); // 既存編集 } // 再表示 $this->reload(); } else { // POSTデータを引き継ぐ $this->tpl_holiday_id = $_POST['holiday_id']; } break; // 削除 // 削除 case 'delete': $objDb->sfDeleteRankRecord("dtb_holiday", "holiday_id", $_POST['holiday_id'], "", true); // 再表示 $this->reload(); break; // 編集前処理 // 編集前処理 case 'pre_edit': // 編集項目をDBより取得する。 $where = "holiday_id = ?"; $arrRet = $objQuery->select("title, month, day", "dtb_holiday", $where, array($_POST['holiday_id'])); // 入力項目にカテゴリ名を入力する。 $this->arrForm['title'] = $arrRet[0]['title']; $this->arrForm['month'] = $arrRet[0]['month']; $this->arrForm['day'] = $arrRet[0]['day']; // POSTデータを引き継ぐ $this->tpl_holiday_id = $_POST['holiday_id']; break; case 'down': $objDb->sfRankDown("dtb_holiday", "holiday_id", $_POST['holiday_id']); // 再表示 $this->reload(); break; case 'up': $objDb->sfRankUp("dtb_holiday", "holiday_id", $_POST['holiday_id']); // 再表示 $this->reload(); break; default: break; } // 規格の読込 $where = "del_flg <> 1"; $objQuery->setorder("rank DESC"); $this->arrHoliday = $objQuery->select("holiday_id, title, month, day", "dtb_holiday", $where); $objView->assignobj($this); $objView->display(MAIN_FRAME); }
/** * Page のプロセス. * * @return void */ function process() { //---- ページ初期設定 $conn = new SC_DbConn(); $objView = new SC_AdminView(); $objDate = new SC_Date(ADMIN_NEWS_STARTYEAR); $objDb = new SC_Helper_DB_Ex(); SC_Utils_Ex::sfIsSuccess(new SC_Session()); //---- 日付プルダウン設定 $this->arrYear = $objDate->getYear(); $this->arrMonth = $objDate->getMonth(); $this->arrDay = $objDate->getDay(); if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } //---- 新規登録/編集登録 if ($_POST['mode'] == 'regist') { $_POST = $this->lfConvData($_POST); if ($this->arrErr = $this->lfErrorCheck()) { // 入力エラーのチェック foreach ($_POST as $key => $val) { $this->{$key} = $val; } $this->selected_year = $_POST["year"]; $this->selected_month = $_POST["month"]; $this->selected_day = $_POST["day"]; } else { if (isset($_POST['link_method']) == "") { $_POST['link_method'] = 1; } $this->registDate = $_POST['year'] . "/" . $_POST['month'] . "/" . $_POST['day']; //-- 編集登録 if (strlen($_POST["news_id"]) > 0 && is_numeric($_POST["news_id"])) { $this->lfNewsUpdate($conn); //-- 新規登録 } else { $this->lfNewsInsert($conn); } $this->tpl_onload = "window.alert('編集が完了しました');"; } } //---- 編集データ取得 if ($_POST["mode"] == "search" && is_numeric($_POST["news_id"])) { $sql = "SELECT *, cast(news_date as date) as cast_news_date FROM dtb_news WHERE news_id = ? "; $result = $conn->getAll($sql, array($_POST["news_id"])); foreach ($result[0] as $key => $val) { $this->{$key} = $val; } $arrData = split("-", $result[0]["cast_news_date"]); $this->selected_year = $arrData[0]; $this->selected_month = $arrData[1]; $this->selected_day = $arrData[2]; $this->edit_mode = "on"; } //---- データ削除 if ($_POST['mode'] == 'delete' && is_numeric($_POST["news_id"])) { // rankを取得 $pre_rank = $conn->getone(" SELECT rank FROM dtb_news WHERE del_flg = 0 AND news_id = ? ", array($_POST['news_id'])); //-- 削除する新着情報以降のrankを1つ繰り上げておく $conn->query("BEGIN"); $sql = "UPDATE dtb_news SET rank = rank - 1, update_date = NOW() WHERE del_flg = 0 AND rank > ?"; $conn->query($sql, array($pre_rank)); $sql = "UPDATE dtb_news SET rank = 0, del_flg = 1, update_date = NOW() WHERE news_id = ?"; $conn->query($sql, array($_POST['news_id'])); $conn->query("COMMIT"); $this->reload(); //自分にリダイレクト(再読込による誤動作防止) } //---- 表示順位移動 if ($_POST['mode'] == 'move' && is_numeric($_POST["news_id"])) { if ($_POST["term"] == "up") { $objDb->sfRankUp("dtb_news", "news_id", $_POST["news_id"]); } else { if ($_POST["term"] == "down") { $objDb->sfRankDown("dtb_news", "news_id", $_POST["news_id"]); } } //sf_rebuildIndex($conn); $this->reload(); } //---- 指定表示順位移動 if ($_POST['mode'] == 'moveRankSet') { $key = "pos-" . $_POST['news_id']; $input_pos = mb_convert_kana($_POST[$key], "n"); if (SC_Utils_Ex::sfIsInt($input_pos)) { $objDb->sfMoveRank("dtb_news", "news_id", $_POST['news_id'], $input_pos); $this->reload(); } } //---- 全データ取得 $sql = "SELECT *, cast(news_date as date) as cast_news_date FROM dtb_news WHERE del_flg = '0' ORDER BY rank DESC"; $this->list_data = $conn->getAll($sql); $this->line_max = count($this->list_data); $sql = "SELECT MAX(rank) FROM dtb_news WHERE del_flg = '0'"; // rankの最大値を取得 $this->max_rank = $conn->getOne($sql); $this->arrForm['news_select'] = 0; //---- ページ表示 $objView->assignobj($this); $objView->display(MAIN_FRAME); }
/** * Page のプロセス. * * @return void */ function process() { $objView = new SC_AdminView(); $objSess = new SC_Session(); $objDate = new SC_Date(); $objQuery = new SC_Query(); // 状態の設定 // 登録・更新検索開始年 $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(); // 認証可否の判定 SC_Utils_Ex::sfIsSuccess($objSess); // トラックバック情報のカラムの取得(viewとの結合のため、テーブルをAと定義しておく) $select = "A.trackback_id, A.product_id, A.blog_name, A.title, A.url, "; $select .= "A.excerpt, A.status, A.create_date, A.update_date, B.name"; $from = "dtb_trackback AS A LEFT JOIN dtb_products AS B ON A.product_id = B.product_id "; // 検索ワードの引き継ぎ foreach ($_POST as $key => $val) { if (ereg("^search_", $key)) { $this->arrHidden[$key] = $val; } } if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } // トラックバックの削除 if ($_POST['mode'] == "delete") { $objQuery->exec("UPDATE dtb_trackback SET del_flg = 1, update_date = now() WHERE trackback_id = ?", array($_POST['trackback_id'])); } if ($_POST['mode'] == 'search' || $_POST['mode'] == 'csv' || $_POST['mode'] == 'delete') { //削除されていない商品を検索 $where = "A.del_flg = 0 AND B.del_flg = 0"; $this->arrForm = $_POST; //エラーチェック $this->arrErr = $this->lfCheckError(); if (!$this->arrErr) { foreach ($_POST as $key => $val) { $val = SC_Utils_Ex::sfManualEscape($val); if ($val == "") { continue; } switch ($key) { case 'search_blog_name': $val = ereg_replace(" ", "%", $val); $val = ereg_replace(" ", "%", $val); $where .= " AND A.blog_name ILIKE ? "; $arrval[] = "%{$val}%"; break; case 'search_blog_title': $val = ereg_replace(" ", "%", $val); $val = ereg_replace(" ", "%", $val); $where .= " AND A.title ILIKE ? "; $arrval[] = "%{$val}%"; break; case 'search_blog_url': $val = ereg_replace(" ", "%", $val); $val = ereg_replace(" ", "%", $val); $where .= " AND A.url ILIKE ? "; $arrval[] = "%{$val}%"; break; case 'search_status': if (isset($_POST['search_status'])) { $where .= " AND A.status = ? "; $arrval[] = $val; } break; case 'search_name': $val = ereg_replace(" ", "%", $val); $val = ereg_replace(" ", "%", $val); $where .= " AND B.name ILIKE ? "; $arrval[] = "%{$val}%"; break; case 'search_product_code': $val = ereg_replace(" ", "%", $val); $val = ereg_replace(" ", "%", $val); $where .= " AND B.product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ? )"; $arrval[] = "%{$val}%"; break; case 'search_startyear': if (isset($_POST['search_startyear']) && isset($_POST['search_startmonth']) && isset($_POST['search_startday'])) { $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_startyear'], $_POST['search_startmonth'], $_POST['search_startday']); $where .= " AND A.create_date >= ? "; $arrval[] = $date; } break; case 'search_endyear': if (isset($_POST['search_startyear']) && isset($_POST['search_startmonth']) && isset($_POST['search_startday'])) { $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_endyear'], $_POST['search_endmonth'], $_POST['search_endday']); $end_date = date("Y/m/d", strtotime("1 day", strtotime($date))); $where .= " AND A.create_date <= cast('{$end_date}' as date) "; } break; } } } $order = "A.create_date DESC"; // ページ送りの処理 if (is_numeric($_POST['search_page_max'])) { $page_max = $_POST['search_page_max']; } else { $page_max = SEARCH_PMAX; } if (!isset($arrval)) { $arrval = array(); } $linemax = $objQuery->count($from, $where, $arrval); $this->tpl_linemax = $linemax; $this->tpl_pageno = isset($_POST['search_pageno']) ? $_POST['search_pageno'] : ""; // ページ送りの取得 $objNavi = new SC_PageNavi($this->tpl_pageno, $linemax, $page_max, "fnNaviSearchPage", NAVI_PMAX); $this->arrPagenavi = $objNavi->arrPagenavi; $startno = $objNavi->start_row; // 取得範囲の指定(開始行番号、行数のセット) $objQuery->setlimitoffset($page_max, $startno); // 表示順序 $objQuery->setorder($order); //検索結果の取得 $this->arrTrackback = $objQuery->select($select, $from, $where, $arrval); //CSVダウンロード if ($_POST['mode'] == 'csv') { $objCSV = new SC_Helper_CSV_Ex(); // オプションの指定 $option = "ORDER BY A.trackback_id"; // CSV出力タイトル行の作成 $head = SC_Utils_Ex::sfGetCSVList($objCSV->arrTRACKBACK_CVSTITLE); $data = $objCSV->lfGetTrackbackCSV($where, '', $arrval); // CSVを送信する。 SC_Utils_Ex::sfCSVDownload($head . $data); exit; } } $objView->assignobj($this); $objView->display(MAIN_FRAME); }