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提供
このページ内
  • 概要
  • テーマの複製
  • テーマのインストール
  • テーマファイルのアップグレード
  • アドオンファイルのインストール
  • レスポンシブテーマからTPLフックを使用する
  1. テーマ開発

親テーマ

HINT

この機能は、CS-Cart4.4.1以降で使用できます。

概要

manifest.jsonファイルでparent_themeにテーマYが指定されている場合、テーマXは依存テーマ(子テーマとも呼ばれます)であり、テーマYは親テーマです。

子テーマには、親テーマのファイルとは異なるファイルのみが含まれます。 子テーマは、必要に応じて親テーマのコンテンツ(テンプレート、ロゴなど)を使用します。

  • 親テーマおよび子テーマのcss、media、およびtemplatesフォルダーは、実行時にマージされます。

  • 子テーマにファイルがない場合、代わりに親テーマの対応するファイルが使用されます。

  • 子テーマに、親テーマにないファイルがある場合(商品および商品リストテンプレート、ブロックのラッパー、静的テンプレートなど)、それらは親テーマのファイルとともにリストされます。

  • ファイルが子テーマと親テーマの両方に存在する場合、子テーマのファイルが優先されます。

  • テーマのレイアウトおよびスタイルフォルダーはマージされません。

  • 子テーマに独自のレイアウトがある場合は、それらのみが使用されます。それ以外の場合は、親テーマのレイアウトが使用されます。

  • 子テーマは常に独自のスタイルを使用します。

  • $images_dir変数を使用して、親テーマから画像をロードできます。

  • テーマに親がある場合、$images_dir は、Smartyテンプレートでの使用は、親テーマのmedia/imagesディレクトリを指します。

  • テーマに親がない場合、テーマは$images_dirの独自のmedia/imagesディレクトリを指します。

HINT

$self_images_dir変数を使用して、テーマの独自のmedia/imagesディレクトリを指すことができます。

テーマの複製

  • 元のテーマに親がない場合、そのファイルは複製されたテーマのディレクトリにコピーされません。

  • 複製されたテーマには、manifest.jsonファイルと、テーマロゴ付きの_/media/images/_ディレクトリのみが含まれます。

  • 元のテーマに親がある場合、元のテーマのコンテンツ全体が複製されたテーマのディレクトリにコピーされます。

テーマのインストール

親テーマのファイルは、子テーマのインストール中に子テーマのファイルとマージされません。 子テーマのファイルのみがvar/themes_repositoryからdesign/themesにコピーされます。

テーマファイルのアップグレード

アップグレードセンターは、カスタムテーマのファイルをアップグレードしません。ショップのアップグレード時には、レスポンシブテーマと基本テーマのみが影響を受けます。

アドオンファイルのインストール

アドオンのテーマ関連ファイル(スタイル、テンプレートなど)は、作成されたテーマのみにインストールされ、子テーマにはインストールされません。

例えば、var/themes_repository/responsive/templates/addons/[addon名]のみにコピーされます。design/themes/responsive/templates/addons/[アドオン名]

基本テーマにのみテンプレートファイルを提供するアドオンは、基本テーマとそれに依存する子テーマでのみ使用できます。必要なテンプレートが現在のテーマにない場合、CS-CartはBasicテーマのテンプレートにフォールバックしません。

レスポンシブテーマからTPLフックを使用する

レスポンシブテーマの親ではない場合でも、すべてのテーマでレスポンシブテーマのテンプレートフックのハンドラーを使用できます。このように、レスポンシブテーマ専用のテンプレートを提供するアドオンは、他のテーマとある程度連携できます。

次のファイルとディレクトリの構造があると仮定します。

design
└── themes
    ├── child
    │   └── templates
    │       └── addons
    │           └── styles_fixer
    │               └── hooks
    │                   └── index
    │                       └── styles.post.tpl
    ├── parent
    │   └── templates
    │       └── addons
    │           └── styles_fixer
    │               └── hooks
    │                   └── index
    │                       └── styles.post.tpl
    └── responsive
        └── templates
            └── addons
                └── styles_fixer
                    └── hooks
                        └── index
                            └── styles.post.tpl

アクティブなテーマはchildであり、親テーマに依存します。この場合、CS-Cartはindex:styles、テーマのハンドラーを次の順序で検索します:子→親→レスポンシブ。 最初に見つかったハンドラーが使用されます。

HINT

レスポンシブテーマがショップにインストールされていない場合、TPLフックハンドラーの検索はレスポンシブテーマで実行されません。

<画像>

前へメディアファイル次へスタイルとビジュアルエディター

最終更新 7 か月前