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

Steffen Liebig steffen.liebig at gmx.de
Tue Oct 16 15:30:22 CEST 2012


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