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」フォルダを空っぽにして、再度キャッシュを作成するようにすれば、アクセスできるようになります。
コンテンツ管理ページで設定を行う
最後に、「管理画面」→「コンテンツ管理」→「ページ管理」にアクセスして、
ページの設定を行う。
最後に
こんなことあまりしない気がしますが、何かの参考になればと記事を残します。
コメントを残す