バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tkondo
投稿日時: 2007/1/14 16:58
対応状況: −−−
新米
登録日: 2007/1/14
居住地:
投稿: 2
カテゴリをブロックではない部分に表示したいのですが…
デフォルトではブロックとして編集するカテゴリ表示機能なのですが、これを他の部分に表示する必要があり、たとえば管理ページ>デザイン管理>ページ詳細設定>TOPページに表示されることを意図して、ブロック編集のカテゴリに記述されているソースをそのままコピーして貼り付けましたが、うまく表示されませんでした。Smartyの処理がうまくできていないためかと思いますが、どのようにすれば表示ができますでしょうか。ご存じの方がいらっしゃいましたらご教授お願いいたします。
ゲスト
投稿日時: 2007/1/15 0:58
対応状況: −−−
Re: カテゴリをブロックではない部分に表示したいのですが…
レイアウト設定でカテゴリBOXをTOPページにドラッグするのじゃだめですかね。そして、カテゴリBOXを編集するとか。

登録ボタンを押すのを忘れずに!。
ゲスト
投稿日時: 2007/1/15 1:52
対応状況: −−−
Re: カテゴリをブロックではない部分に表示したいのですが…
ご返信ありがとうございます。

お申し出いただいた方法は試みたのですが、レイアウトの都合上、どうしてもソースコードをTOPページ内に書き込む方法をとらなければなりません。

レイアウト設定にてドラッグしたカテゴリBOXについてはきちんと表示されるのですが、カテゴリBOXのソースコードをページ内にそのまま書き込んだ場合、処理がうまくできないのか、カテゴリ表示がなされませんでした。sectionelseを使ってみると、その部分が表示されるので、変数に値が代入されていないようなのですが…。

引き続き、解決策をご存じの方がいらっしゃいましたら、お教えいただきたく存じます。
tkondo
投稿日時: 2007/1/15 1:55
対応状況: −−−
新米
登録日: 2007/1/14
居住地:
投稿: 2
Re: カテゴリをブロックではない部分に表示したいのですが…
失礼いたしました、↑投稿者tkondoです。
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);


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


 



ログイン


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

統計情報

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

投稿数ランキング

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
1357
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.