質問 > フロント機能 > 「その他のオススメ商品」を管理画面から登録なしで自動表示 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ma2ma2 |
投稿日時: 2013/7/26 13:18
対応状況: −−−
|
新米 登録日: 2013/7/26 居住地: 投稿: 3 |
「その他のオススメ商品」を管理画面から登録なしで自動表示 商品詳細ページの「その他のオススメ商品」を管理画面から登録なしで同カテゴリの商品をランダムで自動表示したいと考えております。
下記のサイト ・http://blog.tubo.jp.net/ec-cube%E3%81%AE%E3%80%8C%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AE%E3%82%AA%E3%82%B9%E3%82%B9%E3%83%A1%E5%95%86%E5%93%81%E3%80%8D%E3%82%92%E7%99%BB%E9%8C%B2%E7%84%A1%E3%81%97%E3%81%A7%E3%83%A9%E3%83%B3/ ・http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=12320&forum=10&post_id=56794 ・ http://ec-cube.nakweb.com/blog/1869.html を参考に作ってみたのですが、どうしてもうまくいきません。 状況としては何も起こりませんでした。 エラーも出ないし、カスタマイズ前と同じように登録した関連商品が表示されます。 どなたか作成方法を教えていただけないでしょうか。 自分は、HTML・CSSの知識はありますがPHP、EC-CUBEは素人です。 何卒、よろしくお願いいたします。 以下作成した部分です。 LC_Page_Products_Detai.phpファイル --------------------------------------------------------------------------------------------------------------------------- /* 登録済み関連商品の読み込み */ function lfPreGetRecommendProducts($category_id) { $objProduct = new SC_Product_Ex(); $objQuery =& SC_Query_Ex::getSingletonInstance(); $objQuery->setOrder('RAND()'); $objQuery->setLimitOffset(8); $arrRecommendData = $objQuery->select('recommend_product_id, comment', 'dtb_recommend_products as t1 left join dtb_products as t2 on t1.recommend_product_id = t2.product_id', 't1.product_id = ? and t2.del_flg = 0 and t2.status = 1', array($category_id)); $arrRecommendProductId = array(); foreach ($arrRecommendData as $recommend) { $arrRecommendProductId[] = $recommend['recommend_product_id']; $this->arrRecommendCat[$recommend['recommend_product_id']] = SC_Helper_DB_Ex::sfGetMultiCatTree($recommend['recommend_product_id']); } $objQuery =& SC_Query_Ex::getSingletonInstance(); $arrProducts = $objProduct->getListByProductIds($objQuery, $arrRecommendProductId); $arrRecommend = array(); foreach ($arrRecommendData as $key => &$arrRow) { $arrRecommendData[$key] = array_merge($arrRow, $arrProducts[$arrRow['recommend_product_id']]); } return $arrRecommendData; } --------------------------------------------------------------------------------------------------------------------------- .tplファイル(今回は画像のみ表示出来ればいいので不要な部分は削除しています。) --------------------------------------------------------------------------------------------------------------------------- <!--▼関連商品--> <!--{if $arrRecommend}--> <div id="kanrenWrap"> <div id="kanren_area"> <a id="next2" class="next" href="#"><img src="<!--{$TPL_URLPATH}-->img/mk/carouselup_u.gif" alt=""></a> <ul> <!--{foreach from=$arrRecommend item=arrItem name="arrRecommend"}--> <li> <a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrItem.product_id|u}-->"> <img src="<!--{$smarty.const.ROOT_URLPATH}-->resize_image.php?image=<!--{$arrItem.main_list_image|sfNoImageMainList|h}-->&width=148" alt="<!--{$arrItem.name|h}-->" /></a> </li><!--{* /.item *}--> <!--{if $smarty.foreach.arrRecommend.iteration % 2 === 0}--> <div class="clear"></div> <!--{/if}--> <!--{/foreach}--> </ul> <a id="prev2" class="prev" href="#"><img src="<!--{$TPL_URLPATH}-->img/mk/carouseldown_u.gif" alt=""></a> </div> </div> <!--{/if}--> <!--▲関連商品--> --------------------------------------------------------------------------------------------------------------------------- EC-CUBEバージョン 2.12.4 PHPバージョン PHP 5.3.3 DBバージョン MySQL 5.0.95 |
fukaq |
投稿日時: 2013/7/26 13:51
対応状況: −−−
|
常連 登録日: 2013/3/22 居住地: 投稿: 34 |
Re: 「その他のオススメ商品」を管理画面から登録なしで自動表示 data/class_extends/page_extends/products/LC_Page_Products_Detail_Ex.php にも
該当する記述があって、それで上書きされているということはありませんか? |
ma2ma2 |
投稿日時: 2013/7/26 14:22
対応状況: −−−
|
新米 登録日: 2013/7/26 居住地: 投稿: 3 |
Re: 「その他のオススメ商品」を管理画面から登録なしで自動表示 早速のお返事ありがとうございます。
data/class_extends/page_extends/products/LC_Page_Products_Detail_Ex.php を確認してみましたが特にないような気がします。 このファイルは今まで触ったことがないです。 ソースは以下のようになっています。 ----------------------------------------------------------------- // {{{ requires require_once CLASS_REALDIR . 'pages/products/LC_Page_Products_Detail.php'; /** * LC_Page_Products_Detail のページクラス(拡張). * * LC_Page_Products_Detail をカスタマイズする場合はこのクラスを編集する. * * @package Page * @author LOCKON CO.,LTD. * @version $Id: LC_Page_Products_Detail_Ex.php 22796 2013-05-02 09:11:36Z h_yoshimoto $ */ class LC_Page_Products_Detail_Ex extends LC_Page_Products_Detail { // }}} // {{{ functions /** * Page を初期化する. * * @return void */ function init() { parent::init(); } /** * Page のプロセス. * * @return void */ function process() { parent::process(); } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } } ----------------------------------------------------------------- |
casa |
投稿日時: 2013/7/26 14:56
対応状況: −−−
|
長老 登録日: 2011/10/3 居住地: 投稿: 210 |
Re: 「その他のオススメ商品」を管理画面から登録なしで自動表示 こんにちわ。
$objQuery->select()の内容がデフォルトのままですので、カスタマイズしていない場合と動きは同じです。 追加で取得している $this->arrRecommendCat もどこにも利用されていないようです。 selectした結果を元にカテゴリを取得されていますが、 これを逆にして、先にproduct_idを元にカテゴリを取得し、 取得したカテゴリIDを条件に、selectすればよいと思います。 また、関数のパラメータ名を $product_id から $cateogry_id に変更されていますが、 内容は $product_id のままだと思いますので戻した方がよろしいかと。 |
ma2ma2 |
投稿日時: 2013/7/29 12:04
対応状況: −−−
|
新米 登録日: 2013/7/26 居住地: 投稿: 3 |
Re: 「その他のオススメ商品」を管理画面から登録なしで自動表示 返事をいただきありがとうございます。
その後、頂いたアドバイスを元にいろいろと試してみました。 $this->arrRecommendCat[$recommend['recommend_product_id']] = SC_Helper_DB_Ex::sfGetMultiCatTree($recommend['recommend_product_id']); この部分を別の場所に移動すればいいのかと思い、 function lfPreGetRecommendProducts($category_id) { 〜 } の中で場所を変えたりしたのですがうまくいきませんでした。 ただ移動させるだけでは無理なのでしょうか。 PHPの基本から参考書を読みつつ調べたのですが一朝一夕ではなかなか身につかず困っております。 もう少しアドバイスを頂けないでしょうか。 よろしくお願いいたします。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |