1

私はいくつかのアパートのサイトに取り組んでいます。

foreach ループで Smarty に割り当てられるデータがあります。

$i = 0;
foreach ($obj2 as $array) {
   $smarty->assign('name'.$i, $obj2[$i]['name']);
   $smarty->assign('numbedrooms'.$i, $obj2[$i]['number_of_bedrooms']);
   $smarty->assign('numbathrooms'.$i, $obj2[$i]['number_of_bathrooms']);
   $smarty->assign('sqfeet'.$i, $obj2[$i]['square_feet']);
   $smarty->assign('deposit'.$i, $obj2[$i]['deposit']);
   $smarty->assign('rent'.$i, $obj2[$i]['rent']);
   $smarty->assign('vacantunits'.$i, $obj2[$i]['vacant_units']);
   $i++;
}

テンプレートが読み込まれると ( $smarty->display('template.tpl');)、すべてのデータが(別のコード ブロックの例のreplaceように) 経由​​で利用できるようになります。replace:'[[lowestrate]]':{$lowestrate}

ただし、 の項目数は$obj2変わる可能性があるため (現在は 3 つ)、一概には言えませんreplace:'[[name1]]':{$name1}。(時間がかかることは言うまでもありません)

また、交換が必要な理由は、ページ コンテンツが WYSIWYG エディターを備えた CMS システムから管理されているためです。エディターは入力[[lowestrate]]して、最も低コストのアパートに置き換えることができます。[[name1]]最初のアパートの名前に置き換えたり[[numberbedrooms1]]、アパート 1 の寝室の数に置き換えたりするように入力できる必要があります。

これをどのように行うべきかについて、誰かが考えを持っていますか?

4

1 に答える 1

0

これは、smarty レベルではなく、PHP レベルで行うべき仕事のように思えます。smarty への割り当ての前に置換を行ってから、変換された配列を送信することをお勧めします。

于 2012-08-06T05:18:23.673 に答える