it-swarm.com.de

Wie kann ich den aktuellen Joomla-Menüpunkt gestalten, wenn ich in Joomla 2.5 einen Menüpunkt-Alias ​​als Menüpunkttyp verwende?

HINTERGRUND

Ich kann das aktuell aktive Menüelement in Joomla 2.5 nicht formatieren. Nach langem Nachforschen und Herumstöbern stellt sich heraus, dass mein Problem auf die Tatsache zurückzuführen ist, dass ich einen Menüelementtyp von "menu item alias" Verwende.

Das folgende Beispiel veranschaulicht mein Problem.

Angenommen, ich habe einen Menüeintrag namens "Tutorials", wenn ich darauf klicke und zu dieser Seite gehe. Ich möchte, dass der tutorials menu item Anders gestaltet wird, damit der Benutzer weiß, dass er sich auf der Tutorialseite befindet. Leider ist dem Menü keine „aktuelle“ Klasse zugeordnet, sodass es schwierig (unmöglich?) Ist, den Menüeintrag zu gestalten, der der aktuellen Seite entspricht.

FRAGEN

  1. Wie kann ich den aktuellen Joomla-Menüpunkt gestalten, wenn ich in Joomla 2.5 einen Menüpunkt-Alias ​​als Menüpunkttyp verwende?
  2. Wenn ich es nicht stylen kann, gibt es eine Problemumgehung? Entweder ein Hack oder eine Alternative zum Menüpunkt-Alias? Denken Sie daran, dass ich keine doppelten Inhalte erstellen möchte.

PDATE1

Eine Klasse von active wird dem aktuellen Menü hinzugefügt. Hier ist ein Beispiel dafür, was ich sehe, wenn ich auf den obersten Menüpunkt klicke.

CSS classes for uppermost menu item which is the current page

Das Problem dabei ist, dass alle Untermenüpunkte auch gestylt sind. Wie verhindern Sie das? Hier ist das CSS eines Untermenüs, das dem aktuellen Menüelement untergeordnet ist (beachten Sie, dass sich die aktuelle Seite auf das oberste Menüelement bezieht).

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

PDATE2

Ich habe die Antworten an Bord genommen und noch ein bisschen mit dem CSS herumgespielt. Es stellte sich heraus, dass ich das CSS-Styling falsch angewendet habe. Ich hätte li.active Verwenden sollen, um den Menüeintrag zu formatieren, der der aktuellen Seite entspricht.

1
TryHarder

Antwort 1: Gibt es überhaupt einen aktiven Status für den Alias-Link? Es sollte - Weil Sie das anstelle des Stroms für den bestimmten Fall verwenden können. Tatsächlich füge ich normalerweise .active zu allen meinen .current-Stilen hinzu, um diese Arten von Links abzufangen.

Antwort 2: Was das Herumhacken betrifft, gibt es hier eine Option:

Fügen Sie eine Body-ID für Ihre Seite hinzu.

Dies geht über den Doctype hinaus:

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

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

Und das ersetzt

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

Fügen Sie dann in Ihrem eigentlichen Tutorial-Menüelement (dem Non-Alias) eine Seitenklasse hinzu. Wenn Sie jetzt zur Tutorial-Seite gehen, wird eine Body-ID für Ihre Seite angezeigt. Greifen Sie jetzt zu Ihrer Alias-Li-Objektklasse und stylen Sie ihr Erscheinungsbild so, dass es mit dem aktuellen Stil übereinstimmt, wenn Sie sich in dieser Körper-ID befinden.

1
Faye

Das Standard-Menümodul in Joomla 2.5 hängt die aktive Klasse an die aktiven Menüelemente an, das Ereignis an den Alias-Menüelementtyp.

Es ist möglich, dass Ihre Vorlage bereits eine Vorlagenüberschreibung für das Menümodul enthält, die Ihrem Modul ein anderes Verhalten verleiht.

In jedem Fall ist es sehr einfach, die Ausgabe des Menümoduls mit Ihrem Override zu ändern und die gewünschten Klassen hinzuzufügen.

2
FFrewin