Zum Inhalt springen

Extbase Kickstarter - neues Content-Element

Erstellt am 18. März 2011 · 7 Antworten · letzte Antwort am 5. Juli 2011

Tags: Frage

Sungazer ·

Hi,
ich bin ziemlicher Typo3-Neuling, und habe mich bei meinen Extbase-Versuchen etwas festgefahren.
Ich versuche ein Test-Plugin mit dem extbase-Kickstarter zu erstellen. Es enthält lediglich ein Textfeld das im Backend als neuer Content-Typ editierbar sein soll. Dort liegt mein Problem.
Ich habe das Plugin im Kickstarter wie auf dem angehängten Bild zu sehen ist konfiguriert, lasse es erzeugen und installiere es. Das klappt alles wunderbar (Tabelle wird angelegt etc.) Dann mache ich eine Änderung: ich ändere die Konfiguration des Plugins in

Tx_Extbase_Utility_Extension::configurePlugin(
	$_EXTKEY,
	'Ctypetest',
	array(
		'CtypeTest' => 'list, show, new, create, edit, update, delete',
	),
	array(
		'CtypeTest' => 'create, update, delete',
	),
	Tx_Extbase_Utility_Extension::pLUGIN_TYPE_CONTENT_ELEMENT
);

( es kommt Tx_Extbase_Utility_Extension::pLUGIN_TYPE_CONTENT_ELEMENT dazu wie hier beschrieben:
http://forge.typo3.org/projects/typo3v4-mvc/wiki/Register_Plugins_as_new_content_element#Register-Plugins-as-new-content-element)

Dann lösche ich alle möglichen Caches und erzeuge in einer Seite ein Inhaltselement diesen Types. Das klappt auch alles bis auf die Tatsache das Feld zum eingeben der Daten nicht angezeigt wird. Ich habe die Vermutung das ich noch irgend was in $TCA konfigurieren muss, bin mir da aber nicht sicher.
Vielleicht hat einer von Euch das schon mal probiert und kann mir einen Tip geben was mir fehlen könnte.

Das selbe Verhalten habe ich wenn ich die Konfiguration nicht ändere und das Element als Plugin einbinde. Auch dort kann ich dann keine Daten für das Feld "test" angeben o.O

extbase-kickstarter-dummy.png

Naderio ·

Hallo

Ich habe genau das gleiche Problem wie du, und leider auch noch keine Lösung dafür.
Ich baue für meine Abschlussprüfung der Ausbildung eine Galerie-Erweiterung und bin somit darauf angewiesen das diese auch fähig ist ein Content-Element zu erzeugen.

Es heißt in der Doku, dass mit Extbase 1.3 eine vierte Angabe für 'Tx_Extbase_Utility_Extension::configurePlugin' möglich ist. Aber auch mir ist es nicht möglich mit folgendem Code ein Contentelement in der auswahlliste zu erzeugen o.O

Tx_Extbase_Utility_Extension::configurePlugin(
	$_EXTKEY,
	'Galerie',
	array(
		'Galerie' => 'list, show, new, create, edit, update, delete',
	),
	array(
		'Galerie' => 'create, update, delete',	
	),
	Tx_Extbase_Utility_Extension:: PLUGIN_TYPE_CONTENT_ELEMENT
);

Ich hoffe es gibt unter euch jemanden der hierfür schon eine Lösung parat hat.

Lieben Gruß,

Thomas

EDIT:
Habe bei [...]Extension:: PLUGIN[...] ein Leerzeichen eingefügt, damit die automatische Ersetzung keinen Smiley einfügt. Das Leerzeichen ist selbstverständlcih im eigentlichen Code nicht vorhanden.

Naderio ·

Ich habe jetzt folgendes herausgefunden:

Wenn ich PLUGIN_TYPE_CONTENT_ELEMENT festlege, erscheint mein Plugin in der Dropdownliste neuer Inhaltselemente, NICHT aber, in der Dropdownliste unter "Plugin einfügen" unter dem Reiter "Plugin".

Nun ist in der ext_tables.php noch eine Änderung bzw. ergänzung vorzunehmen:

Tx_Extbase_Utility_Extension::registerPlugin(
	$_EXTKEY,
	'Galerie',
	'Bildergalerie' // Dies ist der Titel des Contentelements, so wie er in der Dropdown-Liste angezeigt wird.
);

siehe hier : KLICK

Soweit so gut, habe ich dennoch das Problem das mein Backend-Formular hier nicht angezeigt wird. Wenn hierfür jemand eine Lösung weiß - bitte melden 🙂

Gruß

Thomas

Problem-mit-Plugin.png

Naderio ·

Problem mit Flexforms gelöst:
In der ext_tables.php folgendes ergänzen

Tx_Extbase_Utility_Extension::registerPlugin(
	$_EXTKEY,
	'Test',
	'Testerweiterung'
);


$extensionName = t3lib_div::underscoredToUpperCamelCase($_EXTKEY);
$pluginSignature = strtolower($extensionName) . '_test';
$TCA['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';
t3lib_extMgm::addPiFlexFormValue($pluginSignature, 'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/flexform_test.xml');

So konn ich schön meine Daten eingeben. Fluid macht dann den Rest.

Natürlich sollte dann auch die /Configuration/FlexForms/flexform_test.xml existieren #paralyzed#

Um so mehr ich mich damit beschäftige, um so mehr machen mich Extbase und Fluid an :p - Tolle Erfindung ^^

Sungazer ·

Hm, da war ich schon nah dran. #angry# Ich hatte es erst mal als normales Plugin mit Flexform gelöst und mich damit abgefunden das es nicht im Dropdown ist. Aber so ist´s natürlich viel besser :o

jank ·

Gibt es hier noch eine andere Möglichkeit außer Flexform?
Wäre schön, wenn der Inhalt in einer eigenen Tabelle gespeichert wird.