とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub

EC-CUBE(2.13.1)テンプレートファイルにブロックを挿入(読み込み)する

テンプレートにブロック設定で作成したブロックをインクルード


EC-CUBEのバージョン2.13.1で、テンプレートファイルの中にブロックを挿入したい。

EC-CUBEは、バージョンによって定数のパス定義がちょろちょろと変わっているので
バージョン2.13.1より前のバージョンはちょっとわからないですが・・・

2.13.1の場合は以下のとおり

<!--{include file="`$smarty.const.SMARTY_TEMPLATES_REALDIR`/`
$smarty.const.TEMPLATE_NAME`/`$smarty.const.BLOC_DIR`customize.tpl"}-->

※改行は削除してください。

customize.tpl の部分を、作成したブロックのファイル名を指定することで表示可能。

$smarty.const.TEMPLATE_NAME を指定している理由は
テンプレートデザインを利用しているからで、
デフォルトデザインを利用している場合はそのまま

<!--{include file="`$smarty.const.USER_TEMPLATE_PATH`/default/bloc/customize.tpl"}-->

などでいけると思います。(未検証)

もしパスをミスっていたりすると、ページ表示時にはエラーにならず
コードそのものがhtml出力されません。

おかしいな?と思った場合は
システム設定 > EC-CUBE ログ表示 > エラーログファイル より
エラーログを読み込んだら
以下の様なエラーが出力されるのでご注意。

Warning(E_USER_WARNING): Smarty error: unable to read resource: "USER_TEMPLATE_PATHtemplatename/frontparts/bloc/customize.tpl" on [/home/users/main.jp/web/data/module/Smarty/libs/Smarty.class.php(1094)]

このコードは
商品詳細ページにブロックを表示させるために記載していますが
もしエラーログに include file そのものが未定義だというエラーが出てきている場合は
表示させようとしているページに include file の読み込みがされていないので、対象ページのオブジェクト内で
定義されるようインクルードが必要となります。


次のページ

FC2Ad