[TYPO3-german] eigene Extension Extbase/Fluid, kategorieweise Vereinsliste -> meine Frau, die Ilsebill *grummel*

Thomas Nussbaumer typo3 at thomasnu.ch
Tue Oct 16 11:23:25 CEST 2012


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 dazu
>>> 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
>>
>



More information about the TYPO3-german mailing list