バージョン選択

フォーラム

メニュー

オンライン状況

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

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
投稿: 574
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 カスタマイズ・高速化 ・バグ修正
気軽にお問い合わせください。

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
投稿: 574
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ガイドブック

統計情報

総メンバー数は19,239名です
総投稿数は80,566件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1619
4
yuh
1317
5
red
1041
6
fukap
907
7
shutta
827
8 ramrun 789
9
tsuji
778
10
tao_s
646


ネットショップの壺

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