EC-CUBE4では、ページの作成が3系と比べて非常に簡単になりました。
今回は管理画面に新規ページを作成する方法をご紹介します。実際にhttp://管理画面/new_menuというURLでアクセスできるページを作っていきます。
コントローラークラスの作成
app/Customize/Controller/Admin/Product/NewController.php
上記の位置にコントローラーファイルを作成します。クラスファイルの内容は下の通りにしてください。
<?php /* * This file is part of EC-CUBE * * Copyright(c) LOCKON CO.,LTD. All Rights Reserved. * * http://www.lockon.co.jp/ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Customize\Controller\Admin\Product; use Eccube\Controller\AbstractController; use Eccube\Util\CacheUtil; use Knp\Component\Pager\Paginator; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; class NewController extends AbstractController { /** * @Route("/%eccube_admin_route%/new_menu", name="admin_new_menu") * @Template("@admin/Product/new_menu.twig") */ public function index(Request $request) { } }
indexというメソッドにRouteとTemplateというアノテーションが付いており、これだけで/new_menuというURLとProduct/new_menu.twigを使用するということが指定されています。
今回はメソッドの中身は空で大丈夫です。
余談ですが新規のコントローラーは基本的にapp/Customize/Controllerに設置すると良いです。
Twigテンプレートの作成
app/template/admin/Product/new_menu.twig
上記の位置に新規ページのテンプレートファイルを作成します。
内容は下の通りにしてください。
{% extends '@admin/default_frame.twig' %} {% set menus = ['product', 'product_new_menu'] %} {% block title %}タイトル{% endblock %} {% block sub_title %}サブタイトル{% endblock %} {% block main %} テストです。 {% endblock %}
動作検証
表示できました!
ここまでの2ステップでhttp://管理画面/new_menuというURLで新規ページにアクセスできます。
3系でURLを指定するために必要だったControllerProviderがなくなりコントローラーのアノテーションを使用するスタイルになっています。
EC-CUBE4では管理画面の開発が捗りそうですね!
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。