バージョン選択

フォーラム

メニュー

オンライン状況

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

PR

デザインテンプレート EC-CUBE3.0版が登場!
広告掲載について

サイト内検索

質問 > 管理機能 > カテゴリの一覧、レイアウト管理でのブロック追加と、直接includeの違い

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
miyamoto
投稿日時: 2017/2/4 8:01
対応状況: −−−
新米
登録日: 2017/2/4
居住地:
投稿: 9
カテゴリの一覧、レイアウト管理でのブロック追加と、直接includeの違い
お世話になります。

「EC-CUBE3でブロックを追加する方法」
http://spot-web.jp/blog/2735/

上記ページを参考に、カテゴリブロック(2)を作成いたしました。
しかし、そのブロックは、ページ管理 > レイアウト編集(管理)にて
挿入すると正常に表示されるのですが、ページ編集のblock mainの中で、

{% block main %}
  {{ include('Block/main_menu.twig') }}
{% endblock %}

と、直接 include すると、何も表示されなくなります。

レイアウトの編集でブロックをドラッグドロップでmain block以外の場所に置いた場合は期待通りの結果なのですが、どうしてもmain blockの中に設置したいので直接 main blockからインクルードする方法を選びました。

ご存じの方がおりましたら、ご教授のほどお願いいたします。
umebius
投稿日時: 2017/2/4 9:40
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: Tokyo
投稿: 712
Re: カテゴリの一覧、レイアウト管理でのブロック追加と、直接includeの違い
Block/main_menu.twigの中身はどうなっているのでしょうか?
Categoryブロックのコピペですか?

それだと{{ include('Block/main_menu.twig') }}ではCategoriesという変数が渡っていないので何も表示されません。

下記のように書けば良いですね。あまりブロック化する意味はないですが。。
{{ include('Block/main_menu.twig', { Categories : app['eccube.repository.category'].findBy( { Parent : null} , { rank : 'DESC' })}) }}



あるいは、includeせず、main内の表示したい部分に下記を直接書いても良いですね。ブロック登録自体が不要になります。

{% macro tree(Category) %}
    <li>
        <a href="{{ url('product_list') }}?category_id={{ Category.id }}">
            {{ Category.name }}
        </a>
        {% if Category.children|length > 0 %}
            <ul>
            {% for ChildCategory in Category.children %}
                    {{ _self.tree(ChildCategory) }}
            {% endfor %}
            </ul>
        {% endif %}
    </li>
{% endmacro %}

<nav id="category" class="drawer_block pc">
    <ul class="category-nav">
    {% set Categories = app['eccube.repository.category'].findBy( { Parent : null} , { rank : 'DESC' }) %}
    {% for Category in Categories %}
        {{ _self.tree(Category) }}
    {% endfor %}
    </ul> <!-- category-nav -->
</nav>


----------------
//////////////////////////////
(株)U-Mebius EC-CUBE3 カスタマイズ・高速化 ・バグ修正
EC-CUBE関連技術者の採用もお問い合わせください。


miyamoto
投稿日時: 2017/2/4 13:15
対応状況: −−−
新米
登録日: 2017/2/4
居住地:
投稿: 9
Re: カテゴリの一覧、レイアウト管理でのブロック追加と、直接includeの違い
umebiusさん、返信ありがとうございます。
main_menu.twigの中は、Categoryブロックをもとに、
コントローラー名とreturnするtwigファイル名を変更しただけで、
変数名などはいじっていません。

{{ include('Block/main_menu.twig', { Categories : app['eccube.repository.category'].findBy( { Parent : null} , { rank : 'DESC' })}) }}


どちらの方法でも無事表示できました。新規で作るページにカテゴリー商品情報を表示することが最終目的で、この方法からできそうな気がして取り組んでおります。ありがとうございました。

umebius
投稿日時: 2017/2/4 22:28
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: Tokyo
投稿: 712
Re: カテゴリの一覧、レイアウト管理でのブロック追加と、直接includeの違い
どこからincludeされるのか分からなかったので、説明の簡略化のため
app['eccube.repository.category'].findBy( { Parent : null} , { rank : 'DESC' }) と書きましたが、本来はこの部分はコントローラから渡してやり、twigはシンプルにするのが通常の書き方です。

{% include "Block/main_menu.twig" with { Categories : Categories } %}


----------------
//////////////////////////////
(株)U-Mebius EC-CUBE3 カスタマイズ・高速化 ・バグ修正
EC-CUBE関連技術者の採用もお問い合わせください。


スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

 



ログイン


EC-CUBEペイメント

クレジットカード情報の非保持化対応

統計情報

総メンバー数は19,752名です
総投稿数は82,452件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1632
4
yuh
1388
5
red
1064
6
fukap
907
7
shutta
827
8 ramrun 789
9
tsuji
784
10
umebius
712
11
tao_s
651
12 sumida 638
13
homan
633
14
468
630
15 karin 609
16 DELIGHT 571
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

EC-CUBEガイドブック
Copyright© LOCKON CO.,LTD. All Rights Reserved.