ECCUBE mtb_constants initパラメータ設定の項目を追加する方法
2014/06/26
ECCUBE システム設定 > パラメータ設定 の項目を追加する場合
更新対応をする必要があるファイル、テーブルは 3箇所
システム設定のパラメータ設定については、
/data/mtb_constants_init.php
/data/cache/mtb_constants.php
Databaseの mtb_constants
3か所で情報が管理されています。
管理画面の「システム設定」-「パラメータ設定」の画面に遷移した際に表示される情報は、DBの「mtb_constants」の項目と値です。
保存すると、もちろん DBの「mtb_constants」に値が保存されますが、加えて、「/data/cache/mtb_constants.php」にも情報が保存されます。
そして、実際の ECCUBEが動作する際に利用されているのは、「/data/cache/mtb_constants.php」のファイルです。
情報の管理更新にはデータベースを使っていますが、実際にサイトのページ表示などにはファイルに保存された情報を使っています。
これは、画面表示の度にデータベースにアクセスしていたのでは、データベースに負荷がかかりすぎて表示スピードが犠牲になるため、その対応策として実装されている仕組みです。
また、「/data/mtb_constants_init.php」は、これらの更新の作業において全く利用されていません。
ですが、このファイルは、データベースや「/data/cache/mtb_constants.php」のファイルが壊れた際にバックアップ用途として利用されるファイルになっていますので、定期的にメンテナンスをしておく必要があります。
「mtb_constants」に項目を追加する場合の具体的な手順
「mtb_constants」に項目を追加する場合の説明を行います。
値を修正するだけであれば、管理画面から値を修正すれば問題ありませんが、項目を増やしたい場合は、管理画面からの操作では対応できませんので、アナログ的な対応が必要になります。
例えば、
項目名「SAMPLE_ADDRESS_A」
値「市区町村名 (例:千代田区神田神保町)A」
の項目を、一番上の項目として設定する場合の対応手順を見ていきましょう。
まず、テーブル「mtb_constants」に値を追加します。
|
1 2 3 4 5 6 7 8 9 |
INSERT INTO `eccube_db`.`mtb_constants` ( `id` , `name` , `rank` , `remarks` ) VALUES ( 'SAMPLE_ADDRESS_A', '市区町村名 (例:千代田区神田神保町)A', '0', 'フロント表示関連' ); |
これで管理画面の「パラメータ設定」画面に、新規追加した項目と値が表示されるようになります。
「rank」の値は、表示の順番になっていますので、並べたい順番の番号を指定します。
すでにある数値を指定した場合は、すでに指定してある項目の次に編集されます。
この状態で、管理画面の情報を更新すると、「/data/cache/mtb_constants.php」ファイルが更新され、システム全体に反映されるようになります。
また、その更新した情報で問題がない場合は、「/data/cache/mtb_constants.php」の中身を「/data/mtb_constants_init.php」にコピペします。
その際、元の「/data/mtb_constants_init.php」はバックアップを取っておく方がいいでしょう。
これで、設定が終了します。
ちなみに、ECCUBEのファイル構造については、下記のサイトが参考になるのではないか、と思います。
http://www.eccube-school.jp/files.html
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
PHPのデバッグで使う print_r、var_dump、var_exportの動作の違い
PHPのデバッグ等で変数や配列の中身を確認するために使用する関数print_r、var_dump、var_exportの動作の違い、仕様の違いについて確認した。var_exportがオススメ。
-
-
PHPでスクレイピング。phpQueryとphp-simple-html-dom-parserの比較と設置方法
「PHP スクレイピング」で検索すると「phpQuery」ばかりヒットするが、10年以上も放置されている。なので今も開発が続いている「PHP Simple HTML DOM Parser」をオススメする。
-
-
include、requireのパス指定をdirname(__FILE__)、__DIR__と書く理由
include、requireのパスの指定を dirname(__FILE__)、__DIR__で記述する理由に付いて解説。相対パス、絶対パスを直書き、パスを書かない場合は何が問題かを説明。
-
-
ob_start、ob_get_contents関数でPHPの標準出力をバッファリング・変数に代入
標準出力をバッファリングし変数に代入することができるob_start()関数の解説。include()の処理をバッファリングすることで自由な場所に処理を記述することが可能。
-
-
PHPで月末から1ヶ月後「+1 month」を算出すると想定する日付にならない場合がある
PHPでは月末の1ヶ月後が想定した日付にならない場合がある。原因はバグではなくPHPの1ヶ月後の定義によるもの。なので必要とする日付を定義しそれに合わせてDateTime、modifyを使用して算出方法を解説している。
-
-
Smartyの修飾子regex_replaceで正規表現の後方参照・PHPではpreg_replace
ECCUBEで使われているSmartyで文字列を正規表現で置換し後方参照で値を利用する装飾子regex_replaceの解説です。細かな条件がありますので注意が必要です。
-
-
カオナビAPI Ver.2.0のtokenを取得する PHP+cURLのサンプルプログラム
PHPのcURLを使用してカオナビAPIのアクセスに必要なtoken、シートの情報を取得するサンプルプログラムを作成。cURLの処理は関数化しているため他のAPIでも流用できる。
-
-
サーバ移転、PHPバージョンアップでPHPのソースコードが表示される・ショートタグのPHPが動かない
PHPでショートタグを使うのは危険。サーバ移転やバージョンアップで動かなくなる!ソースが丸見え、設定情報流出のリスクが!php.iniのshort_open_tagの設定を再確認。
-
-
PHPで正規表現の検証には preg_match_allが便利
PHPで正規表現の検証には preg_match_allが便利です。その便利さの使い方の解説です。
-
-
PHPで特定の日間の日付を for、strtotimeで表示する
ある特定の間の日付の情報を for文、strtotimeを使って作成し、その解説をしています。
Comment
ありがとうございました!無事に解決いたしました!