[TYPO3-german] Fluid checkbox mit checked-Vorbelegung geht nicht
Stefan Padberg
post at bergische-webschmiede.de
Wed Nov 19 14:16:13 CET 2014
Äh, das ist doch der fundamentale Unterschied bei meiner Lösung: kein
extra Viewhelper!
Gruß
Stefan
Am 19.11.2014 um 00:48 schrieb g4-lisz at tonarchiv.ch:
> 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
>>>
>>>
>>
>>
>
--
Bergische Webschmiede
Typo3 Dienstleistungen
:: Dipl.-Ing. Stefan Padberg
:: www.bergische-webschmiede.de
---
Diese E-Mail ist frei von Viren und Malware, denn der avast! Antivirus Schutz ist aktiv.
http://www.avast.com
More information about the TYPO3-german
mailing list