ブログ

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

2006年08月01日(火)11:33|那須

那須です

早いもので今年ももう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 に定数名がないかを確認してみてください。

この記事に関するお問い合わせはこちら

ページの先頭へ