ブログの記事を新着情報として表示する改造

商品紹介ブログなどを書いている場合、せっかくならEC-CUBEのトップページにブログの新着情報を表示できるとよいですよね! 今回はWordPressで作ってるブログを例にそのレシピを紹介します。
例えば、簡単ですが、↓のようなブログを書いています。その新着記事をEC-CUBEのトップページに出してみましょう。
11
環境情報
EC-CUBE の対象バージョンは Version 2.3.3 です。構成は以下のような階層にしました。
EC-CUBE http://localhost/shop/html/
WordPress http://localhost/article/
EC-CUBE の新着情報に WordPress の記事を表示
WordPress のブログ記事の新着分を EC-CUBE の新着情報として表示するカスタマイズです。やっていることは、RSSを取得して表示しているわけですので、WordPress に限らず、他のシステムにも応用が効きます。
対象ファイル
data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php
data/install.php
まずの LC_Page_FrontParts_Bloc_News.php#lfGetNews にて新着情報取得部分を EC-CUBE のDBから取得するのではなく、指定した RSS を取得するようにコードを変更します。
Index: data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php
===================================================================
--- data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php (revision 4)
+++ data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php (working copy)
@@ -96,10 +96,11 @@
}

function lfGetNews(){
- $conn = new SC_DBConn();
- $sql = "SELECT *, cast(news_date as date) as news_date_disp FROM dtb_news WHERE del_flg = '0' ORDER BY rank DESC";
- $list_data = $conn->getAll($sql);
- return $list_data;
+ $list = array();
+ foreach(simplexml_load_file(NEWS_URL)->channel->item as $entry) {
+ $list[] = array('news_comment'=>$entry->description, 'news_date_disp'=>$entry->pubDate);
+ }
+ return $list;
}
}
?>

次に install.php にて取得してくる RSS の定義を行います。
Index: data/install.php
===================================================================
--- data/install.php (revision 4)
+++ data/install.php (working copy)
@@ -1,6 +1,7 @@
<?php
define ('ECCUBE_INSTALL', 'ON');
define ('HTML_PATH', 'C:/Snippet/200807240907/200901081005/shop/html/');
+ define ('NEWS_URL', 'http://localhost/article/?feed=rss2');
define ('SITE_URL', 'http://localhost/shop/html/');
define ('SSL_URL', 'http://localhost/shop/html/');
define ('URL_DIR', '/shop/html/');

12

なお、最後に注意点ですが EC-CUBE の RSS には登録されないので、「☆★☆ 新着情報はRSSで配信しています。★☆★」という文言の部分は削除してください:D