Hallo!
setze in einen Marker im root-template ein Breadcrumb (rootline) Menü.
Das zeigt die normalen statischen Seiten an, soll aber um dynamische Inhalte einer Extension ergänzt werden.
Z.B.
home > produkte > autos > bmw > 320i
(fett => Ergänzung aus Extension)
Wie kann ich in der Extension den gerenderten Inhalt ("home > produkte") abgreifen, erweitern und in die Seite schreiben?
Geht das überhaupt irgendwie oder kann ich das anders lösen?
Danke!
Grüße, Ext.22
Du kannst doch von deiner Extension aus über $GLOBALS['TSFE'] auf die komplette Rootline zugreifen.
Da ziehst du dir die entsprechenden Seitentitel raus und bastelts dir deine
breadcrumb zusammen.
jenses
Hi Jenses,
danke!
Die Extension ist nur auf einer Seite. Auf den anderen müßte aber die normale rootline stehen. Daher habe ich das bisher verworfen.
Derzeit mache ich das so, indem nach dem Breadcrumb noch ein Marker steht ###BC_EXT###.
Ein userscript, das im root eingebunden ist, füllt das, wenn bestimmte Parameter gefunden werden, auf.
Funktioniert einwandfrei.
Weil die Funktion aber definitionsgemäß zur Extension gehören müßte, finde ich das unsauber.
Andererseits muß das Breadcrumb auch auf Seiten ohne dieser Extension aufgebaut werden.
Grüße, Dirk
Na, dann gibts du auf den normalen Seiten die breadcrumb herkömmlich aus,
auf der Seite mit der Extension eben über die Extension.
Da brauchst du doch für diese Seite nur eine kleine Änderung im Template.
[edit] Die eleganteste Lösung wäre allerdings, wenn du die breadcrumb ganz normal erzeugst und stattdessen $GLOBALS['TSFE'] aus deiner Extension mit zusätzlichen Werten füllst, also die "Seiten" BMW --> 520i in die Rootline mogelst. $GLOBALS['TSFE'] ist ja nur ein großes Array, warum sollte man das nicht noch ein bißchen größer machen können. ;-)[/edit]
[edit2] Variante zwei wäre die, die Funktion, die die breadcrumb-Navi erzeugt, abzuändern, daß sie BMW --> 520i aus der DB ausliest und hinten dran hängt.[/edit2]
jenses
Hi Jenses,
Danke!
...$GLOBALS['TSFE'] aus deiner Extension mit zusätzlichen Werten füllst...
Ganz genau, da sind wir uns völlig einig!
Und jetzt stehe ich wieder an der Stelle, wo ich in $GLOBALS['TSFE'] zwar sämtliche Einstellungen und mein ganzes Setup finde, jedoch nicht die Inhalte, die da rein gerendert werden. Wie komme ich denn an die Strings (z.B. "Home" und "Produkte") ran?
Und dann stellt sich nochmal die Frage vom ersten Posting (Geht das überhaupt?): Kann ich an der Stelle/also zum Zeitpunkt des Aufrufes der Extension überhaupt noch was beeinflussen?
Habe einfach mal spaßeshalber über die Extension im Setup was geändert und das zeigte keine Wirkung...
Grüße, Ext.22
"Home" & "Produkte" sollten in dem Array zu finden sein, vielleicht ein bißchen schwer, weil es so riesig ist ;-).
Ich glaube auch, daß "Variante zwei" einfacher umzusetzen wäre.
Es müßte ja nur die zuständige Klasse/Funktion erweitert werden,
zusätzliche Strings anzuhängen.
jenses
Hi Jenses,
ja, komme über
$GLOBALS['TSFE']->rootLine[$curLevel]['title']
an alles ran.
hatte vorher nur an der falschen Stelle gesucht.
Aber meine Befürchtung, daß ich an der Stelle nichts mehr tun kann, trifft wohl zu...
Habe das Thema auf meiner ToDo-Liste ganz nach hinten geschoben, weil es nur eine user_ extension ist und das ganze eine strukturelle Schönheitsoperation.
Unsere Diskussion ist aber vielleicht auch für andere Mitleser aufschlußreich...
Danke nochmal!
warum benutzt Du nicht einfach stdWrap-propertties?
HMENU hat stdWrap
stdWrap.append.cObject = USER
und sozusagen einfach dem breascrumb was hinzufuegen??