CS-Cart は、モジュラーアーキテクチャの哲学に従っています。
モジュラーアーキテクチャとは、構成要素がモジュール化されており、それらを結合することでシステムを設計・開発・製造できるように形作られたアーキテクチャのことです。
CS-Cartには、基本的な機能を担当するコア部分と、それを拡張する多数のアドオンがあります。
コアコンポーネントは次のとおりです。
- コーディング規約
- フック
- HTML、CSS、JavaScript、Smarty
- jQuery
- PHP
- コンテキストメニュー
- コントローラー
- プリコントローラーとポストコントローラー
- データベースとの連携
- 追加データベースの接続
- プレースホルダーを使用したデータベースクエリの作成
- データベースの構造と命名
- メールテンプレートとドキュメントエディタ
- メール通知
- ドキュメント
- スニペット
- フロントエンド
- ブロック
- AJAXリクエストの使用
- 特殊クラス
- マイクロフォーマット(Microformats)
- 通知
- 設定
- コア機能
- イベント通知
- 言語変数
- 複数のストアフロント
- スキーム
- アップグレードセンター
コア関数、コントローラー、テンプレート、スキームを直接編集することは推奨されません。アドオンを使用して、ソフトウェアのデフォルト動作を拡張してください。
CS-Cartは、MVC(Model-View-Controller)パターンに従っています。
MVC:モデル
データモデルは、直接データベースに保存されます。データベースエンジンはMySQLを使用しているため、プログラムのコンポーネントは、プレースホルダーを使用し、MySQL SQLクエリ言語を使用してモデルからデータを取得します。
例
$data = array (
'payment_id' => 5
);
$order_id = 3;
db_query('UPDATE ?:orders SET ?u WHERE order_id = ?i', $data, $order_id);
MVC:表示
CS-Cartは、テンプレートエンジンの Smarty と JavaScript を使用してデータを表示します。
JavaScript が埋め込まれた Smarty テンプレートの例
{** block-description:my_twitter_addon **}
<script src="http://widgets.twimg.com/j/2/widget.js"></script>
<script>
new TWTR.Widget({ldelim}
version: 2,
type: 'profile',
rpp: {$addons.my_twitter_addon.number_of_tweets},
interval: 6000,
width: 'auto',
height: 300,
theme: {ldelim}
shell: {ldelim}
background: '#FFFFFF',
color: '#373737'
{rdelim},
tweets: {ldelim}
background: '#D9EFF3',
color: '#373737',
links: '#005865'
{rdelim}
{rdelim},
features: {ldelim}
scrollbar: true,
loop: true,
live: true,
hashtags: true,
timestamp: true,
avatars: true,
behavior: 'default'
{rdelim}
{rdelim}).render().setUser('{$addons.my_twitter_addon.username}').start();
</script>
MVC:コントローラー
コントローラはPHPで書かれています。
コアコントローラは、 controllers ディレクトリにあります。
アドオンは独自のコントローラを定義して、各アドオンディレクトリに配置することができます。