バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > カテゴリをブロックではない部分に表示したいのですが…

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
pineray
投稿日時: 2007/1/22 11:04
対応状況: −−−
長老
登録日: 2006/9/9
居住地: 伊賀
投稿: 292
Re: カテゴリをブロックではない部分に表示したいのですが…
遅レスですみません。
もはや解決済みかもしれませんが、同じカスタマイズの要望があるかもしれませんので。

レイアウト編集でブロックを使用していないと、その部分のコード(html/frontparts/bloc/以下のファイル)が評価されないために、Smarty変数に値がセットされないのですね。
ですから、該当部分のコードをページのphpに追加する必要があります。

具体的には次のようなコードですかね。

require_onceの下あたりに記述:
class LC_CatPage {
	function LC_CatPage() {
	}
}

$objSubPage = new LC_CatPage();

// 選択中のカテゴリIDを判定する
$category_id = sfGetCategoryId($_GET['product_id'], $_GET['category_id']);

// 選択中のカテゴリID
$objSubPage->tpl_category_id = $category_id;
$objSubPage = lfGetCatTree($category_id, true, $objSubPage);

ファイルのどこかに記述:
// カテゴリツリーの取得
function lfGetCatTree($parent_category_id, $count_check = false, $objSubPage) {
	$objQuery = new SC_Query();
	$col = "*";
	$from = "dtb_category left join dtb_category_total_count using (category_id)";
	// 登録商品数のチェック
	if($count_check) {
		$where = "del_flg = 0 AND product_count > 0";
	} else {
		$where = "del_flg = 0";
	}
	$objQuery->setoption("ORDER BY rank DESC");
	$arrRet = $objQuery->select($col, $from, $where);
	
	$arrParentID = sfGetParents($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $parent_category_id);
	$arrBrothersID = sfGetBrothersArray($arrRet, 'parent_category_id', 'category_id', $arrParentID);
	$arrChildrenID = sfGetUnderChildrenArray($arrRet, 'parent_category_id', 'category_id', $parent_category_id);
	
	$objSubPage->root_parent_id = $arrParentID[0];
	
	$arrDispID = array_merge($arrBrothersID, $arrChildrenID);
	
	foreach($arrRet as $key => $array) {
		foreach($arrDispID as $val) {
			if($array['category_id'] == $val) {
				$arrRet[$key]['display'] = 1;
				break;
			}
		}
	}
	
	$objSubPage->arrTree = $arrRet;
	return $objSubPage;
}

そして、以下の部分を変更します。
$objView = new SC_SiteView();
$objView->assignobj($objPage);
$objView->display(SITE_FRAME);

$objView = new SC_SiteView();
$objView->assignobj($objPage);
$objView->assignobj($objSubPage); // category部分をSmartyにセット
$objView->display(SITE_FRAME);


ちなみに、上記の変更は未検証ですので、自己責任でお願いします。
いかんせん僕のスキルがプアなので間違っているかもしれませんし、もっとスマートな方法があると思いますので、たたき台程度にお考えください。
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   カテゴリをブロックではない部分に表示したいのですが… tkondo 2007/1/14 16:58
     Re: カテゴリをブロックではない部分に表示したいのですが… ゲスト 2007/1/15 0:58
       Re: カテゴリをブロックではない部分に表示したいのですが… ゲスト 2007/1/15 1:52
     Re: カテゴリをブロックではない部分に表示したいのですが… tkondo 2007/1/15 1:55
   » Re: カテゴリをブロックではない部分に表示したいのですが… pineray 2007/1/22 11:04

 



ログイン


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

統計情報

総メンバー数は90,414名です
総投稿数は110,391件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1693
8
red
1571
9
mcontact
1370
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.