Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/03/2015, 13:00
Avatar de cluster28
cluster28
 
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Tres links en un KnpMenuBundle Clild

Me explico. Ahora tengo esta clase para hacer el menu, pero me gustaría que salieran tres letras por fila en lugar de una. Claro las letras con su correspondiente link.

Código PHP:
namespace MusicaGenericoBundleMenu;

use 
KnpMenuFactoryInterface;

class 
MenuBuilder
{
    private 
$container;
        
    public function 
__construct($container)
    {
        
$this->container $container;
    }
    
    public function 
createPrincipalMenu(FactoryInterface $factory)
    {
        
$translator $this->container->get('translator');
        
$menu $factory->createItem('root', array( 'navbar' => true,
                                                    
'pull-right' => true,
                                                    )
                                    );
        
$menu->addChild('INICIO', array('route' => 'temas_homepage'));
        
$drop_down_anos $this->createDropdown($menu$translator->trans('AÑOS'));
        
$this->cargarAnos($drop_down_anos);
        
        
$drop_down_letras $this->createDropdown($menu$translator->trans('ARTISTAS'));
        
$this->cargarLetras($drop_down_letras);
        
        
$drop_down_buscar $this->createDropdown($menu$translator->trans('BUSCAR'));
        
$templating $this->container->get('templating');
        
$drop_down_buscar->addChild($templating->render(':menus:form.busqueda.html.twig'), array('extras' => array('safe_label' => true)));
        
        
        
$menu->addChild('CONTACTO', array('route' => 'contacto'));
        
        
        return 
$menu;
    }
    
    private function 
createDropdown(KnpMenuMenuItem $menu$nombre)
    {
        return 
$menu->addChild($nombre, array(
            
'dropdown' => true,
            
'caret' => true,
        ));
    }
    
    private function 
cargarAnos(KnpMenuMenuItem $drop_down)
    {
        
$array_anos = array(19901991199219931994199519961997199819991900);
        
        foreach (
$array_anos as $ano){
        
            
$drop_down->addChild(   (($ano == 1900) ? '?' $ano) ,
                                    array(  
'route'             => 'videos_temas_del_ano',
                                    
'routeParameters'   => array('ano' => $ano)
                                    )
                            );
        }
    }
    
    private function 
cargarLetras(KnpMenuMenuItem $drop_down)
    {
        
$array_letras = array('0-9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
        
        foreach (
$array_letras as $letra){
        
            
$drop_down->addChild(   $letra ,
                                    array(  
'route'             => 'videos_temas_de_artistas',
                                            
'routeParameters'   => array('letra' => $letra)
                                        )
                                );
        }
    }

Se puede?

Gracias.