2015-07-12 2 views
5

das ist meine erste Frage hier Hallo also! Zu meiner Frage: Ich übe auf einer sehr einfachen Extbase-Erweiterung und verwendet eine FlexForm, um drei Formularfelder zu erhalten. Einer von ihnen heißt "Code", der zu der EmbedderController.php und dann zum Viewer List.html gehen soll.Wie bekomme ich Wert von FlexForm zu Controller [Typo3]

Ich habe viel versucht und alle Tutorials überprüft, die ich finden konnte. Aber irgendwie verstehe ich nicht wirklich, wie man den FlexForm-Wert "Code" in meinen Controller bekommt. Was ich auch mache, ich bekomme keinen Wert oder eine leere Seite. Diese

ist meine Flexform: Embedder.xml

<T3DataStructure> 
     <meta type="array"> 
       <langChildren>0</langChildren> 
       <langDisable>1</langDisable> 
     </meta> 
     <ROOT> 
       <type>array</type> 
       <el> 
         <settings.code> 
           <TCEforms> 
             <label>Video Code</label> 
             <config> 
               <type>input</type> 
               <size>20</size> 
               <max>30</max> 
               <eval>trim</eval> 
             </config> 
           </TCEforms> 
         </settings.code> 
         <settings.width> 
           <TCEforms> 
             <exclude>1</exclude> 
             <label>Breite in Pixel</label> 
             <config> 
               <type>input</type> 
               <size>10</size> 
               <max>10</max> 
               <eval>trim</eval> 
             </config> 
           </TCEforms> 
         </settings.width> 
         <settings.height> 
           <TCEforms> 
             <exclude>1</exclude> 
             <label>Höhe in Pixel</label> 
             <config> 
               <type>input</type> 
               <size>10</size> 
               <max>10</max> 
               <eval>trim</eval> 
             </config> 
           </TCEforms> 
         </settings.height> 
       </el> 
     </ROOT> 
</T3DataStructure> 

Und das ist mein EmbedderController.php

<?php 
namespace HhuMediathek\Hhumediathek\Controller; 

/** 
* EmbedderController 
*/ 
class EmbedderController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController { 

     /** 
     * embedderRepository 
     * 
     * @var \HhuMediathek\Hhumediathek\Domain\Repository\EmbedderRepository 
     * @inject 
     */ 
     protected $embedderRepository = NULL; 

     /** 
     * action list 
     * 
     * @return void 
     */ 
     public function listAction() { 
       $this->settings['code']; 
     } 
} 

Und das ist der Betrachter list.html

<f:layout name="Default" /> 
<f:section name="main"> 
<iframe width='570' height='321' style='width: 570px; height: 321px; border: 1px solid #ccc;' src='//xxx.de/embed/{code}' frameborder='0' allowfullscreen></iframe> 
</f:section> 

Antwort

7

Okay, ich könnte es selbst herausfinden. Für Menschen, die mit dem gleichen Problem zu kämpfen wie ich es tat:

Mein Fehler war, dass ich nicht über die Linie $this->settings['code']; im Controller brauchte überhaupt aber {settings.code} im Viewer schreibt list.html statt nur {code}. Es ist komplett anders als ich es in meinem Buch und einigen Tutorials gelesen habe, aber das hat wirklich funktioniert.

+0

könnten Sie bitte die Auflösungsflagge hinzufügen, weil anders als wissen wo genau zu suchen – webfacer

0

Die Zuordnung des View-Parameters fehlt. ändern Daher

public function listAction() { 
    $this->settings['code']; 
} 

zu

public function listAction() { 
    $this->view->assign('code', $this->settings['code']); 
} 

Auf diese Weise {code} sollte in der Ansicht verfügbar sein.

Verwandte Themen