ITOBEN STYLE > EC-CUBEデザインテンプレート > EC-CUBE:新着情報の表示件数制御をする 2012年3月17日カテゴリー: EC-CUBEデザインテンプレート 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メソッドを下記に書き換え [php] 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; } [/php] 3 ■data/class/pages/rss/LC_Page_Rss.phpに追加する場合 function lfGetNewsメソッド内に追加 [php] // 取得件数判定 if(NEWS_MAX_VIEW != 0) $objQuery->setlimit(NEWS_MAX_VIEW); [/php] 4 テンプレートファイルを編集 ① ■data/Smarty/templates/mobile/frontparts/bloc/news.tpl ② ■data/Smarty/templates/sphone/frontparts/bloc/news.tpl
下記書籍をもとに書いています。詳しくは本をお読みください。
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メソッドを下記に書き換え
[php]
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;
}
[/php]
3 ■data/class/pages/rss/LC_Page_Rss.phpに追加する場合
function lfGetNewsメソッド内に追加
[php]
// 取得件数判定
if(NEWS_MAX_VIEW != 0) $objQuery->setlimit(NEWS_MAX_VIEW);
[/php]
4 テンプレートファイルを編集
① ■data/Smarty/templates/mobile/frontparts/bloc/news.tpl
② ■data/Smarty/templates/sphone/frontparts/bloc/news.tpl