ECCUBE2系で新しくページを追加する方法を書きたいと思います。
追加するファイル
・data/class/pages/news/LC_Page_News.php
・data/class_extends/page_extends/news/LC_Page_News_Index_Ex.php
・data/Smarty/templates/default/news/news.tpl
・html/news/index.php
dtb_page_layoutにレコードを追加
今回使用したSQLはこちら
INSERT INTO `dtb_pagelayout` (`device_type_id`, `page_id`, `page_name`, `url`, `filename`, `header_chk`, `footer_chk`, `edit_flg`, `author`, `description`, `keyword`, `update_url`, `create_date`, `update_date`, `meta_robots`) VALUES ('10', '29', '新着情報', 'news/index.php', 'news/news', '1', '1','2', NULL, NULL, NULL, NULL, CURRENT_TIME(), CURRENT_TIME(), NULL);
dtb_pagelayout | |
---|---|
device_type_id | 端末種別 設定する値はdata/mtb_constants_init.phpに記載してあります。 |
page_id | ユニークID |
page_name | ページの名前 |
url | URL |
filename | htmlファイルが置いてある場所 |
header_chk | ヘッダチェックフラグ |
footer_chk | ヘッダチェックフラグ |
edit_flg | 管理画面から変更ができるようにしたい場合は2を設定する |
ここまでの作業で画面が表示されるところまで出来ました!
ヘッダーとフッダーのみが表示されてるかと。
表示する処理を書く
処理を書くファイルはこちらです。
※何か表示させたいので、今回は新着情報を出してみます。
data/class/pages/news/LC_Page_News.php
action()にやりたいことを書く
class LC_Page_News extends LC_Page_Ex
{
/** @var 新着情報 */
public $arrNews;
/**
* Page を初期化する.
*
* @return void
*/
public function init()
{
parent::init();
$this->tpl_mainpage = 'news/index.tpl';
}
/**
* Page のプロセス.
*
* @return void
*/
public function process()
{
parent::process();
$this->action();
$this->sendResponse();
}
/**
* Page のアクション.
*
* @return void
*/
public function action()
{
$objNews = new SC_Helper_News();
//新着情報を取得
$this->arrNews = $objNews->getList();
}
}
表示するところはblocのnewsからコピペして少し編集
data/Smarty/templates/default/news/index.tpl
<div class="block_outer">
<h2><img src="<!--{$TPL_URLPATH}-->img/title/tit_bloc_news.png" alt="新着情報" /></h2>
<!--{section name=data loop=$arrNews}-->
<!--{assign var="date_array" value="-"|explode:$arrNews[data].cast_news_date}-->
<dl class="newslist">
<dt><!--{$date_array[0]}-->年<!--{$date_array[1]}-->月<!--{$date_array[2]}-->日</dt>
<dt>
<a
<!--{if $arrNews[data].news_url}--> href="<!--{$arrNews[data].news_url}-->" <!--{if $arrNews[data].link_method eq "2"}--> target="_blank"
<!--{/if}-->
<!--{/if}-->
>
<!--{$arrNews[data].news_title|h|nl2br}--></a>
</dt>
<dd class="mini"><!--{$arrNews[data].news_comment|h|nl2br}--></dd>
</dl>
<!--{/section}-->
</div>
では下記にアクセスしてみましょう。
http://localhost/news/
はい、表示されるようになりました!
結構簡単にできますね。
もし管理画面で表示のカスタマイズをしたい場合は、
デザイン管理>PC>ページ詳細設定
から追加したファイルを選択すれば編集できます。