> For the complete documentation index, see [llms.txt](https://docs.cs-cart.jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cs-cart.jp/theme-development/parent-themes.md).

# 親テーマ

{% hint style="info" %}
HINT

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

## 概要

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

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

* 親テーマおよび子テーマのcss、media、およびtemplatesフォルダーは、実行時にマージされます。
* 子テーマにファイルがない場合、代わりに親テーマの対応するファイルが使用されます。
* 子テーマに、親テーマにないファイルがある場合（商品および商品リストテンプレート、ブロックのラッパー、静的テンプレートなど）、それらは親テーマのファイルとともにリストされます。
* ファイルが子テーマと親テーマの両方に存在する場合、子テーマのファイルが優先されます。
* テーマのレイアウトおよびスタイルフォルダーはマージされません。
* 子テーマに独自のレイアウトがある場合は、それらのみが使用されます。それ以外の場合は、親テーマのレイアウトが使用されます。
* 子テーマは常に独自のスタイルを使用します。
* `$images_dir`変数を使用して、親テーマから画像をロードできます。
* テーマに親がある場合、`$images_dir` は、Smartyテンプレートでの使用は、親テーマの`media/images`ディレクトリを指します。
* テーマに親がない場合、テーマは$images\_dirの独自の`media/images`ディレクトリを指します。

{% hint style="info" %}
HINT

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

## テーマの複製

* 元のテーマに親がない場合、そのファイルは複製されたテーマのディレクトリにコピーされません。
* 複製されたテーマには、`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 style="info" %}
HINT

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

＜画像＞


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cs-cart.jp/theme-development/parent-themes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
