Foros del Web » Programando para Internet » PHP » Symfony »

Tres links en un KnpMenuBundle Clild

Estas en el tema de Tres links en un KnpMenuBundle Clild en el foro de Symfony en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 02/03/2015, 13:00
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 2 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.
  #2 (permalink)  
Antiguo 02/03/2015, 13:07
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 8 meses
Puntos: 44
Respuesta: Tres links en un KnpMenuBundle Clild

La hiciste vos la clase? Si es así cuál es el problema en definir tres letras en lugar de una? Simplemente definí en el array de letras las que quieras usar.

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

Si, la clase la he hecho yo. Completo la info. Esto queda asi



Lo que quiero es que en la misma linea esten ABC, DEF, GHI, .... Cada letra con su link.

Meter las tres letras en secillo, pero no puedo ponerles el link.

Código PHP:
//Asi mostraria ABC pero con solo un link
$drop_down->addChild(   'ABC' ,
                                    array(  
'route'             => 'videos_temas_de_artistas',
                                            
'routeParameters'   => array('letra' => $letra)
                                        )
                                ); 
  #4 (permalink)  
Antiguo 02/03/2015, 13:50
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 8 meses
Puntos: 44
Respuesta: Tres links en un KnpMenuBundle Clild

No sale el link? La forma en que lo estás creando es correcta
  #5 (permalink)  
Antiguo 03/03/2015, 00:33
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 2 meses
Puntos: 32
Respuesta: Tres links en un KnpMenuBundle Clild

El menú está bien hecho. En cada fila hay una letra con su correspondiente enlace. Lo que quiero es que una fila haya tres letras, y cada una con su link. No tres letras con un link.
  #6 (permalink)  
Antiguo 04/03/2015, 08:54
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 8 meses
Puntos: 379
Respuesta: Tres links en un KnpMenuBundle Clild

No utilizo el bundle pero me parece que requieres personalizar la forma en presenta los datos en twig
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 04/03/2015, 11:14
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 2 meses
Puntos: 32
Respuesta: Tres links en un KnpMenuBundle Clild

Cita:
Iniciado por hhs Ver Mensaje
No utilizo el bundle pero me parece que requieres personalizar la forma en presenta los datos en twig
Podría ser una opción, pero no he comentado también que uso también MopaBootstrapBundle, asi que para cambiar la maquetación es más complicado.
  #8 (permalink)  
Antiguo 05/03/2015, 11:04
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 8 meses
Puntos: 379
Respuesta: Tres links en un KnpMenuBundle Clild

Si pero solo tendrías que cambiar el témplate de knpmenu o al menos en teoria eso debe de ser.
Revisa la documentación de knpmenu: https://github.com/KnpLabs/KnpMenu
https://github.com/KnpLabs/KnpMenu/b...ation.markdown
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Última edición por hhs; 05/03/2015 a las 11:12
  #9 (permalink)  
Antiguo 05/03/2015, 11:13
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 2 meses
Puntos: 32
Respuesta: Tres links en un KnpMenuBundle Clild

Cita:
Iniciado por hhs Ver Mensaje
Si pero solo tendrías que cambiar el témplate de knpmenu o al menos en teoria eso debe de ser.
Revisa la documentación de knpmenu: https://github.com/KnpLabs/KnpMenu
https://github.com/KnpLabs/KnpMenu/b...ation.markdown
Eso he pensado, pero peléate con esto.....

https://github.com/KnpLabs/KnpMenu/b...menu.html.twig
  #10 (permalink)  
Antiguo 10/03/2015, 10:31
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 2 meses
Puntos: 32
Respuesta: Tres links en un KnpMenuBundle Clild

Me he puesto a intentar hacer un override de la plantilla knp_menu.html.twig de KnpMenuBundle que es la que usa MopaBootstrapBundle para crear el menú y para ello he creado la estructura siguiente como tengo ya hecho para TwigBundle, ./app/Resources/KnpMenuBundle/views/knp_menu.html.twig

Pero sigue usando la que está dentro de vendor. Algo se me escaba de cómo funcionan bien la sobreescritura de bundles....

Etiquetas: links, tres
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:03.