Zum Inhalt springen

TMENU -> Highlight funktioniert nicht mehr

Erstellt am 11. August 2003 · 1 Antwort · letzte Antwort am 12. August 2003

Tags: Frage

DaSilentStorm ·

Hallo,

ich habe gerade eine Extension geschrieben, um den Seiten- und Contentzugriff für mehrere Benutzergruppen zu ermöglichen. (genau wie in Modern Template Building 2+3 beschrieben)

Jetzt habe ich allerdings folgendes Phänomen:

Ich habe auf meiner Seite ein TMENU.

Wenn ich nun eine Seite öffne, die keiner, oder nur einer Benutzergruppe zugewiesen ist, funktioniert das highlighting ohne probleme.

Sobald die Seite aber mehr als einer Benutzergruppe zugewiesen ist, werden die Menüpunkte nicht mehr hervorgehoben.

Hier ein Auszug aus dem Setup:

temp.leftNavigation = HMENU
temp.leftNavigation.expAll = true
temp.leftNavigation.entryLevel = 2

temp.leftNavigation.1 = TMENU
temp.leftNavigation.1 {
	NO {
		before = jedeMengeHtmlHier
		linkWrap = jedeMengeHtmlHier | jedeMengeHtmlHier
		ATagParams =  class="leftNavigation"
	}

	ACT < .NO
	ACT = 1
	ACT {
		linkWrap = jedeMengeHtmlHier | jedeMengeHtmlHier
		ATagParams =  class="leftNavigationHighlight"
	}
}

Erstaunlich ist, das dieses verhalten tatsächlich nur die Seiten mit mehreren Nutzergruppen betrifft. Alles andere funktioniert wie gehabt.

Völlig Ratlos,
Storm

DaSilentStorm ·

So, hab den Fehler endlich selbst gefunden. Die ID für's Highlighting wird berechnet, bevor die Extension überhaupt ausgeführt wird, was dazu führt, dass mit dem alten Zugriffsschema die Seite ermittelt werden soll. Diese kann dann natürlich nicht gefunden werden, also auch kein Highlighting.

Der Trick ist, vor dem Aufruf der der Parent-Funktion die aktuelle Seiten ID zu speichern und anschliessend die Methode

$this->getPageAndRootlineWithDomain($this->domainStartPage);

erneut aufzurufen.

Bei Fragen, einfach fragen,
Greetz,
Storm