最近、EC-CUBE+新着商品というキーワードでのアクセスが多いので、ちょっと自分の覚え書の為にも残しておきます。
なお、私はPHPプログラマーではないので、ツッコミどころ満載かもしれません。。
少しでもお役に立てば幸いです。
ちなみにEC-CUBE1.34、PHP5.2.3、PostgreSQL8.2.4という環境です。
まず最初に管理画面から、新規ブロックをnew-item.tplなどと作っておくといいでしょう。
次にnew-item.phpを作ります。
<?php /* * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved. * * http://www.lockon.co.jp/ */ class LC_NewitemPage { function LC_NewitemPage() { /** 必ず変更する **/ $this->tpl_mainpage = BLOC_PATH . 'new-item.tpl'; // メイン } } $objSubPage = new LC_NewitemPage(); $objSubView = new SC_SiteView(); //新着商品表示 $objSubPage->arrProducts = lfGetNewItem(); $objSubView->assignobj($objSubPage); $objSubView->display($objSubPage->tpl_mainpage); //----------------------------------------------------------------------------------------------------------------------------------- //新着商品検索 function lfGetNewItem(){ $conn = new SC_DBConn(); $sql = "SELECT name,main_list_image,product_id,main_list_comment FROM dtb_products WHERE status = '1' ORDER BY create_date DESC OFFSET 0 LIMIT 12"; $list_data = $conn->getAll($sql); return $list_data; } ?>
要するにデータベースからSELECT文で持ってきてるだけなんですが。。
(MySQLの場合はLIMITの辺り、書き換えないとダメかも?)
new-item.phpとして保存し、frontparts/bloc/以下にアップロード。
次にテンプレートファイル(new-item.tpl)を編集します。
<!--{* * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved. * * http://www.lockon.co.jp/ *}--> <div> <h2>NEW ITEM</h2> <!--{section name=cnt loop=$arrProducts max=12}--> <!--{assign var=id value=$arrProducts[cnt].product_id}--> <!--{assign var=name value="detail`$smarty.section.cnt.iteration`"}--> <!--商品--> <div class="section"><a name="product<!--{$id}-->" id="product<!--{$id}-->"></a> <p class="goodsInfo"><!--{$arrProducts[cnt].main_list_comment|escape|nl2br}--></p> <h3 class="goodsName"><a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrProducts[cnt].product_id}-->" class="over"><!--{$arrProducts[cnt].name|escape}--></a></h3> <div class="goodsPhoto"><a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrProducts[cnt].product_id}-->"><!--商品写真--><img src="<!--{$smarty.const.IMAGE_SAVE_URL|sfTrimURL}--/>/<!--{$arrProducts[cnt].main_list_image}-->" alt="<!--{$arrProducts[cnt].name|escape}-->" /></a></div> </div> <!--商品終わり--> <!--{/section}--> <br class="separate" /> </div>
テンプレートはいろんな書き方があると思うのですが、↑のようなのでもいちおう動いてます。
(商品を削除した時はうまく消えません。。。)
最後に、データベースにログインしてnew-item.tplとnew-item.phpを関連付けます。
これをしないと動きません。