Ver Mensaje Individual
  #13 (permalink)  
Antiguo 28/09/2012, 04:29
Avatar de Uncontroled_Duck
Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Respuesta: Zf2 Como Crear View Helper Navigation

Bueno, pues adaptado queda.

No lo he probado a fondo, así que si lo prueban y da algún error, agradezco que lo comenten.

Compatible con la versión:
ZendFramework 2.0.2
Twitter Bootstrap 2.1.1
Nota: El menú desplegable no admite aún un submenú desplegable. Para la próxima que lo revise intento actualizar eso.

En el resto del post viene como adaptar el View Helper NavigationMenu

PD.: Lo pongo en varias partes por la limitación de caracteres.

NavigationMenu.php (Estructura)
Código PHP:
namespace ApplicationViewHelper;

use 
ZendViewHelperNavigationMenu;
use 
RecursiveIteratorIterator;
use 
ZendNavigationAbstractContainer;
use 
ZendNavigationPageAbstractPage;

/**
 * Agrega menús desplegables y/o iconos en los distintos menús del
 *  View Helper Menu de Navigation
 * 
 * Añade las propiedades 
 *      liclass
 *      iclass
 * 
 * Modifica la clase active
 *      Por defecto en Zend
 *      <li>
 *          <a class="active">link</a>
 *      </li>
 *      
 *      Con el View Helper NavigationMenu
 *      <li class="active">
 *          <a>link</a>
 *      </li>
 * 
 * Opciones personalizadas:
 *      Para iniciar un menú desplegable:
 *          'label'   => 'Dropdown',
 *          'liclass' => 'dropdown',
 *          'iclass'  => 'icon-name', //si se quiere poner un icono junto al enlace
 *          'class'   => 'dropdown-toggle',
 *          'uri'     => '/', //sin url
 *          'pages'   => array(array('pages'))
 * 
 *      Para añadir un separador vertical en el menú del header
 *          array(
 *              'label'   => '',
 *              'liclass' => 'divider-vertical',
 *              'uri'     => '',
 *          ),
 * 
 *      Para añadir un separador horizontal en un menu desplegable del menú del header
 *      Para añadir un separador horizontal en un menu vertical
 *          array(
 *              'label'   => '',
 *              'liclass' => 'divider',
 *              'uri'     => '',
 *          ),
 * 
 * @author ORD, alias Uncontroled Duck
 * @version bootstrap twitter 2.1.1
 * @version ZendFramework 2.0.3
 */
class NavigationMenu extends Menu
{
    
/**
     * Returns an HTML string containing an 'a' element for the given page if
     * the page's href is not empty, and a 'span' element if it is empty
     *
     * Overrides {@link AbstractHelper::htmlify()}.
     *
     * @param  AbstractPage $page   page to generate HTML for
     * @param bool $escapeLabel     Whether or not to escape the label
     * @return string               HTML string for the given page
     */
    
public function htmlify(AbstractPage $page$escapeLabel true)
    {
        
//...
    
}

    
/**
     * Renders a normal menu (called from {@link renderMenu()})
     *
     * @param  AbstractContainer         $container    container to render
     * @param  string                    $ulClass      CSS class for first UL
     * @param  string                    $indent       initial indentation
     * @param  int|null                  $minDepth     minimum depth
     * @param  int|null                  $maxDepth     maximum depth
     * @param  bool                      $onlyActive   render only active branch?
     * @param  bool                      $escapeLabels Whether or not to escape the labels
     * @return string
     */
    
protected function renderNormalMenu(AbstractContainer $container$ulClass$indent$minDepth$maxDepth$onlyActive$escapeLabels)
    {
        
//...
    
}

__________________
Todos agradeceremos que pongas el código en su respectivo Highlight