Memo

メモ > 技術 > CMS: ECCube > カスタマイズ: ブロックの追加

■カスタマイズ: ブロックの追加
静的なブロックの追加は、管理画面からの操作で行える ただし、各環境に反映するためにはマイグレーションが必要 ブロックの利用 - < for EC-CUBE 4.0 Developers /> https://doc4.ec-cube.net/design_block EC-CUBE4で新しくブロックを追加する方法 | ホムペディア https://homupedia.com/eccube4-create-blocks.html 【EC-CUBE4】新着商品ブロックの商品一覧を動的に取得する方法 - あずみ.net https://a-zumi.net/eccube4-dynamic-new-item-block/ 動的なブロックの追加は、専用にExtensionを作成する流れになるみたい? 要検証 ■ブロックの追加例 以下は実際の案件でブロックを追加したときのコード html\app\template\default\Block\left_column.twig
{# トップページや下層ページの左カラムに表示するコンテンツ #} <div class="column_side"> <dl class="column_side_cate"> <dt>商品カテゴリ</dt> {% set Categories = repository('Eccube\\Entity\\Category').getList() %} {% set RecommendCategories = (eccube_recommend_category_id|split(',')) %} {% for Category in Categories %} <dd><a href="{{ url('product_list') }}?category_id={{ Category.id }}"><img src="{{ asset('assets/img/common/category/' ~ Category.id ~'.jpg', 'user_data') }}" alt="">{{ Category.name }}{% if Category.id in RecommendCategories %}<em>オススメ</em>{% endif %}</a></dd> {% endfor %} </dl> <!-- <ul class="column_side_bnr"> <li><a href="{{ url('product_list') }}?category_id=1"><img src="{{ asset('assets/img/common/banner/1.png', 'user_data') }}" alt=""></a></li> <li><a href="{{ url('product_list') }}?category_id=2"><img src="{{ asset('assets/img/common/banner/2.png', 'user_data') }}" alt=""></a></li> </ul> --> <!-- <ul class="column_side_nav"> <li><a href="#">よくあるご質問</a></li> <li><a href="#">各種ダウンロード</a></li> <li><a href="{{ url('help_tradelaw') }}">特定商取引法に基づく表記</a></li> <li><a href="{{ url('help_privacy') }}">個人情報保護方針</a></li> </ul> --> </div> <!-- /column_side -->
上記テンプレートは、各テンプレートから以下のように呼び出す想定
{{ include('Block/left_column.twig') }}
ただし、ただテンプレートを追加しただけだと管理画面の「コンテンツ管理 → ブロック管理」には表示されない(管理画面から編集できない) ここに表示させたい場合、以下のようにマイグレーションを作成する html\app\DoctrineMigrations\Version20210604041526.php
<?php declare(strict_types=1); namespace DoctrineMigrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; /** * Auto-generated Migration: Please modify to your needs! */ final class Version20210604041526 extends AbstractMigration { public function up(Schema $schema) : void { // this up() migration is auto-generated, please modify it to your needs // dtb_block にレコード追加 $this->addSql("INSERT INTO dtb_block (device_type_id,block_name, file_name, use_controller,deletable,create_date,update_date,discriminator_type) VALUES (10, '左カラム(カテゴリ、バナー)','left_column',0, 1, NOW(), NOW(), 'block');"); } public function down(Schema $schema) : void { // this down() migration is auto-generated, please modify it to your needs } }

Advertisement