it-swarm-es.tech

¿Cómo puedo diseñar el elemento de menú actual de Joomla cuando uso el alias de elemento de menú como tipo de elemento de menú en Joomla 2.5?

FONDO

No puedo diseñar el elemento del menú activo actual en Joomla 2.5. Después de mucha investigación y análisis resulta que mi problema se debe al hecho de que estoy usando un tipo de elemento de menú de "menu item alias ".

El siguiente ejemplo ilustra mi problema.

Digamos que tengo un elemento de menú llamado "tutoriales" cuando hago clic en él y voy a esa página, quiero el tutorials menu item tendrá un estilo diferente para que el usuario sepa que está en la página de tutoriales. Desafortunadamente, no hay una clase "actual" adjunta al menú, por lo que esto hace que sea difícil (¿imposible?) Diseñar el elemento del menú que coincide con la página actual.

PREGUNTAS

  1. ¿Cómo puedo diseñar el elemento de menú actual de Joomla cuando uso el alias de elemento de menú como tipo de elemento de menú en Joomla 2.5?
  2. Si no puedo diseñarlo, ¿hay alguna solución? ¿Un truco o una alternativa al alias del elemento de menú? Tenga en cuenta que no quiero crear contenido duplicado.

ACTUALIZACIÓN1

Se agrega una clase de active al menú actual. Aquí hay un ejemplo de lo que estoy viendo cuando hago clic en el elemento del menú superior.

CSS classes for uppermost menu item which is the current page

El problema con eso es que todos los elementos del submenú también tienen estilo. ¿Cómo evitas eso? Aquí está el CSS de un submenú que es un elemento secundario del elemento de menú actual (tenga en cuenta que la página actual es para el elemento de menú superior).

CSS for submenu item which is a child of the uppermost current menu item

ACTUALIZACIÓN2

Tomé las respuestas a bordo y jugué un poco más con el CSS. Resulta que estaba aplicando incorrectamente el estilo CSS. Debería haber usado li.active para diseñar el elemento del menú que coincida con la página actual.

1
TryHarder

Respuesta 1: ¿Hay algún estado activo en el enlace de alias? Debería haberlo, porque puede usarlo en lugar de la corriente para ese caso en particular. De hecho, normalmente agrego .active a todos mis estilos .current para capturar esos tipos de enlaces.

Respuesta 2: En cuanto a un truco, aquí hay una opción:

Agregue una identificación de cuerpo para su página.

Esto va por encima del doctype:

<?php
  $app = JFactory::getApplication();
  $menu = $app->getMenu()->getActive();
  $pageclass = '';

  if (is_object($menu))
    $pageclass = $menu->params->get('pageclass_sfx');
?>

Y esto reemplaza

<body id="<?php echo $pageclass ? htmlspecialchars($pageclass) : 'default'; ?>">

Luego, en el elemento del menú Tutorial real (sin alias), agregue una clase de página. Ahora, cuando vaya a la página del tutorial, aparecerá una identificación del cuerpo para su página. Ahora, toma tu clase de elemento de alias li y dale estilo a su apariencia para que coincida con el estilo actual cuando estés dentro de esa identificación del cuerpo.

1
Faye

El módulo de menú predeterminado en Joomla 2.5 agrega la clase activa a los elementos del menú activo, evento al tipo de elemento de menú alias.

Es posible que su plantilla ya contenga una anulación de plantilla para el módulo de menú, lo que le da a su módulo un comportamiento diferente.

En cualquier caso, es muy fácil modificar la salida del módulo de menú con su anulación y agregar las clases que desee.

2
FFrewin