Hallo zusammen.
Habe auf einer Unterseite mehrere Akkordeons und möchte - jenachdem, über welchen Link ich komme - das "richtige" Akkordeon bereits geöffnet haben.
Meine Google-Suche hat mich auf die Seite von Bugbuster geführt (http://www.contao.glen-langer.de/akk...en-lassen.html) und ich habe das dort dargestellt Script implementiert... KLAPPT WUNDERBAR! (Danke schonmal dafür!)
Mein Problem ist nun, dass bei diesem Ansatz "starr" die Anzahl der Akkordeons durchgezählt wird (0, 1, 2, ...). Will ich das 3. Akkordeon öffnen, verlinke ich per "http://...?aid=2".
Auf meiner Unterseite (Stellenanzeigen) sollen später jedoch - je nach Bedarf - neue Akordeons hinzukommen/entfernt werden. Dies bedeutet, dass sich die Reihenfolge ändert und ich dementsprechend ständig von Hand die Link-aids anpassen müsste.... (Was auf Dauer zwangsläufig ins Chaos führen wird!)
Gibt es da eine "elegantere" Lösung?
Mein Ansatz wäre:
- ich gebe jedem Akkordeon eine eindeutige CSS-ID, z.B. "malermeister", "baecker", etc.
- im Quellcode erhalte ich beim entsprechenden Akkordeon somit etwas wie <section id="baecker" class="ce_accordion block">
- die ID hänge ich dann als Anker an meinen Link, also so: <a href="karriere.html#baecker">Bäcker</a> (hat den positiven Nebeneffekt, dass das als Sprunglink fungiert und ich dadurch auf meiner Folgeseite gleich an die richtige Stelle springe)
- Bugbusters PHP-Script müsste dann so aufgebohrt werden, dass es sich
a) den Anker aus der URL zieht,
b) diesen mit den Akkordeon-IDs abgleicht und dann
c) bei display: <?php echo $aid; ?>, die entsprechende Zahl einfügt
Somit würde man auf Basis der einmal vergebenen ID jeweils "in Echtzeit" die zugehörige aid bestimmen und müsste nicht darauf achten, ob sich die Reihenfolge der Akkordeons aus irgendeinem Grund geändert hat...
Soweit die graue Theorie...
Problem: meine Fähigkeiten reichen bei weitem nicht aus, um so etwas prograsmmiertechnisch umzusetzen!
Daher mal meine Frage in die Runde... Ist das:
a) überhaupt ein sinnvoller/möglicher Ansatz - oder bin ich irgendwo völlig auf dem Holzweg und
b) sind das womöglich 8 Zeilen Code, die aus
PHP-Code:
<?php
$aid = '-1'; // default all closed
//$aid = '0'; // default first open
if ( is_numeric($this->Input->get('aid')) )
{
$aid=(int)$this->Input->get('aid');
}
?>
.
.
.
display: <?php echo $aid; ?>,
die entsprechende Lösung bringen? Oder ist das aufwändiger (bzw. womöglich garnicht umsetzbar)?
Bin gespannt auf euer Feedback gespannt...
Lesezeichen