Slide 1

Slide 1 text

GROUP

Slide 2

Slide 2 text

Eigene Extbase Controller Views

Slide 3

Slide 3 text

Jan Männig, Team Lead CMS-Development
 move:elevator

Slide 4

Slide 4 text

1. MVC-Pattern 2. Status Quo 3. Fluid Standard View 4. Beispiel 5. Weiterführende Informationen Agenda

Slide 5

Slide 5 text

MVC-Pattern

Slide 6

Slide 6 text

MVC-Pattern VIEW CONTROLLER MODEL

Slide 7

Slide 7 text

Status Quo

Slide 8

Slide 8 text

„Controller, die eierlegende Wollmilchsau“

Slide 9

Slide 9 text

Status Quo - Auslagerung der Logik in Controller oder in vom Controller ausgehende Objekte - meistens Abbruch durch die() oder exit

Slide 10

Slide 10 text

„Schuster, bleib bei deinem Leisten.“

Slide 11

Slide 11 text

Der View …

Slide 12

Slide 12 text

FluidTemplateView /**
 * @package JanMaennig\ExtbaseViewExample\Controller
 */
 class RecordController extends ActionController
 {
 public function listAction()
 {
 $records = $this->recordRepository->findAll();
 $this->view->assign('records', $records);
 }
 
 /**
 * @param \JanMaennig\ExtbaseViewExample\Domain\Model\Record $record
 */
 public function singleAction(Record $record)
 {
 $this->view->assign('record', $record);
 }
 } Controller (Auszug)

Slide 13

Slide 13 text

FluidTemplateView


 {record.title}



 
 
 


Slide 14

Slide 14 text

FluidTemplateView

Slide 15

Slide 15 text

„Selbst ist der Developer“

Slide 16

Slide 16 text

Vorab etwas TypoScript

Slide 17

Slide 17 text

Nutzung eigener Views pdfView = PAGE
 pdfView {
 typeNum = 1234
 config {
 admPanel = 0
 debug = 0
 }
 
 10 < tt_content.list.20.extbaseviewexample_examplerecords
 } Einbindung des Plugins in eigenen Pagetype

Slide 18

Slide 18 text

Beispiel

Slide 19

Slide 19 text

Beispiel PDF-Druck der Detailansicht

Slide 20

Slide 20 text

Beispiel PDF-Druck der Detailansicht WriteHTML($content);
 $mpdf->Output('test.pdf', 'D');
 
 return;
 }
 } PdfView abgeleitet vom TemplateView

Slide 21

Slide 21 text

PDF

Slide 22

Slide 22 text

Weiterführende Informationen

Slide 23

Slide 23 text

Weiterführende Informationen Vorteile - Klare Trennung zwischen Ausgabelogik und Controller - kein „exit“ oder anderweitiger Abbruch der Logik im Controller notwendig - Einhaltung des Slim Controller Prinzips Nachteile - Weiterer Controller notwendig - zum Teil TypoScript (Pagetype) notwendig

Slide 24

Slide 24 text

Nutzungsmöglichkeiten - PDF-Download - Excel-Export - Verwendung anderer Template-Engines - Bereitstellung von APIs - AJAX-Calls Weiterführende Informationen

Slide 25

Slide 25 text

Weitere Links - https://usetypo3.com/json-view.html - https://github.com/janmaennig/extbase-view-example/ Weitere Informationen

Slide 26

Slide 26 text

Vielen Dank!

Slide 27

Slide 27 text

Quellen Bilder / Fotos