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