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では管理画面の開発が捗りそうですね!


関連するカスタマイズ

XServerのSSH接続でPHP5.4ではなくPHP7を指定してbin/console実行... EC-CUBE4はphp7.1以上が必須要件になっており、bin/consoleスクリプトを使う場合はコマンドラインでもPHP7が必要です。 エックスサーバーのようにSSHが接続できるレンタルサーバーでも最初はPHPのバージョンが5.4となっています。ですので、下記の手順に従って、実行できるPHP...
デバッグモードを有効化する方法 .envファイル... EC-CUBE4系をデバッグモードで実行する方法をご紹介します。 デバッグモードとは? EC-CUBE4では通常エラーが発生しても「システムエラーが発生しました。大変お手数ですが、サイト管理者までご連絡ください。」と表示されるだけで原因が全く分かりません。 エラーの原因がユーザーに...
4系で管理画面に新規メニュー項目を追加する方法... 今回は商品管理の一番下に新規メニュー項目を追加することを考えます。 まずメニューから開けるページが必要ですのでコントローラーを作成し、新しいページを作った後でそのページをメニューに追加してみましょう。今回はeccube_nav.yamlを編集するもっとも簡単な方法をご紹介します。 管...
4系で納品書のロゴをオリジナルに変える方法(位置サイズ調整)... EC-CUBE4系では納品書の発行機能が2系同様、本体に組み込まれました。 3系ではプラグイン提供でしたが、納品書機能はどのサイトも必要になるものだから...という判断です。 今回は納品書のロゴをオリジナルに差し替える方法をご紹介します。 ロゴ画像を差し替えるには? 納品書のロゴを差し替...