[ec-cube] カンマ区切りで入力されている文字列を分解して表示する
カンマ区切りで入力されている値を展開
今回はカンマ区切りで入力されている『検索ワード』を展開してみます。
本来はclassファイルで定義してテンプレート側で展開するのが筋ですが、面倒なのでテンプレートファイルでphpを実行出来る様にして対応してみます。
対象ファイル
/data/Smarty/templates/default/list.tpl
まずはこのソースを list.tpl のループ内に貼付けて確認してみましょう。
(<!–★商品名★–>の下あたりがいいかな。)
<h2>キーワード</h2> <h3>カンマで分解する前</h3> <!--{$arrProduct.comment3}--><br /> <h3>カンマで分解した後</h3> <!--{php}--> $arrProduct = $this->get_template_vars('arrProduct'); list($kw01,$kw02,$kw03,$kw04,$kw05)=explode(",", $arrProduct[comment3] ); $this->assign('kw01',$kw01); $this->assign('kw02',$kw02); $this->assign('kw03',$kw03); $this->assign('kw04',$kw04); $this->assign('kw05',$kw05); <!--{/php}--> <b>キーワード1</b>:<!--{$kw01}--><br /> <b>キーワード2</b>:<!--{$kw02}--><br /> <b>キーワード3</b>:<!--{$kw03}--><br /> <b>キーワード4</b>:<!--{$kw04}--><br /> <b>キーワード5</b>:<!--{$kw05}--><br />
解説的な。
展開するのはこれ(『検索キーワード』=comment3)
<!--{$arrProduct.comment3}-->
カンマ区切りで分解する処理を入れる
<!--{php}--> //まずは、テンプレート内で使うphpにSmarty変数をセット出来る様にする $arrProduct = $this->get_template_vars('arrProduct'); //一応、表示されるか確認 print_r($arrProduct[comment3]); //カンマで区切りで分解し変数にいれます list($kw01,$kw02,$kw03,$kw04,$kw05)=explode(",", $arrProduct[comment3] ); //分解出来た所で、Smarty変数に割り当てます $this->assign('kw01',$kw01); $this->assign('kw02',$kw02); $this->assign('kw03',$kw03); $this->assign('kw04',$kw04); $this->assign('kw05',$kw05); //$this->assign('kw○○○○',$kw○○○○); ←キーワードが多い場合はどんどん追記していく。 <!--{/php}-->
表示する
<b>キーワード1</b>:<!--{$kw01}-->;<br /> <b>キーワード2</b>:<!--{$kw02}-->;<br /> <b>キーワード3</b>:<!--{$kw03}-->;<br /> <b>キーワード4</b>:<!--{$kw04}-->;<br /> <b>キーワード5</b>:<!--{$kw05}-->;<br />