Pregunta

Estaba leyendo el manual sobre Uso básico del marcador de posición, y tiene este ejemplo:

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

    // ...
}

Quiero lograr casi exactamente eso, pero me gustaría agregar condicionalmente más valores de clase a la repetición divS, en el momento de representar si es posible, cuando todo el contenido está en el marcador de posición. Una cosa que quiero hacer específicamente es agregar la clase de "primero" al primer elemento y "último" al último elemento. Supongo que tendré que extender el Zend_View_Helper_Placeholder clase para lograr esto.

¿Fue útil?

Solución

La cadena establecida con setSeparator() es lo que se usará para implosionar elementos en un contenedor. O ajustarlo en una cadena vacía o simplemente deje de lado la llamada a setSeparator() e inserte los divs de separación junto con su otro contenido:

  <?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() ?>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top