FLATzブログ

[Flash/Flex]の記事一覧

[ZenCart]データベース探訪 zen_configuration

2006年08月01日(火)11:33|nasu|FLATzブログ, Flash/Flex, PHP, 技術情報このエントリをdel.icio.usに追加このエントリをはてなブックマークに追加

那須です


早いもので今年ももう8月に入りました。社会人としては数少ない長期休暇をとるチャンスですが、皆さんは予定などいかがでしょうか。僕自身はこの前テレビを見ていて、福島にある「アクアマリンふくしま」に行きたいと思い立ったものの、仕事上、休みのスケジュールが立っていません…東京から福島までは日帰りで行けないことはないけど、結構強行軍だし、悩ましいところです。


さて、今回はZenCartのデータベース(以下DB)についてみていこうと思います。ZenCartのDBはテーブル数がかなり多くなっています。日本語版ZenCartの最新版(8/1時点)であるzen-cart-v1.2.0-l10n-6で見てみると93テーブルあります。既に良質なDB設計書やER図があればいいのですが、過分にして見聞した事がありません(正確にはER図を見かけたことはあります。が、最近それがどこにいったのかわからなくなってしまいました)。そこで僕が仕事上、ZenCartのカスタマイズで機会の多いテーブルを中心に説明をしていきたいと思います。


まずZenCartのテーブル群ですが、数が多くここに載せる意味もあまりないので、テーブルを確認する手順だけで省略させて頂きます。まずMySQL上でしたら


show tables;

と打ってください。またWeb上でも



などから確認する事ができます。


※以前は
ココ
からZenCartのER図を見ることができたのですが、なくなっているみたいです。ER図のありかを知っている方は是非お教えください。


zen_configuration


概要


さて、今回は初回ということで、ZenCartが起動する際に一番初めに使われるテーブル:zen_configuration について見ていきたいと思います。zen_configurationは、その名の通り、ZenCartの設定がデータとして登録されています。例えば、ショップの名称や住所、メールアドレスから、1ページ辺りの商品の表示件数といった様々なものが登録されています。その数は400件以上にも及び、管理画面から変更できるようになっています。


テーブル構成


+---------------------------+--------------+
| Field | Type |
+---------------------------+--------------+
| configuration_id | int(11) |
| configuration_title | text |
| configuration_key | varchar(255) |
| configuration_value | text |
| configuration_description | text |
| configuration_group_id | int(11) |
| sort_order | int(5) |
| last_modified | datetime |
| date_added | datetime |
| use_function | text |
| set_function | text |
+---------------------------+--------------+


ZenCartのカスタマイズをする際に重要になるのは、configuration_keyとconfiguration_value です。これらは、includes/application_top.php の95行目辺りで使われる事になります。


  $configuration = $db->Execute(
'select
configuration_key as cfgkey,
configuration_value as cfgvalue
from ' . TABLE_CONFIGURATION,
'',true, 150);

while (!$configuration->EOF) {
define(
$configuration->fields['cfgkey'],
$configuration->fields['cfgvalue']
);
}

※インデントや折り返しなどを適宜変更しています


ZenCartをカスタマイズしていると、数多くの定数と格闘する事になりますが、その一部はこのようにDBから定義が行われているのです。定数の定義文をgrepなどで探しても見つからない場合は、zen_configuration.configuration_key に定数名がないかを確認してみてください。

続きを読む


Page 4 of 4«1234

このページの先頭へ