本文へスキップ

管理画面とショップフロントのテンプレートの違い

アドオンのビューテンプレートで、管理画面とショップフロントの構造が異なる点と、管理画面の HTML の title を設定する言語変数。

更新日: Markdown で表示

アドオンでビューテンプレートを作るとき、管理画面(バックエンド)とショップフロント(顧客画面)でテンプレートの構造が異なります。

置き場所

種別 パス
管理画面 design/backend/templates/addons/<アドオン名>/views/<コントローラー>/<モード>.tpl
ショップフロント design/themes/<テーマ名>/templates/addons/<アドオン名>/views/<コントローラー>/<モード>.tpl

管理画面のテンプレート

common/mainbox.tpl をインクルードして、レイアウトを組み立てます。コンテンツやボタンは {capture} で取り込みます。

{capture name="mainbox"}
    {* コンテンツ *}
{/capture}

{include file="common/mainbox.tpl"
    title=__("page_title")
    content=$smarty.capture.mainbox
    buttons=$smarty.capture.buttons
}

ショップフロントのテンプレート

common/mainbox.tpl は使いません。ページ内の見出しを {capture name="mainbox_title"} で設定し、コンテンツは HTML で直接書きます。CSS クラスは ty- で始まるものを使います。

{capture name="mainbox_title"}{__("page_title")}{/capture}

<div class="my-content">
    {* コンテンツを直接書く *}
</div>

ショップフロントのテーマファイルは、var/themes_repository/ にも置く必要があります。詳しくは ショップフロントのテンプレートを themes_repository にも置く を参照してください。

管理画面の HTML の title を設定する

カスタムコントローラーを作ると、ブラウザのタブに表示されるタイトルが、次のようにアンダースコアで始まる名前になることがあります。

_product_requests

これは、コントローラー名と同じ名前の言語変数がないためです。コントローラー名と同じ名前の言語変数を用意します。

コントローラーが product_requests.php の場合:

msgctxt "Languages::product_requests"
msgid "Product Requests"
msgstr "商品申請"

管理画面では、タイトルの設定場所が2つあります。

設定場所 反映先
mainbox.tpl の title パラメーター ページ内の見出し(h1)
Languages::<コントローラー名> HTML の <title> タグ

mainbox.tpl の title は、ページ内の見出し専用です。HTML の <title> には影響しません。HTML の <title> は、コントローラー名から __('<コントローラー名>') が自動的に呼ばれて決まります。言語変数がないと、_<コントローラー名> と表示されます。

これは管理画面とベンダーパネルの話です。ショップフロントの {capture name="mainbox_title"} は、ページ内の見出しを設定するもので、ブラウザのタブに表示される <title> を直接設定するものではありません。ショップフロントの <title> は、$page_title やページの情報(パンくずリスト、レイアウトのタイトルなど)から組み立てられます。

関連ページ

ナビゲーション

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

↑↓ 移動↵ 開くEsc 閉じる