EC-CUBE:新着情報の表示件数制御をする

下記書籍をもとに書いています。詳しくは本をお読みください。

PCでは、新着情報がすべてが表示されてしまうので、多くなったら管理画面から削除するしかないのですが、この方法を使えば、そのような煩わしさはありません。

1 表示件数を指定する定数をmtb_constantsテーブルに登録する。
——————————————
id:NEWS_MAX_VIEW
name:0(←定数)
rank:1242(←適宜)
remarks:パソコン新着情報に表示する件数(全て表示する場合は「0」を指定)

id:NEWS_MAX_VIEW_MOBILE
name:1(←定数)
rank:1243(←適宜)
remarks:モバイル新着情報に表示する件数(全て表示の場合は「0」を指定)

id:NEWS_MAX_VIEW_SPHONE
name:3(←定数)
rank:1244(←適宜)
remarks:スマートフォン新着情報に表示する件数(全て表示の場合は「0」を指定)
——————————————

2 ■data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.phpに追加する場合
function lfGetNewsメソッドを下記に書き換え

 function lfGetNews(){
 $objQuery = SC_Query_Ex::getSingletonInstance();
 $col = "*, cast(news_date AS date) AS news_date_disp";
 $from = "dtb_news";
 $where = "del_flg = 0";

// ORDER句作成
 $objQuery->setorder("rank DESC");

// 端末判定を行い、新着情報の表示件数を決定します
 if(SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE)             //モバイル
 $news_limit = NEWS_MAX_VIEW_MOBILE;
 else if(SC_Display_Ex::detectDevice() == DEVICE_TYPE_SMARTPHONE)    //スマートフォン
 $news_limit = NEWS_MAX_VIEW_SPHONE;
 else                                                                //PC
 $news_limit = NEWS_MAX_VIEW;

// 取得件数判定
 if($news_limit != 0) $objQuery->setlimit($news_limit);

$arrNewsList = $objQuery->select($col, $from , $where);
 return $arrNewsList;
 }

3 ■data/class/pages/rss/LC_Page_Rss.phpに追加する場合
function lfGetNewsメソッド内に追加

 // 取得件数判定
 if(NEWS_MAX_VIEW != 0) $objQuery->setlimit(NEWS_MAX_VIEW);

4 テンプレートファイルを編集
 ■data/Smarty/templates/mobile/frontparts/bloc/news.tpl
 ■data/Smarty/templates/sphone/frontparts/bloc/news.tpl