連載第3回!CS-Cart3アドオン作成講座 -初級編-「テンプレートの作成と設定ページの値の取得」

アドオン作成講座 -初級編- vol3

連載第3回目となりました。
CS-Cartのアドオン作成のお作法です。

今回はテンプレートの作成と、前回作成した基本設定ページで保存した値の取得について学んでいきます。

  

この記事は1年以上前に書かれたものです。
情報が古い可能性があります。

検証バージョン

CS-Cart Free Edition v3.0.2-jp-1 を使用して検証しています。

INDEX

1. 前回のおさらい

前回の記事で作成したテキストフィールドを作成する addon.xml の例です。
前回ダウンロード出来るように配布した addon.xml には分かりやすいようにと、コメントを記述しています。

addon.xml

<?xml version="1.0"?>

<addon scheme="2.0">

	<!-- アドオンの識別子。アドオンのフォルダ名と同じにしてください。 /addons/webcake -->
    <id>webcake</id>

    <!-- アドオンのバージョン -->
    <version>1.0</version> 

    <!-- アドオンのデフォルト言語。このオプションが指定されていない場合は英語(EN)として認識されます -->
    <default_language>EN</default_language> 

    <!-- デフォルト言語でのアドオン名 -->
    <name>WebCake Addon</name>

    <!-- デフォルト言語での説明文 -->
    <description>It is an add-on of original WebCake! </description>

    <!-- アドオンの優先順位 数値が大きなアドオンほど後で実行されます -->
    <priority>100</priority>

    <!-- アドオンをインストールした直後のステータス(有効/無効)デフォルトでは無効となります。(active/disabled) -->
    <status>active</status>

    <!-- デフォルト言語以外の言語変数の翻訳に関する設定 -->
    <translations> 
        <!--
            @for - 翻訳が提供されるプロパティー。 値: name/description/tooltip. オプション:デフォルトの値は"name"です。
            @lang - 翻訳する言語コード。ショップで使用されていない言語に関しては、インストールされません。
        -->
        <item for="name" lang="JA">WebCakeアドオン</item>
        <item for="description" lang="JA">WebCakeのオリジナルアドオンです!</item>
    </translations>
   
	<!-- アドオンの設定ブロック(オプション)
        @layout - 設定ページがどのように開かれるか(ポップアップ表示/別ページ)を定義します。(popup/separate) オプション:デフォルトは"popup"となります。
    -->
	<settings layout="popup">
		<!-- アドオン設定ページ上部のタブの一覧 -->
		<sections>
			<!-- 表示されるタブに関する設定
                @id - テキストの識別子(ID)。このIDは次のコードでアクセス出来ます。Registry::get('addons.[addon_id].[setting_id]')
                @edition_type - この設定が利用可能なCS-Cartのエディションのリスト
            -->
			<section id="section1">
				<!-- デフォルト言語でのタブ名 -->
				<name>Generic settings1</name>
				<translations>
					<!-- 翻訳言語でのタブ名 -->
					<item lang="JA" for="name">共通設定1</item>
				</translations>
				
				<!-- タブの中に表示される設定の一覧 -->
				<items>
					<item id="input">
						<!-- エレメント(要素)のタイプ: 以下の要素を指定出来ます。
                            input, textarea, password, checkbox, selectbox, multiple select, 
                            multiple checkboxes, countries list, states list, 
                            file, info, header, template
                        -->
						<type>input</type>
						
						<!-- デフォルト言語での設定名称 -->
						<name>InputField</name>
						
						<!-- ツールチップによるヒントを表示できます -->
						<tooltip>Hint</tooltip>
						
						<!-- 設定の翻訳 -->
						<translations>
							<item lang="JA" for="name">入力フィールド</item>
							<item lang="JA" for="tooltip">ヒント</item>
						</translations>
					</item>
				</items>
			</section>
		</sections>
	</settings>
</addon>

テキストフィールドの作成

このようにテキストフィールドが基本設定ページに表示されるようになります。
このテキストフィールドに保存した値を、テンプレートで取得して表示するのが今回の内容です。

2. テンプレートフックとテンプレートの作成

テンプレートフック

テンプレートフックの基本については以前の記事に書いていますので、そちらも参考にされてみてください。

テンプレートの作成

/var/skins_repository/basic/customer/addons/webcake/hooks/index/footer.post.tpl
cscart-addon-basic-vol3-02

<!--
	設置パス: /var/skins_repository/basic/customer/addons/webcake/hooks/index/footer.post.tpl
	
	アドオン有効後に /skins/basic/customer/addons/webcake/hooks/index/footer.post.tpl にコピーされる
	$addons.アドオンの識別子.アイテムの識別子	
-->

<strong>{$addons.webcake.input}</strong>

/var/skins_repository/basic/customer/addons/webcake/hooks/index の中に footer.post.tpl というファイルを試しに作成してみます。

値の取得は以下のようにして取得することができます。
{$addons.アドオンの識別子.アイテムの識別子}

もしアイテムの識別子が <item id="input_name"> でしたら {$addons.webcake.input_name} で取得可能です。

テンプレートを配置したら、管理画面からアドオンを一度アンインストールしてからインストールし直します。
すると /skins/basic/customer/addons/webcake/hooks/index/footer.post.tpl にファイルがコピーされます。

3. 表示確認

基本設定ページでテキストフィールドに オプション値テスト と入力してみました。
ではショップフロントページを確認してみましょう。
ショップフロントページ

フッタの部分にフックしているのでフッタに基本設定ページで入力した値が表示されました。

4. サンプルの配布

5. まとめ

いかがでしたでしょうか。
今回はテンプレートでの基本設定ページの入力フィールドの値の表示方法について学びました。

次回はいよいよ最終回です。次回はブロックテンプレートを作成してブロックの管理から好きな場所に入力フィールドの値を表示する方法をご紹介する予定です。

連載記事目次

  

共有やブックマークなど