我正在阅读有关的手册 基本占位符的用法, ,它有一个示例:

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>");
    }

    // ...
}

我几乎想完成这项工作,但是我想有条件地为重复添加更多的类值 divs,如果可能的话,当所有内容都在占位符中时。我特别想做的一件事是将“第一个”类添加到第一个元素,然后将“最后”添加到最后一个元素。我认为我必须扩展 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() ?>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top