Zum Inhalt springen

Bug in extbase/fluid?

Erstellt am 27. Juni 2011 · 2 Antworten · letzte Antwort am 27. Juni 2011

Tags: Frage

netfly ·

Hi folks
Ich habe ein echt seltsames Phänomen. Ich bau grade meine erste Ext mit extbase und fluid und dachte deshalb, dass mein Problem eher mit meinem Unwissen als mit extbase/fluid zu tun hat.

Aber der selbe code funktioniert als Frontendplugin, aber nicht als Backendmodul 😢

Folgende Situation:
Ich baue eine Menükarten-Ext. Ich habe folgende Klassen. Menucard, Area und Article. (Es hat noch mehr, aber zur beschreibung des Problems sind die unwichtig)
Eine Menucard hat 1-n Areas. Eine Area hat 1-n (Sub)Areas und 1-n Articles.

Nun habe ich im Edit-Template der Menucard den Titel und die Beschreibung als Formfelder und eine Liste der Areas.

<f:form method="post" action="update" name="menucard" object="{menucard}" >
<f:render partial="Menucard/FormFields" arguments="{menucard:menucard}" />
	<f:form.submit value="Save" />
</f:form>
<h2>Areas</h2>
<table class="typo3-dblist">
	<tbody>
		<tr class="t3-row-header">
			<td><f:translate key="tx_bwsmenucard_domain_model_area.title" /></td>
			<td><f:translate key="tx_bwsmenucard_domain_model_area.description" /></td>
			<td> </td>
		</tr>
		</tr>
	<f:for each="{menucard.areas}" as="area">
		<tr class="db_list_normal">
			<td>{area.title}</td>
			<td>{area.description}</td>
			<td class="col-control" nowrap="nowrap">
				<f:link.action controller="Area" action="edit" arguments="{area:area}">edit</f:link.action>
				<f:link.action controller="Area" action="delete" arguments="{area:area}">del</f:link.action></td>
		</tr>
	</f:for>
	</tbody>
</table>

Hinter jeder Area habe ich dann wieder einen Edit und Delete Link.

Der Edit Link sieht so aus:

<f:link.action controller="Area" action="edit" arguments="{area:area}">edit</f:link.action>

Wie ihr seht gebe ich ja explizit den Area-Controller an.

Der gleiche Code funktioniert als Plugin, aber nicht als Modul.

Als Modul bekomme ich die Meldung, dass die Edit Action (der Menuecard) kein Area-Objekt als Argument akzeptiert. Was ja auch richtig ist, aber ich rufe ja nicht den Controller von Menuecard auf sondern den von Area.

Hat irgend jemand ne Idee, was das sein könnte.
Ist das ein Bug oder muss ich im Backend das ganze anders bauen?
Ich bin echt ratlos.

Danke für jede Hilfe.
lg
Markus

oliver_g ·

Hi, wie hast du denn dein Backend-Plugin registriert? Klingt für mich so, als wäre der Controller bzw. die Action nicht registriert. Oder was meinst du mit im Backend funktioniert es nicht?

netfly ·

Oh mann ..... sorry Jungs .....
Es war kein Bug im extbase/fluid sondern ein Bug im "extension builder" .... der hat mir tatsächlich falschen code generiert.

if (TYPO3_MODE === 'BE') {

	/**
	* Registers a Backend Module
	*/
	Tx_Extbase_Utility_Extension::registerModule(
		$_EXTKEY,
		'web',	 // Make module a submodule of 'web'
		'tx_bwsmenucard_mod1',	// Submodule key
		'',						// Position
		array(
			'Menucard' => 'list, show, new, create, edit, update, delete',
+			'Area' => 'list, show, new, create, edit, update, delete',
+			'Article' => 'list, show, new, create, edit, update, delete',
+			'Product' => 'show, list, new, create, edit, update, delete',
+			'Measurement' => 'list, show, new, create, edit, update, delete',
+			'Price' => 'list, show, new, create, edit, update, delete',
+			'Category' => 'list, show, new, create, edit, update, delete',
		),
		array(
			'access' => 'user,group',
			'icon'   => 'EXT:' . $_EXTKEY . '/ext_icon.gif',
			'labels' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang_tx_bwsmenucard_mod1.xml',
		)
	);

}

Die + in der ersten Spalte haben mir alle folgenden Models unbrauchbar gemacht.

Thnx für den Hinweis.