Zum Inhalt springen

Flexform Felder in Backend & Frontend

Erstellt am 22. April 2015 · 4 Antworten · letzte Antwort am 24. April 2015

Tags: Fluid, FlexForms, TYPO3 6.x, Frage

ironpfu ·

Hallo zusammen,

ich bin gerade dabei mich in Extbase, Fluid, Flux, etc. einzuarbeiten.
Bitte steinigt mich nicht, aber ich habe ein Verständnisproblem:
Ich möchte gerne meine Extbase Extension um ein Flexform Feld erweitern, welches ich dazu nutzen möchte, um zukünftige Daten flexible und schnell zu meinen Model hinzufügen zu können. Die Eingabemasken (Input,Select,etc.) funktionieren im BE bereits und ich kann mir auch die entsprechenden Daten im FE ausgeben lassen.

Nun möchte ich aber auch im FE die Möglichkeit haben die Daten zu bearbeiten/ändern.
Die FLUX Formen werden aber nicht gerendert.
Meine Frage: Ist eine Bearbeitung der des FCE im FE mittels FLUX überhaupt möglich?
Wie kann ich FCE Daten im BE und FE bearbeiten?

Folgendes Bsp. rendert die Felder im BE und zeit die Daten im FE:

<f:layout name="Content" />

<div xmlns="http://www.w3.org/1999/xhtml" lang="en"
      xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers"
      xmlns:flux="http://typo3.org/ns/FluidTYPO3/Flux/ViewHelpers"
      xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers">

	  
	<f:debug>{field1}</f:debug>  

    This text will be rendered as preview.<br />
    Field 1: <f:for each="{field1}" as="field" iteration="iteration">
        {field}<f:if condition="{iteration.isLast}" else=" - " />
    </f:for><br />
    Field 2: <f:if condition="{field2}" then="{field2}" else="No value entered" />


	<flux:field.input name="field1" />

	<flux:form.sheet name="tab1" label="Tab 1">
		<flux:field.input name="field1" label="Enter CSV value" transform="array" />
	</flux:form.sheet>

	<flux:form.sheet name="tab2" label="Tab 2">
		<flux:field.input name="field2" label="Field in tab 2" />
	</flux:form.sheet>






</div>
volk0r ·

hi,

du musst deine formulare usw mit den fluid viewhelpern bauen (f:input usw) um diese dann an eine spezielle action in deinem controller zu sehen (updateAction beispielsweise)

lg, volker.

ironpfu ·

Danke für die schnelle Antwort.

Flux rendert mir zwar die einzelnen Felder und ich kann diese auch in ein Formular einabauen.
Aber nicht an die UpdateAction übertragen, da diese ja kein Eigenschaft meines Models ist:

<f:form action="update" id="variables">
  <f:form.textfield id="field2" value="{field2}" />
  <f:form.submit value="Absenden" />
</f:form>
public function updateAction() {
            
                 $args = $this->request->getArguments();
		\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($args);
	}

Es kommen keine Argumente (ausnahme Controller und Action Namen) an....
Zudem ist mir völlig unklar wie die Daten ann im Controller wieder in das Flexform Feld kommen....

Ich habe aufgrund meiner geringen Erfahrung anscheinend ein echtes Verständisproblem.

Ich möchte in meiner Extension innerhalb meines Models ein Flexform Feld.
Die einzelnen FormElemente der Flexform sollen sowohl über das BE als auch über das FE editiert werden können. Geht dies überhaupt?

Im BE ist mir das soweit klar. Ich kann die Daten auch im FE darstellen.
ABER wie gestalte ich Formularfelder für die Flexform im FE?

Ich dachte mit Flux/Fluid geht das sehr einfach:
https://fluidtypo3.org/documentation/templating-manual/advanced-provider-extensions/custom-flux-controllers/use-cases-for-controllers.html

Bin ich dabei komplett am falschen Weg?
Kennt jemand eine Extension an der man sich orientieren kann?

jenses · · Beste Antwort
ironpfu schrieb

Bin ich dabei komplett am falschen Weg?

Ja.
flux/fluidpages/fluidcontent etc. sind ein Templating-Framework,
um innerhalb einer sogenannten Providerextension Templates für Seiten und spezielle Inhaltselemente bereitzustellen, wie z.B. im fluidbootstraptheme.
Dabei dienen die per flux generierten Flexforms zur Konfiguration dieser Seiten und Inhaltselemente im Backend.

Irgendeine Extension, die im Datenmodell ein Feld vom Typ flex nutzt,
ist mir nicht bekannt.

ironpfu ·

Vielen dank für diese info. Ich habe gestern ebenfass im extbase api nachelesen und festgestellt, dass flex niemals für datenmodelle verwendet werden. Somit müssen änderungen oder erweiterungen an feldern immmer im datenmodell eingearbeitet werden.

Lg ironpfu