バージョン選択

フォーラム

メニュー

オンライン状況

64 人のユーザが現在オンラインです。 (55 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 64
もっと...

サイト内検索

質問 > フロント機能 > 「その他のオススメ商品」を管理画面から登録なしで自動表示

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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の基本から参考書を読みつつ調べたのですが一朝一夕ではなかなか身につかず困っております。

もう少しアドバイスを頂けないでしょうか。
よろしくお願いいたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,891名です
総投稿数は110,001件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1295
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.