Labo

[EC-CUBE 2.12.2] システム設定のパラメーターを追加したい

2012年09月22日 / 投稿者名:fukap


カスタマイズしてると、「ページに何か決まった文字列を表示させたいけど、複数個所になるし、他人にテンプレートを触らせるのも怖いし。専用入力画面作るほどでもないけど、後々に自分以外の誰かが容易に変更できるようにしておきたい」といったケースが時々あります。例えば「会員価格を登録できるようにして欲しい」って言われたとして、「会員価格(税込):」という文字列は、商品一覧ページや商品詳細ページ・おすすめ商品ブロックなど、各所に埋め込まなければなりません。テンプレートに直書きでもいいんですが、管理画面から文字列を変更できた方がいい。というわけで、管理画面>システム設定>パラーメーター設定 に、項目を追加する方法をやってみます。

 

パラメーター設定の内容は、データベースの mtb_constants テーブルに格納されています。
構造はこんな感じ。

      Table "public.mtb_constants"
 Column  |   Type   |     Modifiers
---------+----------+--------------------
 id      | text     | not null
 name    | text     |
 rank    | smallint | not null default 0
 remarks | text     |
Indexes:
    "mtb_constants_pkey" PRIMARY KEY, btree (id)

id はパラメータのIDを、重複しない半角英数(英語は大文字)で決めます。
name はパラーメーターの実際の値です。
rank は並び順なので、適当な数値を入力。
remarks は補足説明文ですので、全角文字で説明文や語句を入れます。

 

なので、以下のようなSQLをphpMyAdmin 等のデータベース管理ソフトを使って流すといいです。

insert into mtb_constants values('CUSTOMER_PRICE_TITLE', '会員価格(税込):', 2000, '価格名称');

それから、管理画面>システム設定>パラメーター管理 を開き、ページの一番下あたりに新規項目が追加されているはずです。

 

 

ここで一度、管理画面>システム設定>パラメーター管理 で、「この内容で登録する」ボタンを押します。
これによって、mtb_constants の内容を元にキャッシュが更新されて、テンプレートで定義したパラメーターを使用できるようになります。

 

適当なテンプレートに以下のようなコードを書くと、値を出力することができます。

<!--{$smarty.const.CUSTOMER_PRICE_TITLE}-->

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

* Copy This Password *

* Type Or Paste Password Here *

*

コメント欄にコードを挿入したい場合は、[php][/php] を使ってください。