2016-06-10 16 views
1

Ich entwickle eine TYPO3 Extbase-Extension, die Ereignisse aus einer XML-API holt. Die Erweiterung besteht aus 1 Controller und 2 Aktionen.Call spezifische extbase Aktion für Plugin

Also meine ext_localconf.php sieht etwas wie folgt aus:

Tx_Extbase_Utility_Extension::configurePlugin($_EXTKEY, 'pi1', array(
    'Api' => 'latest,full' 
), 
array(
    'Api' => 'latest,full' 
)); 

Der Inhalt der Aktionen fast die gleichen sind, die latest -Action nur drei Ereignisse aus der API holt, die full -Action alle Ereignisse aus der holt API. Außerdem rendern sie die Ereignisse etwas anders, dh sie verwenden unterschiedliche Vorlagen.

Jetzt im TYPO3-Backend unter Page A füge ich einen neuen Inhalt mit dem Typ plugin hinzu. Ich wähle mein Plugin um den Inhalt zu speichern. Im Frontend werden die Ergebnisse der latest -Action des Plugins ausgegeben.

Aber auf Page B möchte ich auch das gleiche Plugin verwenden, aber die Ergebnisse der full -Action ausgeben wollen.

Ich bin ein bisschen verwirrt. Wie kann ich die Aktion in einem Dropdown im Backend oder so auswählen?

Dokumentation auf TYPO3 ist wirklich schlecht und es fehlen viele Informationen, deshalb suche ich hier Hilfe.

Alle Beispiele, die ich gefunden habe, befassen sich nur mit einer Aktion.

Antwort

1

Sie müssen eine Flexform für das Plugin erstellen, oder wenn Ihr Plugin eine Flexform hat, fügen Sie einfach folgendes hinzu.

Um die Aktionen und Controller innerhalb eines Plugins auswählen zu können, müssen Sie switchableControllerActions in flexform verwenden.

<switchableControllerActions> 
    <TCEforms> 
     <label>View</label> 
     <onChange>reload</onChange> 
     <config> 
      <type>select</type> 
      <items type="array"> 
       <numIndex index="1" type="array"> 
       <numIndex index="0">Latest events</numIndex> 
       <numIndex index="1">Api->latest;</numIndex> 
       </numIndex> 
       <numIndex index="1" type="array"> 
       <numIndex index="0">All events</numIndex> 
       <numIndex index="1">Api->full;</numIndex> 
       </numIndex>    
      </items> 
     </config> 
    </TCEforms> 
</switchableControllerActions> 

Wenn Sie noch keine Flexform für die Erweiterung erstellen eine in Konfiguration/Flexform-Ordner. Überprüfen Sie diesen Link. https://wiki.typo3.org/Extension_Development,_using_Flexforms

+0

Vielen Dank. Ich habe noch keine Flexform. Ich werde Ihren Link überprüfen und zurückkommen, um ein Feedback zu geben. –

+0

Seine einfache, folgen Sie einfach dem Link, den ich in den Beitrag hinzugefügt .. Fragen Sie mich, wenn Sie Fragen haben :) –

+0

Fügen Sie zuerst Ich habe nicht wirklich Ihr Code Beispiel gelesen. Nur der Begriff "Flexform" tauchte auf und ich fing an zu recherchieren. Ich habe ein Auswahlfeld erstellt und es dann nicht geschafft, den ausgewählten Wert als Aktion aufzurufen. Dann habe ich diese Seite wieder besucht und gesehen, dass Sie ein 'switchableControllerActions'-Element verwenden. Das hat den Trick gemacht :) –