Zum Inhalt springen

delete Action wird nicht aufgerufen!

Erstellt am 7. März 2014 · 5 Antworten · letzte Antwort am 12. März 2014

Tags: FlexForms, TYPO3 6.x, Frage

oliando ·

Hi!

Habe mal wieder ein Problem. Wahrscheinlich ein Verständnisproblem.
Ich habe eine Extension mit einem Plugin und zwei Controllern erstellt.
Hier die localconf:

<?php
if (!defined('TYPO3_MODE')) {
	die ('Access denied.');
}

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
	'TYPO3.' . $_EXTKEY,
	'Fuhrparkverwaltung',
	array(
		'Fahrzeugdaten' => 'list, show, edit',
		'Buchungsdaten' => 'delete',
		
	),
	// non-cacheable actions
	array(
		'Fahrzeugdaten' => '',
		'Buchungsdaten' => 'delete',
		
	)
);

?>

Die ich entsprechend meiner Domäne angelegt habe. Fahrzeugdaten enthält allgemeine Infos über das Fahrzeug. Jedes Fahrzeug kann gebucht werden. Demnach Habe ich Fahrzeugdaten und Buchungsdaten mit einer 1:n Beziehung verknüpft. Funktioniert soweit alles.

Ich will nun, dass man einzelne Buchungsvorgänge über das Frontend löschen kann. Dafür gebe ich über edit wie folgt meine Daten aus, da ich auch Fahrzeugdaten anzeigen will.

	/**
	 * action edit
	 *
	 * @return void
	 */
	public function editAction() {
		$fahrzeugdatens = $this->fahrzeugdatenRepository->findAll();
		$this->view->assign('fahrzeugdatens', $fahrzeugdatens);
	}

Funktioniert soweit auch. Über einen Button will ich nun die die delete Action aufrufen, was dazu führt, dass mir folgender Fehler ausgegeben wird.
The controller "Buchungsdaten" is not allowed by this plugin. Please check for TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin() in your ext_localconf.php.

Ich habe es aber definiert. Irgendwie verstehe ich das nicht, warum?
Der Aufruf erfolgt über:
index.php?id=8&tx_bsemob_fuhrparkverwaltung[Bbuchungsdaten]=1&tx_bsemob_fuhrparkverwaltung[action]=delete&tx_bsemob_fuhrparkverwaltung[controller]=Buchungsdaten

Hat einer eine Idee was ich falsch gemacht habe, bzw. wie ich vorgehen muss?
Vielen Dank schon mal.
Beste Grüße
Oliando

Oliver Thiele ·

Gibt es vielleicht eine Flexform-Datei, in der switchableControllerActions definiert sind? Dort müsste dann gegebenenfalls auch eine Anpassung gemacht werden.

oliando ·

Hi!

Ich habe eine Flexform-Datei angelegt die sieht wie folgt aus:

<T3DataStructure>
<meta>
    <langDisable>1</langDisable>     
</meta>
  <sheets>
    <sDEF>
      <ROOT>
        <TCEforms>
          <sheetTitle>Allgemine Einstellungen</sheetTitle>
        </TCEforms>
        <type>array</type>
        <el>
        	
          <switchableControllerActions>
            <TCEforms>
              <label>Ansichten</label>
              <config>
                <type>select</type>
                <items>
                   <numIndex index="0">
                     <numIndex index="0">Listenansicht</numIndex>
                     <numIndex index="1">Fahrzeugdaten->list;Fahrzeugdaten->show;Fahrzeugdaten->edit;</numIndex>
                   </numIndex>
                   <numIndex index="1">
                     <numIndex index="0">Buchungsansicht</numIndex>
                     <numIndex index="1">Fahrzeugdaten->show;Fahrzeugdaten->list;Fahrzeugdaten->edit;</numIndex>
                   </numIndex>
                   <numIndex index="2">
                     <numIndex index="0">Buchungen bearbeiten</numIndex>
                     <numIndex index="1">Fahrzeugdaten->edit;Fahrzeugdaten->list;Fahrzeugdaten->show;Buchungsdaten->delete</numIndex>
                   </numIndex>
                 </items>
              </config>
            </TCEforms>
          </switchableControllerActions>
        </el>
      </ROOT>
    </sDEF>
  </sheets>
</T3DataStructure>

Die Ausgaben funktionieren. Ich will über den stornierenbutton nur die Buchung löschen, nicht das Fahrzeug. Demnach steuer ich die delete Action im BuchungsdatenController an. Die Anzeige der Daten indem Fall die editAction befindet sich jedoch im FahrzeugdatenController. Kann es damit zusammenhängen?
Oder muss die delete Funktion in den FahrzeugdatenController? Wie komme ich dann an die Buchungsdaten?

Beste Grüße

oliando ·

Hallo Oliver!

Hast du noch einen Tipp für mich?
Ich glaube dass die Buchungsdaten->delete Action so nicht funktioniert. Da ich die Felxform wie folgt integriere:

if (TYPO3_MODE == 'BE') {
	// WizIcon für Fahrzeugdaten
	$TBE_MODULES_EXT['xMOD_db_new_content_el']['addElClasses']['tx_bsemob_fahrzeugdaten_wizicon'] = t3lib_extMgm::extPath($_EXTKEY) . 'Classes/Utility/class.tx_bsemob_fahrzeugdaten_wizicon.php';
}

Hier wird ja nur die Fahrzeugdaten Actions integriert. Wie kann ich dann auf die Buchungsdaten zugreifen? Kann es sein dass ich die delete Action auch in Fahrzeuge integrieren muss und dann irgendwie über ein ObjektStorage darauf zugreifen? Weis allerdings nicht wie das geht. Kannst du mir das vielleicht sagen

Beten Dank.

oliando ·

Konnte das Problem lösen!
Lag wohl am Cache!
Jetzt gehts!

Falls es jemand interessieren sollte:
Wegen dem Zugriff auf Unterobjekte. Man kann über die Punktnotation ab Extbase 1.1 darauf zugreifen.

Beispiel:
fahrzeug.buchungen.email