Zend View Helper Placeholderを拡張します
-
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、すべてのコンテンツがプレースホルダーにある場合、可能であればレンダリング時に。私が特にやりたいことの1つは、最初の要素に「最初」のクラスを追加し、最後の要素に「最後」を追加することです。私は拡張しなければならないと思います 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