[TYPO3-german] Flexforms oder TCA

Birgit lists at berlin-typo3.de
Fri Nov 10 11:51:54 CET 2017


Hallo Cigdem,

der klassische Weg für die Pluginentwicklung:

Wenn du Werte in einzelne DB Felder speichern willst - als Bestandteil eines Datensatzes - benutzt du ein TCA Feld, das genau diesem DB Feld zugeordnet ist.

Wenn du Einstellungen für die Ausgabe deines Plugins im Frontend steuern willst, benutzt du Flexform.

Das gesamte Flexform - also die komplette XML-Struktur, wird in einem einzigen Feld gespeichert (tt_content.pi_flexform).

Das betrifft z.B. die Auswahl von Templates, die Auswahl von Datensatzordnern usw.

Im alten piBase und aktuellen Extbase kannst du auf diese Einstellungen direkt zugreifen.

In Extbase normalerweise settings.irgendwas


im Flexform:

<settings.singlePid>
    <TCEforms>
        <label>LLL:EXT:extname/Resources/Private/Language/locallang_flexform.xlf:flexform_pages.settings.singlePid.label</label>
        <config>
            <type>group</type>
            <internal_type>db</internal_type>
            <allowed>pages</allowed>
            <size>1</size>
            <maxitems>1</maxitems>
            <minitems>0</minitems>
            <show_thumbs>1</show_thumbs>
        </config>
    </TCEforms>
</settings.singlePid>

<settings.irgendwas>
...
</settings.irgendwas>

class MeinController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {

     /**
 * action list
 *
 * @return void
 */
public function listAction() {
$this->view->assign('settings', $this->settings);
}

}

im Fluid Template:

<f:link.typolink parameter="{settings.singlePid}“>
{settings.irgendwas}



Anders ist es z.B., wenn du die Extensions fluid_content oder templaVoila benutzt und damit Contentelemente erzeugst.
Da wird mit XML-Strukturen statt einzelner DB Felder gearbeitet.

viele Grüße
Birgit





> Am 10.11.2017 um 10:36 schrieb M. Cigdem Klengel <m.c.klengel at ifw-dresden.de>:
> 
> Hallo,
> 
> vermutlich habe ich es unglücklich formuliert. Ich möchte das Plugin über ein Contenelement einbinden. Im Dropdownmenü wählt der Nutzer mein Plugin aus, daraufhin soll sich die Oberfläche ändern und der Nutzer soll kleine Anpassungen machen können. Somit soll es nicht direkt ein eigenes Contentelement sein, sondern weiterhin ein Plugin mit Bearbeitungsmöglichkeit.
> 
> Im Prinzip so wie hier beschrieben (unten bei Flexforms)
> http://t3-developer.com/ext-programmierung/plugins-erstellen/plugins-flexforms-registrieren/
> Also .xml-Datei erstellen, in ext_tables registrieren und fertig.
> 
> Aber ich weiß nicht wie ich den Wert dann aus der Flexform heraus in der Datenbank speichern soll. Schreibe ich dafür eine Controllerfunktion, die sich den Wert beim Abspeichern des Contentelements holt und ablegt? Beim Laden der .xml-Datei müsste ich dann doch auch den bereits gespeicherten Wert (wenn vorhanden) anzeigen. Geht das?
> 
> Im Prinzip weiß ich nicht, ob Flexforms mein Problem lösen oder doch der Weg mit TCA wie im Blog-Beispiel im Typo3-Tutorial.
> 
> Schöne Grüße,
> Cigdem
> 
> 
> 
>> Message: 2
>> Date: Wed, 8 Nov 2017 14:39:21 +0100
>> From: "M. Cigdem Klengel" <m.c.klengel at ifw-dresden.de>
>> Subject: [TYPO3-german] Flexforms oder TCA
>> To: typo3-german at lists.typo3.org
>> Message-ID:
>> 	<mailman.61161.1510148362.600.typo3-german at lists.typo3.org>
>> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>> 
>> Hallo in die Runde,
>> 
>> ich m?chte ein kleines Plugin schreiben f?r das ich einige
>> Individualisierungen im Backend zulassen m?chte, z.B. ein Bild
>> hochladen, das dann auf Fileebene abgelegt und der Name des Bildes in
>> der DB gespeichert wird.
>> Das Plugin wird als Contentelement eingef?gt und soll dar?ber auch
>> konfiguriert werden.
>> 
>> Meine Frage ist jetzt, macht man das nun mit Flexforms oder TCA oder
>> mittlerweile ganz anders?
>> 
>> Ich hatte mich zun?chst an diesem Beispiel orientiert
>> https://docs.typo3.org/typo3cms/ExtbaseFluidBook/3-BlogExample/Index.html
>> um dann aber festzustellen, dass dieses Blog-Beispiel schon recht alt
>> ist. Oder ist das noch der g?ngige Weg f?r Typo3 Version 8?
>> 
>> Viele Gr??e,
>> Cigdem
>> 
>> 
>> 
>> ------------------------------
>> 
>> Message: 3
>> Date: Wed, 8 Nov 2017 14:55:41 +0100
>> From: Mikel <lists at con-version.com>
>> Subject: Re: [TYPO3-german] Flexforms oder TCA
>> To: German TYPO3 Userlist <typo3-german at lists.typo3.org>
>> Message-ID:
>> 	<mailman.61164.1510149349.600.typo3-german at lists.typo3.org>
>> Content-Type: text/plain; charset=utf-8
>> 
>> 
>>> Meine Frage ist jetzt, macht man das nun mit Flexforms oder TCA oder mittlerweile ganz anders?
>> 
>> Ganz anders macht man das mittlerweile nicht :-)
>> Geht beides. Ich w?rde das TCA bevorzugen, da dies dann ohne XML-Struktur in der Datenbank steht.
>> Es kommt aber darauf an, wie und wo du was brauchst.
>> 
>> Wenn Du ?nur? ein neues Content Element brauchst (also keine Records mit eigenem Controller usw), dann kannst Du ja auch mal schauen, ob die bereits vorhanden Felder in tt_content ausreichen und auf dieser Basis einfach ein neues Content Element mit einer eigenen TCA-Palette baust. Ggf. die Tabelle tt_content und das TCA um die erforderlichen Felder erweitern.
>> 
>> Alternativ: die EXT mask macht genau solche Dinge. Ich selbst habe sie noch nie verwendet. Aber die Beliebtheit auf diese EXT w?chst derzeit.
>> 
>> Es kommt also wie erw?hnt ganz darauf an, was genau du vorhast.
>> 
>> Mikel
>> 
>> ------------------------------
>> 
>> Message: 4
>> Date: Wed, 8 Nov 2017 16:06:03 +0100
>> From: Stefan Padberg <post at bergische-webschmiede.de>
>> Subject: Re: [TYPO3-german] Flexforms oder TCA
>> To: typo3-german at lists.typo3.org
>> Message-ID: <mailman.1.1510153564.6571.typo3-german at lists.typo3.org>
>> Content-Type: text/plain; charset=utf-8
>> 
>> Hallo Cigdem,
>> 
>> schau dir das bitte mal an:
>> 
>> https://docs.typo3.org/typo3cms/extensions/fluid_styled_content/7.6/AddingYourOwnContentElements/Index.html
>> 
>> Da steht eigentlich alles drin, was du wissen musst.
>> 
>> Und Mask ist ein sehr guter Wizard, mit dem man das dann in wenigen
>> Minuten umsetzen kann. Ich w?rds einmal von Hand machen wie in der Doku
>> beschrieben, und dann mit Mask. Dann wei?t du wie's l?uft.
>> 
>> Mit mask_export kannst du dir die Arbeitsergebnisse von mask sichern und
>> mask danach deinstallieren. Du h?ngst also nicht auf immer und ewig an mask.
>> 
>> Beste Gr??e
>> Stefan
>> 
>> 
>> Am 08.11.2017 um 14:39 schrieb M. Cigdem Klengel:
>>> Hallo in die Runde,
>>> 
>>> ich m?chte ein kleines Plugin schreiben f?r das ich einige
>>> Individualisierungen im Backend zulassen m?chte, z.B. ein Bild
>>> hochladen, das dann auf Fileebene abgelegt und der Name des Bildes in
>>> der DB gespeichert wird.
>>> Das Plugin wird als Contentelement eingef?gt und soll dar?ber auch
>>> konfiguriert werden.
>>> 
>>> Meine Frage ist jetzt, macht man das nun mit Flexforms oder TCA oder
>>> mittlerweile ganz anders?
>>> 
>>> Ich hatte mich zun?chst an diesem Beispiel orientiert
>>> https://docs.typo3.org/typo3cms/ExtbaseFluidBook/3-BlogExample/Index.html
>>> um dann aber festzustellen, dass dieses Blog-Beispiel schon recht alt
>>> ist. Oder ist das noch der g?ngige Weg f?r Typo3 Version 8?
>>> 
>>> Viele Gr??e,
>>> Cigdem
>>> 
>>> 
>> 
> 
> 
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german



More information about the TYPO3-german mailing list