Source for file LC_Page_Admin_Products_Trackback.php

Documentation is available at LC_Page_Admin_Products_Trackback.php

  1. <?php
  2. /*
  3.  * This file is part of EC-CUBE
  4.  *
  5.  * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
  6.  *
  7.  * http://www.lockon.co.jp/
  8.  *
  9.  * This program is free software; you can redistribute it and/or
  10.  * modify it under the terms of the GNU General Public License
  11.  * as published by the Free Software Foundation; either version 2
  12.  * of the License, or (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  22.  */
  23. // {{{ requires
  24. require_once(CLASS_PATH "pages/LC_Page.php");
  25. require_once(CLASS_EX_PATH "helper_extends/SC_Helper_CSV_Ex.php");
  26.  
  27. /**
  28.  * トラックバック管理 のページクラス.
  29.  *
  30.  * @package Page
  31.  * @author LOCKON CO.,LTD.
  32.  * @version $Id$
  33.  */
  34.  
  35.     // }}}
  36.     // {{{ functions
  37.  
  38.     /**
  39.      * Page を初期化する.
  40.      *
  41.      * @return void 
  42.      */
  43.     function init({
  44.         parent::init();
  45.         $this->tpl_mainpage = 'products/trackback.tpl';
  46.         $this->tpl_subnavi 'products/subnavi.tpl';
  47.         $this->tpl_mainno = 'products';
  48.         $this->tpl_subno 'trackback';
  49.         $this->tpl_pager TEMPLATE_DIR 'admin/pager.tpl';
  50.         $this->tpl_subtitle 'トラックバック管理';
  51.  
  52.         $masterData new SC_DB_MasterData_Ex();
  53.         $this->arrPageMax $masterData->getMasterData("mtb_page_max");
  54.         $this->arrTrackBackStatus $masterData->getMasterData("mtb_track_back_status");
  55.     }
  56.  
  57.     /**
  58.      * Page のプロセス.
  59.      *
  60.      * @return void 
  61.      */
  62.     function process({
  63.         $objView new SC_AdminView();
  64.         $objSess new SC_Session();
  65.         $objDate new SC_Date();
  66.         $objQuery new SC_Query();
  67.  
  68.         // 状態の設定
  69.  
  70.  
  71.         // 登録・更新検索開始年
  72.         $objDate->setStartYear(RELEASE_YEAR);
  73.         $objDate->setEndYear(DATE("Y"));
  74.         $this->arrStartYear $objDate->getYear();
  75.         $this->arrStartMonth $objDate->getMonth();
  76.         $this->arrStartDay $objDate->getDay();
  77.         // 登録・更新検索終了年
  78.         $objDate->setStartYear(RELEASE_YEAR);
  79.         $objDate->setEndYear(DATE("Y"));
  80.         $this->arrEndYear $objDate->getYear();
  81.         $this->arrEndMonth $objDate->getMonth();
  82.         $this->arrEndDay $objDate->getDay();
  83.  
  84.         // 認証可否の判定
  85.         SC_Utils_Ex::sfIsSuccess($objSess);
  86.  
  87.         // トラックバック情報のカラムの取得(viewとの結合のため、テーブルをAと定義しておく)
  88.         $select "A.trackback_id, A.product_id, A.blog_name, A.title, A.url, ";
  89.         $select .= "A.excerpt, A.status, A.create_date, A.update_date, B.name";
  90.         $from "dtb_trackback AS A LEFT JOIN dtb_products AS B ON A.product_id = B.product_id ";
  91.  
  92.         // 検索ワードの引き継ぎ
  93.         foreach ($_POST as $key => $val{
  94.             if (ereg("^search_"$key)) {
  95.                 $this->arrHidden[$key$val;
  96.             }
  97.         }
  98.  
  99.         if (!isset($_POST['mode'])) $_POST['mode'"";
  100.  
  101.         // トラックバックの削除
  102.         if ($_POST['mode'== "delete"{
  103.             $objQuery->exec("UPDATE dtb_trackback SET del_flg = 1, update_date = now() WHERE trackback_id = ?"array($_POST['trackback_id']));
  104.         }
  105.  
  106.         if ($_POST['mode'== 'search' || $_POST['mode'== 'csv' || $_POST['mode'== 'delete'){
  107.  
  108.             //削除されていない商品を検索
  109.             $where="A.del_flg = 0 AND B.del_flg = 0";
  110.             $this->arrForm $_POST;
  111.  
  112.             //エラーチェック
  113.             $this->arrErr $this->lfCheckError();
  114.  
  115.             if (!$this->arrErr{
  116.                 foreach ($_POST as $key => $val{
  117.  
  118.                     $val SC_Utils_Ex::sfManualEscape($val);
  119.  
  120.                     if ($val == ""{
  121.                         continue;
  122.                     }
  123.  
  124.                     switch ($key{
  125.  
  126.                     case 'search_blog_name':
  127.                         $val ereg_replace(" ""%"$val);
  128.                         $val ereg_replace(" ""%"$val);
  129.                         $where.= " AND A.blog_name ILIKE ? ";
  130.                         $arrval["%$val%";
  131.                         break;
  132.  
  133.                     case 'search_blog_title':
  134.                         $val ereg_replace(" ""%"$val);
  135.                         $val ereg_replace(" ""%"$val);
  136.                         $where.= " AND A.title ILIKE ? ";
  137.                         $arrval["%$val%";
  138.                         break;
  139.  
  140.                     case 'search_blog_url':
  141.                         $val ereg_replace(" ""%"$val);
  142.                         $val ereg_replace(" ""%"$val);
  143.                         $where.= " AND A.url ILIKE ? ";
  144.                         $arrval["%$val%";
  145.                         break;
  146.  
  147.                     case 'search_status':
  148.                         if (isset($_POST['search_status'])) {
  149.                             $where.= " AND A.status = ? ";
  150.                             $arrval[$val;
  151.                         }
  152.                         break;
  153.  
  154.                     case 'search_name':
  155.                         $val ereg_replace(" ""%"$val);
  156.                         $val ereg_replace(" ""%"$val);
  157.                         $where.= " AND B.name ILIKE ? ";
  158.                         $arrval["%$val%";
  159.                         break;
  160.  
  161.                     case 'search_product_code':
  162.                         $val ereg_replace(" ""%"$val);
  163.                         $val ereg_replace(" ""%"$val);
  164.                         $where.= " AND B.product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ? )";
  165.                         $arrval["%$val%";
  166.                         break;
  167.  
  168.                     case 'search_startyear':
  169.                         if (isset($_POST['search_startyear']&& isset($_POST['search_startmonth']&& isset($_POST['search_startday'])) {
  170.                             $date sfGetTimestamp($_POST['search_startyear']$_POST['search_startmonth']$_POST['search_startday']);
  171.                             $where.= " AND A.create_date >= ? ";
  172.                             $arrval[$date;
  173.                         }
  174.                         break;
  175.  
  176.                     case 'search_endyear':
  177.                         if (isset($_POST['search_startyear']&& isset($_POST['search_startmonth']&& isset($_POST['search_startday'])) {
  178.                             $date sfGetTimestamp($_POST['search_endyear']$_POST['search_endmonth']$_POST['search_endday']);
  179.  
  180.                             $end_date date("Y/m/d",strtotime("1 day" ,strtotime($date)));
  181.  
  182.                             $where.= " AND A.create_date <= cast('$end_date' as date) ";
  183.                         }
  184.                         break;
  185.                     }
  186.  
  187.                 }
  188.  
  189.             }
  190.  
  191.             $order "A.create_date DESC";
  192.  
  193.             // ページ送りの処理
  194.             if(is_numeric($_POST['search_page_max'])) {
  195.                 $page_max $_POST['search_page_max'];
  196.             else {
  197.                 $page_max SEARCH_PMAX;
  198.             }
  199.  
  200.             if (!isset($arrval)) $arrval array();
  201.  
  202.             $linemax $objQuery->count($from$where$arrval);
  203.             $this->tpl_linemax $linemax;
  204.  
  205.             $this->tpl_pageno =
  206.                 isset($_POST['search_pageno']$_POST['search_pageno'"";
  207.  
  208.             // ページ送りの取得
  209.             $objNavi new SC_PageNavi($this->tpl_pageno$linemax$page_max,
  210.                                        "fnNaviSearchPage"NAVI_PMAX);
  211.             $this->arrPagenavi $objNavi->arrPagenavi;
  212.             $startno $objNavi->start_row;
  213.  
  214.  
  215.  
  216.             // 取得範囲の指定(開始行番号、行数のセット)
  217.             $objQuery->setlimitoffset($page_max$startno);
  218.  
  219.             // 表示順序
  220.             $objQuery->setorder($order);
  221.  
  222.             //検索結果の取得
  223.             $this->arrTrackback $objQuery->select($select$from$where$arrval);
  224.  
  225.             //CSVダウンロード
  226.             if ($_POST['mode'== 'csv'){
  227.  
  228.                 $objCSV new SC_Helper_CSV_Ex();
  229.  
  230.                 // オプションの指定
  231.                 $option "ORDER BY A.trackback_id";
  232.                 // CSV出力タイトル行の作成
  233.                 $head SC_Utils_Ex::sfGetCSVList($objCSV->arrTRACKBACK_CVSTITLE);
  234.                 $data $objCSV->lfGetTrackbackCSV($where''$arrval);
  235.                 // CSVを送信する。
  236.                 SC_Utils_Ex::sfCSVDownload($head.$data);
  237.                 exit;
  238.             }
  239.         }
  240.  
  241.         $objView->assignobj($this);
  242.         $objView->display(MAIN_FRAME);
  243.     }
  244.  
  245.     /**
  246.      * デストラクタ.
  247.      *
  248.      * @return void 
  249.      */
  250.     function destroy({
  251.         parent::destroy();
  252.     }
  253.  
  254.     // 入力エラーチェック
  255.     function lfCheckError({
  256.         $objErr new SC_CheckError();
  257.         switch ($_POST['mode']){
  258.         case 'search':
  259.             $objErr->doFunc(array("投稿者""search_startyear""search_startmonth""search_startday")array("CHECK_DATE"));
  260.             $objErr->doFunc(array("開始日""search_startyear""search_startmonth""search_startday")array("CHECK_DATE"));
  261.             $objErr->doFunc(array("終了日""search_endyear""search_endmonth""search_endday")array("CHECK_DATE"));
  262.             $objErr->doFunc(array("開始日""終了日""search_startyear""search_startmonth""search_startday""search_endyear""search_endmonth""search_endday")array("CHECK_SET_TERM"));
  263.             break;
  264.  
  265.         case 'complete':
  266.             $objErr->doFunc(array("おすすめレベル""recommend_level")array("SELECT_CHECK"));
  267.             $objErr->doFunc(array("タイトル""title"STEXT_LEN)array("EXIST_CHECK""SPTAB_CHECK""MAX_LENGTH_CHECK"));
  268.             $objErr->doFunc(array("コメント""comment"LTEXT_LEN)array("EXIST_CHECK""SPTAB_CHECK""MAX_LENGTH_CHECK"));
  269.             break;
  270.         }
  271.         return $objErr->arrErr;
  272.     }
  273. }
  274. ?>

Documentation generated on Tue, 28 Apr 2009 18:11:43 +0900 by phpDocumentor 1.4.2