フォノクラフト株式会社:作業メモや備忘録など

作業メモや備忘録など…

[ec-cube] カンマ区切りで入力されている文字列を分解して表示する

without comments

カンマ区切りで入力されている値を展開

今回はカンマ区切りで入力されている『検索ワード』を展開してみます。

本来は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 />