本文整理汇总了PHP中SC_Utils_Ex::sfGetCommaList方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_Utils_Ex::sfGetCommaList方法的具体用法?PHP SC_Utils_Ex::sfGetCommaList怎么用?PHP SC_Utils_Ex::sfGetCommaList使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SC_Utils_Ex
的用法示例。
在下文中一共展示了SC_Utils_Ex::sfGetCommaList方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sfDownloadCsv
/**
* CSVファイルを送信する
*
* @param integer $csv_id
* CSVフォーマットID
* @param string $where
* WHERE条件文
* @param array $arrVal
* プリペアドステートメントの実行時に使用される配列。配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。
* @param string $order
* ORDER文
* @param boolean $is_download
* true:ダウンロード用出力までさせる false:CSVの内容を返す(旧方式、メモリを食います。)
* @return boolean|string $is_download = true時 成功失敗フラグ(boolean) 、$is_downalod = false時 string
*/
public function sfDownloadCsv($csv_id, $where = '', $arrVal = array(), $order = '', $is_download = false)
{
switch ($csv_id) {
case 1:
case 2:
case 3:
case 4:
case 5:
return parent::sfDownloadCsv($csv_id, $where, $arrVal, $order, $is_download);
}
$objQuery =& SC_Query_Ex::getSingletonInstance();
// CSV出力タイトル行の作成
$arrOutput = SC_Utils_Ex::sfSwapArray($this->sfGetCsvOutput($csv_id, 'status = ' . CSV_COLUMN_STATUS_FLG_ENABLE));
if (count($arrOutput) <= 0) {
SC_Utils_Ex::sfDispError("");
return false;
// 失敗終了
}
$arrOutputCols = $arrOutput['col'];
$cols = SC_Utils_Ex::sfGetCommaList($arrOutputCols, true);
switch ($csv_id) {
case 6:
// キャラクター
$from = 'cp_dtb_character';
break;
case 7:
// 端末
$from = 'cp_dtb_device';
break;
}
$objQuery->setOrder($order);
$sql = $objQuery->getSql($cols, $from, $where);
return $this->sfDownloadCsvFromSql($sql, $arrVal, $this->arrSubnavi[$csv_id], $arrOutput['disp_name'], $is_download);
}
示例2: sfDownloadCsv
/**
* CSVファイルを送信する
*
* @param integer $csv_id CSVフォーマットID
* @param string $where WHERE条件文
* @param array $arrVal プリペアドステートメントの実行時に使用される配列。配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。
* @param string $order ORDER文
* @param boolean $is_download true:ダウンロード用出力までさせる false:CSVの内容を返す(旧方式、メモリを食います。)
* @return boolean|string $is_download = true時 成功失敗フラグ(boolean) 、$is_downalod = false時 string
*/
public function sfDownloadCsv($csv_id, $where = '', $arrVal = array(), $order = '', $is_download = false)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
// CSV出力タイトル行の作成
$arrOutput = SC_Utils_Ex::sfSwapArray($this->sfGetCsvOutput($csv_id, 'status = ' . CSV_COLUMN_STATUS_FLG_ENABLE));
if (count($arrOutput) <= 0) {
return false;
}
// 失敗終了
$arrOutputCols = $arrOutput['col'];
$cols = SC_Utils_Ex::sfGetCommaList($arrOutputCols, true);
// 商品の場合
if ($csv_id == 1) {
// この WHERE 句を足さないと無効な規格も出力される。現行仕様と合わせる為追加。
$inner_where = 'dtb_products_class.del_flg = 0';
$from = SC_Product_Ex::prdclsSQL($inner_where);
// 会員の場合
} elseif ($csv_id == 2) {
$from = 'dtb_customer';
// 注文の場合
} elseif ($csv_id == 3) {
$from = 'dtb_order';
// レビューの場合
} elseif ($csv_id == 4) {
$from = 'dtb_review AS A INNER JOIN dtb_products AS B on A.product_id = B.product_id';
// カテゴリの場合
} elseif ($csv_id == 5) {
$from = 'dtb_category';
}
$objQuery->setOrder($order);
$sql = $objQuery->getSql($cols, $from, $where);
return $this->sfDownloadCsvFromSql($sql, $arrVal, $this->arrSubnavi[$csv_id], $arrOutput['disp_name'], $is_download);
}
示例3: sfDownloadCsv
/**
* CSVファイルを送信する
*
* @param integer $csv_id CSVフォーマットID
* @param string $where WHERE条件文
* @param array $arrVal プリペアドステートメントの実行時に使用される配列。配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。
* @param string $order ORDER文
* @param boolean $is_download true:ダウンロード用出力までさせる false:CSVの内容を返す(旧方式、メモリを食います。)
* @return mixed $is_download = true時 成功失敗フラグ(boolean) 、$is_downalod = false時 string
*/
function sfDownloadCsv($csv_id, $where = '', $arrVal = array(), $order = '', $is_download = false)
{
// 実行時間を制限しない
@set_time_limit(0);
// CSV出力タイトル行の作成
$arrOutput = SC_Utils_Ex::sfSwapArray($this->sfGetCsvOutput($csv_id, 'status = ' . CSV_COLUMN_STATUS_FLG_ENABLE));
if (count($arrOutput) <= 0) {
return false;
}
// 失敗終了
$arrOutputCols = $arrOutput['col'];
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->setOrder($order);
$cols = SC_Utils_Ex::sfGetCommaList($arrOutputCols, true);
// TODO: 固有処理 なんかエレガントな処理にしたい
if ($csv_id == '1') {
//商品の場合
$objProduct = new SC_Product_Ex();
// このWhereを足さないと無効な規格も出力される。現行仕様と合わせる為追加。
$inner_where = 'dtb_products_class.del_flg = 0';
$sql = $objQuery->getSql($cols, $objProduct->prdclsSQL($inner_where), $where);
} else {
if ($csv_id == '2') {
// 会員の場合
$sql = 'SELECT ' . $cols . ' FROM dtb_customer ' . $where;
} else {
if ($csv_id == '3') {
// 注文の場合
$sql = 'SELECT ' . $cols . ' FROM dtb_order ' . $where;
} else {
if ($csv_id == '4') {
// レビューの場合
$sql = 'SELECT ' . $cols . ' FROM dtb_review AS A INNER JOIN dtb_products AS B on A.product_id = B.product_id ' . $where;
} else {
if ($csv_id == '5') {
// カテゴリの場合
$sql = 'SELECT ' . $cols . ' FROM dtb_category ' . $where;
}
}
}
}
}
// 固有処理ここまで
return $this->sfDownloadCsvFromSql($sql, $arrVal, $this->arrSubnavi[$csv_id], $arrOutput['disp_name'], $is_download);
}
示例4: lfDownRankChilds
function lfDownRankChilds($objQuery, $table, $pid_name, $id_name, $id, $count)
{
$objDb = new SC_Helper_DB_Ex();
// 子ID一覧を取得
$arrRet = $objDb->sfGetChildrenArray($table, $pid_name, $id_name, $id);
$line = SC_Utils_Ex::sfGetCommaList($arrRet);
$where = "{$id_name} IN ({$line}) AND del_flg = 0";
$arrRawVal = array('rank' => "(rank - {$count})");
return $objQuery->update($table, array(), $where, array(), $arrRawVal);
}
示例5: lfDownRankChilds
function lfDownRankChilds($objQuery, $table, $pid_name, $id_name, $id, $count)
{
$objDb = new SC_Helper_DB_Ex();
// 子ID一覧を取得
$arrRet = $objDb->sfGetChildrenArray($table, $pid_name, $id_name, $id);
$line = SC_Utils_Ex::sfGetCommaList($arrRet);
$sql = "UPDATE {$table} SET rank = (rank - {$count}) WHERE {$id_name} IN ({$line}) ";
$sql .= 'AND del_flg = 0';
$ret = $objQuery->exec($sql);
return $ret;
}
示例6: process
/**
* Page のプロセス.
*
* @return void
*/
function process()
{
$conn = new SC_DBConn();
$objView = new SC_AdminView();
$objSess = new SC_Session();
$objQuery = new SC_Query();
// 認証可否の判定
SC_Utils_Ex::sfIsSuccess($objSess);
// パラメータ管理クラス
$this->objFormParam = new SC_FormParam();
// パラメータ情報の初期化
$this->lfInitParam();
// POST値の取得
$this->objFormParam->setParam($_POST);
$cnt = $objQuery->count("dtb_baseinfo");
if ($cnt > 0) {
$this->tpl_mode = "update";
} else {
$this->tpl_mode = "insert";
}
if (isset($_POST['mode']) && !empty($_POST['mode'])) {
// 入力値の変換
$this->objFormParam->convParam();
$this->arrErr = $this->lfCheckError();
if (count($this->arrErr) == 0) {
switch ($_POST['mode']) {
case 'update':
$this->lfUpdateData();
// 既存編集
break;
case 'insert':
$this->lfInsertData();
// 新規作成
break;
default:
break;
}
// 再表示
//sfReload();
$this->tpl_onload = "window.alert('特定商取引法の登録が完了しました。');";
}
} else {
$arrCol = $this->objFormParam->getKeyList();
// キー名一覧を取得
$col = SC_Utils_Ex::sfGetCommaList($arrCol);
$arrRet = $objQuery->select($col, "dtb_baseinfo");
// DB値の取得
$this->objFormParam->setParam($arrRet[0]);
}
$this->arrForm = $this->objFormParam->getFormParamList();
$objView->assignobj($this);
$objView->display(MAIN_FRAME);
}
示例7: action
/**
* Page のアクション.
*
* @return void
*/
function action()
{
$objDb = new SC_Helper_DB_Ex();
$objFormParam = new SC_FormParam_Ex();
$this->lfInitParam($objFormParam);
$objFormParam->setParam($_POST);
$cnt = $objDb->sfGetBasisCount();
if ($cnt > 0) {
$this->tpl_mode = 'update';
} else {
$this->tpl_mode = 'insert';
}
if (!empty($_POST)) {
// 入力値の変換
$objFormParam->convParam();
$this->arrErr = $this->lfCheckError($objFormParam);
if (count($this->arrErr) == 0) {
switch ($this->getMode()) {
case 'update':
$this->lfUpdateData($objFormParam->getHashArray());
// 既存編集
break;
case 'insert':
$this->lfInsertData($objFormParam->getHashArray());
// 新規作成
break;
default:
break;
}
// 再表示
$this->tpl_onload = "window.alert('特定商取引法の登録が完了しました。');";
}
} else {
$arrCol = $objFormParam->getKeyList();
// キー名一覧を取得
$col = SC_Utils_Ex::sfGetCommaList($arrCol);
$arrRet = $objDb->sfGetBasisData(true, $col);
$objFormParam->setParam($arrRet);
}
$this->arrForm = $objFormParam->getFormParamList();
}
示例8: lfRegistProduct
function lfRegistProduct($arrList)
{
$objQuery = new SC_Query();
$objDb = new SC_Helper_DB_Ex();
$objQuery->begin();
// 配列の添字を定義
$checkArray = array("name", "status", "product_flag", "main_list_comment", "main_comment", "point_rate", "deliv_fee", "comment1", "comment2", "comment3", "comment4", "comment5", "comment6", "main_list_comment", "sale_limit", "sale_unlimited", "deliv_date_id", "note");
$arrList = SC_Utils_Ex::arrayDefineIndexes($arrList, $checkArray);
// INSERTする値を作成する。
$sqlval['name'] = $arrList['name'];
$sqlval['status'] = $arrList['status'];
$sqlval['product_flag'] = $arrList['product_flag'];
$sqlval['main_list_comment'] = $arrList['main_list_comment'];
$sqlval['main_comment'] = $arrList['main_comment'];
$sqlval['point_rate'] = $arrList['point_rate'];
$sqlval['deliv_fee'] = $arrList['deliv_fee'];
$sqlval['comment1'] = $arrList['comment1'];
$sqlval['comment2'] = $arrList['comment2'];
$sqlval['comment3'] = $arrList['comment3'];
$sqlval['comment4'] = $arrList['comment4'];
$sqlval['comment5'] = $arrList['comment5'];
$sqlval['comment6'] = $arrList['comment6'];
$sqlval['main_list_comment'] = $arrList['main_list_comment'];
$sqlval['sale_limit'] = $arrList['sale_limit'];
$sqlval['sale_unlimited'] = $arrList['sale_unlimited'];
$sqlval['deliv_date_id'] = $arrList['deliv_date_id'];
$sqlval['note'] = $arrList['note'];
$sqlval['update_date'] = "Now()";
$sqlval['creator_id'] = $_SESSION['member_id'];
$arrRet = $this->objUpFile->getDBFileList();
$sqlval = array_merge($sqlval, $arrRet);
$arrList['category_id'] = unserialize($arrList['category_id']);
for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) {
$sqlval['sub_title' . $cnt] = $arrList['sub_title' . $cnt];
$sqlval['sub_comment' . $cnt] = $arrList['sub_comment' . $cnt];
}
if ($arrList['product_id'] == "") {
// product_id 取得(PostgreSQLの場合)
if (DB_TYPE == 'pgsql') {
$product_id = $objQuery->nextval("dtb_products", "product_id");
$sqlval['product_id'] = $product_id;
}
// INSERTの実行
$sqlval['create_date'] = "Now()";
$objQuery->insert("dtb_products", $sqlval);
// product_id 取得(MySQLの場合)
if (DB_TYPE == 'mysql') {
$product_id = $objQuery->nextval("dtb_products", "product_id");
}
// カテゴリを更新
$objDb->updateProductCategories($arrList['category_id'], $product_id);
// コピー商品の場合には規格もコピーする
if ($_POST["copy_product_id"] != "" and SC_Utils_Ex::sfIsInt($_POST["copy_product_id"])) {
if ($this->tpl_nonclass) {
//規格なしの場合、コピーは価格等の入力が発生しているため、その内容で追加登録を行う
$arrList['product_id'] = $product_id;
$this->lfCopyProductClass($arrList, $objQuery);
} else {
//規格がある場合のコピーは複製元の内容で追加登録を行う
// dtb_products_class のカラムを取得
$dbFactory = SC_DB_DBFactory_Ex::getInstance();
$arrColList = $dbFactory->sfGetColumnList("dtb_products_class", $objQuery);
$arrColList_tmp = array_flip($arrColList);
// コピーしない列
unset($arrColList[$arrColList_tmp["product_class_id"]]);
//規格ID
unset($arrColList[$arrColList_tmp["product_id"]]);
//商品ID
unset($arrColList[$arrColList_tmp["create_date"]]);
$col = SC_Utils_Ex::sfGetCommaList($arrColList);
$objQuery->query("INSERT INTO dtb_products_class (product_id, create_date, " . $col . ") SELECT ?, now(), " . $col . " FROM dtb_products_class WHERE product_id = ? ORDER BY product_class_id", array($product_id, $_POST["copy_product_id"]));
}
}
} else {
$product_id = $arrList['product_id'];
// 削除要求のあった既存ファイルの削除
$arrRet = $this->lfGetProduct($arrList['product_id']);
$this->objUpFile->deleteDBFile($arrRet);
// UPDATEの実行
$where = "product_id = ?";
$objQuery->update("dtb_products", $sqlval, $where, array($product_id));
// カテゴリを更新
$objDb->updateProductCategories($arrList['category_id'], $product_id);
}
//商品登録の時は規格を生成する。複製の場合は規格も複製されるのでこの処理は不要。
if ($_POST["copy_product_id"] == "") {
// 規格登録
SC_Utils_Ex::sfInsertProductClass($objQuery, $arrList, $product_id, $arrList['product_class_id']);
}
// おすすめ商品登録
$this->lfInsertRecommendProducts($objQuery, $arrList, $product_id);
$objQuery->commit();
return $product_id;
}
示例9: action
/**
* Page のアクション.
*
* @return void
*/
function action()
{
$objDb = new SC_Helper_DB_Ex();
$cnt = $objDb->sfGetBasisCount();
if ($cnt > 0) {
$this->tpl_mode = 'update';
} else {
$this->tpl_mode = 'insert';
}
if (!empty($_POST)) {
$objFormParam = new SC_FormParam_Ex();
$this->lfInitParam($objFormParam, $_POST);
$objFormParam->setParam($_POST);
$objFormParam->convParam();
$this->arrErr = $this->lfErrorCheck($objFormParam);
$post = $objFormParam->getHashArray();
$this->arrForm = $post;
if (count($this->arrErr) == 0) {
switch ($this->getMode()) {
// 既存編集
case 'update':
$this->lfUpdateData($this->arrForm);
break;
// 新規作成
// 新規作成
case 'insert':
$this->lfInsertData($this->arrForm);
break;
default:
break;
}
$this->tpl_onload = "fnCheckLimit('downloadable_days', 'downloadable_days_unlimited', '" . DISABLED_RGB . "'); window.alert('SHOPマスターの登録が完了しました。');";
}
if (empty($this->arrForm['regular_holiday_ids'])) {
$this->arrSel = array();
} else {
$this->arrSel = $this->arrForm['regular_holiday_ids'];
}
} else {
$arrCol = $this->lfGetCol();
$col = SC_Utils_Ex::sfGetCommaList($arrCol);
$arrRet = $objDb->sfGetBasisData(true, $col);
$this->arrForm = $arrRet;
$regular_holiday_ids = explode('|', $this->arrForm['regular_holiday_ids']);
$this->arrForm['regular_holiday_ids'] = $regular_holiday_ids;
$this->tpl_onload = "fnCheckLimit('downloadable_days', 'downloadable_days_unlimited', '" . DISABLED_RGB . "');";
}
}
示例10: lfRegistProduct
/**
* DBに商品データを登録する
*
* @param object $objUpFile SC_UploadFileインスタンス
* @param object $objDownFile SC_UploadFileインスタンス
* @param array $arrList フォーム入力パラメーター配列
* @return integer 登録商品ID
*/
function lfRegistProduct(&$objUpFile, &$objDownFile, $arrList)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objDb = new SC_Helper_DB_Ex();
// 配列の添字を定義
$checkArray = array('name', 'status', 'main_list_comment', 'main_comment', 'deliv_fee', 'comment1', 'comment2', 'comment3', 'comment4', 'comment5', 'comment6', 'sale_limit', 'deliv_date_id', 'maker_id', 'note');
$arrList = SC_Utils_Ex::arrayDefineIndexes($arrList, $checkArray);
// INSERTする値を作成する。
$sqlval['name'] = $arrList['name'];
$sqlval['status'] = $arrList['status'];
$sqlval['main_list_comment'] = $arrList['main_list_comment'];
$sqlval['main_comment'] = $arrList['main_comment'];
$sqlval['comment1'] = $arrList['comment1'];
$sqlval['comment2'] = $arrList['comment2'];
$sqlval['comment3'] = $arrList['comment3'];
$sqlval['comment4'] = $arrList['comment4'];
$sqlval['comment5'] = $arrList['comment5'];
$sqlval['comment6'] = $arrList['comment6'];
$sqlval['deliv_date_id'] = $arrList['deliv_date_id'];
$sqlval['maker_id'] = $arrList['maker_id'];
$sqlval['note'] = $arrList['note'];
$sqlval['update_date'] = 'CURRENT_TIMESTAMP';
$sqlval['creator_id'] = $_SESSION['member_id'];
$arrRet = $objUpFile->getDBFileList();
$sqlval = array_merge($sqlval, $arrRet);
for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) {
$sqlval['sub_title' . $cnt] = $arrList['sub_title' . $cnt];
$sqlval['sub_comment' . $cnt] = $arrList['sub_comment' . $cnt];
}
$objQuery->begin();
// 新規登録(複製時を含む)
if ($arrList['product_id'] == '') {
$product_id = $objQuery->nextVal('dtb_products_product_id');
$sqlval['product_id'] = $product_id;
// INSERTの実行
$sqlval['create_date'] = 'CURRENT_TIMESTAMP';
$objQuery->insert('dtb_products', $sqlval);
$arrList['product_id'] = $product_id;
// カテゴリを更新
$objDb->updateProductCategories($arrList['category_id'], $product_id);
// 複製商品の場合には規格も複製する
if ($arrList['copy_product_id'] != '' && SC_Utils_Ex::sfIsInt($arrList['copy_product_id'])) {
if (!$arrList['has_product_class']) {
//規格なしの場合、複製は価格等の入力が発生しているため、その内容で追加登録を行う
$this->lfCopyProductClass($arrList, $objQuery);
} else {
//規格がある場合の複製は複製元の内容で追加登録を行う
// dtb_products_class のカラムを取得
$dbFactory = SC_DB_DBFactory_Ex::getInstance();
$arrColList = $objQuery->listTableFields('dtb_products_class');
$arrColList_tmp = array_flip($arrColList);
// 複製しない列
unset($arrColList[$arrColList_tmp['product_class_id']]);
//規格ID
unset($arrColList[$arrColList_tmp['product_id']]);
//商品ID
unset($arrColList[$arrColList_tmp['create_date']]);
// 複製元商品の規格データ取得
$col = SC_Utils_Ex::sfGetCommaList($arrColList);
$table = 'dtb_products_class';
$where = 'product_id = ?';
$objQuery->setOrder('product_class_id');
$arrProductsClass = $objQuery->select($col, $table, $where, array($arrList['copy_product_id']));
// 規格データ登録
$objQuery =& SC_Query_Ex::getSingletonInstance();
foreach ($arrProductsClass as $arrData) {
$sqlval = $arrData;
$sqlval['product_class_id'] = $objQuery->nextVal('dtb_products_class_product_class_id');
$sqlval['deliv_fee'] = $arrList['deliv_fee'];
$sqlval['point_rate'] = $arrList['point_rate'];
$sqlval['sale_limit'] = $arrList['sale_limit'];
$sqlval['product_id'] = $product_id;
$sqlval['create_date'] = 'CURRENT_TIMESTAMP';
$sqlval['update_date'] = 'CURRENT_TIMESTAMP';
$objQuery->insert($table, $sqlval);
}
}
}
// 更新
} else {
$product_id = $arrList['product_id'];
// 削除要求のあった既存ファイルの削除
$arrRet = $this->lfGetProductData_FromDB($arrList['product_id']);
// TODO: SC_UploadFile::deleteDBFileの画像削除条件見直し要
$objImage = new SC_Image_Ex($objUpFile->temp_dir);
$arrKeyName = $objUpFile->keyname;
$arrSaveFile = $objUpFile->save_file;
$arrImageKey = array();
foreach ($arrKeyName as $key => $keyname) {
if ($arrRet[$keyname] && !$arrSaveFile[$key]) {
$arrImageKey[] = $keyname;
$has_same_image = $this->lfHasSameProductImage($arrList['product_id'], $arrImageKey, $arrRet[$keyname]);
//.........这里部分代码省略.........
示例11: sfCategory_Count
/**
* カテゴリ数の登録を行う.
*
* @param SC_Query $objQuery SC_Query インスタンス
* @return void
*/
function sfCategory_Count($objQuery)
{
$sql = "";
//テーブル内容の削除
$objQuery->query("DELETE FROM dtb_category_count");
$objQuery->query("DELETE FROM dtb_category_total_count");
//各カテゴリ内の商品数を数えて格納
$sql = " INSERT INTO dtb_category_count(category_id, product_count, create_date) ";
$sql .= " SELECT T1.category_id, count(T2.category_id), now() ";
$sql .= " FROM dtb_category AS T1 LEFT JOIN dtb_product_categories AS T2";
$sql .= " ON T1.category_id = T2.category_id ";
$sql .= " LEFT JOIN dtb_products AS T3";
$sql .= " ON T2.product_id = T3.product_id";
$sql .= " WHERE T3.del_flg = 0 AND T3.status = 1 ";
$sql .= " GROUP BY T1.category_id, T2.category_id ";
$objQuery->query($sql);
//子カテゴリ内の商品数を集計する
$arrCat = $objQuery->getAll("SELECT * FROM dtb_category");
$sql = "";
foreach ($arrCat as $key => $val) {
// 子ID一覧を取得
$arrRet = $this->sfGetChildrenArray('dtb_category', 'parent_category_id', 'category_id', $val['category_id']);
$line = SC_Utils_Ex::sfGetCommaList($arrRet);
$sql = " INSERT INTO dtb_category_total_count(category_id, product_count, create_date) ";
$sql .= " SELECT ?, SUM(product_count), now() FROM dtb_category_count ";
$sql .= " WHERE category_id IN (" . $line . ")";
$objQuery->query($sql, array($val['category_id']));
}
}
示例12: process
/**
* Page のプロセス.
*
* @return void
*/
function process()
{
$conn = new SC_DBConn();
$objView = new SC_AdminView();
$objSess = new SC_Session();
$objQuery = new SC_Query();
// 認証可否の判定
SC_Utils_Ex::sfIsSuccess($objSess);
$cnt = $objQuery->count("dtb_baseinfo");
if ($cnt > 0) {
$this->tpl_mode = "update";
} else {
$this->tpl_mode = "insert";
}
if (isset($_POST['mode']) && !empty($_POST["mode"])) {
// POSTデータの引き継ぎ
$this->arrForm = $_POST;
// 入力データの変換
$this->arrForm = $this->lfConvertParam($this->arrForm);
$this->arrForm['regular_holiday_ids'] = $_POST['regular_holiday_ids'];
// 定休日情報を付加
// 入力データのエラーチェック
$this->arrErr = $this->lfErrorCheck($this->arrForm);
if (count($this->arrErr) == 0) {
switch ($_POST['mode']) {
case 'update':
$this->lfUpdateData($this->arrForm);
// 既存編集
break;
case 'insert':
$this->lfInsertData($this->arrForm);
// 新規作成
break;
default:
break;
}
$this->tpl_onload = "window.alert('SHOPマスタの登録が完了しました。');";
}
if (empty($this->arrForm['regular_holiday_ids'])) {
$this->arrSel = array();
} else {
$this->arrSel = $this->arrForm['regular_holiday_ids'];
}
} else {
$arrCol = $this->lfGetCol();
$col = SC_Utils_Ex::sfGetCommaList($arrCol);
$arrRet = $objQuery->select($col, "dtb_baseinfo");
$this->arrForm = $arrRet[0];
$regular_holiday_ids = explode('|', $this->arrForm['regular_holiday_ids']);
$this->arrForm['regular_holiday_ids'] = $regular_holiday_ids;
}
$objView->assignobj($this);
$objView->display(MAIN_FRAME);
}
示例13: lfCreateBkupData
function lfCreateBkupData($bkup_name)
{
$objQuery = new SC_Query();
$csv_data = "";
$csv_autoinc = "";
$err = true;
$bkup_dir = $this->bkup_dir;
if (!is_dir(dirname($bkup_dir))) {
$err = mkdir(dirname($bkup_dir));
}
$bkup_dir = $bkup_dir . $bkup_name . "/";
// 全テーブル取得
$arrTableList = $this->lfGetTableList();
// 各テーブル情報を取得する
foreach ($arrTableList as $key => $val) {
if (!($val == "dtb_bkup" || $val == "mtb_zip")) {
// 自動採番型の構成を取得する
$csv_autoinc .= $this->lfGetAutoIncrement($val);
// 全データを取得
if ($val == "dtb_pagelayout") {
$arrData = $objQuery->getAll("SELECT * FROM {$val} ORDER BY page_id");
} else {
$arrData = $objQuery->getAll("SELECT * FROM {$val}");
}
// CSVデータ生成
if (count($arrData) > 0) {
// カラムをCSV形式に整える
$arrKyes = SC_Utils_Ex::sfGetCommaList(array_keys($arrData[0]), false);
// データをCSV形式に整える
$data = "";
foreach ($arrData as $data_key => $data_val) {
//$val = str_replace("\"", "\\\"", $val);
$data .= $this->lfGetCSVList($arrData[$data_key]);
}
// CSV出力データ生成
$csv_data .= $val . "\r\n";
$csv_data .= $arrKyes . "\r\n";
$csv_data .= $data;
$csv_data .= "\r\n";
}
// タイムアウトを防ぐ
SC_Utils_Ex::sfFlush();
}
}
$csv_file = $bkup_dir . "bkup_data.csv";
$csv_autoinc_file = $bkup_dir . "autoinc_data.csv";
mb_internal_encoding(CHAR_CODE);
// CSV出力
// ディレクトリが存在していなければ作成する
if (!is_dir(dirname($csv_file))) {
$err = mkdir(dirname($csv_file));
}
if ($err) {
// dataをCSV出力
$fp = fopen($csv_file, "w");
if ($fp) {
if ($csv_data != "") {
$err = fwrite($fp, $csv_data);
}
fclose($fp);
}
// 自動採番をCSV出力
$fp = fopen($csv_autoinc_file, "w");
if ($fp) {
if ($csv_autoinc != "") {
$err = fwrite($fp, $csv_autoinc);
}
fclose($fp);
}
}
// 各種ファイルコピー
if ($err) {
/**
// 商品画像ファイルをコピー
// ディレクトリが存在していなければ作成する
$image_dir = $bkup_dir . "save_image/";
if (!is_dir(dirname($image_dir))) $err = mkdir(dirname($image_dir));
$copy_mess = "";
$copy_mess = SC_Utils_Ex::sfCopyDir("../../upload/save_image/",$image_dir, $copy_mess);
// テンプレートファイルをコピー
// ディレクトリが存在していなければ作成する
$templates_dir = $bkup_dir . "templates/";
if (!is_dir(dirname($templates_dir))) $err = mkdir(dirname($templates_dir));
$copy_mess = "";
$copy_mess = SC_Utils_Ex::sfCopyDir("../../user_data/templates/",$templates_dir, $copy_mess);
// インクルードファイルをコピー
// ディレクトリが存在していなければ作成する
$inc_dir = $bkup_dir . "include/";
if (!is_dir(dirname($inc_dir))) $err = mkdir(dirname($inc_dir));
$copy_mess = "";
$copy_mess = SC_Utils_Ex::sfCopyDir("../../user_data/include/",$inc_dir, $copy_mess);
// CSSファイルをコピー
// ディレクトリが存在していなければ作成する
$css_dir = $bkup_dir . "css/";
if (!is_dir(dirname($css_dir))) $err = mkdir(dirname($css_dir));
$copy_mess = "";
$copy_mess = SC_Utils_Ex::sfCopyDir("../../user_data/css/",$css_dir, $copy_mess);
//.........这里部分代码省略.........
示例14: action
/**
* Page のアクション.
*
* @return void
*/
function action()
{
$objDb = new SC_Helper_DB_Ex();
// パラメーター管理クラス
$objFormParam = new SC_FormParam_Ex();
// パラメーター情報の初期化
$this->lfInitParam($objFormParam);
// POST値の取得
$objFormParam->setParam($_POST);
if ($objDb->sfGetBasisExists()) {
$this->tpl_mode = 'update';
} else {
$this->tpl_mode = 'insert';
}
if (!empty($_POST)) {
// 入力値の変換
$objFormParam->convParam();
$this->arrErr = $objFormParam->checkError();
if (count($this->arrErr) == 0) {
switch ($this->getMode()) {
case 'update':
$this->lfUpdateData($objFormParam->getHashArray());
// 既存編集
break;
case 'insert':
$this->lfInsertData($objFormParam->getHashArray());
// 新規作成
break;
default:
break;
}
// 再表示
$this->tpl_onload = "window.alert('" . t('c_Point settings are complete._01') . "');";
}
} else {
$arrCol = $objFormParam->getKeyList();
// キー名一覧を取得
$col = SC_Utils_Ex::sfGetCommaList($arrCol);
$arrRet = $objDb->sfGetBasisData(true, $col);
$objFormParam->setParam($arrRet);
}
$this->arrForm = $objFormParam->getFormParamList();
}
示例15: lfGetCSV
function lfGetCSV($from, $where, $option, $arrval, $arrCsvOutputCols = "")
{
$cols = SC_Utils_Ex::sfGetCommaList($arrCsvOutputCols);
$objQuery = new SC_Query();
$objQuery->setoption($option);
$list_data = $objQuery->select($cols, $from, $where, $arrval);
$max = count($list_data);
if (!isset($data)) {
$data = "";
}
for ($i = 0; $i < $max; $i++) {
// 各項目をCSV出力用に変換する。
$data .= $this->lfMakeCSV($list_data[$i]);
}
return $data;
}