Zum Inhalt springen

Templates ein extbase Ext in den "fileadmin" verlagern?! Aber wie???

Erstellt am 2. November 2012 · 3 Antworten · letzte Antwort am 12. November 2012

Tags: Fluid, Frage

jimmykimmy ·

Hallo zusammen,

ich habe eine kurze Frage.
Bei Extbase sind die Templates ja relativ strikt vorgegeben. Sie liegen in einem bestimmten Ordner der per TS angegeben werden kann und das Tpl selber heißt wie seine Action.

Den Template Pfad könnte ich so ändern:
plugin.tx_meineextension.view.templateRootPath

Ich würde aber gerne nur EIN einziges Template bearbeiten und daher auslagern. Geht das? Derzeit habe ich alle Templates in den Fileadmin kopiert und den Template Pfad umgebogen. Allerdings habe ich dort nun 5 Templates liegen und lediglich 1 Template muss editiert werden.
Kann ich da auch direkt ein bestimmtes Template ansprechen?

LuP ·

Hallo,

als Notlösung:

class Tx_MyExt_Controller_AbstractActionController extends Tx_Extbase_MVC_Controller_ActionController {

    /**
     * @param Tx_Extbase_MVC_View_ViewInterface $view
     * @return void
     */
    protected function setViewConfiguration(Tx_Extbase_MVC_View_ViewInterface $view) {
        parent::setViewConfiguration($view);
        $this->setCustomTemplate($view);  
    }
    
    /**
     * @param Tx_Extbase_MVC_View_ViewInterface $view
     */
    protected function setCustomTemplate(Tx_Extbase_MVC_View_ViewInterface $view) {
        $template = $this->settings[$this->request->getControllerName()][$this->request->getControllerActionName()]['template'];
        
        if($templateFile = t3lib_div::getFileAbsFileName($template)) {
            if(file_exists($templateFile)) { 
                $view->setTemplatePathAndFilename($templateFile);
            }
        }

    }        
}
plugin.tx_myextkey.settings.mycontollername.myactionname.template = fileadmin/templates/mycustomtemplate.html

VG,
LuP

monk21 ·

Hallo,

wie wäre es denn, einen Wert ins TypoScript-Template zu schreiben

plugin,tx_myext.settings {
mytemplate = einspalter
}

und diesen dann im Fluid-Template mit einer if-condition abzufragen.

<f:if condition="{0:settings.mytemplate} == {O:'einspalter'}">
</f:if>

Gruß
Thorsten