CS-Cart.jp開発者ドキュメント
  • はじめに
  • Getting Started
    • CS-Cart開発者向け注意事項
    • CS-Cartの構成
    • デバッグ方法
  • コア
    • Hooks
    • コントローラー
      • Pre&Post コントローラー
    • データベース
      • データベースの構造と命名規則
      • データベース・プレイスホルダー
      • 他のデータベースへの接続
    • ショップフロント
      • ブロック
      • blockメインスキーマ—
      • Dynamic Objects
      • ajaxリクエストの使用方法
      • 特別なCSSセレクター
      • マイクロフォーマット Microformats
      • 通知システム
      • ツールチップ
    • 設定
    • コア関数
    • イベントの通知
    • 言語変数
    • スキーマー
  • アドオン開発
    • フック
      • PHPフック
      • テンプレートフック
    • アドオンチュートリアル
      • 「Hello World」チュートリアル
      • Advanced Add-on チュートリアル
      • 商品リスト、詳細ページのカスタムテンプレートを作成
      • 支払方法の開発
    • アドオンの管理プロセス
    • Add-on スキーマー
      • アドオンの互換性
      • 他のアドオンとの競合・依存設定
    • APIの拡張
    • スキーマーの拡張
    • アドオンのディレクトリ構造
    • アドオンの言語変数
    • .poファイルによる言語ファイルの作成
  • テーマ開発
    • テーマ開発の概要
    • テーマの複製
    • レイアウトの管理
    • トップパネルとヘッダー
    • テーマを使用したショップの設定の変更
    • CSS
    • テーマの言語変数
    • メディアファイル
    • 親テーマ
    • スタイルとビジュアルエディター
    • レイアウトエディター
    • テンプレート
  • デバッグ
    • デバッガー
    • ファイルエディター
GitBook提供
このページ内
  • Dynamicオブジェクトを使用する理由
  • Dynamicオブジェクトの仕組み
  1. コア
  2. ショップフロント

Dynamic Objects

詳細ページのブロックに対して異なるコンテンツとステータスを持つことができるオブジェクトは、ブロックマネージャーでDynamicオブジェクトとみなされます。 動的オブジェクトには、Products、Pages、Categories、Vendors、およびNewsの 5つがデフォルトのタイプとして定義されています。

HINT

Vendorsはマーケットプレイス版でのみ利用可能です

Dynamicオブジェクトを使用する理由

Products (商品)を例としてみましょう。他のDynamicオブジェクトも同じように機能します。

商品編集ページでブロックのコンテンツを変更すると、その商品のみでコンテンツが保存されます。ブロックのコンテンツを編集すると、コンテンツが変更された場所が下に表示されます。追加のチェックボックスも表示され、そのチェックボックスをオンにすると、変更したコンテンツをグローバルに適用できます。

商品の編集ページでブロックを有効または無効にすると、ブロックの状態はその商品に対してのみ保存されます。

ブロックマネージャーでdispatch=products.viewを使用してロケーションのブロックを編集すると、ステータスタブを使用して、特定の商品のブロックを有効または無効にできます(グローバルに無効または有効になっている場合であっても可能です。)

Dynamicオブジェクトの仕組み

dynamic_objects.phpでオブジェクトについて記述すると、Dynamicオブジェクトが自動的に作成されます。dynamic_objectsスキーマに新しいオブジェクトを追加できます。商品の説明文は次のようになります。

array(
    // 動的オブジェクトの名前
    'products' => array (
        // 動的オブジェクトの編集ページ。これは、管理パネルで[ブロック]タブが表示されるページです。
        'admin_dispatch' => 'products.update',
        // カスタマーゾーンのページのアドレスと、ダイナミックオブジェクトを操作できるブロックコントロールペイン
        'customer_dispatch' => 'products.view',
        // ブジェクトの識別子を定義する$_REQUEST配列のキー 
        'key' => 'product_id',
        // 管理画面で使用されるピッカーの設定
        'picker' => 'pickers/products/picker.tpl',
        'picker_params' => array (
            'type' => 'links',
        ),
    ),
)

ショップのユーザーがdispatch=products.viewでページをリクエストすると、CS-Cart はそのページが商品のDynamicオブジェクトに属していると判断し、スクリプトに渡されたパラメーターのproduct_idを探します。 product_idがある場合、ページを生成するすべてのデータは、ブロックAPI、もしくは指定されたタイプおよび識別子を介してリクエストされます。

パラメーターまたはブロックのタイプがdispatchによって判断できなかった場合、データはグローバルパラメーターを使用して、動的オブジェクトなしで生成されます。

前へblockメインスキーマ—次へajaxリクエストの使用方法

最終更新 7 か月前