Jump to content

[Solucionado] Titulos de los CMS muy largos en Blocktopmenu


Recommended Posts

Hola,

 

a ver si alguien puede ayudarme. Estoy a punto de lanzar mi tienda pero tengo un problemilla con el menú horizontal (blocktopmenu). Tengo un par de CMS que salen en dicho menú como subcategorías pero al ser el título tan largo se sale del bloque del menú (adjunto imagen) . 

 

Lo que me gustaría hacer es hacer que esos títulos salgan en dos líneas puesto que no quiero acortarlos. O bien que salgan acortados pero sólo en el menú. Me explico:

 

Esto es lo que sale:

Cómo legalizar un sistema de videovigilancia paso a paso. PARTE I

 

Cómo legalizar un sistema de videovigilancia paso a paso. PARTE II

 

Cómo me gustaría que saliera:

Cómo legalizar un sistema ...

 

Cómo legalizar un sistema ...

 

o bien:

Cómo legalizar un sistema de

videovigilancia paso a paso. PARTE I

 

Cómo legalizar un sistema de

videovigilancia paso a paso. PARTE II

 

Gracias de antemano

post-719230-0-32339000-1386764037_thumb.jpg

Link to comment
Share on other sites

¿Lo quieres hacer solo con los CMS en el menu horizontal, o tambien con el resto de enlaces? (En principio se puede hacer retocando el fichero blocktopmenu.php)

 

Hola Nadie, gracias por tu rápida respuesta. En principio me da lo mismo, porque en donde voy a tener problema con la longitud de los títulos es en los CMS ya que muchos de ellos van a ser artículos a modo de post y me temo que van a tener títulos largos. 

 

Sin embargo, no me importaría si se hiciera con todos los demás enlaces del menu, puesto que ya modifiqué el blocktopmenu para que los bloques tuvieran más anchura ya que un par de subcategorías también se "salían" del menú. Lo ideal para mí es que las categorías que tuvieran nombres de mayor longitud aparecieran en dos líneas, pero no tengo ni idea de cómo se hace eso (de hecho no entiendo porqué no sale así por defecto).

Link to comment
Share on other sites

Una de tantas opciones por ejemplo seria:

 

Para que los enlaces de los CMS se corten con los puntos suspensivos, puedes por ejemplo, en el fichero:

/modules/blocktopmenu/blocktopmenu.php

Buscar esto:

case 'CMS':
                                        $selected = ($this->page_name == 'cms' && (Tools::getValue('id_cms') == $id)) ? ' class="sfHover"' : '';
                                        $cms = CMS::getLinks((int)$id_lang, array($id));
                                        if (count($cms))
                                                $this->_menu .= '<li'.$selected.'><a href="'.Tools::HtmlEntitiesUTF8($cms[0]['link']).'" title="'.$cms[0]['meta_title'].'">'.$cms[0]['meta_title'].'</a></li>'.PHP_EOL;
                                        break;

Y por ejemplo dejas algo asi:

case 'CMS':
					$selected = ($this->page_name == 'cms' && (Tools::getValue('id_cms') == $id)) ? ' class="sfHover"' : '';
					$cms = CMS::getLinks((int)$id_lang, array($id));
					if (count($cms)) {
					
					$variableVacia="";
					$titulo_nombre=$cms[0]['meta_title'];
					
					if (strlen($cms[0]['meta_title']) > 21) {
					$variableVacia="..";
					$titulo_nombre=mb_substr($cms[0]['meta_title'],0,20,"utf-8");
					}
					 $this->_menu .= '<li'.$selected.'><a href="'.Tools::HtmlEntitiesUTF8($cms[0]['link']).'">'.$titulo_nombre.$variableVacia.'</a></li>'.PHP_EOL;
					}
					break;

Estamos diciendo por ejemplo si la longitud del titulo del cms es mayor que 21 (puedes cambiar ese 21 para ajustarlo a tu necesidad), corta el texto y imprime desde el caracter 0 al 20 (los 21 primeros caracteres) y ademas veras que hemos añadido que se impriman "...". 

 

Tanto lo del 0 al 20 lo puedes cambiar, como lo de la condicional mayor que 21, he puesto solo un ejemplo.

 

Si no se aplican los cambios, recuerda limpiar cache smarty, y por si las moscas desinstalar y volver a instalar el modulo xDDDD

Link to comment
Share on other sites

Una de tantas opciones por ejemplo seria:

 

Para que los enlaces de los CMS se corten con los puntos suspensivos, puedes por ejemplo, en el fichero:

/modules/blocktopmenu/blocktopmenu.php

Buscar esto:

case 'CMS':
                                        $selected = ($this->page_name == 'cms' && (Tools::getValue('id_cms') == $id)) ? ' class="sfHover"' : '';
                                        $cms = CMS::getLinks((int)$id_lang, array($id));
                                        if (count($cms))
                                                $this->_menu .= '<li'.$selected.'><a href="'.Tools::HtmlEntitiesUTF8($cms[0]['link']).'" title="'.$cms[0]['meta_title'].'">'.$cms[0]['meta_title'].'</a></li>'.PHP_EOL;
                                        break;

Y por ejemplo dejas algo asi:

case 'CMS':
					$selected = ($this->page_name == 'cms' && (Tools::getValue('id_cms') == $id)) ? ' class="sfHover"' : '';
					$cms = CMS::getLinks((int)$id_lang, array($id));
					if (count($cms)) {
					
					$variableVacia="";
					$titulo_nombre=$cms[0]['meta_title'];
					
					if (strlen($cms[0]['meta_title']) > 21) {
					$variableVacia="..";
					$titulo_nombre=mb_substr($cms[0]['meta_title'],0,20,"utf-8");
					}
					 $this->_menu .= '<li'.$selected.'><a href="'.Tools::HtmlEntitiesUTF8($cms[0]['link']).'">'.$titulo_nombre.$variableVacia.'</a></li>'.PHP_EOL;
					}
					break;

Estamos diciendo por ejemplo si la longitud del titulo del cms es mayor que 21 (puedes cambiar ese 21 para ajustarlo a tu necesidad), corta el texto y imprime desde el caracter 0 al 20 (los 21 primeros caracteres) y ademas veras que hemos añadido que se impriman "...". 

 

Tanto lo del 0 al 20 lo puedes cambiar, como lo de la condicional mayor que 21, he puesto solo un ejemplo.

 

Si no se aplican los cambios, recuerda limpiar cache smarty, y por si las moscas desinstalar y volver a instalar el modulo xDDDD

 

Hola de nuevo Nadie,

 

gracias por tu propuesta, hasta hoy no he podido probarlo. Bueno, he hecho lo que ponías pero no pasaba nada, jejej, no sé muy bien por qué.

 

Pero al final le he dado solución. Lo que he hecho es hacer que las entradas de los menús se muestren en tantas líneas como sean necesarias, así no me preocupo si alguna categoría, CMS es larga o corta. Lo pongo aquí por si a alguién le interesa:

 

1.- En el fichero CSS del Blocktopmenu: /modules/blocktopmenu/css/superfish_modified.css

 

    Comentar o borrar la propiedad:

white-space:nowrap;

que se encuentra alrededor de la línea 89. Se quedaría algo así:

 

.sf-menu a, .sf-menu a:visited  { /* visited pseudo selector so IE6 applies text colour*/
color: #fff;
/*white-space:nowrap;*/
}

Comentando esta línea las entradas del menú ya salen en varias líneas y no sobresalen del bloque del menú. Dejo el cómo salía antes y cómo sale ahora.

 

Bueno, para mí me vale esta opción así que doy el tema por solucionado.

post-719230-0-61093200-1387293370_thumb.jpg

post-719230-0-54317300-1387293374_thumb.jpg

Link to comment
Share on other sites

 

Hola de nuevo Nadie,

 

gracias por tu propuesta, hasta hoy no he podido probarlo. Bueno, he hecho lo que ponías pero no pasaba nada, jejej, no sé muy bien por qué.

 

Pero al final le he dado solución. Lo que he hecho es hacer que las entradas de los menús se muestren en tantas líneas como sean necesarias, así no me preocupo si alguna categoría, CMS es larga o corta. Lo pongo aquí por si a alguién le interesa:

 

1.- En el fichero CSS del Blocktopmenu: /modules/blocktopmenu/css/superfish_modified.css

 

    Comentar o borrar la propiedad:

white-space:nowrap;

que se encuentra alrededor de la línea 89. Se quedaría algo así:

 

.sf-menu a, .sf-menu a:visited  { /* visited pseudo selector so IE6 applies text colour*/
color: #fff;
/*white-space:nowrap;*/
}

Comentando esta línea las entradas del menú ya salen en varias líneas y no sobresalen del bloque del menú. Dejo el cómo salía antes y cómo sale ahora.

 

Bueno, para mí me vale esta opción así que doy el tema por solucionado.

 

 

 

Bueno, yo la veo un poco raro como se te queda ahora. (Estéticamente queda amontonado XD)

 

Bueno, un placer ayudarte y servirte !

 

Te añado la palabra "Solucionado" al titulo del tema, y procedo a cerrar el tema.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...