2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

EC-CUBEAdvent Calendar 2022

Day 7

ECCUBE2系でページを追加する

Last updated at Posted at 2022-12-06

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を設定する

ここまでの作業で画面が表示されるところまで出来ました!
ヘッダーとフッダーのみが表示されてるかと。

スクリーンショット 2022-12-02 12.00.12.png

表示する処理を書く

処理を書くファイルはこちらです。
※何か表示させたいので、今回は新着情報を出してみます。
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/

スクリーンショット 2022-12-05 5.43.57.png

はい、表示されるようになりました!
結構簡単にできますね。

もし管理画面で表示のカスタマイズをしたい場合は、
デザイン管理>PC>ページ詳細設定
から追加したファイルを選択すれば編集できます。
スクリーンショット 2022-12-05 5.55.25.png

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?