親テーマ
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フックを使用する
レスポンシブテーマの親ではない場合でも、すべてのテーマでレスポンシブテーマのテンプレートフックのハンドラーを使用できます。このように、レスポンシブテーマ専用のテンプレートを提供するアドオンは、他のテーマとある程度連携できます。
次のファイルとディレクトリの構造があると仮定します。
アクティブなテーマはchildであり、親テーマに依存します。この場合、CS-Cartはindex:styles
、テーマのハンドラーを次の順序で検索します:子→親→レスポンシブ。
最初に見つかったハンドラーが使用されます。
HINT
レスポンシブテーマがショップにインストールされていない場合、TPLフックハンドラーの検索はレスポンシブテーマで実行されません。
<画像>
最終更新