CS-Cart アドオンの構成

まず、アドオンには決められた作法があります。

ディレクトリ構成、ファイル構成、それらの名称が下記のように定められています。

 

ディレクトリ構成

/addons/[アドオン名]
アドオンのPHPファイルを格納するディレクトリ

/var/skins_repository/base/customer/addons/[アドオン名]
ショップフロント側で使用するアドオン用スキンファイルを格納するディレクトリ

/var/skins_repository/base/admin/addons/[アドオン名]
管理者用パネル側で使用するアドオン用スキンファイルを格納するディレクトリ

/var/skins_repository/base/mail/addons/[アドオン名]
アドオン用Eメールテンプレートを格納するディレクトリ

※ /addons/[アドオン名] 以外のディレクトリはアドオンの構成上必要な場合のみ作成(下位階層も同様)

ファイル構成

/addons/[アドオン名]のディレクトリに配置するファイルは下記の通り。

addon.xml
アドオンの設定ファイル。アドオンのインストールやアンインストールに必要。

func.php
アドオンのコントローラー内で使用する関数を定義するファイル。

init.php
アドオンで使用するフックを登録するファイル。

config.php
アドオンで使用する定数や各種設定値を登録するファイル。

/controllers
アドオンで使用するコントローラーおよびCS-Cart標準コントローラーのプレコントローラーおよびポストコントローラーを格納するディレクトリ。

/schemas
管理者用パネル内のメニューや管理者に付与する権限など、既存のスキーマを拡張するファイルを格納するディレクトリ。

 

全てのアドオンは上記のような構成で成り立っています。

上記のディレクトリ構成を見ると分かりますが、/var/skins_repository/以下に置くディレクトリの下位階層について触れていません。(テンプレートでの表示側ですね)

これらは必要に応じてと書いていますが、おおざっぱに言うとCS-Cart本体のディレクトリ構成に準じた命名規則と配置で設置します。
admin側、customer側、mail以下ではその構成が異なりますが多くのアドオンは下記のようなディレクトリを持っています。
(一部CS-Cart本体に無いディレクトリ名を使っている物もあります。が理由が無い限りCS-Cart本体のディレクトリ構成に則った方が良いと思います。)

/var/skins_repository/base/admin/addons/[アドオン名]以下

  • common_templates
  • hooks
  • views

/var/skins_repository/base/customer/addons/[アドオン名]以下

  • blocks
  • hooks
  • views

/var/skins_repository/base/mail/addons/[アドオン名]以下

  • hooks

 

まずはアドオンがどういった構成で成り立っているのか上記を念頭においてください。

 

下記は実際のアドオンの構成例です。

CS-Cart アドオン開発リファレンス

これ需要あるかなー。

飯のタネなんでこういうことを明文化するのは賛否ありそうなんだけど「CS-Cart利用者」を増やす為には「採用サイトを増やす」ことと同じくらい、いや普及フェーズにおいてはそれ以上に「CS-Cartをプロモーション」する必要がある。

その為には「CS-Cartってなんぞや」ということを紹介していかなきゃいけない。

機能紹介はうちのサイトでもそのうち拡充するとして、今現在あんどぷらすにしか出来ないことをやるべきなんじゃないかと。

そのひとつが「アドオン」に関すること。

アドオンの受託開発は勿論業務として行っているんだけど、もっと多くの優秀な人たちにアドオン開発に参加してもらいたい。
世のPGとか俺より遥かに優秀な人たちばかりなので参入されるのは脅威でもあるんだけど。

そんなわけで「アドオンの作り方」的な記事を書いていこうと思う。
本当はCS-Cartそのものの動作について触れるべきなんだけどそこは最大限省略。

 

CS-Cartではアドオンと呼んでいるけど、ZenCartではモジュール、WordPressではプラグイン。色々呼び名はあるけどまぁ似たようなもの。

WordPressでは管理画面からプラグインを探してオンラインでインストールできちゃう。アップデートも管理画面からポチってやるだけで終わる。基本的にはどのプラグインも共通の作法に則って作られてるからできる芸当。
良い仕組みだよね。

ZenCartはFTPアップロードしてモジュールごとの仕様でインストール方法が異なる。ものによっては手動でSQLを走らせる必要がある。

CS-CartはアドオンのファイルをFTPでアップロードする必要はあるけど本体へのインストール、アンインストールは管理画面からポチっとすれば終わる。XOOPSみたいな感じ。

 

WordPress優位かな。現状は。
でもいずれCS-CartもWordPress的になると思うよ。いつになるか分かんないけどw

 

アドオンの構成

アドオンの仕組み(未