Flexform

Flexform

Es ist einfach super Flexforms zu verwenden nicht nur weil es viel übersichtlicher und schöner ist sondern auch weil es viel schlanker in der Datenbank ist! Es werden keine zusätzlichen Felder angelegt und das ist super!

\r\n\r\n

Dazu ist eigentlich nicht viel zu machen was man braucht ist eine XML Datei mit den Namen flexform_ds.xml und in die locallang_ds.xml werden noch die Sprachen und Texte eingebaut!

\r\n

In die ext_tables.php muss man noch darauf hinweisen welches Feld man auslesen will!

\r\n

Hier mal die Flexform von tt_news hier kann man sich sehr viele sachen für seine eigene Extension herausziehen! Ich glaub hier wurde fast alles eingebaut was es so gibt www.otcsildenafil.net!

\r\n

<T3DataStructure>
\r\n<meta>
\r\n<langDisable>1</langDisable>
\r\n</meta>
\r\n<sheets>
\r\n<sDEF>
\r\n<ROOT>
\r\n<TCEforms>
\r\n<sheetTitle>LLL:EXT:tt_news/locallang_tca.xml:tt_news.pi_flexform.sheet_general</sheetTitle>
\r\n</TCEforms>
\r\n<type>array</type>
\r\n<el>

\r\n

Ab hier kann man dann das File ändern wie man es braucht! Auch die Tags sind selber zu wählen!
\r\n
\r\n<what_to_display>
\r\n<TCEforms>
\r\n<label>LLL:EXT:tt_news/locallang_tca.xml:tt_news.pi_flexform.what_to_display</label>
\r\n<config>
\r\n<type>select</type>
\r\n<items type=“array“>
\r\n<numIndex index=“0″ type=“array“>
\r\n<numIndex index=“0″>LIST</numIndex>
\r\n<numIndex index=“1″>LIST</numIndex>
\r\n</numIndex>
\r\n<numIndex index=“1″ type=“array“>
\r\n<numIndex index=“0″>LATEST</numIndex>
\r\n<numIndex index=“1″>LATEST</numIndex>
\r\n</numIndex>
\r\n<numIndex index=“2″ type=“array“>
\r\n<numIndex index=“0″>SINGLE</numIndex>
\r\n<numIndex index=“1″>SINGLE</numIndex>
\r\n</numIndex>
\r\n<numIndex index=“3″ type=“array“>
\r\n<numIndex index=“0″>AMENU</numIndex>
\r\n<numIndex index=“1″>AMENU</numIndex>
\r\n</numIndex>
\r\n<numIndex index=“4″ type=“array“>
\r\n<numIndex index=“0″>SEARCH</numIndex>
\r\n<numIndex index=“1″>SEARCH</numIndex>
\r\n</numIndex>
\r\n<numIndex index=“5″ type=“array“>
\r\n<numIndex index=“0″>CATMENU</numIndex>
\r\n<numIndex index=“1″>CATMENU</numIndex>
\r\n</numIndex>
\r\n</items>
\r\n<itemsProcFunc>tx_ttnews_itemsProcFunc->user_insertExtraCodes</itemsProcFunc>
\r\n<maxitems>100</maxitems>
\r\n<size>6</size>
\r\n<multiple>1</multiple>
\r\n<selectedListStyle>width:150px</selectedListStyle>
\r\n<itemListStyle>width:150px</itemListStyle>
\r\n</config>
\r\n</TCEforms>
\r\n</what_to_display>

\r\n

Das wäre mal der 1. Teil damit kann man wählen was angezeigt werden sollte!

\r\n

<categoryMode>
\r\n<TCEforms>
\r\n<label>LLL:EXT:tt_news/locallang_tca.xml:tt_news.pi_flexform.select_deselect_categories</label>
\r\n<config>
\r\n<type>select</type>
\r\n<items type=“array“>
\r\n<numIndex index=“0″ type=“array“>
\r\n<numIndex index=“0″>LLL:EXT:tt_news/locallang_tca.xml:tt_news.pi_flexform.category_selection_showAll</numIndex>
\r\n<numIndex index=“1″>0</numIndex>
\r\n</numIndex>
\r\n<numIndex index=“1″ type=“array“>
\r\n<numIndex index=“0″>LLL:EXT:tt_news/locallang_tca.xml:tt_news.pi_flexform.category_selection_showSelected</numIndex>
\r\n<numIndex index=“1″>1</numIndex>
\r\n</numIndex>
\r\n<numIndex index=“2″ type=“array“>
\r\n<numIndex index=“0″>LLL:EXT:tt_news/locallang_tca.xml:tt_news.pi_flexform.category_selection_showSelectedAND</numIndex>
\r\n<numIndex index=“1″>2</numIndex>
\r\n</numIndex>
\r\n<numIndex index=“3″ type=“array“>
\r\n<numIndex index=“0″>LLL:EXT:tt_news/locallang_tca.xml:tt_news.pi_flexform.category_selection_DontShowSelected</numIndex>
\r\n<numIndex index=“1″>-1</numIndex>
\r\n</numIndex>
\r\n<numIndex index=“4″ type=“array“>
\r\n<numIndex index=“0″>LLL:EXT:tt_news/locallang_tca.xml:tt_news.pi_flexform.category_selection_DontShowSelectedOR</numIndex>
\r\n<numIndex index=“1″>-2</numIndex>
\r\n</numIndex>
\r\n</items>
\r\n<maxitems>1</maxitems>
\r\n<size>1</size>
\r\n</config>
\r\n</TCEforms>
\r\n</categoryMode>

\r\n

\r\n<categorySelection>
\r\n<TCEforms>
\r\n<label>LLL:EXT:tt_news/locallang_tca.xml:tt_news.pi_flexform.category_selection</label>
\r\n<config>
\r\n<type>select</type>
\r\n<form_type>user</form_type>
\r\n<userFunc>tx_ttnews_treeview->displayCategoryTree</userFunc>
\r\n<treeView>1</treeView>
\r\n<foreign_table>tt_news_cat</foreign_table>
\r\n<foreign_table_where>AND tt_news_cat.pid=###STORAGE_PID### ORDER BY tt_news_cat.sorting</foreign_table_where>
\r\n<size>5</size>
\r\n<autoSizeMax>10</autoSizeMax>
\r\n<minitems>0</minitems>
\r\n<maxitems>99</maxitems>
\r\n<itemsHeader>LLL:EXT:tt_news/locallang_tca.xml:tt_news.pi_flexform.itemsHeader</itemsHeader>
\r\n<items type=“array“>
\r\n<numIndex index=“100″>
\r\n<numIndex index=“0″>LLL:EXT:tt_news/locallang_tca.xml:tt_news.pi_flexform.category_selection_notCategorized</numIndex>
\r\n<numIndex index=“1″>0</numIndex>
\r\n</numIndex>
\r\n</items>
\r\n<allowNonIdValues>1</allowNonIdValues>
\r\n</config>
\r\n</TCEforms>
\r\n</categorySelection>

\r\n

</el>
\r\n</ROOT>
\r\n</sDEF>

\r\n

\r\nHier endet das 1. Array! sDEF

\r\n

Wie kann man dieses jetzt ansprchen im Plugin?

\r\n

Auch das geht sehr Einfach:

\r\n

\r\n->pi_initPIflexForm();\r\necho ->pi_getFFvalue(->cObj->data['pi_flexform'],'what_to_display','sDEF');\r\n

\r\n

Als Ergebnis bekommen sie die Auswahl von what_to_display

\r\n

Weitere Reiter kann man dann mit einem neuen Array in der gleichen Form anzeigen lassen und schnell kann man erkennen welche Macht Flexforms eigentlich hat!

\r\n

<s_template>
\r\n<ROOT>
\r\n<TCEforms>
\r\n<sheetTitle>LLL:EXT:tt_news/locallang_tca.xml:tt_news.pi_flexform.sheet_template</sheetTitle>
\r\n</TCEforms>
\r\n<type>array</type>
\r\n<el>
\r\n<template_file>
\r\n<TCEforms>
\r\n<label>LLL:EXT:tt_news/locallang_tca.xml:tt_news.pi_flexform.template_file</label>
\r\n<config>
\r\n<type>group</type>
\r\n<internal_type>file</internal_type>
\r\n<allowed>tmpl,html,htm</allowed>
\r\n<max_size>100</max_size>
\r\n<uploadfolder>uploads/tx_ttnews</uploadfolder>
\r\n<maxitems>1</maxitems>
\r\n<size>1</size>
\r\n<selectedListStyle>Width:180px</selectedListStyle>
\r\n</config>
\r\n</TCEforms>
\r\n</template_file>

\r\n

<imageMaxWidth>
\r\n<TCEforms>
\r\n<label>LLL:EXT:tt_news/locallang_tca.xml:tt_news.pi_flexform.imageMaxWidth</label>
\r\n<config>
\r\n<type>input</type>
\r\n<eval>num</eval>
\r\n<checkbox></checkbox>
\r\n<size>5</size>
\r\n</config>
\r\n</TCEforms>
\r\n</imageMaxWidth>
\r\n
\r\n<imageMaxHeight>
\r\n<TCEforms>
\r\n<label>LLL:EXT:tt_news/locallang_tca.xml:tt_news.pi_flexform.imageMaxHeight</label>
\r\n<config>
\r\n<type>input</type>
\r\n<eval>num</eval>
\r\n<checkbox></checkbox>
\r\n<size>5</size>
\r\n</config>
\r\n</TCEforms>
\r\n</imageMaxHeight>
\r\n
\r\n</el>
\r\n</ROOT>
\r\n</s_template>
\r\n
\r\n</sheets>
\r\n</T3DataStructure>

3 Kommentare

  1. „Es ist einfach super Flexforms zu verwenden nicht nur weil es viel übersichtlicher und schöner ist sondern auch weil es viel schlanker in der Datenbank ist! Es werden keine zusätzlichen Felder angelegt und das ist super!“\r\n\r\nDem ersten Stück stimme ich mal zu… sieht ja wirklich ganz Nett aus. Dem Zweiten Teil (das mehrere Daten in einem Feld als XML Verwaltet werden und das Super ist….) Naja… ich denke mal jeder kennt die Datenbank Normalisierung und weiß das man so etwas nicht macht. Ziemlich dreckig, wenn man bedenkt das man die Möglichkeit von Relationen in einer Relationalen Datenbank nicht nutzt.\r\n\r\nAber ansonsten Nette tutor…

  2. Bin gerade auf diese Seite gestoßen, und hoffe, dass mir jemand einenen Tip geben kann, nachdem ich nun das ganze Wochenende irgendwie nicht weiter gekommen bin.\r\nIch gestehe ich bin noch nicht so ganz fit, was die Extension-Entwicklung angeht, habe aber doch schon einige kleine Erfolgserlebnisse gehabt.\r\n\r\nWahrscheinlich ganz einfach….\r\nWie bekomme ich denn das Flexform in den Bereich der Dateneingabe? Das man gleich bei der Dateneingabe Dinge auswählen kann, die dann die Ausgabe in Frontend beeinflussen, ohne das immer Direkt in der Plugin-Einstellung tuen zu müssen.\r\n\r\nAlso nicht der Bereich in der das Plugin konfiguriert wird. Sprich den Bereich, der die eigentlichen Daten für das Frontened enthält.\r\n\r\nIch habe jetzt die tt_news schon rauf und runter durchsucht, findes es aber nicht…da ist das ja auch so.\r\n\r\nNaja, wenn jemand das liest und mir einen Tip geben will, fände ich das super.\r\n\r\nVielen Dank im voraus\r\nMax

  3. @Tim: typo3 halt – liefert am laufenden band paradebeispiele, wie man es nicht machen sollte.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.