Fluid in TYPO3 CMS Extbase Scheduler Task rendern

| | Allgemein, CMS, Programmierung, Web

Um beispielsweise bei Buchungssystem Daten automatisiert in Dateien zu exportieren, legt man logischerweise einen Scheduler Task an. Da es allerdings nicht sehr schön ist die Datei direkt im „Controller“ bzw. dem „Task“ zusammen zu setzten, ist es hilfreich das Ganze in ein Fluid Template auszulagern.

Um im Scheduler Task Context \TYPO3\CMS\Scheduler\Task\AbstractTask allerdings Fluid rendern zu können, müssen wir zunächst eine Instanz des ObjectManager erzeugen, welche es uns dann erlaubt einen StandaloneView zu verwenden.

Hier hilft folgende Funktion:

/**
* @param string $pathToFile Model/Template.html
* @param mixed $appendData
*/
public function getRenderedFluidTemplate($pathToFile, $appendData) { 
 // Generate and set the basic Fluid View File and Pathes 
 $templateRootPath = \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName('EXT:extname/Resources/Private/Templates/'); 
 $tenplateLayoutRootPath = \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName('EXT:extname/Resources/Private/Layouts/'); 
 $templatePathAndFilename = $templateRootPath . $pathToFile; 
// Create an Instance of a Fluid StandaloneView Object 
 $view = $this->objectManager->get('\TYPO3\CMS\Fluid\View\StandaloneView'); 
 /** @var StandaloneView $view */ 
 $view->setLayoutRootPath($tenplateLayoutRootPath); 
 $view->setTemplatePathAndFilename($templatePathAndFilename); 
 $view->assign('data', $appendData); 
 $renderedTemplate = $view->render(); 
 return $renderedTemplate; 
}

Mit dieser Funktion, kann jedes Fluid Template gerendert werden. Auch ist nun die Verwendung von sämtlichen ViewHelpern möglich.

Um das ganze mit Leben zu füllen, kann auch in diesem Context mithilfe des ObjectManagers ein Repository injected werden.

Es muss allerdings noch der Extension Name definiert werden.

Neueste Beiträge

Introducing a simple Docker Compose setup for HMS MQTT Publisher

Update: I am using this „much easier“ integration now: https://github.com/suaveolent/ha-hoymiles-wifi[GitHub, External]

I’ve been tinkering with my home automation setup recently, specifically integrating HMS-XXXXW-2T series micro-inverters with my system. The hms-mqtt-publisher[GitHub, External] is a neat tool that does just that by fetching telemetry info from these inverters and publishing it to an MQTT broker. The catch? It typically requires compiling from source with Cargo, Rust’s package manager.


Weiter >>

Effortlessly Backing Up Paperless-ngx with Cloudflare, rclone, and Docker

In the digital age, data backup is a non-negotiable part of managing any document management system. For those of us relying on the efficiency and organizational prowess of Paperless-ngx, ensuring our data is safe and recoverable is paramount. I’ve devised a seamless backup solution that utilizes the power of Cloudflare’s rclone and Docker, guaranteeing peace of mind and data security. Here’s a detailed look into my approach, which is applicable not just for Paperless-ngx but for any data stored on R2 storage. (https://www.cloudflare.com/developer-platform/r2/, Pricing: https://www.cloudflare.com/plans/developer-platform/ (10GB/Month for free))


Weiter >>

Ein Leitfaden für Senioren: Günstige Smartphones und Handys für Senioren bis 170 Euro

Mit über 80 Jahren beschlossen mein Opa, sich der digitalen Welt anzuschließen. Meine Oma nutzt bereits ein Xiaomi-Handy und schätzt dessen Einfachheit. Nun möchte mein Opa auch ein Mobiltelefon, das eine gute Kamera hat und einfach zu bedienen ist, aber dennoch WhatsApp und andere Funktionen unterstützt – und besonders wichtig: Kein Senioren Handy

Kurzversion: Am Ende ist es das Xiaomi Redmi 12 geworden, was zu dem Zeitpunkt bei Amazon für 149,90 Euro verfügbar war*


Weiter >>