Changeset 15537


Ignore:
Timestamp:
2007/09/01 16:36:33 (13 years ago)
Author:
nanasess
Message:

クラス化に伴う修正

Location:
branches/feature-module-update
Files:
2 added
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/html/admin/products/review.php

    r15532 r15537  
    55 * http://www.lockon.co.jp/ 
    66 */ 
    7 require_once("../require.php"); 
    8 require_once("./index_csv.php"); 
    97 
    10 session_start(); 
     8// {{{ requires 
     9require_once("../../require.php"); 
     10require_once(CLASS_PATH . "page_extends/admin/products/LC_Page_Admin_Products_Review_Ex.php"); 
    1111 
    12 class LC_Page { 
    13     var $arrSession; 
    14     function LC_Page() { 
    15         global $arrPageMax; 
    16         global $arrRECOMMEND; 
    17         global $arrSex; 
    18         $this->arrPageMax = $arrPageMax; 
    19         $this->arrRECOMMEND = $arrRECOMMEND; 
    20         $this->arrSex = $arrSex; 
    21         $this->tpl_mainpage = 'products/review.tpl'; 
    22         $this->tpl_subnavi = 'products/subnavi.tpl'; 
    23         $this->tpl_mainno = 'products'; 
    24         $this->tpl_subno = 'review'; 
    25         $this->tpl_pager = DATA_PATH . 'Smarty/templates/admin/pager.tpl'; 
    26         $this->tpl_subtitle = 'レビュー管理'; 
    27     } 
    28 } 
     12// }}} 
     13// {{{ generate page 
    2914 
    30 $objPage = new LC_Page(); 
    31 $objView = new SC_AdminView(); 
    32 $objSess = new SC_Session(); 
    33 $objDate = new SC_Date(); 
    34 $objQuery = new SC_Query(); 
    35  
    36 // 登録・更新検索開始年 
    37 $objDate->setStartYear(RELEASE_YEAR); 
    38 $objDate->setEndYear(DATE("Y")); 
    39 $objPage->arrStartYear = $objDate->getYear(); 
    40 $objPage->arrStartMonth = $objDate->getMonth(); 
    41 $objPage->arrStartDay = $objDate->getDay(); 
    42 // 登録・更新検索終了年 
    43 $objDate->setStartYear(RELEASE_YEAR); 
    44 $objDate->setEndYear(DATE("Y")); 
    45 $objPage->arrEndYear = $objDate->getYear(); 
    46 $objPage->arrEndMonth = $objDate->getMonth(); 
    47 $objPage->arrEndDay = $objDate->getDay(); 
    48  
    49 // 認証可否の判定 
    50 sfIsSuccess($objSess); 
    51  
    52 //レビュー情報のカラムの取得 
    53 $select="review_id, A.product_id, reviewer_name, sex, recommend_level, "; 
    54 $select.="reviewer_url, title, comment, A.status, A.create_date, A.update_date, name"; 
    55 $from = "dtb_review AS A LEFT JOIN dtb_products AS B ON A.product_id = B.product_id "; 
    56  
    57     // 検索ワードの引き継ぎ 
    58     foreach ($_POST as $key => $val) { 
    59         if (ereg("^search_", $key)) { 
    60             switch ($key){ 
    61                 case 'search_sex': 
    62                 $objPage->arrHidden[$key] = sfMergeParamCheckBoxes($val); 
    63                 if(!is_array($val)) { 
    64                     $objPage->arrForm[$key] = split("-", $val); 
    65                 } 
    66                 break; 
    67                  
    68                 default: 
    69                     $objPage->arrHidden[$key] = $val; 
    70                     break; 
    71             } 
    72         } 
    73     } 
    74  
    75 if ($_POST['mode'] == "delete"){ 
    76     //レビューの削除 
    77     $objQuery->exec("UPDATE dtb_review SET del_flg=1 WHERE review_id=?", array($_POST['review_id'])); 
    78 } 
    79      
    80 if ($_POST['mode'] == 'search' || $_POST['mode'] == 'csv' || $_POST['mode'] == 'delete'){ 
    81      
    82     //削除されていない商品を検索 
    83     $where="A.del_flg = 0 AND B.del_flg = 0"; 
    84     $objPage->arrForm = $_POST; 
    85     if (!is_array($_POST['search_sex'])){ 
    86         $objPage->arrForm['search_sex'] = split("-", $_POST['search_sex']); 
    87     } 
    88     //エラーチェック 
    89     $objPage->arrErr = lfCheckError(); 
    90  
    91     if (!$objPage->arrErr){ 
    92         foreach ($_POST as $key => $val){ 
    93  
    94             $val = sfManualEscape($val); 
    95              
    96             if($val == "") { 
    97                 continue; 
    98             } 
    99              
    100             switch ($key){ 
    101             case 'search_reviewer_name': 
    102                 $val = ereg_replace(" ", "%", $val); 
    103                 $val = ereg_replace(" ", "%", $val); 
    104                 $where.= " AND reviewer_name ILIKE ? "; 
    105                 $arrval[] = "%$val%"; 
    106                 break; 
    107                  
    108             case 'search_reviewer_url': 
    109                 $val = ereg_replace(" ", "%", $val); 
    110                 $val = ereg_replace(" ", "%", $val); 
    111                 $where.= " AND reviewer_url ILIKE ? "; 
    112                 $arrval[] = "%$val%"; 
    113                 break; 
    114                  
    115             case 'search_name': 
    116                 $val = ereg_replace(" ", "%", $val); 
    117                 $val = ereg_replace(" ", "%", $val); 
    118                 $where.= " AND name ILIKE ? "; 
    119                 $arrval[] = "%$val%"; 
    120                 break; 
    121                  
    122             case 'search_product_code': 
    123                 $val = ereg_replace(" ", "%", $val); 
    124                 $val = ereg_replace(" ", "%", $val); 
    125                 $where.= " AND A.product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ? )"; 
    126                 $arrval[] = "%$val%"; 
    127                 break; 
    128                  
    129             case 'search_sex': 
    130                 $tmp_where = ""; 
    131                 //$val=配列の中身,$element=各キーの値(1,2) 
    132                 if (is_array($val)){ 
    133                     foreach($val as $element) { 
    134                         if($element != "") { 
    135                             if($tmp_where == "") { 
    136                                 $tmp_where .= " AND (sex = ?"; 
    137                             } else { 
    138                                 $tmp_where .= " OR sex = ?"; 
    139                             } 
    140                             $arrval[] = $element; 
    141                         } 
    142                     } 
    143                     if($tmp_where != "") { 
    144                         $tmp_where .= ")"; 
    145                         $where .= " $tmp_where "; 
    146                     } 
    147                 } 
    148                  
    149                 break; 
    150                  
    151             case 'search_recommend_level': 
    152                 $where.= " AND recommend_level LIKE ? "; 
    153                 $arrval[] = $val; 
    154                 break; 
    155                  
    156             case 'search_startyear': 
    157                 if (isset($_POST['search_startyear']) && isset($_POST['search_startmonth']) && isset($_POST['search_startday'])){ 
    158                     $date = sfGetTimestamp($_POST['search_startyear'], $_POST['search_startmonth'], $_POST['search_startday']); 
    159                     $where.= " AND A.create_date >= ? "; 
    160                     $arrval[] = $date; 
    161                 } 
    162                 break; 
    163  
    164             case 'search_endyear': 
    165                 if (isset($_POST['search_startyear']) && isset($_POST['search_startmonth']) && isset($_POST['search_startday'])){ 
    166                     $date = sfGetTimestamp($_POST['search_endyear'], $_POST['search_endmonth'], $_POST['search_endday']); 
    167                      
    168                     $end_date = date("Y/m/d",strtotime("1 day" ,strtotime($date))); 
    169                      
    170                     $where.= " AND A.create_date <= cast('$end_date' as date) "; 
    171                 } 
    172                 break; 
    173             } 
    174          
    175         } 
    176              
    177     } 
    178      
    179     $order = "A.create_date DESC"; 
    180      
    181     // ページ送りの処理 
    182     if(is_numeric($_POST['search_page_max'])) {  
    183         $page_max = $_POST['search_page_max']; 
    184     } else { 
    185         $page_max = SEARCH_PMAX; 
    186     } 
    187      
    188     $linemax = $objQuery->count($from, $where, $arrval); 
    189     $objPage->tpl_linemax = $linemax; 
    190      
    191     // ページ送りの取得 
    192     $objNavi = new SC_PageNavi($_POST['search_pageno'], $linemax, $page_max, "fnNaviSearchPage", NAVI_PMAX); 
    193     $objPage->arrPagenavi = $objNavi->arrPagenavi; 
    194     $startno = $objNavi->start_row; 
    195  
    196     $objPage->tpl_pageno = $_POST['search_pageno']; 
    197      
    198     // 取得範囲の指定(開始行番号、行数のセット) 
    199     $objQuery->setlimitoffset($page_max, $startno); 
    200  
    201     // 表示順序 
    202     $objQuery->setorder($order); 
    203      
    204     //検索結果の取得 
    205     $objPage->arrReview = $objQuery->select($select, $from, $where, $arrval); 
    206      
    207     //CSVダウンロード 
    208     if ($_POST['mode'] == 'csv'){ 
    209         // オプションの指定 
    210         $option = "ORDER BY review_id"; 
    211         // CSV出力タイトル行の作成 
    212         $head = sfGetCSVList($arrREVIEW_CVSTITLE); 
    213         $data = lfGetReviewCSV($where, '', $arrval); 
    214         // CSVを送信する。 
    215         sfCSVDownload($head.$data); 
    216         exit; 
    217     }    
    218 } 
    219  
    220 $objView->assignobj($objPage); 
    221 $objView->display(MAIN_FRAME); 
    222  
    223 //------------------------------------------------------------------------------------- 
    224  
    225 // 入力エラーチェック 
    226 function lfCheckError() { 
    227     $objErr = new SC_CheckError(); 
    228     switch ($_POST['mode']){ 
    229         case 'search': 
    230         $objErr->doFunc(array("投稿者", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE")); 
    231         $objErr->doFunc(array("開始日", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE")); 
    232         $objErr->doFunc(array("終了日", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_DATE")); 
    233         $objErr->doFunc(array("開始日", "終了日", "search_startyear", "search_startmonth", "search_startday", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_SET_TERM")); 
    234         break; 
    235          
    236         case 'complete': 
    237         $objErr->doFunc(array("おすすめレベル", "recommend_level"), array("SELECT_CHECK")); 
    238         $objErr->doFunc(array("タイトル", "title", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    239         $objErr->doFunc(array("コメント", "comment", LTEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    240         break; 
    241     } 
    242     return $objErr->arrErr; 
    243 } 
    244  
     15$objPage = new LC_Page_Admin_Products_Review_Ex(); 
     16$objPage->init(); 
     17$objPage->process(); 
     18register_shutdown_function(array($objPage, "destroy")); 
    24519?> 
Note: See TracChangeset for help on using the changeset viewer.