やきにくとくにきや

WEBサービスとイベントに夢見るエンジニアの技術メモ、チラシの裏。そして焼肉たべたい

smarty で config_load した変数の文字列結合のやり方

   

smarty のコンフィグに

[default]
HOSTNAME = 'www.kunikiya.jp'
[/default]

と書いて {config_load file="example.conf"} とすると
#HOSTNAME# でコンフィグ変数的なものが使えるが、他の変数と結合したい時にちょっと躓いたのでメモ

[default]
{include file='hoge.tpl' url=`#HOSTNAME#``$url`
[/default]

とかやってもダメで、
しばらくドキュメントと睨めっこしていたら「#hash# 方式のテンプレート」と「$smarty.config 方式のテンプレート」の二種類の使い方があることが判明

http://www.smarty.net/docsv2/ja/language.config.variables.tpl

#hash# 方式のテンプレート
[php]
{config_load file='foo.conf'}

{#pageTitle#}

First Last Address



[/php]

$smarty.config 方式のテンプレート
[php]
{config_load file='foo.conf'}

{$smarty.config.pageTitle}

First Last Address



[/php]

ということで、 #HOSTNAME# は $smarty.config.HOSTNAME とも書けるので、
[default]
{include file='hoge.tpl' url=`$smarty.config.HOSTNAME``$url`
[/default]
とすることで解決

 - Smarty