Alphabetische Übersicht auf mehrere Listen verteilen
Es gibt ein Update zum Plugin Alpha List. Dort in den Kommentaren wurde gefragt:
an einer sache scheitere ich aber seitdem und bin mir nicht mal sicher, ob es momentan möglich ist.
ich würde gerne als endergebnis eine art tabelle haben (sprich bsp. a-j in spalte 1 j-s in spalte 2 und s-z in spalte 3. vllt. kannst du mich ja auf den rechten weg führen.
Meine Antwort:
Mit dem Firefox kann man jetzt schon CSS3 nutzen und der Liste die CSS-Anweisung
.abc-list {-moz-column-count: 3;}verpassen.
war etwas unbefriedigend. Daher bin ich dem zweiten Lösungsansatz nachgegangen:
Man könnte dem Plugin noch weitere Parameter
anfangundendemitgeben, um dann drei Listen ausgeben zu lassen, die man mitfloat:left;nebeneinander positioniert.
Mit Hilfe der zwei neuen Parameter $start und $ende kann die Liste auf einen Teilbereich (z.B. Buchstaben A-G) beschränkt werden.
Eine Ausgabe der Liste in drei Spalten geht dann z.B. so:
<?php if ( function_exists ('alpha_postlist')) { alpha_postlist(0,1,'A','G'); alpha_postlist(0,1,'H','O'); alpha_postlist(0,1,'P','Z'); } ?>
Mit der CSS-Anweisung
.abc-list {float:left;width:150px;}
sind die drei Listen dann nebeneinander…
matthias, großartig. sehe es jetzt gerade und danke dir recht herzlich!!!
ich teste es gerade und ist wirklich klasse. vielen dank.
eine frage beschäftigt mich momentan aber noch. gibt es die möglichkeit, anstatt 1,2,3,4,5,6,7,8,9 jeweils einzeln ausgeben zu lassen, diese als # zusammenzufassen?
vielen dank!
Möglich ist das natürlich, aber erst beim nächsten Update
Praktisch wäre es, wenn man die zu übergebenden Parameter direkt in den Seitentext schreiben könnte, statt die PHP-Sequenz hardcodiert ins Template schreiben zu müssen. Ich würde gerne pro Buchstabe eine eigene Seite haben (für ein Lexikon). Jetzt muss ich für jeden Buchstaben ein eigenes Template anlegen. Könnte man die Parameter direkt aus den Seitenformularen übergeben, würde ein einziges genügen.
Man könnte dann z.B. einfach “[[listalpha: 12, true, A, B]]” in das Formularfeld schreiben. Müsste eigentlich gehen, oder?
Vielleicht hats du ja beim nächsten Update Lust und Zeit für sowas.
Möglich wäre das. Ich würde das auf den ersten Blick aber über in der URL übergebene Parameter lösen:
Aufruf dann mit:
Dann braucht man nicht 26 Seiten anlegen
Und wie stellt man das an? Wenn ich im Backend eine Seite anlege mit dem Titel “A”, dann ist die URL http://www.example.org/lexikon/a/ Wie gebe ich der dann GET-Parameter mit? Abgesehen davon müsste die ja streng genommen erst validieren, bevor sie vom Script verwurstet werden. Oder überseh ich was?
“Abgesehen davon müsste die ja streng genommen erst validieren,” Die GET-Variablen meine ich, die müsste man erst prüfen, damit kein Unfug eingeschleust werden kann..
Nein, eine Seite ‘lexikon’ anlegen, die im Seitentemplate so etwas wie den folgenden Code enthält:
Aufruf mit
lexikon/?start=A&end=A. Vielleicht reicht die Validierung so schon aus.Sicherheitshalber kann man noch
einbauen. Gerade getestet, scheint zu funktionieren
Ja, ok. Aber wie rufe ich die Seiten dann auf? Ich kann ja keine Seiten mit querystring anlegen. Man müsste dann die GET-Variabeln jedesmal per Hand in die Adresszeile tippern. Oder?
Nein, das ist ja gerade der Vorteil der beschriebenen Variante. Man kann auch die Links per Skript erzeugen. Die folgende Funktion gibt eine alphabetische Navigationsleiste aus (z.B. in der Plugin-Datei oder der functions.php des Theme definieren):
Sie muss vor dem Code oben einmal aufgerufen werden:
So ungefähr dachte ich mir das
Aaah jaa, jetzt versteh ich, auf was du hinaus willst. Clevere Idee, wenn auch der Codeschnipsel oben einen Syntaxerror bringt. Allerdings hat mein Vorschlag mit dem Hook in Einzelseiten für jeden Buchstaben den Vorteil, dass man auch mal eintragsschwache Buchstaben auf einer Seite zusammenfassen kann. Seite X-Z bspw.
Syntaxfehler? Liegt vielleicht an dem von WordPress entstellten einfachen Anführungszeichen…
Hook? Ok, ich denk’ beim nächsten Update mal drüber nach
[...] Aufteilung in mehrere Teillisten ist seit Version 0.2 [...]