ECCUBE3のデフォルトテンプレートではカテゴリナビゲーションが上部に設置されます。カテゴリがそれほど多くない場合は問題ないのですが、カテゴリが多い場合にはやはりサイドブロックにメインメニューがあるほうがスマートですよね。今回はカテゴリメニューブロックの内容をコピーして独自メニューブロックを作成する方法を紹介します。既存カテゴリメニューブロックの内容をコピーする管理画面の「コンテンツ管理」→「ブロック管理」→「カテゴリ」の編集をクリック。【ブロックデータ】の内容をテキストエディタなどにコピーしておきましょう。新規ブロックを追加する管理画面の「コンテンツ管理」→「ブロック管理」最下部の【新規入力】より新規ブロックを追加します。サンプルとして以下のように設定します。ブロック名:メインメニューファイル名:mainmenuデータベースのロジックフラッグを変更するブロックを新規追加しただけでは実際にはまだ表示はされません。表示させるためには追加したブロックのロジックフラッグをデータベースで直接編集する必要があります。データベース「dtb_block」より追加した「mainmenu」のロジックフラッグを「0」から「1」へ変更します。続いて追加した「メインメニューブロック」のコントローラーを登録します。/src/Eccube/ControllerProvider/FrontControllerProvider.phpFrontControllerProvider.phpに「//block」が定義されている箇所があるので以下の一文をブロック定義部の最下部に追加します。'\Eccube\Controller\Block\MainMenuController::index')->bind('block_mainmenu');上記はファイル名を「mainmenu」にした例です。変更した場合は修正してください。ECCUBE3構成ファイルよりコントローラーを作成コントローラーの登録ができたら続いてコントローラの作成を行います。今回は既存のカテゴリメニューをコピーして新しいメニューを作るので以下のファイルをそのままコピーして「MainMenuController.php」リネームします。/src/Eccube/Controller/Block/CategoryController.phpリネームしたファイルの内容をリネームしたものに変更。$Categories));}}実際にブロックを配置して確認してみる管理画面の「コンテンツ管理」→「ページ管理」→「TOPページ」のレイアウト編集をクリック。新しいブロックがうまく作成できていれば未使用ブロックにメインメニューというブロックができています。これを#side_leftへドラッグして配置してトップページを確認しましょう。トップページにサイドバーに表示されていれば成功です。Tukuruhito。