テンプレートにスコープ解決演算子が欲しい
例えばこんなの。
<?php class ItemChangeConfirm { public $oldItem; public $newItem; public $itemId; public function execute(DaoFactory $factory){ $itemDao = $factory->get('item'); $item = $itemDao->getVo($this->itemId); $this->oldItem = clone $item; // $item->itemValue = 'old value'; if (!ItemChanger::change($item)) return 'error'; // $item->itemValue = 'new value'; などに変更されるものとする。 $this->newItem = $item; } }
<p>変更前のアイテム</p> {begin:oldItem} <ul> <li>名前 {itemName}</li> <li>コード {itemCode}</li> <li>値 {itemValue}</li> </ul> {end:} <p>変更後のアイテム</p> {begin:newItem} <ul> <li>名前 {itemName}</li> <li>コード {itemCode}</li> <li>値 {itemValue}</li> </ul> {end:}
こういうことをしたい。
・・・って書いてたら現状で出来る解決方法を思い付いた。
<?php class ItemChangeConfirm { public $ITEMS; public $itemId; public function execute(DaoFactory $factory){ $itemDao = $factory->get('item'); $item = $itemDao->getVo($this->itemId); $ITEMS = array(); $oldItem = clone $item; $oldItem->subject = '変更前のアイテム'; $ITEMS[] = $oldItem; if (!ItemChanger::change($item)) return 'error'; $newItem = $item; $newItem->subject = '変更後のアイテム'; $ITEMS[] = $newItem; $this->ITEMS = $ITEMS; } }
{loop:ITEMS} <p>{subject}</p> <ul> <li>名前 {itemName}</li> <li>コード {itemCode}</li> <li>値 {itemValue}</li> </ul> {endloop:}
これで出来ちゃうや。