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

コメントを残す