質問 > フロント機能 > 商品カテゴリの表示・非表示について |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
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という関数で変数が呼び出せること初めて知り勉強になりました。 引用:
としてみましたら、 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様
何度もありがとうございます。 引用:
「カテゴリ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}--> |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |