バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品カテゴリの表示・非表示について

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
shop_bri
投稿日時: 2010/7/22 7:49
対応状況: −−−
一人前
登録日: 2010/6/1
居住地: 愛媛県松山
投稿: 91
商品カテゴリの表示・非表示について
http://www.happyquality.com/2009/02/17/776.htm
を参考に、商品カテゴリの表示・非表示フラグ追加のカスタマイズしています。

dtb_categoryにフィールドview_flag:tinyint 1を追加、
NULL禁止、規定値は1としました。

そして、表示させたくないカテゴリのview_flagは0にしました。

LC_Page_FrontParts_Block_Category_EX.php

if($array['category_id'] == $val) {
$arrRet[$key]['display'] = 1 ;


if($array['category_id'] == $val) {
$arrRet[$key]['display'] = $arrRet[$key]['view_flag'];

に、以上で、view_flagを0にしたカテゴリが表示されないはずですが、(初心者なので、わからずやっています)まだ、フロント画面に出ています。


どなたか、どこがいけないのか教えていただけないでしょうか。







EC-CUBE 2.4.3
レンタルサーバー ABLENET
OS windows XP
PHP 5.2.9.
データベース MySQL 5.0.77
WEBサーバー apache
ecbg
投稿日時: 2010/7/22 19:27
対応状況: −−−
仙人
登録日: 2009/2/25
居住地: 東京
投稿: 387
Re: 商品カテゴリの表示・非表示について
とりあえず$arrRet[$key]['view_flag']あたりを確認してみたら、値の動きは掴めるんじゃないですか?


print_r($arrRet[$key]['view_flag']);//値の確認

if($array['category_id'] == $val) {
$arrRet[$key]['display'] = $arrRet[$key]['view_flag'];
shop_bri
投稿日時: 2010/7/24 7:07
対応状況: −−−
一人前
登録日: 2010/6/1
居住地: 愛媛県松山
投稿: 91
Re: 商品カテゴリの表示・非表示について
ecbg様 ありがとうございます。

print_rという関数で変数が呼び出せること初めて知り勉強になりました。
引用:

print_r($arrRet[$key]['view_flag']);//値の確認

if($array['category_id'] == $val) {
$arrRet[$key]['display'] = $arrRet[$key]['view_flag'];

としてみましたら、
11111111.......0000
という風に出ました。
ですが、view_flag 0の値が非表示にならないのは
どこがいけないのか、この後どうすればいいのかわかりません。

なにか、ヒントでもあれば教えていただけないでしょうか。
ecbg
投稿日時: 2010/7/24 23:38
対応状況: −−−
仙人
登録日: 2009/2/25
居住地: 東京
投稿: 387
Re: 商品カテゴリの表示・非表示について
まったく試したわけではないので憶測ですが、
$arrRet[$key]['view_flag'];
には0か1の一桁が入るべきところに、
複数の数列が入っているのが問題かもです。
shop_bri
投稿日時: 2010/7/26 8:31
対応状況: −−−
一人前
登録日: 2010/6/1
居住地: 愛媛県松山
投稿: 91
Re: 商品カテゴリの表示・非表示について
ありがとうございます。

DBの view_flag には1か0しか入れていないのですが
>複数の数列が入っているのが問題かもです。
というのは、別のところのことでしょうか?

「規定値は1とし、表示させたくないカテゴリのview_flagは0にします。」

とあったのですが、表示させたいview_flag の値を1とし、表示させたくない値を0にするということでいいのですよね。
初心者で初歩的なことですみません
ecbg
投稿日時: 2010/7/26 13:44
対応状況: −−−
仙人
登録日: 2009/2/25
居住地: 東京
投稿: 387
Re: 商品カテゴリの表示・非表示について
少し元ソースをみたところ、以下がforeachの中になっているので、繰り返されて1とか0の数列が出てくるんじゃないかと思います。

print_r($arrRet[$key]['view_flag']);//値の確認

↓下みたいにしてみてください。

print '「カテゴリID」:';
print_r($key);
print 'のとき';
print '「表示フラグ」:';
print_r($arrRet[$key]['view_flag']);
print '//';

そして、以下のような感じになれば、$arrRet[$key]['view_flag']は正常にDBから正常に取り出せてますね。

↓表示例
「カテゴリID」:1のとき「表示フラグ」:1//「カテゴリID」:2のとき「表示フラグ」:1
・・・

なので、あとは表示するしないの制御部分に問題があるのかと絞ることはできますね。
shop_bri
投稿日時: 2010/7/27 17:11
対応状況: −−−
一人前
登録日: 2010/6/1
居住地: 愛媛県松山
投稿: 91
Re: 商品カテゴリの表示・非表示について
ecbg様
何度もありがとうございます。 


引用:


↓下みたいにしてみてください。

print '「カテゴリID」:';
print_r($key);
print 'のとき';
print '「表示フラグ」:';
print_r($arrRet[$key]['view_flag']);
print '//';

そして、以下のような感じになれば、$arrRet[$key]['view_flag']は正常にDBから正常に取り出せてますね。

↓表示例
「カテゴリID」:1のとき「表示フラグ」:1//「カテゴリID」:2のとき「表示フラグ」:1
・・・

なので、あとは表示するしないの制御部分に問題があるのかと絞ることはできますね。



「カテゴリID」:0のとき「表示フラグ」:1//「カテゴリID」:1のとき「表示フラグ」:1//「カテゴリID」:2のとき「表示フラグ」:1//・・・
という感じででています。で「制御部分に問題がある」とは
LC_Page_FrontParts_Block_Category_EX.php
のことですよね。以下のようになっているのですが、
どこに問題があるのかが解りません。
申し訳ありません。良かったら見ていただけますか?


// カテゴリツリーの取得
function lfGetCatTree($arrParent_category_id, $count_check = false) {
$objQuery = new SC_Query();
$objDb = new SC_Helper_DB_Ex();
$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);

foreach ($arrParent_category_id as $category_id) {
$arrParentID = $objDb->sfGetParents($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $category_id);
$arrBrothersID = SC_Utils_Ex::sfGetBrothersArray($arrRet, 'parent_category_id', 'category_id', $arrParentID);
$arrChildrenID = SC_Utils_Ex::sfGetUnderChildrenArray($arrRet, 'parent_category_id', 'category_id', $category_id);

$this->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'] = $arrRet[$key]['view_flag'];
break;
}
}
}
}

$this->arrTree = $arrRet;
}


宜しくご教授お願いいたします。m(__)m
ecbg
投稿日時: 2010/7/28 13:28
対応状況: −−−
仙人
登録日: 2009/2/25
居住地: 東京
投稿: 387
Re: 商品カテゴリの表示・非表示について
制御はテンプレートでもおこなっているので、以下のファイル内で
$arrTree[cnt].displayがちゃんと効いているかを確認する必要があります。

html/user_data/packages/default/bloc/category.tpl

ここの以下の部分で$arrTree[cnt].displayが1のときは表示するという制御を行っているみたいです。

<!--{if $arrTree[cnt].display == 1}-->
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,287名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.