Ich ging von der oberen Tabelle aus. Der ganze Code wie beschrieben muss
in jeder Spalte wiederholt werden (5*), wobei nur die UID des Bezirks
ändert. Der Vergleich ist nummerisch und funktioniert so. Es wird
überhaupt nicht sortiert, sondern die Bezirke werden in Folge des ersten
Auftretens angezeigt (vereine.uid). Daher müssen für jeden Bezirk alle
Vereine durchlaufen und nur die passenden angezeigt werden.
Am 16.10.2012 15:30, schrieb Steffen Liebig:
Hallo Thomas,
ich hatte bei weiterem Querlesen was Ähnliches gefunden. Da stand, dass
die if condition nicht mit einem String vergleicht, man müsse das
angeblich beides in ein Array verwandeln. Wie auch immer...ich habs
gelassen wie's iss und erhalte eine senkrechte Aufstellung in derselben
Reihenfolge wie vorher.
Lagere ich dann noch die Gruppierungsschleife in die Tabellenzeile aus,
kommt die Tabelle raus, die Du auf der Seite ganz oben siehst. Das wäre
dann dieses - die condition kommt also nicht zum Tragen:
<table>
<tr><f: groupedFor...>
<td><derganzeRest></td>
</f:for>
</tr>
</table>
Dummerweise ist nicht rauszufinden, wonach hier überhaupt sortiert wird.
Weder die Datenbank selbst noch das BE geben Aufschluss, woher diese
Sortierung kommt - ich kann auch ändern, was ich will, das FE rührt sich
keinen Millimeter.
Ich hab das dann erstmal ad acta gelegt und was gesucht, das mir des
Platzes wegen nur jeweils 2 Bezirke pro Zeile anzeigt.
Die zielbezogen leider ebenso wenig funktionsfähige Idee war diese:
<f:groupedFor each="{vereines}" as="clubs" groupBy="kategorie"
groupKey="kategorie">
<f:if condition="{kategorie} % 2"></f:if>
<div style="float:left margin-left:30px">
<f:then>
<h3>{kategorie.bezirk}</h3>
<f:for each="{clubs}" as="club">
<f:link.action action="show" arguments="{vereine :
club}">{club.vereinsname}</f:link.action></br>
</f:for>
</f:then>
</div>
</f:groupedFor>
Dabei war im Original die condition sogar in den div-Befehl eingebettet.
Ich möchte erreichen, dass nur 2 Bezirke pro Zeile angezeigt werden. Der
Grund ist, dass ich verhindern will, in kleineren Fenstern gleich die
komplette Mittelspalte nach unten verschoben zu bekommen. Wenn schon
flexible Seite, dann richtig *g*.
Ich fasse mal zusammen, was der Idealfall wäre:
- Bezirke in der richtigen Reihenfolge
- Vereine alphabetisch (evtl könnte ich Kürzel wie "SC" in ein eigenes
DB-Feld auslagern, nach der Stadt muss dann immer noch sortiert werden)
- 2 Bezirke pro Zeile (wenn genug Platz, gehen auch 3)
Momentan schaue ich jedoch schon dumm aus der Wäsche, wenn ich mich dem
auch nur annähern will *grummel*.
Cu, Steffen
Am 16.10.2012 11:23, schrieb Thomas Nussbaumer:
Hallo Steffen
Ich sehe dass du ein schönes Stück weiter bist. Leider kann Extbas nicht
einfach nach einer Relation sortieren. Um die gewünschte Reihenfolge der
Bezirke zu erreichen, kannst du etwa folgendes in jede Tabellenspalte
schreiben, mit der entsprechenden UID des Bezirks in condition:
<td ,,,,, >
<f:groupedFor each="{vereines}" as="clubs" groupBy="kategorie"
groupKey="kategorie">
<f:if condition="{kategorie.uid} == 1">
<h3>{kategorie.bezirk}</h3>
<f:for each="{clubs}" as="club">
<f:link.action action="show" arguments="{vereine : club}"
{club.vereinsname}</f:link.action></br>
</f:for>
</f:if>
</f:groupedFor>
</td>
Ich hoffe, dass so die richtige Darstellung entsteht.
Gruss. Thomas
Am 15.10.2012 19:15, schrieb Steffen Liebig:
Hallo Thomas,
dies kam raus:
<td>Bezirk I (Kaiserslautern)</br></br>
<f:groupedFor each="{vereines}" as="clubs" groupBy="kategorie"
groupKey="kategorie">
<tr>
<th>{kategorie.bezirk}</th>
</tr>
<f:for each="{clubs}" as="club">
<f:link.action action="show" arguments="{vereine :
club}">{club.vereinsname}</f:link.action></br>
</f:for>
</f:groupedFor>
</td>
-->
SC Caissa Jockgrim
Turm Kandel
SC Herxheim
SK Ludwigshafen
SC 1975 Bann e.V.
SF Althornbach
SK Dahn
VfR Baumholder
Bezirk I (Kaiserslautern)
Bezirk IV
Bezirk II-III
Bezirk I
Bezirk V
Bezirk VI
- Clubs verlinkt zur Einzelansicht, das ist ok
- Bezirke unverlinkt, jup
- hmmm...Letztere als Unterliste von Bezirk I und beide (Gesamt-)Listen
einzeln (Vereine ganz oben ? *seltsam, grübel, verwirrt guck*
siehe: http://www.pfaelzischer-schachbund.de/typo3/index.php?id=38 ganz
oben
...ist insofern ein Fortschritt, als dass die Bezirksbezeichnungen
dabei >>> <f: if condition="{0:vereine.kategorie} == {0:'1'}">
sind. Über 2 Tabellen weg war mir bislang nicht vergönnt :-). Bleibt
noch die Frage, wie man die Clubs unter den richtigen Bezirksnamen
bekommt, oder wartet an der Stelle noch die condition ?
Cu, Steffen
Am 15.10.2012 18:30, schrieb Thomas Nussbaumer:
Hi Steffen
Versuch mal folgendes:
I) groupedFor
>
> <td>Bezirk I (Kaiserslautern)</br></br>
> <f:groupedFor each="{vereines}" as="clubs"
> groupBy="kategorie" groupKey="kategorie">
> <tr>
> <th>{kategorie.bezirk}</th>
> </tr>
> <f:for each="{clubs}" as="club">
> <f:link.action action="show" arguments="{vereine :
> club}">{club.vereinsname}</f:link.action></br>
> </f:for>
> </f:groupedFor>
> </td>
Ich habe II für groupedFor als Vorlage verwendet:
> II) if condition
>
> <td>Bezirk II/III (Nord-Ost)</br></br>
> <f:for each="{vereines}" as="vereine">
Gruss. Thomas
Am 15.10.2012 15:45, schrieb Steffen Liebig:
>
Hallo zusammen,
ich habe mich ziemlich "umgelesen", bin aber nicht wirklich
weitergekommen. Meine Extension zur Anzeige von Vereinsdaten lässt
sich
auch nach 2 Wochen immer noch nicht dazu überreden, eine nach Bezirken
gegliederte Liste auf den Schirm zu bringen.
Kurz als Rückgriff/ Zusammenfassung:
- 2 Tabellen
-> Vereine (Felder für Name, Ansprechpartner, Jugendleiter usw,
dazu die Relation "kategorie")
-> Kategorie (Bezirk, dazu die Relation "Vereinsdaten")
- n:1-Beziehung Vereine/Kategorie
- 1:n extra in die andere Richtung
Letztere ist rein logisch unnötig. Hat sich irgendwie ergeben und dazuIt took
me even up to a week. 've Tried everything! Wait and see.
geführt, dass ich die Vereine auch innerhalb der Kategorie eingeben
kann. Vielleicht hat das vereinfachende Auswirkungen auf das Auslesen
der UiD (-> Schleifen) oder sogar der Bezirksbezeichnung ?! Ist nur so
ein Gedanke...derzeit holt sich die Vereinstabelle nur die UiD der
Kategorie und packt sie in ein Extrafeld in der Datenbank. Daraus
ergaben sich die unten aufgeführten Versuche mit Schleifen und
Conditions. Ideal wäre, wenn die Extension mivereiner das Ganze
selbständig
abhängig von der Bezirksbezeichnung tabellarisch anzeigen würde
(Städte
alphabetisch ?!, momentan sind Kürzel wie "SC" Teil der Vereinsnamen).
Folgende Ideen habe ich getestet - die Bezirks-Überschriften sind hier
nur als Orientierung auf dem Bildschirm gedacht...wenn ein Weg klappt,
kann ichs rüberkopieren und den Bezirk anpassen:
-- Das vorläufige Resultat findet sich auf
http://www.pfaelzischer-schachbund.de/typo3/index.php?id=38 (Anzeige
von
links nach rechts) --
I) groupedFor
<td>Bezirk I (Kaiserslautern)</br></br>
<f:groupedFor each="{vereine.vereinsname}" as="clubs"
groupBy="{vereine.kategorie}" groupKey="{vereine.kategorie}">
<tr>
<th>{vereine.kategorie}</th>
</tr>
<f:for each="{clubs}" as="club">
<f:link.action action="show" arguments="{vereine :
vereine}">{vereine.vereinsname}</f:link.action></br>
</f:for>
</f:groupedFor>
</td>
...Ergebnis: wird nix angezeigt
II) if condition
<td>Bezirk II/III (Nord-Ost)</br></br>
<f:for each="{vereines}" as="vereine">
<f: if condition="{0:vereine.kategorie} == {0:'1'}">
<f: then><f:link.action action="show" arguments="{vereine
: vereine}"> {vereine.vereinsname}</f:link.action></br></f: then>
<f: else> Keine Vereine in Kategorie 1 !</f: else>
</f: if>
</f:for>
</td>
Da dieser Weg nicht auf Vergleiche mit strings anspricht, muss man die
Kriterien angeblich als arrays verpacken (?!).
Ergebnis: es wird ALLES angezeigt, was in der Schleife auftaucht -
auch
bei Vereinen, die tatsächlich in Bezirk I sind. Kurioserweise stehen
die
Abschlusstags in der Schleife IN ROT im Code. Muss man diese Befehle
nicht beenden ? Seltsam...
III) geschachteltes for each
<td>Bezirk IV (Landau)</br></br>
<f:for each="{vereine.kategorie}" as="kategorie">
{vereine.kategorie}
<f:for each="{vereines}" as="vereine">
<!--<f:link.action action="show" arguments="{vereine :
vereine}"> {vereine.kategorie}</f:link.action>-->
<f:link.action action="show" arguments="{vereine :
vereine}"> {vereine.vereinsname}</f:link.action></br>
</f:for>
</f:for>
</td>
Ergebnis: der Block im Frontend bleibt leer.
Da auch sämtliche Programmierversuche (z. T. über mehrere Dateien -
neue
Funktion erstellen etc -) im Sande verlaufen sind, bin ich langsam am
Verzweifeln.
Hat wirklich niemand eine Idee, wie sich dieses Problem lösen lässt ?
Cu, Steffen
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german