扩展Zend View Helper占位持有人
-
22-09-2019 - |
题
我正在阅读有关的手册 基本占位符的用法, ,它有一个示例:
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
s,如果可能的话,当所有内容都在占位符中时。我特别想做的一件事是将“第一个”类添加到第一个元素,然后将“最后”添加到最后一个元素。我认为我必须扩展 Zend_View_Helper_Placeholder
班级来实现这一目标。
解决方案
带有的字符串设置 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() ?>
不隶属于 StackOverflow