質問 > その他 > macroを使ってサイドメニューにカテゴリー一覧を表示したら、setで指定していた値が拾えなくなりました。 |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
min4test |
投稿日時: 2018/5/25 12:07
対応状況: −−−
|
新米 登録日: 2018/4/22 居住地: 投稿: 7 |
macroを使ってサイドメニューにカテゴリー一覧を表示したら、setで指定していた値が拾えなくなりました。 EC-CUBEのバージョンは3.0.15です。
ブロックで作成したサイドメニューにmacroをつかってカテゴリー一覧を追加したところ これまで動いていたsetの値が取得できていなく、メニューのカレントがつかなくなってしまいました。 無知で申し訳ないのですが、 macroを使った場合はset値を取得できないのでしょうか? 何か取得するための処理が必要になるのでしょうか? ご教授願います。 |
umebius |
投稿日時: 2018/5/25 12:56
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: macroを使ってサイドメニューにカテゴリー一覧を表示したら、setで指定していた値が拾えなくなりました。 作成されたブロックのコードを提示していただくことは可能でしょうか?
読んだだけでは今ひとつ分からなかったのでコードがわかると回答しやすいかなと思います。 |
min4test |
投稿日時: 2018/5/25 13:27
対応状況: −−−
|
新米 登録日: 2018/4/22 居住地: 投稿: 7 |
Re: macroを使ってサイドメニューにカテゴリー一覧を表示したら、setで指定していた値が拾えなくなりました。 失礼しました。
以下が該当のコードになります。 {% macro tree(Category) %} {% if Category.children|length > 0 %} <li class="accordion slide_menu"> {% else %} <li class="slide_menu"> {% endif %} <a href="{{ url('product_list') }}?category_id={{ Category.id }}" class="slide_menu_link"> {{ Category.name }} </a> {% if Category.children|length > 0 %} <ul class="cd"> {% for ChildCategory in Category.children %} {{ _self.tree(ChildCategory) }} {% endfor %} </ul> {% endif %} </li> {% endmacro %} <div class="menu"> <ul> <li> {% if menu_current == 'store' %} <a href="{{ url(app.config.user_data_route, {'route': 'store'}) }}" class="is_current">トップ</a> {% else %} <a href="{{ url(app.config.user_data_route, {'route': 'store'}) }}">トップ</a> {% endif %} </li> <li> {% if menu_current == 'cart' %} <a href="{{ url('cart') }}" class="is_current">カート</a> {% else %} <a href="{{ url('cart') }}">カート</a> {% endif %} </li> <li class="ico_mypage"> {% if menu_current == 'mypage' %} <a href="{{ url('mypage') }}" class="is_current">マイページ</a> {% else %} <a href="{{ url('mypage') }}">マイページ</a> {% endif %} </li> <li class="slide_menu_wrap"> <span id="tgrSlideMenu" class="menu_link ico_category">カテゴリー</span> <ul class="slide_menu"> {% for Category in Categories %} {{ _self.tree(Category) }} {% endfor %} </ul> </li> </ul> </div> |
umebius |
投稿日時: 2018/5/25 13:33
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: macroを使ってサイドメニューにカテゴリー一覧を表示したら、setで指定していた値が拾えなくなりました。 ありがとうございます。
質問なのですがmenu_currentという変数はコントローラから渡されてきているものでしょうか? また、setをどこで使用される想定なのか教えていただけますと幸いです。 |
min4test |
投稿日時: 2018/5/25 14:10
対応状況: −−−
|
新米 登録日: 2018/4/22 居住地: 投稿: 7 |
Re: macroを使ってサイドメニューにカテゴリー一覧を表示したら、setで指定していた値が拾えなくなりました。 menu_currentは管理画面のページ管理のtwigで以下のように指定しています。
コントローラーを通して渡す必要があるのでしょうか? {% set menu_current = 'store' %} setはただ単に現在表示中のメニューは色をCSSで変えるためだけのものです。 |
umebius |
投稿日時: 2018/5/25 14:49
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: macroを使ってサイドメニューにカテゴリー一覧を表示したら、setで指定していた値が拾えなくなりました。 そうですね、requestオブジェクトを使用するなど色々方法はあります。
ブロックのコントローラーから渡すのが無難かと思います。 後は色を変えるだけであれば、is_currentではなく個別のクラスを付けておいてbodyに付くクラス名(ページに寄って違う)で切り分けることもできそうに思います。 |
min4test |
投稿日時: 2018/5/25 15:06
対応状況: −−−
|
新米 登録日: 2018/4/22 居住地: 投稿: 7 |
Re: macroを使ってサイドメニューにカテゴリー一覧を表示したら、setで指定していた値が拾えなくなりました。 迅速にご対応いただきありがとうございました。
他のやり方で対応します。 ちなみにどうしてdtb_blockのlogic_flgは1にしてmacroを使ったら急にsetが拾えなくなるのか 検索しても見つからなくご教授いただきたいと思ったのですがご存知でしょうか? |
umebius |
投稿日時: 2018/5/25 15:16
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: macroを使ってサイドメニューにカテゴリー一覧を表示したら、setで指定していた値が拾えなくなりました。 logic_flg = 1だとサブリクエストとして別のURLを持たせて読み込みます。
ざっくりいうとiframeみたいな形です。 logic_flg = 0だと、親のtwigからブロックのtwigを単純に読み込んでいるだけです。 それが理由だと思います。
|
min4test |
投稿日時: 2018/5/25 16:35
対応状況: −−−
|
新米 登録日: 2018/4/22 居住地: 投稿: 7 |
Re: macroを使ってサイドメニューにカテゴリー一覧を表示したら、setで指定していた値が拾えなくなりました。 umebius様
迅速にご対応いただきありがとうございます! とても勉強になりました!! ご教授いただきありがとうございます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |