Changeset 22581


Ignore:
Timestamp:
2013/02/22 20:22:51 (5 years ago)
Author:
pineray
Message:

#2160 pageクラスからdtb_newsテーブルを直接指定している箇所をなくす
新着情報管理のページクラス内の処理を他と統一する

Location:
branches/version-2_12-dev/data
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/Smarty/templates/admin/contents/index.tpl

    r22527 r22581  
    2323*}--> 
    2424 
    25 <script type="text/javascript"> 
    26 <!-- 
    27  
    28 function func_regist(url) { 
    29     res = confirm('この内容で<!--{if $edit_mode eq "on"}-->編集<!--{else}-->登録<!--{/if}-->しても宜しいですか?'); 
    30     if(res == true) { 
    31         document.form1.mode.value = 'regist'; 
    32         document.form1.submit(); 
    33         return false; 
    34     } 
    35     return false; 
    36 } 
    37  
    38 function func_edit(news_id) { 
    39     document.form1.mode.value = "search"; 
    40     document.form1.news_id.value = news_id; 
    41     document.form1.submit(); 
    42     return false; 
    43 } 
    44  
    45 function func_del(news_id) { 
    46     res = confirm('この新着情報を削除しても宜しいですか?'); 
    47     if(res == true) { 
    48         document.form1.mode.value = "delete"; 
    49         document.form1.news_id.value = news_id; 
    50         document.form1.submit(); 
    51     } 
    52     return false; 
    53 } 
    54  
    55 function func_rankMove(term,news_id) { 
    56     document.form1.mode.value = "move"; 
    57     document.form1.news_id.value = news_id; 
    58     document.form1.term.value = term; 
    59     document.form1.submit(); 
    60     return false; 
    61 } 
    62  
    63 --> 
    64 </script> 
    65  
    66  
    6725<div id="admin-contents" class="contents-main"> 
    6826<form name="form1" id="form1" method="post" action="?"> 
    6927<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" /> 
    7028<input type="hidden" name="mode" value="" /> 
    71 <input type="hidden" name="news_id" value="<!--{$arrForm.news_id|h}-->" /> 
    72 <input type="hidden" name="term" value="" /> 
     29<input type="hidden" name="news_id" value="<!--{$arrForm.news_id.value|h}-->" /> 
    7330    <!--{* ▼登録テーブルここから *}--> 
    7431    <table> 
     
    7936                <select name="year" <!--{if $arrErr.year || $arrErr.month || $arrErr.day }-->style="background-color:<!--{$smarty.const.ERR_COLOR|h}-->"<!--{/if}-->> 
    8037                    <option value="" selected="selected">----</option> 
    81                     <!--{html_options options=$arrYear selected=$arrForm.year}--> 
     38                    <!--{html_options options=$arrYear selected=$arrForm.year.value}--> 
    8239                </select>年 
    8340                <select name="month" <!--{if $arrErr.year || $arrErr.month || $arrErr.day}-->style="background-color:<!--{$smarty.const.ERR_COLOR|h}-->"<!--{/if}-->> 
    8441                    <option value="" selected="selected">--</option> 
    85                     <!--{html_options options=$arrMonth selected=$arrForm.month}--> 
     42                    <!--{html_options options=$arrMonth selected=$arrForm.month.value}--> 
    8643                </select>月 
    8744                <select name="day" <!--{if $arrErr.year || $arrErr.month || $arrErr.day}-->style="background-color:<!--{$smarty.const.ERR_COLOR|h}-->"<!--{/if}-->> 
    8845                    <option value="" selected="selected">--</option> 
    89                     <!--{html_options options=$arrDay selected=$arrForm.day}--> 
     46                    <!--{html_options options=$arrDay selected=$arrForm.day.value}--> 
    9047                </select>日 
    9148            </td> 
     
    9552            <td> 
    9653                <!--{if $arrErr.news_title}--><span class="attention"><!--{$arrErr.news_title}--></span><!--{/if}--> 
    97                 <textarea name="news_title" cols="60" rows="8" class="area60" maxlength="<!--{$smarty.const.MTEXT_LEN}-->" <!--{if $arrErr.news_title}-->style="background-color:<!--{$smarty.const.ERR_COLOR|h}-->"<!--{/if}-->><!--{"\n"}--><!--{$arrForm.news_title|h}--></textarea><br /> 
     54                <textarea name="news_title" cols="60" rows="8" class="area60" maxlength="<!--{$smarty.const.MTEXT_LEN}-->" <!--{if $arrErr.news_title}-->style="background-color:<!--{$smarty.const.ERR_COLOR|h}-->"<!--{/if}-->><!--{"\n"}--><!--{$arrForm.news_title.value|h}--></textarea><br /> 
    9855                <span class="attention"> (上限<!--{$smarty.const.MTEXT_LEN}-->文字)</span> 
    9956            </td> 
     
    10360            <td> 
    10461                <span class="attention"><!--{$arrErr.news_url}--></span> 
    105                 <input type="text" name="news_url" size="60" class="box60"    value="<!--{$arrForm.news_url|h}-->" <!--{if $arrErr.news_url}-->style="background-color:<!--{$smarty.const.ERR_COLOR|h}-->"<!--{/if}--> maxlength="<!--{$smarty.const.URL_LEN}-->" /> 
     62                <input type="text" name="news_url" size="60" class="box60"    value="<!--{$arrForm.news_url.value|h}-->" <!--{if $arrErr.news_url}-->style="background-color:<!--{$smarty.const.ERR_COLOR|h}-->"<!--{/if}--> maxlength="<!--{$smarty.const.URL_LEN}-->" /> 
    10663                <span class="attention"> (上限<!--{$smarty.const.URL_LEN}-->文字)</span> 
    10764            </td> 
     
    10966        <tr> 
    11067            <th>リンク</th> 
    111             <td><label><input type="checkbox" name="link_method" value="2" <!--{if $arrForm.link_method eq 2}--> checked <!--{/if}--> /> 別ウィンドウで開く</label></td> 
     68            <td><label><input type="checkbox" name="link_method" value="2" <!--{if $arrForm.link_method.value eq 2}--> checked <!--{/if}--> /> 別ウィンドウで開く</label></td> 
    11269        </tr> 
    11370        <tr> 
     
    11572            <td> 
    11673                <!--{if $arrErr.news_comment}--><span class="attention"><!--{$arrErr.news_comment}--></span><!--{/if}--> 
    117                 <textarea name="news_comment" cols="60" rows="8" wrap="soft" class="area60" maxlength="<!--{$smarty.const.LTEXT_LEN}-->" style="background-color:<!--{if $arrErr.news_comment}--><!--{$smarty.const.ERR_COLOR|h}--><!--{/if}-->"><!--{"\n"}--><!--{$arrForm.news_comment|h}--></textarea><br /> 
     74                <textarea name="news_comment" cols="60" rows="8" wrap="soft" class="area60" maxlength="<!--{$smarty.const.LTEXT_LEN}-->" style="background-color:<!--{if $arrErr.news_comment}--><!--{$smarty.const.ERR_COLOR|h}--><!--{/if}-->"><!--{"\n"}--><!--{$arrForm.news_comment.value|h}--></textarea><br /> 
    11875                <span class="attention"> (上限3000文字)</span> 
    11976            </td> 
     
    12481    <div class="btn-area"> 
    12582        <ul> 
    126             <li><a class="btn-action" href="javascript:;" onclick="return func_regist();"><span class="btn-next">この内容で登録する</span></a></li> 
     83            <li><a class="btn-action" href="javascript:;" onclick="fnFormModeSubmit('form1', 'edit', '', ''); return false;"><span class="btn-next">この内容で登録する</span></a></li> 
    12784        </ul> 
    12885    </div> 
     
    13794    <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" /> 
    13895    <input type="hidden" name="mode" value="moveRankSet" /> 
    139     <input type="hidden" name="term" value="setposition" /> 
    14096    <input type="hidden" name="news_id" value="" /> 
    14197    <input type="hidden" name="moveposition" value="" /> 
     
    170126            <td> 
    171127                <!--{if $arrNews[data].news_id != $tpl_news_id}--> 
    172                 <a href="#" onclick="return func_edit('<!--{$arrNews[data].news_id|h}-->');">編集</a> 
     128                <a href="#" onclick="fnFormModeSubmit('move','pre_edit','news_id','<!--{$arrNews[data].news_id|h}-->'); return false;">編集</a> 
    173129                <!--{else}--> 
    174130                編集中 
    175131                <!--{/if}--> 
    176132            </td> 
    177             <td><a href="#" onclick="return func_del('<!--{$arrNews[data].news_id|h}-->');">削除</a></td> 
     133            <td><a href="#" onclick="fnFormModeSubmit('move','delete','news_id','<!--{$arrNews[data].news_id|h}-->'); return false;">削除</a></td> 
    178134            <td> 
    179             <!--{if count($arrNews) != 1}--> 
    180             <input type="text" name="pos-<!--{$arrNews[data].news_id|h}-->" size="3" class="box3" />番目へ<a href="?" onclick="fnFormModeSubmit('move', 'moveRankSet','news_id', '<!--{$arrNews[data].news_id|h}-->'); return false;">移動</a><br /> 
    181             <!--{/if}--> 
    182             <!--{if $arrNews[data].rank ne $max_rank}--><a href="#" onclick="return func_rankMove('up', '<!--{$arrNews[data].news_id|h}-->', '<!--{$max_rank|h}-->');">上へ</a><!--{/if}--> <!--{if $arrNews[data].rank ne 1}--><a href="#" onclick="return func_rankMove('down', '<!--{$arrNews[data].news_id|h}-->', '<!--{$max_rank|h}-->');">下へ</a><!--{/if}--> 
     135                <!--{if count($arrNews) != 1}--> 
     136                <input type="text" name="pos-<!--{$arrNews[data].news_id|h}-->" size="3" class="box3" />番目へ<a href="?" onclick="fnFormModeSubmit('move', 'moveRankSet','news_id', '<!--{$arrNews[data].news_id|h}-->'); return false;">移動</a><br /> 
     137                <!--{/if}--> 
     138                <!--{if $smarty.section.data.iteration != 1}--> 
     139                <a href="?" onclick="fnFormModeSubmit('move','up','news_id','<!--{$arrNews[data].news_id|h}-->'); return false;">上へ</a> 
     140                <!--{/if}--> 
     141                <!--{if !$smarty.section.data.last}--> 
     142                <a href="?" onclick="fnFormModeSubmit('move','down','news_id','<!--{$arrNews[data].news_id|h}-->'); return false;">下へ</a> 
     143                <!--{/if}--> 
    183144            </td> 
    184145        </tr> 
  • branches/version-2_12-dev/data/class/helper/SC_Helper_DB.php

    r22567 r22581  
    16101610        } 
    16111611    } 
     1612 
     1613    /** 
     1614     * レコード件数を計算. 
     1615     *  
     1616     * @param string $table 
     1617     * @param string $where 
     1618     * @param array $arrval 
     1619     * @return integer レコード件数 
     1620     */ 
     1621    public function countRecords($table, $where = '', $arrval = array()) 
     1622    { 
     1623        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     1624        $col = 'COUNT(*)'; 
     1625        return $objQuery->get($col, $table, $where, $arrval); 
     1626    } 
    16121627} 
  • branches/version-2_12-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents.php

    r22567 r22581  
    8282    { 
    8383 
    84         $objDb = new SC_Helper_DB_Ex(); 
     84        $objNews = new SC_Helper_News_Ex(); 
     85 
    8586        $objFormParam = new SC_FormParam_Ex(); 
    8687        $this->lfInitParam($objFormParam); 
    8788        $objFormParam->setParam($_POST); 
    8889        $objFormParam->convParam(); 
     90 
    8991        $news_id = $objFormParam->getValue('news_id'); 
    9092 
    9193        //---- 新規登録/編集登録 
    9294        switch ($this->getMode()) { 
    93             case 'regist': 
    94                 $arrPost = $objFormParam->getHashArray(); 
     95            case 'edit': 
    9596                $this->arrErr = $this->lfCheckError($objFormParam); 
    96                 if (SC_Utils_Ex::isBlank($this->arrErr)) { 
    97                     // ニュースIDの値がPOSTされて来た場合は既存データの編集とみなし、 
    98                     // 更新メソッドを呼び出す。 
    99                     // ニュースIDが存在しない場合は新規登録を行う。 
    100                     $arrPost['link_method'] = $this->checkLinkMethod($arrPost['link_method']); 
    101                     $arrPost['news_date'] = $this->getRegistDate($arrPost); 
    102                     $member_id = $_SESSION['member_id']; 
    103                     if (strlen($news_id) > 0 && is_numeric($news_id)) { 
    104                         $this->lfNewsUpdate($arrPost,$member_id); 
    105                     } else { 
    106                         $this->lfNewsInsert($arrPost,$member_id); 
     97                if (!SC_Utils_Ex::isBlank($this->arrErr['news_id'])) { 
     98                    trigger_error('', E_USER_ERROR); 
     99                    return; 
     100                } 
     101 
     102                if (count($this->arrErr) <= 0) { 
     103                    // POST値の引き継ぎ 
     104                    $arrParam = $objFormParam->getHashArray(); 
     105                    // 登録実行 
     106                    $res_news_id = $this->doRegist($news_id, $arrParam, $objNews); 
     107                    if ($res_news_id !== FALSE) { 
     108                        // 完了メッセージ 
     109                        $news_id = $res_news_id; 
     110                        $this->tpl_onload = "alert('登録が完了しました。');"; 
    107111                    } 
    108                     $news_id = ''; 
    109                     $this->tpl_onload = "window.alert('編集が完了しました');"; 
    110                 } else { 
    111                     $this->arrForm = $arrPost; 
    112112                } 
    113                 break; 
    114             case 'search': 
    115                 if (is_numeric($news_id)) { 
    116                     list($this->arrForm) = $this->getNews($news_id); 
    117                     list($this->arrForm['year'],$this->arrForm['month'],$this->arrForm['day']) = $this->splitNewsDate($this->arrForm['cast_news_date']); 
    118                     $this->edit_mode = 'on'; 
    119                 } 
    120                 break; 
     113                // POSTデータを引き継ぐ 
     114                $this->tpl_news_id = $news_id; 
     115                break; 
     116 
     117            case 'pre_edit': 
     118                $news = $objNews->get($news_id); 
     119                list($news['year'],$news['month'],$news['day']) = $this->splitNewsDate($news['cast_news_date']); 
     120                $objFormParam->setParam($news); 
     121 
     122                // POSTデータを引き継ぐ 
     123                $this->tpl_news_id = $news_id; 
     124                break; 
     125 
    121126            case 'delete': 
    122127            //---- データ削除 
    123                 if (is_numeric($news_id)) { 
    124                     $pre_rank = $this->getRankByNewsId($news_id); 
    125                     $this->computeRankForDelete($news_id,$pre_rank); 
    126  
    127                     SC_Response_Ex::reload();             //自分にリダイレクト(再読込による誤動作防止) 
    128                 } 
    129                 break; 
    130             case 'move': 
     128                $objNews->delete($news_id); 
     129                //自分にリダイレクト(再読込による誤動作防止) 
     130                SC_Response_Ex::reload(); 
     131                break; 
     132 
    131133            //---- 表示順位移動 
    132                 if (strlen($news_id) > 0 && is_numeric($news_id) == true) { 
    133                     $term = $objFormParam->getValue('term'); 
    134                     if ($term == 'up') { 
    135                         $objDb->sfRankUp('dtb_news', 'news_id', $news_id); 
    136                     } else if ($term == 'down') { 
    137                         $objDb->sfRankDown('dtb_news', 'news_id', $news_id); 
    138                     } 
    139  
    140                     $this->objDisplay->reload(); 
    141                 } 
    142                 break; 
     134            case 'up': 
     135                $objNews->rankUp($news_id); 
     136 
     137                // リロード 
     138                SC_Response_Ex::reload(); 
     139                break; 
     140 
     141            case 'down': 
     142                $objNews->rankDown($news_id); 
     143 
     144                // リロード 
     145                SC_Response_Ex::reload(); 
     146                break; 
     147 
    143148            case 'moveRankSet': 
    144149            //---- 指定表示順位移動 
    145150                $input_pos = $this->getPostRank($news_id); 
    146151                if (SC_Utils_Ex::sfIsInt($input_pos)) { 
    147                     $objDb->sfMoveRank('dtb_news', 'news_id', $news_id, $input_pos); 
     152                    $objNews->moveRank($news_id, $input_pos); 
    148153                } 
    149                 $this->objDisplay->reload(); 
    150                 break; 
     154                SC_Response_Ex::reload(); 
     155                break; 
     156 
    151157            default: 
    152158                break; 
    153159        } 
    154160 
    155         $this->arrNews = $this->getNews(); 
    156         $this->tpl_news_id = $news_id; 
     161        $this->arrNews = $objNews->getList(); 
    157162        $this->line_max = count($this->arrNews); 
    158         $this->max_rank = $this->getRankMax(); 
    159  
     163 
     164        $this->arrForm = $objFormParam->getFormParamList(); 
    160165    } 
    161166 
     
    197202        $objFormParam->addParam('本文', 'news_comment', LTEXT_LEN, 'KVa', array('MAX_LENGTH_CHECK')); 
    198203        $objFormParam->addParam('別ウィンドウで開く', 'link_method', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
    199         $objFormParam->addParam('ランク移動', 'term', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
    200     } 
    201  
    202     /** 
    203      * 新着記事のデータの登録を行う 
    204      * @param Array $arrPost POSTデータの配列 
    205      * @param Integer $member_id 登録した管理者のID 
    206      */ 
    207     function lfNewsInsert($arrPost,$member_id) 
    208     { 
    209         $objQuery = $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    210  
    211         // rankの最大+1を取得する 
    212         $rank_max = $this->getRankMax(); 
    213         $rank_max = $rank_max + 1; 
    214  
    215         $table = 'dtb_news'; 
    216         $sqlval = array(); 
    217         $news_id = $objQuery->nextVal('dtb_news_news_id'); 
     204    } 
     205 
     206    /** 
     207     * 登録処理を実行. 
     208     *  
     209     * @param integer $news_id 
     210     * @param array $sqlval 
     211     * @param object $objNews 
     212     * @return multiple 
     213     */ 
     214    function doRegist($news_id, $sqlval, SC_Helper_News_Ex $objNews) 
     215    { 
    218216        $sqlval['news_id'] = $news_id; 
    219         $sqlval['news_date'] = $arrPost['news_date']; 
    220         $sqlval['news_title'] = $arrPost['news_title']; 
    221         $sqlval['creator_id'] = $member_id; 
    222         $sqlval['news_url'] = $arrPost['news_url']; 
    223         $sqlval['link_method'] = $arrPost['link_method']; 
    224         $sqlval['news_comment'] = $arrPost['news_comment']; 
    225         $sqlval['rank'] = $rank_max; 
    226         $sqlval['create_date'] = 'CURRENT_TIMESTAMP'; 
    227         $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; 
    228         $objQuery->insert($table, $sqlval); 
    229     } 
    230  
    231     function lfNewsUpdate($arrPost,$member_id) 
    232     { 
    233         $objQuery = $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    234  
    235         $table = 'dtb_news'; 
    236         $sqlval = array(); 
    237         $sqlval['news_date'] = $arrPost['news_date']; 
    238         $sqlval['news_title'] = $arrPost['news_title']; 
    239         $sqlval['creator_id'] = $member_id; 
    240         $sqlval['news_url'] = $arrPost['news_url']; 
    241         $sqlval['news_comment'] = $arrPost['news_comment']; 
    242         $sqlval['link_method'] = $arrPost['link_method']; 
    243         $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; 
    244         $where = 'news_id = ?'; 
    245         $arrValIn = array($arrPost['news_id']); 
    246         $objQuery->update($table, $sqlval, $where, $arrValIn); 
     217        $sqlval['creator_id'] = $_SESSION['member_id']; 
     218        $sqlval['link_method'] = $this->checkLinkMethod($sqlval['link_method']); 
     219        $sqlval['news_date'] = $this->getRegistDate($sqlval); 
     220        unset($sqlval['year'], $sqlval['month'], $sqlval['day']); 
     221        return $objNews->save($sqlval); 
    247222    } 
    248223 
     
    272247 
    273248    /** 
    274      * ニュース記事を取得する。 
    275      * @param Integer news_id ニュースID 
    276      */ 
    277     function getNews($news_id = '') 
    278     { 
    279         $objQuery = $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    280         $col = '*, cast(news_date as date) as cast_news_date'; 
    281         $table = 'dtb_news'; 
    282         $order = 'rank DESC'; 
    283         if (strlen($news_id) == 0) { 
    284             $where = 'del_flg = 0'; 
    285             $arrWhereVal = array(); 
    286         } else { 
    287             $where = 'del_flg = 0 AND news_id = ?'; 
    288             $arrWhereVal = array($news_id); 
    289         } 
    290         $objQuery->setOrder($order); 
    291         return $objQuery->select($col, $table, $where, $arrWhereVal); 
    292     } 
    293  
    294     /** 
    295      * 指定されたニュースのランクの値を取得する。 
    296      * @param Integer $news_id 
    297      */ 
    298     function getRankByNewsId($news_id) 
    299     { 
    300         $objQuery = $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    301         $col = 'rank'; 
    302         $table = 'dtb_news'; 
    303         $where = 'del_flg = 0 AND news_id = ?'; 
    304         $arrWhereVal = array($news_id); 
    305         list($rank) = $objQuery->select($col, $table, $where, $arrWhereVal); 
    306         return $rank['rank']; 
    307     } 
    308  
    309     /** 
    310      * 削除する新着情報以降のrankを1つ繰り上げる。 
    311      * @param Integer $news_id 
    312      * @param Integer $rank 
    313      */ 
    314     function computeRankForDelete($news_id,$rank) 
    315     { 
    316         SC_Helper_DB_Ex::sfDeleteRankRecord('dtb_news', 'news_id', $news_id); 
    317     } 
    318  
    319     /** 
    320249     * ニュースの日付の値をフロントでの表示形式に合わせるために分割 
    321250     * @param String $news_date 
     
    324253    { 
    325254        return explode('-', $news_date); 
    326     } 
    327  
    328     /** 
    329      * ランクの最大値の値を返す。 
    330      * @return Intger $max ランクの最大値の値 
    331      */ 
    332     function getRankMax() 
    333     { 
    334         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    335         $col = 'MAX(rank) as max'; 
    336         $table = 'dtb_news'; 
    337         $where = 'del_flg = 0'; 
    338         list($result) = $objQuery->select($col, $table, $where); 
    339         return $result['max']; 
    340255    } 
    341256 
  • branches/version-2_12-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php

    r22567 r22581  
    6767    { 
    6868 
     69        $objNews = new SC_Helper_News_Ex(); 
    6970        $objFormParam = new SC_FormParam_Ex(); 
    7071        switch ($this->getMode()) { 
     
    7576                $this->arrErr = $objFormParam->checkError(false); 
    7677                if (empty($this->arrErr)) { 
    77  
    78                     $json = $this->lfGetNewsForJson($objFormParam); 
     78                    $arrData = $objFormParam->getHashArray(); 
     79                    $json = $this->lfGetNewsForJson($arrData, $objNews); 
    7980                    echo $json; 
    8081                    SC_Response_Ex::actionExit(); 
     
    9091                $this->arrErr = $objFormParam->checkError(false); 
    9192                if (empty($this->arrErr)) { 
    92  
    93                     $json = $this->lfGetNewsDetailForJson($objFormParam); 
     93                    $arrData = $objFormParam->getHashArray(); 
     94                    $json = $this->lfGetNewsDetailForJson($arrData, $objNews); 
    9495                    echo $json; 
    9596                    SC_Response_Ex::actionExit(); 
     
    100101                break; 
    101102            default: 
    102                 $this->newsCount = $this->lfGetNewsCount(); 
    103                 $this->arrNews = $this->lfGetNews(SC_Query_Ex::getSingletonInstance()); 
     103                $this->arrNews = $objNews->getList(); 
     104                $this->newsCount = $objNews->getCount(); 
    104105                break; 
    105106        } 
     
    135136     * @return array $arrNewsList 新着情報の配列を返す 
    136137     */ 
    137     function lfGetNews(&$objQuery) 
    138     { 
    139         $objQuery->setOrder('rank DESC '); 
    140         $arrNewsList = $objQuery->select('* , cast(news_date as date) as news_date_disp', 'dtb_news' ,'del_flg = 0'); 
     138    function lfGetNews($dispNumber, $pageNo, SC_Helper_News_Ex $objNews) 
     139    { 
     140        $arrNewsList = $objNews->getList($dispNumber, $pageNo); 
    141141 
    142142        // モバイルサイトのセッション保持 (#797) 
     
    159159     * (ページと表示件数を指定) 
    160160     * 
    161      * @param array $objFormParam フォームパラメータークラス 
     161     * @param array $arrData フォーム入力値 
     162     * @param object $objNews 
    162163     * @return String $json 新着情報のJSONを返す 
    163164     */ 
    164     function lfGetNewsForJson(&$objFormParam) 
    165     { 
    166  
    167         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    168         $arrData = $objFormParam->getHashArray(); 
     165    function lfGetNewsForJson($arrData, SC_Helper_News_Ex $objNews) 
     166    { 
    169167 
    170168        $dispNumber = $arrData['disp_number']; 
    171169        $pageNo = $arrData['pageno']; 
    172         if (!empty($dispNumber) && !empty($pageNo)) { 
    173             $objQuery->setLimitOffset($dispNumber, (($pageNo - 1) * $dispNumber)); 
    174         } 
    175  
    176         $arrNewsList = $this->lfGetNews($objQuery); 
     170        $arrNewsList = $this->lfGetNews($dispNumber, $pageNo, $objNews); 
    177171 
    178172        //新着情報の最大ページ数をセット 
    179         $newsCount = $this->lfGetNewsCount(); 
     173        $newsCount = $objNews->getCount(); 
    180174        $arrNewsList['news_page_count'] = ceil($newsCount / 3); 
    181175 
     
    189183     * (news_idを指定) 
    190184     * 
    191      * @param array $objFormParam フォームパラメータークラス 
     185     * @param array $arrData フォーム入力値 
     186     * @param object $objNews 
    192187     * @return String $json 新着情報1件分のJSONを返す 
    193188     */ 
    194     function lfGetNewsDetailForJson(&$objFormParam) 
    195     { 
    196  
    197         $objQuery = SC_Query_Ex::getSingletonInstance(); 
    198         $arrData = $objFormParam->getHashArray(); 
    199         $newsId = $arrData['news_id']; 
    200         $arrNewsList = $objQuery->select(' * , cast(news_date as date) as news_date_disp ',' dtb_news '," del_flg = '0' AND news_id = ? ", array($newsId)); 
    201  
     189    function lfGetNewsDetailForJson($arrData, SC_Helper_News_Ex $objNews) 
     190    { 
     191 
     192        $arrNewsList = $objNews->get($arrData['news_id']); 
    202193        $json =  SC_Utils_Ex::jsonEncode($arrNewsList);    //JSON形式 
    203194 
    204195        return $json; 
    205     } 
    206  
    207     /** 
    208      * 新着情報の件数を取得する 
    209      * 
    210      * @return Integer $count 新着情報の件数を返す 
    211      */ 
    212     function lfGetNewsCount() 
    213     { 
    214  
    215         $count = 0; 
    216  
    217         $objQuery = SC_Query_Ex::getSingletonInstance(); 
    218         $count = $objQuery->count('dtb_news', "del_flg = '0'"); 
    219  
    220         return $count; 
    221196    } 
    222197 
  • branches/version-2_12-dev/data/class/pages/rss/LC_Page_Rss.php

    r22567 r22581  
    5959    { 
    6060 
    61         $objQuery = SC_Query_Ex::getSingletonInstance(); 
    6261        $objView = new SC_SiteView_Ex(false); 
    6362 
    6463        //新着情報を取得 
    65         $arrNews = $this->lfGetNews($objQuery); 
     64        $arrNews = $this->lfGetNews(); 
    6665 
    6766        //キャッシュしない(念のため) 
     
    101100     * 新着情報を取得する 
    102101     * 
    103      * @param SC_Query $objQuery DB操作クラス 
    104102     * @return array $arrNews 取得結果を配列で返す 
    105103     */ 
    106     function lfGetNews(&$objQuery) 
     104    function lfGetNews() 
    107105    { 
    108         $col = ''; 
    109         $col .= 'news_id ';        // 新着情報ID 
    110         $col .= ',news_title ';    // 新着情報タイトル 
    111         $col .= ',news_comment ';  // 新着情報本文 
    112         $col .= ',news_date ';     // 日付 
    113         $col .= ',news_url ';      // 新着情報URL 
    114         $col .= ',news_select ';   // 新着情報の区分(1:URL、2:本文) 
    115         $col .= ',(SELECT shop_name FROM dtb_baseinfo limit 1) AS shop_name  ';    // 店名 
    116         $col .= ',(SELECT email04 FROM dtb_baseinfo limit 1) AS email ';           // 代表Emailアドレス 
    117         $from = 'dtb_news'; 
    118         $where = "del_flg = '0'"; 
    119         $order = 'rank DESC'; 
    120         $objQuery->setOrder($order); 
    121         $arrNews = $objQuery->select($col,$from,$where); 
     106        $objNews = new SC_Helper_News_Ex(); 
     107        $arrNews = $objNews->getList(); 
     108 
     109        $objDb = new SC_Helper_DB_Ex(); 
     110        $arrInfo = $objDb->sfGetBasisData(FALSE, 'shop_name, email04'); 
    122111 
    123112        // RSS用に変換 
     
    126115 
    127116            $row =& $arrNews[$key]; 
     117            $row['shop_name'] = $arrInfo['shop_name']; 
     118            $row['email'] = $arrInfo['email04']; 
    128119            // 日付 
    129120            $row['news_date'] = date('r', strtotime($row['news_date'])); 
Note: See TracChangeset for help on using the changeset viewer.