[EC-CUBE 4]コントローラを利用するページを追加してみる

EC-CUBE4でページを追加するには、
「管理ページ」から、「コンテンツ管理」→「ページ管理」より、「新規作成」から行えるが、
ここからだと、(多分)コントローラで何か機能を追加するようなページは作成できなさそう(?)

今回は、こちらの機能を利用せずに、カスタマイズしてコントローラを利用するページを追加してみる。

作成ページは
http://〇〇.□ □/sample
とし、コンテンツ管理からもアクセスできるようにしたい!

コントローラを追加する

「/app/config/Customize/Controller」フォルダ内に「SamplePageController.php」を作成。

<?php

namespace Customize\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Response;

class SamplePageController
{
    /**
     * @Method("GET")
     * @Route("/sample", name="sample")
     * @Template("Sample/index.twig")
     */
    public function testMethod()
    {
        // とりあえずnameにEC-CUBEという文字列を入れておく
        return ['name' => 'EC-CUBE'];
    }
}

テンプレートを作成する

「/app/template/default/」に「Sample」フォルダを作成して、その中に「index.twig」ファイルを追加する。

{% extends 'default_frame.twig' %}

{% block main %}

<h3>SamplePage!!</h3>

<div>{{name}}</div>

{% endblock %}

dtb_pageにページを登録する

コンテンツ管理からアクセスできるようにデータを登録する。

INSERT INTO `dtb_page` (`master_page_id`, `page_name`, `url`, `file_name`, `edit_type`, `author`, `description`, `keyword`, `create_date`, `update_date`, `meta_robots`, `meta_tags`, `discriminator_type`) VALUES
(
    NULL,
    'サンプル', /* ページ名 */
    'sample', /* url */
    'Sample/index', /* テンプレートファイル */
    2,
    NULL,
    NULL,
    NULL,
    NOW(),
    NOW(),
    NULL,
    NULL,
    'page'
);

(詳細は後日追記する、、、と思います)

キャッシュをクリア

今の状態だと、キャッシュの関係でなのか、アクセスができない。

「/var/cache/prod」フォルダを空っぽにして、再度キャッシュを作成するようにすれば、アクセスできるようになります。

コンテンツ管理ページで設定を行う

最後に、「管理画面」→「コンテンツ管理」→「ページ管理」にアクセスして、
ページの設定を行う。

最後に

こんなことあまりしない気がしますが、何かの参考になればと記事を残します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*