本文へスキップ

親テーマ

更新日: Markdown で表示

概要

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

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

  • 親テーマおよび子テーマのcss、media、およびtemplatesフォルダーは、実行時にマージされます。
  • 子テーマにファイルがない場合、代わりに親テーマの対応するファイルが使用されます。
  • 子テーマに、親テーマにないファイルがある場合(商品および商品リストテンプレート、ブロックのラッパー、静的テンプレートなど)、それらは親テーマのファイルとともにリストされます。
  • ファイルが子テーマと親テーマの両方に存在する場合、子テーマのファイルが優先されます。
  • テーマのレイアウトおよびスタイルフォルダーはマージされません。
  • 子テーマに独自のレイアウトがある場合は、それらのみが使用されます。それ以外の場合は、親テーマのレイアウトが使用されます。
  • 子テーマは常に独自のスタイルを使用します。
  • $images_dir変数を使用して、親テーマから画像をロードできます。
  • テーマに親がある場合、$images_dir は、Smartyテンプレートでの使用は、親テーマのmedia/imagesディレクトリを指します。
  • テーマに親がない場合、テーマは$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、テーマのハンドラーを次の順序で検索します:子→親→レスポンシブ。
最初に見つかったハンドラーが使用されます。

<画像>

ナビゲーション

検索語を入力してください…

↑↓ 移動↵ 開くEsc 閉じる