目次

この内容は、古い情報に基づく記事を含みます。現状の EC-CUBE (2.11系を含む) では、拡張を使用するのは一般的には不適切という結論に至っています。明確な理由や宗教上の理由がない限りは、「Pageクラス」を書き換える方が有益です。
EC-CUBE のカスタマイズを 100サイト以上、500点以上行なった時点での結論です。

【2024-01-09 追記】記載から、10年間以上経ちましたが、上の結論は正しかったと確信しています。

カスタマイズ(拡張編)

EC-CUBE の各ページ(画面)は「Pageクラス」と呼ばれるファイルに処理内容が記述される。 (/data/class/pages/ 配下)

カスタマイズする場合は、前述の「Pageクラス」は変更せずに、拡張用のクラスである「拡張Pageクラス」(/class_extends/page_extends 配下)に実装するのが理想的とされているというアイディアが過去にあった。

簡単な実例

サイトのトップ(Home)にランダムに挨拶を表示するという例を説明する。

/data/class_extends/page_extends/LC_Page_Index_Ex.php

      /**
       * Page のプロセス.
       *
       * @return void
       */
      function process() {
+         $arrMsg = array ('おはようございます。', 'こんにちは。', '良い天気ですね。');
+         // ランダムに選んだ挨拶をテンプレート変数「tpl_number」に割り当てる。
+         $this->tpl_message = $arrMsg[array_rand($arrMsg)];
          parent::process();
      }

/data/Smarty/templates/default/top.tpl
※ ファイルの場所は異なる場合がある。参考→ファイルの編集

  <div id="flasharea">
    <img src="<!--{$TPL_DIR}-->img/main/image.gif" alt="EC-CUBEイメージ" />
  </div>
+ 店長からの挨拶「<!--{$tpl_message|escape}-->」

これで、サイトのトップの挨拶文が毎回変わっているように見える(実に無意味な機能です 笑)。

問題点

現実的には拡張を使うことで面倒な状況に遭遇することがある。

参考URL

関連記事