/** * Page のアクション. * * @return void */ function action() { $objDb = new SC_Helper_DB_Ex(); $objFormParam = new SC_FormParam_Ex(); // 入力パラメーター初期化 $this->initParam($objFormParam); $objFormParam->setParam($_POST); $objFormParam->convParam(); switch ($this->getMode()) { // カテゴリ登録/編集実行 case 'edit': $this->doEdit($objFormParam); break; // 入力ボックスへ編集対象のカテゴリ名をセット // 入力ボックスへ編集対象のカテゴリ名をセット case 'pre_edit': $this->doPreEdit($objFormParam); break; // カテゴリ削除 // カテゴリ削除 case 'delete': $this->doDelete($objFormParam, $objDb); break; // 表示順を上へ // 表示順を上へ case 'up': $this->doUp($objFormParam); break; // 表示順を下へ // 表示順を下へ case 'down': $this->doDown($objFormParam); break; // FIXME r19909 によってテンプレートが削除されている // FIXME r19909 によってテンプレートが削除されている case 'moveByDnD': // DnDしたカテゴリと移動先のセットを分解する $keys = explode('-', $_POST['keySet']); if ($keys[0] && $keys[1]) { $objQuery =& SC_Query_Ex::getSingletonInstance(); $objQuery->begin(); // 移動したデータのrank、level、parent_category_idを取得 $rank = $objQuery->get('rank', 'dtb_category', 'category_id = ?', array($keys[0])); $level = $objQuery->get('level', 'dtb_category', 'category_id = ?', array($keys[0])); $parent = $objQuery->get('parent_category_id', 'dtb_category', 'category_id = ?', array($keys[0])); // 同一level内のrank配列を作成 $objQuery->setOption('ORDER BY rank DESC'); if ($level == 1) { // 第1階層の時 $arrRet = $objQuery->select('rank', 'dtb_category', 'level = ?', array($level)); } else { // 第2階層以下の時 $arrRet = $objQuery->select('rank', 'dtb_category', 'level = ? AND parent_category_id = ?', array($level, $parent)); } for ($i = 0; $i < sizeof($arrRet); $i++) { $rankAry[$i + 1] = $arrRet[$i]['rank']; } // 移動したデータのグループ内データ数 $my_count = $this->lfCountChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $keys[0]); if ($rankAry[$keys[1]] > $rank) { // データが今の位置より上がった時 $up_count = $rankAry[$keys[1]] - $rank; $decAry = $objQuery->select('category_id', 'dtb_category', 'level = ? AND rank > ? AND rank <= ?', array($level, $rank, $rankAry[$keys[1]])); foreach ($decAry as $value) { // 上のグループから減算 $this->lfDownRankChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $value['category_id'], $my_count); } // 自分のグループに加算 $this->lfUpRankChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $keys[0], $up_count); } else { if ($rankAry[$keys[1]] < $rank) { // データが今の位置より下がった時 $down_count = 0; $incAry = $objQuery->select('category_id', 'dtb_category', 'level = ? AND rank < ? AND rank >= ?', array($level, $rank, $rankAry[$keys[1]])); foreach ($incAry as $value) { // 下のグループに加算 $this->lfUpRankChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $value['category_id'], $my_count); // 合計減算値 $down_count += $this->lfCountChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $value['category_id']); } // 自分のグループから減算 $this->lfDownRankChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $keys[0], $down_count); } } $objQuery->commit(); } break; // カテゴリツリークリック時 // カテゴリツリークリック時 case 'tree': break; // CSVダウンロード // CSVダウンロード case 'csv': // CSVを送信する $objCSV = new SC_Helper_CSV_Ex(); $objCSV->sfDownloadCsv('5', '', array(), '', true); SC_Response_Ex::actionExit(); break; default: break; } $parent_category_id = $objFormParam->getValue('parent_category_id'); // 空の場合は親カテゴリを0にする if (empty($parent_category_id)) { $parent_category_id = 0; } // 親カテゴリIDの保持 $this->arrForm['parent_category_id'] = $parent_category_id; // カテゴリ一覧を取得 $this->arrList = $this->findCategoiesByParentCategoryId($parent_category_id); // カテゴリツリーを取得 $this->arrTree = $objDb->sfGetCatTree($parent_category_id); // ぱんくずの生成 $arrBread = array(); $objDb->findTree($this->arrTree, $parent_category_id, $arrBread); $this->tpl_bread_crumbs = SC_Utils_Ex::jsonEncode($arrBread); }
/** * Page のアクション. * * @return void */ function action() { $objDb = new SC_Helper_DB_Ex(); $objFormParam = new SC_FormParam_Ex(); $objProduct = new SC_Product_Ex(); $objQuery =& SC_Query_Ex::getSingletonInstance(); // パラメーター情報の初期化 $this->lfInitParam($objFormParam); $objFormParam->setParam($_POST); $this->arrHidden = $objFormParam->getSearchArray(); $this->arrForm = $objFormParam->getFormParamList(); switch ($this->getMode()) { case 'delete': // 商品、子テーブル(商品規格)、会員お気に入り商品の削除 $this->doDelete('product_id = ?', array($objFormParam->getValue('product_id'))); // 件数カウントバッチ実行 $objDb->sfCountCategory($objQuery); $objDb->sfCountMaker($objQuery); // 削除後に検索結果を表示するため breakしない // 検索パラメーター生成後に処理実行するため breakしない // 削除後に検索結果を表示するため breakしない // 検索パラメーター生成後に処理実行するため breakしない case 'csv': case 'delete_all': case 'search': $objFormParam->convParam(); $objFormParam->trimParam(); $this->arrErr = $this->lfCheckError($objFormParam); $arrParam = $objFormParam->getHashArray(); if (count($this->arrErr) == 0) { $where = 'del_flg = 0'; $arrWhereVal = array(); foreach ($arrParam as $key => $val) { if ($val == '') { continue; } $this->buildQuery($key, $where, $arrWhereVal, $objFormParam, $objDb); } $order = 'update_date DESC'; /* ----------------------------------------------- * 処理を実行 * ----------------------------------------------- */ switch ($this->getMode()) { // CSVを送信する。 case 'csv': $objCSV = new SC_Helper_CSV_Ex(); // CSVを送信する。正常終了の場合、終了。 $objCSV->sfDownloadCsv(1, $where, $arrWhereVal, $order, true); SC_Response_Ex::actionExit(); // 全件削除(ADMIN_MODE) // 全件削除(ADMIN_MODE) case 'delete_all': $this->doDelete($where, $arrWhereVal); break; // 検索実行 // 検索実行 default: // 行数の取得 $this->tpl_linemax = $this->getNumberOfLines($where, $arrWhereVal); // ページ送りの処理 $page_max = SC_Utils_Ex::sfGetSearchPageMax($objFormParam->getValue('search_page_max')); // ページ送りの取得 $objNavi = new SC_PageNavi_Ex($this->arrHidden['search_pageno'], $this->tpl_linemax, $page_max, 'fnNaviSearchPage', NAVI_PMAX); $this->arrPagenavi = $objNavi->arrPagenavi; // 検索結果の取得 $this->arrProducts = $this->findProducts($where, $arrWhereVal, $page_max, $objNavi->start_row, $order, $objProduct); // 各商品ごとのカテゴリIDを取得 if (count($this->arrProducts) > 0) { foreach ($this->arrProducts as $key => $val) { $this->arrProducts[$key]['categories'] = $objDb->sfGetCategoryId($val['product_id'], 0, true); $objDb->g_category_on = false; } } } } break; } // カテゴリの読込 list($this->arrCatKey, $this->arrCatVal) = $objDb->sfGetLevelCatList(false); $this->arrCatList = $this->lfGetIDName($this->arrCatKey, $this->arrCatVal); }
/** * CSV データを構築して取得する. * * 構築に成功した場合は, ファイル名と出力内容を配列で返す. * 構築に失敗した場合は, false を返す. * * @param string $where 検索条件の WHERE 句 * @param array $arrVal 検索条件のパラメーター * @param string $order 検索結果の並び順 * @return void */ function doOutputCSV($where, $arrVal, $order) { if ($where != '') { $where = " WHERE {$where} "; } $objCSV = new SC_Helper_CSV_Ex(); $objCSV->sfDownloadCsv('3', $where, $arrVal, $order, true); }
/** * CSV ファイル出力実行 * * @param string $where WHERE文 * @param array $arrval WHERE文の判定値 * @return void */ function lfDoOutputCsv($where, $arrVal) { $objCSV = new SC_Helper_CSV_Ex(); if ($where != "") { $where = "WHERE " . $where; } $objCSV->sfDownloadCsv("4", $where, $arrVal, "", true); }
/** * CSV データを構築して取得する. * * 構築に成功した場合は, ファイル名と出力内容を配列で返す. * 構築に失敗した場合は, false を返す. * * @param string $where 検索条件の WHERE 句 * @param array $arrVal 検索条件のパラメーター * @param string $order 検索結果の並び順 * @return void */ function doOutputCSV($where, $arrVal, $order) { require_once CLASS_EX_REALDIR . 'helper_extends/SC_Helper_CSV_Ex.php'; if ($where != "") { $where = " WHERE {$where} "; } $objCSV = new SC_Helper_CSV_Ex(); $objCSV->sfDownloadCsv("3", $where, $arrVal, $order, true); }
/** * 会員一覧CSVを検索してダウンロードする処理 * * @param array $arrParam 検索パラメーター連想配列 * @return boolean|string true:成功 false:失敗 */ public function lfDoCSV($arrParam) { $objSelect = new SC_CustomerList_Ex($arrParam, 'customer'); $objCSV = new SC_Helper_CSV_Ex(); $order = 'update_date DESC, customer_id DESC'; list($where, $arrVal) = $objSelect->getWhere(); return $objCSV->sfDownloadCsv('2', $where, $arrVal, $order, true); }
/** * CSV データを構築して取得する. * * 構築に成功した場合は, ファイル名と出力内容を配列で返す. * 構築に失敗した場合は, false を返す. * * @param string $where 検索条件の WHERE 句 * @param array $arrVal 検索条件のパラメーター * @param string $order 検索結果の並び順 * @return void */ public function doOutputCSV($where, $arrVal, $order) { $objCSV = new SC_Helper_CSV_Ex(); $objCSV->sfDownloadCsv('3', $where, $arrVal, $order, true); }
/** * CSV ファイル出力実行 * * @param string $where WHERE文 * @param array $arrWhereVal WHERE文の判定値 * @return void */ public function lfDoOutputCsv($where, $arrWhereVal) { $objCSV = new SC_Helper_CSV_Ex(); $objCSV->sfDownloadCsv('4', $where, $arrWhereVal, '', true); }
/** * CSV ファイル出力実行 * * @param string $where WHERE文 * @param array $arrWhereVal WHERE文の判定値 * @return void */ function lfDoOutputCsv($where, $arrWhereVal) { $objCSV = new SC_Helper_CSV_Ex(); if ($where != '') { $where = 'WHERE ' . $where; } $objCSV->sfDownloadCsv('4', $where, $arrWhereVal, '', true); }
function doSearchCsv(SC_Query $objQuery, SC_FormParam &$objFormParam) { if (!SC_Utils_Ex::isBlank($this->arrErr)) { return; } $objSql = new SC_DeviceAndroidSelect_Ex($objFormParam->getHashArray()); $objCsv = new SC_Helper_CSV_Ex(); $objCsv->sfDownloadCsv("7", $objSql->getWhere(false), $objSql->arrWhereVal, "device_id", true); }
/** * 顧客一覧CSVを検索してダウンロードする処理 * * @param array $arrParam 検索パラメーター連想配列 * @return boolean true:成功 false:失敗 */ function lfDoCSV($arrParam) { $objSelect = new SC_CustomerList_Ex($arrParam, 'customer'); $order = "update_date DESC, customer_id DESC"; require_once CLASS_EX_REALDIR . 'helper_extends/SC_Helper_CSV_Ex.php'; $objCSV = new SC_Helper_CSV_Ex(); list($where, $arrVal) = $objSelect->getWhere(); return $objCSV->sfDownloadCsv('2', $where, $arrVal, $order, true); }