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-CUBE4系プラグイン