BACK
2008-06-12

PHP+Smarty+section+連想配列+ネスト

超・はまったlol
XOOPS-CUBEで商品一覧の各商品の中でトピックのリストを出そうと思って
配列->連想配列->配列->連想配列の形にして、Smartyに投げてみたところ
トピック数分ちゃんとループするものの、値が表示されず。

{debug}で見た感じ、値はちゃんと入っていたので
これはテンプレの書き方が間違ってるのかなと、いろいろ試行錯誤すること?時間。
結論は、これだ。わんつーすりー。

Smartyの雛形
<{section name=item loop=$items}>
 <{$items[item].name}>
  <{section name=topic loop=$items[item].topics}>
   <{$items[item].topics[topic].comment}>
  <{/section}>
<{/section}>

PHPソース(値書くのめんどうだから配列だけ(ぉ))
$items=array(); //配列
while(アイテム作るループ){
 $item=array(); //連想配列
 $item['name']=なんかアイテム名;

 $topics=array(); //配列
 while(トピック作るループ){
  $topic=array(); //連想配列
   $topic['comment']=なんかトピック;
   array_push($topics,$topic);
  }
 $item['topics']=$topics;
 array_push($items,$item);
}
$render=&$root->mContext->mModule->getRenderTarget();
$render->setAttribute('items',$items);

CUBEのだから普通のほうもこんな感じなのかはわかりませんがlol
なんかPHPの配列というよりStyleの書き方に似ている…罠だった。

BACK