gut ich müsst mir dafür nochmal die template klasse anschauen und wissen welche struktur die übergebenen argumente haben und so pullerkram
aber um dir vielleicht aus deiner verwirrung zu helfen
explode ('|',$string)
erzeugt aus einem string der durch "|" getrennt ist einen array.
z.b. "bla|blu|ble|bli" erzeugt dir einen array mit 4 werten.
dadurch das sie list() zugewiesen werden werden die schlüssel in der reihenfolge in der sie im array liegen den werten $wmpA, $wmpE, $wmpTE und $wmpTEE zugewiesen
so wäre $wmpa mit dem wert "bla" gefüllt
so wäre $wmpE mit dem wert "blu" gefüllt
so wäre $wmpTE mit dem wert "ble" gefüllt
so wäre $wmpTEE mit dem wert "bli" gefüllt
so, nun zum argument von explode, $tpl->list_get().
schau dir die funktion mal in der template klasse an (glaube die ist da drin)
nun nehme ich mal das zweite argument der funktion auseinander.
array ($menuTarget, ($subhauptx == 8 ? '' : 'index.php?') . $row['path'], $row['name'], ((($row['pos'] == $act_pos) or ($row['pos'] == $todel_before and $row['ebene'] == 0)) ? 'active' : 'inactive'))
hier wird einfach ein array mit werten gefüllt, der zweite wert des arrays ist nichts weiter als eine gekürzte if abfrage.
($subhauptx == 8 ? '' : 'index.php?')
ist identisch mit
if($subhauptx == 8){ ''; }else{ 'index.php?'; }
heißt der zweite wert des arrays ist entweder leer oder "index.php?"
danach wird der pfad an den string gehangen mithilf des verbindungsoperators "." (konkentenation).
der vierte array schlüssel ist analog zu dem zweiten schlüssel zu interpretieren, er ist entweder active oder inactive.
so, nachdem ich das hier gelesen habe glaube ich das du für deine ziele (übergeordneten und untergeordneten punkt mit der active klasse zu versehen) die $tpl->list_get() funktion erweitern.
das solltest du aber seien lassen da vielleicht noch andere dateien diese funktion benutzen.
kopiere diese funktion am besten und passe eine kopie davon an und verwende diese an entsprechender stelle, das sollte dir weniger kaputtmachen.
ansatz 2 ist mittels javascript framework sich vom active child zum parent hochzuhangeln und dann den parent per dom inject mit der active klasse zu versehen.
in jQuery wäre das z.b.
$('li.active').parent().parent().addClass('active');
... das der code in dieser form geht, garantiere ich nicht!
aber dies ist der ansatz den parent mittels JS nachträglich zu manipulieren ohne den PHP/HTML code anfassen zu müssen.
MfG annemarie
P.S.: wenn manche sätze nicht beendet sind, sorry, ich fall jetzt ins bett!
Zuletzt modifiziert von annemarie am 17.02.2010 - 00:32:51