Ignore:
Timestamp:
2014/10/14 11:27:26 (10 years ago)
Author:
kim
Message:

#2560 r23461 r23464 をリバート

既存関数の削除が多く、2.13.3では採用を見送ります。
下位互換が担保された場合、2.13.4で採用を検討します。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_13_3/data/class/pages/admin/products/LC_Page_Admin_Products_Review.php

    r23546 r23654  
    8686    public function action() 
    8787    { 
    88         $objReview = new SC_Helper_Review_Ex(); 
    8988        // パラメーター管理クラス 
    9089        $objFormParam = new SC_FormParam_Ex(); 
     
    106105        switch ($this->getMode()) { 
    107106            case 'delete': 
    108                 $objReview->delete($this->arrForm['review_id']); 
     107                $this->lfDeleteReview($this->arrForm['review_id']); 
    109108            case 'search': 
    110109            case 'csv': 
    111110 
     111                // 検索条件を取得 
     112                list($where, $arrWhereVal) = $this->lfGetWhere($this->arrForm); 
    112113                // 検索結果を取得 
    113                 $this->arrReview = $this->lfGetReview($objReview); 
     114                $this->arrReview = $this->lfGetReview($this->arrForm, $where, $arrWhereVal); 
    114115 
    115116                //CSVダウンロード 
    116117                if ($this->getMode() == 'csv') { 
    117                     // 検索条件を取得 
    118                     list($where, $arrWhereVal) = $this->lfGetWhere($this->arrForm); 
    119118                    $this->lfDoOutputCsv($where, $arrWhereVal); 
    120119 
     
    159158 
    160159        return $objErr->arrErr; 
     160    } 
     161 
     162    /** 
     163     * 商品レビューの削除 
     164     * 
     165     * @param  integer $review_id 商品レビューのID 
     166     * @return void 
     167     */ 
     168    public function lfDeleteReview($review_id) 
     169    { 
     170        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     171        $sqlval['del_flg'] = 1; 
     172        $objQuery->update('dtb_review', $sqlval, 'review_id = ?', array($review_id)); 
    161173    } 
    162174 
     
    322334     * レビュー検索結果の取得 
    323335     * 
    324      * @param  SC_Helper_Review $objReview 
     336     * @param  array  $arrForm     フォームデータ 
     337     * @param  string $where       WHERE文 
     338     * @param  array  $arrWhereVal WHERE文の判定値 
    325339     * @return array  レビュー一覧 
    326340     */ 
    327     public function lfGetReview(SC_Helper_Review $objReview) 
    328     { 
    329         $arrForm = $this->arrForm; 
    330  
    331         $query = $this->makeQuery($arrForm); 
    332         $linemax = $objReview->count($query); 
    333  
     341    public function lfGetReview($arrForm, $where, $arrWhereVal) 
     342    { 
     343        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     344 
     345        // ページ送りの処理 
     346        $page_max = SC_Utils_Ex::sfGetSearchPageMax($arrForm['search_page_max']); 
     347 
     348        if (!isset($arrWhereVal)) $arrWhereVal = array(); 
     349 
     350        $from = 'dtb_review AS A LEFT JOIN dtb_products AS B ON A.product_id = B.product_id '; 
     351        $linemax = $objQuery->count($from, $where, $arrWhereVal); 
    334352        $this->tpl_linemax = $linemax; 
     353 
    335354        $this->tpl_pageno = isset($arrForm['search_pageno']) ? $arrForm['search_pageno'] : ''; 
    336355 
    337356        // ページ送りの取得 
    338         $page_max = SC_Utils_Ex::sfGetSearchPageMax($arrForm['search_page_max']); 
    339357        $objNavi = new SC_PageNavi_Ex($this->tpl_pageno, $linemax, $page_max, 
    340358                                      'eccube.moveNaviPage', NAVI_PMAX); 
     
    343361 
    344362        // 取得範囲の指定(開始行番号、行数のセット) 
    345         $params = array( 
    346             'query' => $query, 
    347             'limit' => $page_max, 
    348             'offset' => $startno 
    349         ); 
    350         $arrReview = $objReview->find($params); 
     363        $objQuery->setLimitOffset($page_max, $startno); 
     364 
     365        // 表示順序 
     366        $order = 'A.create_date DESC'; 
     367        $objQuery->setOrder($order); 
     368        //検索結果の取得 
     369        //レビュー情報のカラムの取得 
     370        $col = 'review_id, A.product_id, reviewer_name, sex, recommend_level, '; 
     371        $col .= 'reviewer_url, title, comment, A.status, A.create_date, A.update_date, name'; 
     372        $from = 'dtb_review AS A LEFT JOIN dtb_products AS B ON A.product_id = B.product_id '; 
     373        $arrReview = $objQuery->select($col, $from, $where, $arrWhereVal); 
    351374 
    352375        return $arrReview; 
    353376    } 
    354  
    355     /** 
    356      * SC_Helper_Reviewインスタンスへ渡す検索条件の配列を作成. 
    357      * 
    358      * @param array $data 
    359      * @return array 
    360      */ 
    361     private function makeQuery($data = array()) { 
    362         $query = array(); 
    363  
    364         foreach ($data AS $key => $val) { 
    365             if (empty($val)) continue; 
    366  
    367             switch ($key) { 
    368                 case 'search_reviewer_name': 
    369                     $query['reviewer_name'] = $val; 
    370                     break; 
    371  
    372                 case 'search_reviewer_url': 
    373                     $query['reviewer_url'] = $val; 
    374                     break; 
    375  
    376                 case 'search_name': 
    377                     $query['product_name'] = $val; 
    378                     break; 
    379  
    380                 case 'search_product_code': 
    381                     $query['product_code'] = $val; 
    382                     break; 
    383  
    384                 case 'search_sex': 
    385                     $query['reviewer_sex'] = $val; 
    386                     break; 
    387  
    388                 case 'search_recommend_level': 
    389                     $query['recommend_level'] = $val; 
    390                     break; 
    391  
    392                 case 'search_startyear': 
    393                     if (isset($_POST['search_startyear']) && isset($_POST['search_startmonth']) && isset($_POST['search_startday'])) { 
    394                         $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_startyear'], $_POST['search_startmonth'], $_POST['search_startday']); 
    395                         $query['date_from'] = $date; 
    396                     } 
    397                     break; 
    398  
    399                 case 'search_endyear': 
    400                     if (isset($_POST['search_startyear']) && isset($_POST['search_startmonth']) && isset($_POST['search_startday'])) { 
    401                         $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_endyear'], $_POST['search_endmonth'], $_POST['search_endday']); 
    402                         $end_date = date('Y/m/d', strtotime('1 day', strtotime($date))); 
    403                         $query['date_to'] = $end_date; 
    404                     } 
    405                     break; 
    406  
    407                 default: 
    408                     break; 
    409             } 
    410  
    411         } 
    412  
    413         return $query; 
    414     } 
    415377} 
Note: See TracChangeset for help on using the changeset viewer.