動的ブロックの作成方法EC-CUBE3FrontControllerProviderブロック動的ブロックとは何か?動的ブロックとはユーザー、時間帯、表示するページなどによって内容を変えることができるブロックです。EC-CUBE3の場合は独立したURIを持った1つの「ページ」だと考えれば本質に近いと思います。Twigには別のページをテンプレート内に読み込む仕組みがあり、それを応用したものが動的ブロックです。EC-CUBE3の内部では次のようなコードでブロックの表示が実現されています。http://symfony.com/doc/current/templating/embedding_controllers.htmlそれでは実際に動的ブロックの作成手順を「新着商品ブロック」を作成しながら見ていくことにします。手順1.コントローラを作成ファイル:(新規作成)src/Eccube/Controller/Block/NewItemController新規登録した商品を5つ抽出しテンプレートファイルに渡すロジックをコントローラに書いてやります。$Products,));}}手順2.テンプレートを作成app/template/default/Block/new_item.twigコントローラから呼び出されるテンプレートファイルです。今回は単に商品名を列挙するコードを書いておきます。%}</ul>手順3.DBへブロックの情報を登録SQL実行してブロックの情報をDBに登録します。phpMyAdminなどで行挿入してもかまいません。ここでlogic_flgを1にすることでコントローラが呼ばれるようになります。管理画面から作成したブロックはlogic_flgが0になっていますので、もしコントローラで動作させたければ、このlogic_flgを1に変更すれば良いということになります。NOW(),1,0);手順4.コントローラとDBの紐付けFrontControllerProvider.php最後に正しいコントローラが呼ばれるようにコントローラとブロックをひも付けてやります。この設定がないと動作しません。管理画面の「コンテンツ管理」「ページ管理」と進み、右端のメニューボタンから好きなページのレイアウト編集を選択してください。ブロックの配置画面になりますので、好きな場所に今作成した「新商品」というブロックを配置して完了です。いかがでしょうか、以上で動的ブロックが動作するようになったと思います。手順2と3は管理画面からブロック作成を行うことで省力化することが可能です。その場合logic_flgを1に変更することを忘れないようにしてください。WordPressでサイトのベースを作り、カートとしてEC-CUBEを連携させたいという要望がよく寄せられます。ブロックは管理画面から設置できる便利な機能ですが、管理画面からは#headerや#main_bottomなどいくつか決められた場所にしかブロックを設置できません。エラーについて説明します。EC-CUBE3が採用しているSymfonyの標準ORM、Doctorineで設定できるフィールドタイプをまとめました。EC-CUBE3で開発するならこれはもう覚えちゃっても良いかもしれませんね。WordPressEC-CUBELaravel5。