Sehe jetzt nicht wirklich, wo der Unterschied zu meiner Lösung ist
(außer, dass ich den Viewhelper verwendet habe)...

Grüße,
till

On 11/18/2014 02:12 AM, Stefan Padberg wrote:
> Ich habs hinbekommen, aber fragt nicht nach Sonnenschein: das war eine
> Ochsentour. Ich kann das hier nicht in allen Details beschreiben. Das
> wird zu ausführlich. Die Botschaft ist: es geht.
>
> Und wer grad mit demselben Problem kämpft, der wird die folgende
> Beschreibung nützlich finden, denke ich. Ausganspunkt ist dabei die
> Beschreibung im Typo3Wiki:
> http://wiki.typo3.org/TYPO3_6.0#Adding_categories_to_own_models_using_Extension_Builder
>
>
> Aufgabenstellung ist, die Fluidtemplates so anzupassen, dass man
> Kategorien im Frontend mit Checkboxen(!) setzen kann.
>
> 1. Man muss statt property="categories"
> name="meinObjekt[categories][]" nehmen, damit man die
> Kategorie-Variable als Array aufbauen kann.
>
> 2. Bei dem eigens erzeugten Array mit dem Kategorienbaum darf man die
> uid (für den value) und title (für das Label) nicht direkt übergeben,
> sondern man muss das Kategorie-Objekt in den Kategorienbaum übergeben
> und sich daraus die uid und den title fischen.
>
> 3. Es scheint von Bedeutung zu sein, dass im TCA des Objektes der
> 'categories'-Array nicht gefüllt ist. Im BE ist es egal, denn da wird
> es von makeCategorizable() überschrieben, aber im FE scheint das
> irgendwelche ungünstigen Auswirkungen zu haben.
>
> 4. Wenn die Checkboxen im Edit-Formular mit den eingebenen Werten
> vorbelegt sein sollen, muss man sie als input-Tags aufbauen und die
> Vorbelegung über eine f:for-Schleife ausfiltern:
>
> <input type="checkbox"
> name="pluginName[meinObjekt][categories][]"
> value="sysCategory.object.uid"
> <f:for each="{objekt.categories}" as="category">
> <f:if condition="{sysCategory.object.uid}=={category.uid}">
> checked="checked"
> </f:if>
> </f:for>
> />
> (Sehr crazy, aber funktioniert! Mit inline-Notation habe ich es nicht
> hinbekommen. Erstaunlich, dass es mit der Klammer-Notation funktioniert.)
>
> Mit dem f:form.checkbox-Viewhelper ist es mir nicht gelungen.
>
> Um die input-Tags dann korrekt in das Formular einzubinden, muss man
> noch ein hidden-Feld einbauen mit
> name="pluginName[meinObjekt][categories]" (ohne zusätzliche
> rechteckige Klammer!). Über den propertyMapper habe ich das auch nicht
> hinbekommen, der hat immer eine property "0" angemeckert.
>
>
>
> Und wenn  man dann noch die Tippfehler beseitigt hat, kann man die
> System-Kategorien für das Objekt im Frontend setzen. Su-per-geil!
>
> Beste Grüße
> Stefan
>
> Am 13.11.2014 um 19:22 schrieb Stefan Padberg:
>> Hi,
>>
>> hier gibt es ein Problem mit den Fluid-Checkboxen.
>>
>> Das Objekt kann mehrere Kategorien (von 'sys_categories') haben. Im FE
>> ist ein Edit-Formular, mit dem die Kategorien gesetzt werden können. Das
>> funktioniert.
>>
>> <f:for each="{sysCategories}" as="sysCategory">
>> <f:form.checkbox property="categories" value="{sysCategory.uid}" />
>> </f:for>
>>
>> {sysCategories} ist ein eigens erzeugtes Array, mit dem Kategorienbaum
>> mit seinen Ebenen nachgebildet wird.
>>
>> Aber die Checkboxen sind nicht vorbelegt.
>>
>> Die Vorbelegung bekomme ich in, wenn ich das Formular mit dem input-Tag
>> aufbaue und eine verschachtelte f:for-f:if-Konstruktion für die Abfrage
>> der Objekt-Kategorien mache. Aber damit wird der selektierte Wert nicht
>> im Objekt abgespeichert.
>>
>> Hat jemand so etwas schonmal gemacht und kann hier helfen?
>>
>> Beste Grüße
>> Stefan
>>
>>
>
>

_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an