我正在阅读有关basic placeholder usage的手册,它有这个例子:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
// ...
protected function _initSidebar()
{
$this->bootstrap('View');
$view = $this->getResource('View');
$view->placeholder('sidebar')
// "prefix" -> markup to emit once before all items in collection
->setPrefix("<div class=\"sidebar\">\n <div class=\"block\">\n")
// "separator" -> markup to emit between items in a collection
->setSeparator("</div>\n <div class=\"block\">\n")
// "postfix" -> markup to emit once after all items in a collection
->setPostfix("</div>\n</div>");
}
// ...
}
我想要几乎完全实现这一点,但是我希望在所有内容都在占位符中时,在呈现时有条件地向重复div
添加更多类值。我特别想做的一件事是将“first”类添加到第一个元素,将“last”添加到最后一个元素。我假设我必须扩展Zend_View_Helper_Placeholder
类才能完成此任务。
答案 0 :(得分:1)
使用setSeparator()
设置的字符串将用于内容容器中的元素。将其设置为空字符串或只是忽略对setSeparator()
的调用,并将分隔div与您的其他内容一起插入:
<?php $this->placeholder('sidebar')->captureStart(); ?>
<?php if($userIsAdmin === TRUE) { ?>
<div class="block admin-menu">
<h4>User Administration</h4>
<ul>
<li> ... </li>
<li> ... </li>
</ul>
</div>
<?php } ?>
<div class="block other-stuff">
<h4>Non-Admin Stuff</h4>
<ul>
<li> ... </li>
<li> ... </li>
</ul>
</div>
<?php $this->placeholder('sidebar')->captureEnd() ?>