{"_id":"5544d76bd8833c0d00582826","version":{"_id":"5544d76ad8833c0d00582801","__v":1,"project":"55227389b4a0de0d00de7e28","forked_from":"55227389b4a0de0d00de7e2b","createdAt":"2015-05-02T13:55:54.059Z","releaseDate":"2015-05-02T13:55:54.059Z","categories":["5544d76ad8833c0d00582802","5544d76ad8833c0d00582803","5544d76ad8833c0d00582804","5544d76ad8833c0d00582805","5544d76ad8833c0d00582806"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"4.0.0","version":"4.0"},"__v":1,"user":"552342f6e20da719000e7925","category":{"_id":"5544d76ad8833c0d00582804","__v":1,"pages":["5544d76bd8833c0d00582824","5544d76bd8833c0d00582825","5544d76bd8833c0d00582826","5544d76bd8833c0d00582827","5544d76bd8833c0d00582828","5544d76bd8833c0d00582829","5544d76bd8833c0d0058282a","5544d76bd8833c0d0058282b","5544d76bd8833c0d0058282c","5544d76bd8833c0d0058282d","5544d76bd8833c0d0058282e","5544d76bd8833c0d0058282f","5544d76bd8833c0d00582830","5544d76bd8833c0d00582831"],"project":"55227389b4a0de0d00de7e28","version":"5544d76ad8833c0d00582801","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-04-09T09:27:58.538Z","from_sync":false,"order":2,"slug":"_-1","title":"アドオン開発"},"project":"55227389b4a0de0d00de7e28","updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-04-10T06:46:35.944Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":false,"order":2,"body":"テンプレートフックは`hook`タグで囲まれた以下のような部分です:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{hook name=\\\"section:hook_name\\\"}\\n...\\n{/hook}\",\n      \"language\": \"php\"\n    }\n  ]\n}\n[/block]\n開発者は、この部分にアドオンを使ってコードや処理を補足したり、再定義することができます。\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"テープレート内のテンプレート・フック\"\n}\n[/block]\n以下の例は*design/backend/templates/views/order_management/components/totals.tpl*ファイルのテンプレートフックの例です。\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{hook name=\\\"order_management:product_info\\\"}\\n       {if $cp.product_code}\\n              <p>{$lang.sku}:&nbsp;{$cp.product_code}</p>\\n       {/if}\\n{/hook}\",\n      \"language\": \"php\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"いつテンプレート・フックが使用されるか\"\n}\n[/block]\nテンプレート・フックは既存のテンプレートに追加のデータを表示するために使用されます。例えば、アドオンを使ってストアの管理パネルに表示したい特別なブロックを作成したい場合、このような独自のブロックはテンプレート・フックを使用して追加することが出来ます。\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"テンプレート・フックの使用方法\"\n}\n[/block]\nPHPコード・フックと違って、テンプレートフックは別ファイルで宣言する必要はありません。(int.php等)\n\n.tplファイルを適切なディレクトリと適切なファイル名で配置するだけです。\n\n命名規則は次のようになります。\n\n- **管理パネル**: *design/backend/templates/addons/[addon id]/hooks/[template name]/[hook name].[pre|post|override].tpl*\n- **ショップフロント**: *design/themes/[theme name]/templates/addons/[addon id]/hooks/[template name]/[hook name].[pre|post|override].tpl*\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/oN3oQc9SnmdMWY0tEwVk_tplhook001.png\",\n        \"tplhook001.png\",\n        \"270\",\n        \"227\",\n        \"#056bdb\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"コア・テンプレートのオーバーライド方法\"\n}\n[/block]\nアドオンで標準のテンプレートを完全に上書きすることが可能です。  \n\nオーバーライド方法:\n\n- 管理パネルでは**design/backend/templates/addons/[addon id]**\n- ショップフロントの場合は**design/themes/[theme name]/templates/addons/[addon id]**内に、**overrides**ディレクトリを作成します。\n\n- **overrides**ディレクトリには、コアのテンプレート ディレクトリと同じ構造を作成します。\n\n例えば、  \n**design/backend/templates/addons/[addon id]/overrides/views/index/index.tpl**ファイルは、次のテンプレートを完全にオーバーライドします:  \n**design/backend/templates/views/index/index.tpl**","excerpt":"","slug":"tpl-hooks","type":"basic","title":"テンプレートフック"}

テンプレートフック


テンプレートフックは`hook`タグで囲まれた以下のような部分です: [block:code] { "codes": [ { "code": "{hook name=\"section:hook_name\"}\n...\n{/hook}", "language": "php" } ] } [/block] 開発者は、この部分にアドオンを使ってコードや処理を補足したり、再定義することができます。 [block:api-header] { "type": "basic", "title": "テープレート内のテンプレート・フック" } [/block] 以下の例は*design/backend/templates/views/order_management/components/totals.tpl*ファイルのテンプレートフックの例です。 [block:code] { "codes": [ { "code": "{hook name=\"order_management:product_info\"}\n {if $cp.product_code}\n <p>{$lang.sku}:&nbsp;{$cp.product_code}</p>\n {/if}\n{/hook}", "language": "php" } ] } [/block] [block:api-header] { "type": "basic", "title": "いつテンプレート・フックが使用されるか" } [/block] テンプレート・フックは既存のテンプレートに追加のデータを表示するために使用されます。例えば、アドオンを使ってストアの管理パネルに表示したい特別なブロックを作成したい場合、このような独自のブロックはテンプレート・フックを使用して追加することが出来ます。 [block:api-header] { "type": "basic", "title": "テンプレート・フックの使用方法" } [/block] PHPコード・フックと違って、テンプレートフックは別ファイルで宣言する必要はありません。(int.php等) .tplファイルを適切なディレクトリと適切なファイル名で配置するだけです。 命名規則は次のようになります。 - **管理パネル**: *design/backend/templates/addons/[addon id]/hooks/[template name]/[hook name].[pre|post|override].tpl* - **ショップフロント**: *design/themes/[theme name]/templates/addons/[addon id]/hooks/[template name]/[hook name].[pre|post|override].tpl* [block:image] { "images": [ { "image": [ "https://files.readme.io/oN3oQc9SnmdMWY0tEwVk_tplhook001.png", "tplhook001.png", "270", "227", "#056bdb", "" ] } ] } [/block] [block:api-header] { "type": "basic", "title": "コア・テンプレートのオーバーライド方法" } [/block] アドオンで標準のテンプレートを完全に上書きすることが可能です。 オーバーライド方法: - 管理パネルでは**design/backend/templates/addons/[addon id]** - ショップフロントの場合は**design/themes/[theme name]/templates/addons/[addon id]**内に、**overrides**ディレクトリを作成します。 - **overrides**ディレクトリには、コアのテンプレート ディレクトリと同じ構造を作成します。 例えば、 **design/backend/templates/addons/[addon id]/overrides/views/index/index.tpl**ファイルは、次のテンプレートを完全にオーバーライドします:   **design/backend/templates/views/index/index.tpl**