/**
  * ページレイアウトテーブルにデータ更新を行う.
  *
  * @param array $arrUpdData 更新データ
  * @return integer 更新結果
  */
 function lfUpdPageData($arrUpdData = array())
 {
     $objQuery = new SC_Query();
     $sql = "";
     // SQL生成
     $sql .= " UPDATE ";
     $sql .= "     dtb_pagelayout ";
     $sql .= " SET ";
     $sql .= "     author = ? , ";
     $sql .= "     description = ? , ";
     $sql .= "     keyword = ? ";
     $sql .= " WHERE ";
     $sql .= "     page_id = ? ";
     $sql .= " ";
     // SQL実行
     $ret = $objQuery->query($sql, $arrUpdData);
     return $ret;
 }
 function lfUpdCsvOutput($csv_id, $arrData = array())
 {
     $objQuery = new SC_Query();
     // ひとまず、全部使用しないで更新する
     $upd_sql = "UPDATE dtb_csv SET status = 2, rank = NULL, update_date = now() WHERE csv_id = ?";
     $objQuery->query($upd_sql, array($csv_id));
     // 使用するものだけ、再更新する。
     if (is_array($arrData)) {
         foreach ($arrData as $key => $val) {
             $upd_sql = "UPDATE dtb_csv SET status = 1, rank = ? WHERE csv_id = ? AND col = ? ";
             $objQuery->query($upd_sql, array($key + 1, $csv_id, $val));
         }
     }
 }
Exemple #3
0
 /**
  * メーカー商品数数の登録を行う.
  *
  * @param  SC_Query $objQuery SC_Query インスタンス
  * @return void
  */
 public function sfCountMaker($objQuery)
 {
     //テーブル内容の削除
     $objQuery->query('DELETE FROM dtb_maker_count');
     //各メーカーの商品数を数えて格納
     $sql = ' INSERT INTO dtb_maker_count(maker_id, product_count, create_date) ';
     $sql .= ' SELECT T1.maker_id, count(T2.maker_id), CURRENT_TIMESTAMP ';
     $sql .= ' FROM dtb_maker AS T1 LEFT JOIN dtb_products AS T2';
     $sql .= ' ON T1.maker_id = T2.maker_id ';
     $sql .= ' WHERE T2.del_flg = 0 AND T2.status = 1 ';
     $sql .= ' GROUP BY T1.maker_id, T2.maker_id ';
     $objQuery->query($sql);
 }
Exemple #4
0
 /**
  * メーカー商品数数の登録を行う.
  *
  * @param SC_Query $objQuery SC_Query インスタンス
  * @return void
  */
 function sfCountMaker($objQuery)
 {
     $sql = "";
     //テーブル内容の削除
     $objQuery->query("DELETE FROM dtb_maker_count");
     //各メーカーの商品数を数えて格納
     $sql = " INSERT INTO dtb_maker_count(maker_id, product_count, create_date) ";
     $sql .= " SELECT T1.maker_id, count(T2.maker_id), CURRENT_TIMESTAMP ";
     $sql .= " FROM dtb_maker AS T1 LEFT JOIN dtb_products AS T2";
     $sql .= " ON T1.maker_id = T2.maker_id ";
     $sql .= " WHERE T2.del_flg = 0 AND T2.status = 1 ";
     $sql .= " GROUP BY T1.maker_id, T2.maker_id ";
     $objQuery->query($sql);
 }
 /**
  * インデックスを作成する.
  *
  * @param string $index_name インデックス名
  * @param string $table_name テーブル名
  * @param string $col_name カラム名
  * @param integer $length 作成するインデックスのバイト長
  * @return void
  */
 function createTableIndex($index_name, $table_name, $col_name, $length = 0)
 {
     $objQuery = new SC_Query($dsn, true, true);
     $objQuery->query("CREATE INDEX ? ON ? (?(?))", array($index_name, $table_name, $col_name, $length));
 }
 /**
  * ブロック位置の更新
  */
 function lfChangeBloc($template_code)
 {
     $objQuery = new SC_Query();
     $filepath = USER_TEMPLATE_PATH . $template_code . "/sql/update_bloc.sql";
     // ブロック位置更新SQLファイル有
     if (file_exists($filepath)) {
         if ($fp = fopen($filepath, "r")) {
             $sql = fread($fp, filesize($filepath));
             fclose($fp);
         }
         // 改行、タブを1スペースに変換
         $sql = preg_replace("/[\r\n\t]/", " ", $sql);
         $sql_split = split(";", $sql);
         foreach ($sql_split as $key => $val) {
             if (trim($val) != "") {
                 $objQuery->query($val);
             }
         }
     }
 }
Exemple #7
0
 $sqlval['top_tpl'] = "default1";
 $sqlval['product_tpl'] = "default1";
 $sqlval['detail_tpl'] = "default1";
 $sqlval['mypage_tpl'] = "default1";
 $objQuery = new SC_Query($dsn);
 $cnt = $objQuery->count("dtb_baseinfo");
 if ($cnt > 0) {
     $objQuery->update("dtb_baseinfo", $sqlval);
 } else {
     $objQuery->insert("dtb_baseinfo", $sqlval);
 }
 // 管理者登録
 $login_id = $objWebParam->getValue('login_id');
 $login_pass = sha1($objWebParam->getValue('login_pass') . ":" . AUTH_MAGIC);
 $sql = "DELETE FROM dtb_member WHERE login_id = ?";
 $objQuery->query($sql, array($login_id));
 $sql = "INSERT INTO dtb_member (name, login_id, password, creator_id, authority, work, del_flg, rank, create_date, update_date)\n            VALUES ('管理者',?,?,0,0,1,0,1, now(), now());";
 $objQuery->query($sql, array($login_id, $login_pass));
 global $GLOBAL_ERR;
 $GLOBAL_ERR = "";
 $objPage = lfDispComplete($objPage);
 // サイト情報を送信
 $req = new HTTP_Request("http://www.ec-cube.net/mall/use_site.php");
 $req->setMethod(HTTP_REQUEST_METHOD_POST);
 $arrSendData = array();
 foreach ($_POST as $key => $val) {
     if (ereg("^senddata_*", $key)) {
         $arrSendDataTmp = array(str_replace("senddata_", "", $key) => $val);
         $arrSendData = array_merge($arrSendData, $arrSendDataTmp);
     }
 }
 /**
  * カテゴリ数の登録を行う.
  *
  * @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']));
     }
 }
Exemple #9
0
function lfUninstallModule()
{
    global $objPage;
    $objQuery = new SC_Query();
    $arrRet = $objQuery->select("module_id, extern_php, other_files, install_sql, uninstall_sql, latest_version", "dtb_module", "module_id = ?", array($_POST['module_id']));
    $flg_ok = true;
    // 処理の成功判定
    if (count($arrRet) > 0) {
        // モジュールを削除する
        $objQuery->query("UPDATE dtb_payment SET del_flg = 1 WHERE module_id = ?", array($arrRet[0]['module_id']));
        $arrFiles = array();
        if ($arrRet[0]['other_files'] != "") {
            $arrFiles = split("\\|", $arrRet[0]['other_files']);
        }
        $arrFiles[] = $arrRet[0]['extern_php'];
        foreach ($arrFiles as $val) {
            $path = MODULE_PATH . $val;
            // ファイルを削除する
            if (file_exists($path) && unlink($path)) {
                $objPage->update_mess .= ">> " . $path . ":削除成功<br>";
            } else {
                $objPage->update_mess .= ">> " . $path . ":削除失敗<br>";
            }
        }
        // 必要なSQL文の実行
        if ($arrRet[0]['uninstall_sql'] != "") {
            // SQL文実行、パラーメータなし、エラー無視
            $ret = $objQuery->query($arrRet[0]['uninstall_sql'], "", true);
            if (DB::isError($ret)) {
                // エラー文を取得する
                ereg("\\[(.*)\\]", $ret->userinfo, $arrKey);
                $objPage->update_mess .= ">> テーブル構成の変更に失敗しました。<br>";
                $objPage->update_mess .= $arrKey[0] . "<br>";
                $flg_ok = false;
            } else {
                $objPage->update_mess .= ">> テーブル構成の変更を行いました。<br>";
            }
        }
    } else {
        sfErrorHeader(">> 対象の機能は、配布を終了しております。");
    }
    if ($flg_ok) {
        // バージョン情報を削除する。
        $sqlval['now_version'] = "";
        $sqlval['update_date'] = "now()";
        $objQuery->update("dtb_module", $sqlval, "module_id = ?", array($arrRet[0]['module_id']));
    }
}
 function lfCreateBkupTable()
 {
     $objQuery = new SC_Query();
     // テーブルの存在チェック
     $arrTableList = $this->lfGetTableList();
     if (!in_array("dtb_bkup", $arrTableList)) {
         // 存在していなければ作成
         $cre_sql = "\n            create table dtb_bkup\n            (\n                bkup_name   text,\n                bkup_memo   text,\n                create_date timestamp\n            );\n        ";
         $objQuery->query($cre_sql);
     }
 }
 function lfRegistNewData()
 {
     $objQuery = new SC_Query();
     $objQuery->begin();
     // 入力データを渡す。
     $arrRet = $this->objFormParam->getHashArray();
     foreach ($arrRet as $key => $val) {
         // 配列は登録しない
         if (!is_array($val)) {
             $sqlval[$key] = $val;
         }
     }
     // postgresqlとmysqlとで処理を分ける
     if (DB_TYPE == "pgsql") {
         $order_id = $objQuery->nextval("dtb_order", "order_id");
     } elseif (DB_TYPE == "mysql") {
         $order_id = $objQuery->get_auto_increment("dtb_order");
     }
     $sqlval['order_id'] = $order_id;
     $sqlval['create_date'] = "Now()";
     // 注文ステータス:指定が無ければ新規受付に設定
     if ($sqlval["status"] == "") {
         $sqlval['status'] = '1';
     }
     // customer_id
     if ($sqlval["customer_id"] == "") {
         $sqlval['customer_id'] = '0';
     }
     unset($sqlval['total_point']);
     unset($sqlval['point']);
     $where = "order_id = ?";
     // 受注ステータスの判定
     if ($sqlval['status'] == ODERSTATUS_COMMIT) {
         // 受注テーブルの発送済み日を更新する
         $sqlval['commit_date'] = "Now()";
     }
     // 受注テーブルの登録
     $objQuery->insert("dtb_order", $sqlval);
     $sql = "";
     $sql .= " UPDATE";
     $sql .= "     dtb_order";
     $sql .= " SET";
     $sql .= "     payment_method = (SELECT payment_method FROM dtb_payment WHERE payment_id = ?)";
     $sql .= "     ,deliv_time = (SELECT deliv_time FROM dtb_delivtime WHERE time_id = ? AND deliv_id = (SELECT deliv_id FROM dtb_payment WHERE payment_id = ? ))";
     $sql .= " WHERE order_id = ?";
     if ($arrRet['deliv_time_id'] == "") {
         $deliv_time_id = 0;
     } else {
         $deliv_time_id = $arrRet['deliv_time_id'];
     }
     $arrUpdData = array($arrRet['payment_id'], $deliv_time_id, $arrRet['payment_id'], $order_id);
     $objQuery->query($sql, $arrUpdData);
     // 受注詳細データの更新
     $arrDetail = $this->objFormParam->getSwapArray(array("product_id", "product_code", "product_name", "price", "quantity", "point_rate", "classcategory_id1", "classcategory_id2", "classcategory_name1", "classcategory_name2"));
     $objQuery->delete("dtb_order_detail", $where, array($order_id));
     $max = count($arrDetail);
     for ($i = 0; $i < $max; $i++) {
         $sqlval = array();
         $sqlval['order_id'] = $order_id;
         $sqlval['product_id'] = $arrDetail[$i]['product_id'];
         $sqlval['product_code'] = $arrDetail[$i]['product_code'];
         $sqlval['product_name'] = $arrDetail[$i]['product_name'];
         $sqlval['price'] = $arrDetail[$i]['price'];
         $sqlval['quantity'] = $arrDetail[$i]['quantity'];
         $sqlval['point_rate'] = $arrDetail[$i]['point_rate'];
         $sqlval['classcategory_id1'] = $arrDetail[$i]['classcategory_id1'];
         $sqlval['classcategory_id2'] = $arrDetail[$i]['classcategory_id2'];
         $sqlval['classcategory_name1'] = $arrDetail[$i]['classcategory_name1'];
         $sqlval['classcategory_name2'] = $arrDetail[$i]['classcategory_name2'];
         $objQuery->insert("dtb_order_detail", $sqlval);
     }
     $objQuery->commit();
     return $order_id;
 }
 /**
  * 登録済みデータを削除する.
  *
  * @param integer $sql_id 削除するデータのSQL_ID
  * @return bool 実行結果 TRUE:成功 FALSE:失敗
  */
 function lfDelData($sql_id = "")
 {
     $objQuery = new SC_Query();
     // DB操作オブジェクト
     $sql = "";
     // データ取得SQL生成用
     $Ret = false;
     // 実行結果
     // sql_id が指定されている場合のみ実行
     if ($sql_id != "") {
         // データの削除
         $sql = "DELETE FROM dtb_csv_sql WHERE sql_id = ? ";
         // SQL実行
         $ret = $objQuery->query($sql, array($sql_id));
     } else {
         $ret = false;
     }
     // 結果を返す
     return $ret;
 }