TYPO3 Content Elemente mit Fluid

Slides:



Advertisements
Ähnliche Präsentationen
Web 2.0 Social Network Communities
Advertisements

Excel – Kurs Philip Clasen
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Einführung in die Informatik: Programmierung und Software-Entwicklung
Vorteile der Online-Produkte
What do you get marks for?
Telefonnummer.
CPCP Institute of Clinical Pharmacology AGAH Annual Meeting, 29. Februar 2004, Berlin, Praktischer Umgang mit den Genehmigungsanträgen gemäß 12. AMG Novelle.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Perfekt, Possessivpronomen und Imperative Winterurlaub.
= = = = 47 = 47 = 48 = =
-17 Konjunkturerwartung Europa September 2013 Indikator > +20 Indikator 0 a +20 Indikator 0 a -20 Indikator < -20 Europäische Union gesamt: +6 Indikator.
Scratch Der Einstieg in das Programmieren. Scatch: Entwicklungsumgebung Prof. Dr. Haftendorn, Leuphana Universität Lüneburg,
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Schieferdeckarten Dach.ppt
Konstruktionsmechaniker: K. Baldauf A. Heep P. Schmidt
1. 2 Schreibprojekt Zeitung 3 Überblick 1. Vorstellung ComputerLernWerkstatt 2. Schreibprojekt: Zeitung 2.1 Konzeption des Kurses 2.2 Projektverlauf.
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
Eine Produktion von der Firma Presentations GmbH
20:00.
Die Geschichte von Rudi
Virtueller Rundgang Casa Mariposa in Playa del Coco.
SK / , , in Hochkössen und der Wildschönau flow Ski- und Snowboardschule Intersport Menzel.
Aktuelle Schulhomepage mit Typo3
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
1 Fachtagung am Seniorenorientiertes Design und Marketing ThyssenKrupp Immobilien Design for all - Anpassungen im Wohnungsbestand 1.Demographie.
| 6 | Produktive ZDB-Schnittstellen: Z39.50 | 14. Oktober Produktive ZDB-Schnittstellen: Z39.50 Information Retrieval *z3950.dnb.de:210/zdb* Martina.
Typo3 Templates und TypoScript
Auslegung eines Vorschubantriebes
NEU! 1 2. Wo kommt diese Art von Rezeptor im Körper vor?
HORIZONT 1 XINFO ® Das IT - Informationssystem HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
Publikation auf Knopfdruck Judith Riegelnig Michael Grüebler 19. Oktober 2010 / Statistiktage Neuenburg.
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
PROCAM Score Alter (Jahre)
Das ist die Geschichte eines kleinen Jungen aus der Schweiz.
Symmetrische Blockchiffren DES – der Data Encryption Standard
SK / – in Hochkössen, St. Johann i.Tirol und Hochfügen flow Ski- und Snowboardschule Intersport Menzel.
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES KULTURELLER ZUSAMMENHALT UND AUSDEHNUNG DER IDEEN AUF EUROPÄISCHEM.
Großer Altersunterschied bei Paaren fällt nicht auf!
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Gebrauchsanweisung für ein glückliches Zusammenleben
Analyseprodukte numerischer Modelle
+21 Konjunkturerwartung Europa Dezember 2013 Indikator > +20 Indikator 0 bis +20 Indikator 0 bis -20 Indikator < -20 Europäische Union gesamt: +14 Indikator.
Pigmentierte Läsionen der Haut
1 Mehrsprachigkeit Das Backend von TYPO3 ist mehrsprachig, so dass jeder Redakteur mit TYPO3 Zu einem mehrsprachigen Webauftritt gehört bei einem ausgereiften.
Einbinden von HTML Dateien
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
1 Mathematical Programming Nichtlineare Programmierung.
Imperfekt Wie sagt man das mit Imperfekt
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Möbelhaus Mustermann Möbelhaus Mustermann Revision 0 Seite Nr
Bildergalerie PRESEASON CAMP Juni 2014 Romanshorn Get ready for the Season!
Es war einmal ein Haus
Numbers Greetings and Good-byes All about Me Verbs and Pronouns
J-Team: Gymnasium Ulricianum Aurich und MTV Aurich Ein Projekt im Rahmen von UlricianumBewegt.de Euro haben wir schon…  8000 mal habt ihr bereits.
Kompetenztraining Jura Martin Zwickel / Eva Julia Lohse / Matthias Schmid ISBN: © 2014 Walter de Gruyter GmbH, Berlin/Boston Abbildungsübersicht.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Wie.
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Wer ist der Herr? Apostelgeschichte 2,22-36
Typo 3 Templates und TypoScript Dedizierte Systeme Vom Contentmanagementsystem zur Digitalen Bibliothek. Was leisten digitale Repositories? Seminarleitung:
Mönchengladbach Tchibo Filial-Manager Erste Ideen.
 Präsentation transkript:

TYPO3 Content Elemente mit Fluid Individuelle Inhaltselemente für die einfachere Seitepflege. Der Vortrag zeigt, wie einfach dieses mit den Bord­mit­teln von TYPO3 umzusetzen ist. TYPO3camp RheinRuhr 2013

Hallo Welt!

Benjamin Kott ist 28 Jahre und haust in Düsseldorf hat seit 14 Jahren eine Affäre mit dem Internet macht Internet mit bunt und so empfindet #RWD als Selbstverständlichkeit wird von der wfp:2 versorgt hat viel Spaß! Kontakt facebook.com/benjamin.kott twitter.com/benjaminkott bk2k.info

Wir gestalten heute für das Web von morgen #RWD ist Pflichtprogramm

Leute - wir haben da ein Problemchen. CSS_Syled_Content

CSS_Styled_Content Magic macht daraus

Der Programmierer

LIKE A BOSS

Der Redakteur

FOREVER ALONE

Das hätten wir gebraucht: Headline Image Text

Wo ist das Problem? Die Felder sind doch alle optional!

Problem 1: Der Redakteur wird zum Designer

Der Redakteur ist zu 99,999…%* kein Designer und soll sich über das Design auch keine Gedanken machen. Es ist nicht sein Job! *Dieser Prozentsatz ist ein geschätzter Wert basierend auf meinen Erfahrungen.

Wir geben unseren Kunden Werkzeuge ihre Webseite zu zerstören… Was ist Content Management

… indem wir ihnen zu viele Möglichkeiten geben ihre Website selbst zu gestalten.

„A CMS is not a website design tool.“ Rachel Andrew Was ist Content Management

Problem 2: Wir erzeugen massiven Overhead in der Umsetzung.

Frage: Wer hat schon mal CSS_Styled_Content mit allem Optionen die zur Verfügung stehen für ein RWD Projekt umgeschrieben?

Frage: Wie lange habt ihr dafür gebraucht?

Frage: Wurde es tatsächlich benötigt?

Jedes mal wenn so etwas gemacht wird, wird achtlos mit dem Budget des Kunden umgegangen.

Mein Fazit zu CSS_Styled_Content

CSS_Styled_Content ist ein extrem umfangreiches Rendering Beispiel dafür was mit tt_content und TYPO3 möglich ist. Es hat im Produktivbetrieb seine Daseinsberechtigung verloren.

90% der Funktionen werden nicht benötigt Schwierig in der Konfiguration, da es immer komplexer wird Derzeit nicht #RWD kompatibel Anpassungskosten übersteigen den Nutzen Frameworks umständlich zu implementieren

Es gibt Hoffnung. Custom Content Elements

Welche Benefits ergeben sich? Maximale Flexibilität bei minimalem Aufwand Erleichterte Pflege für Redakteure Weniger Fehlerquellen bei #RWD Designs Glücklichere Kunden

Was müssen wir dafür tun? Bestimmen der benötigten Content Elemente Erstellen der Content Elemente

Möglichkeiten Content Elemente zu erstellen und zu rendern Extbase Fluidtemplate Standalone … Es gibt noch weitere Möglichkeiten Content Elemente zu rendern wir beschränken uns im Zuge der Demos jedoch auf diese beiden Varianten.

Content Element mit Extbase

Was benötigen wir? Extbase Controller TCA für das Backend Fluid Templates Das Content Element muss registriert und konfiguriert werden

Basic Extbase Controller typo3conf/ext/bk2k_content_elements/Classes/Controller/CustomElementController.php <?php namespace Bk2k\Bk2kContentElements\Controller; class CustomElementController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController { protected $contentObj; protected $data; public function initializeAction(){ $this->contentObj = $this->configurationManager->getContentObject(); $this->data = $this->contentObj->data; } public function renderAction(){ $this->view->assign('data',$this->data); ?>

Basic Fluid Template typo3conf/ext/bk2k_content_elements/Resources/Private/Templates/CustomElement/Render.html {namespace ce = Bk2k\Bk2kContentElements\ViewHelpers} <ce:fal data="{data}" as="images"> <f:if condition="{images}"> <f:then> <f:for each="{images}" as="image"> <f:image src="{image.publicUrl}" id="I{image.uid}" title="{image.title}" alt="{image.alternative}" /> </f:for> </f:if> </ce:fal> <f:format.html>{data.bodytext}</f:format.html>

ext_tables.php typo3conf/ext/bk2k_content_elements/ext_tables.php <?php if(!defined('TYPO3_MODE')){ die('Access denied.'); } \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( 'Bk2k.'.$_EXTKEY, 'CustomContentElement', 'Custom Content Element – a of textpic' ); $typeName = 'bk2kcontentelements_customcontentelement'; \TYPO3\CMS\Core\Utility\GeneralUtility::loadTCA('tt_content'); $TCA['tt_content']['types'][$typeName]['showitem'] = $TCA['tt_content']['types']['textpic']['showitem']; ?>

ext_localconf. php typo3conf/ext/bk2k_content_elements/ext_localconf ext_localconf.php typo3conf/ext/bk2k_content_elements/ext_localconf.php <?php if(!defined('TYPO3_MODE')){ die('Access denied.'); } \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( 'Bk2k.'.$_EXTKEY, 'CustomContentElement', array( 'CustomElement' => 'render', ), \TYPO3\CMS\Extbase\Utility\ExtensionUtility::PLUGIN_TYPE_CONTENT_ELEMENT ); ?>

Das war es schon. TypoScript muss nicht erstellt und eingebunden werden da das generierte Default TS ausreicht. Wir haben vollen Zugriff auf den kompletten Datensatz über {data} im Fluidtemplate Daten vom FAL müssen im Controller bereit gestellt oder wie hier ein ViewHelper genutzt werden.

Content Element mit Fluidtemplate

Was benötigen wir? TCA für das Backend Fluid Templates Das Content Element muss registriert und konfiguriert werden Ein wenig TypoScript

Basic Fluid Template typo3conf/ext/bk2k_content_elements/Resources/Private/Templates/CustomElement/Render.html {namespace ce = Bk2k\Bk2kContentElements\ViewHelpers} <ce:fal data="{data}" as="images"> <f:if condition="{images}"> <f:then> <f:for each="{images}" as="image"> <f:image src="{image.publicUrl}" id="I{image.uid}" title="{image.title}" alt="{image.alternative}" /> </f:for> </f:if> </ce:fal> <f:format.html>{data.bodytext}</f:format.html>

ext_tables.php typo3conf/ext/bk2k_content_elements/ext_tables.php <?php if(!defined('TYPO3_MODE')){ die('Access denied.'); } $typeName = 'bk2kcontentelements_customfluidelement'; \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPlugin( array( 'Custom Content Element Fluid', $typeName ), 'CType' ); \TYPO3\CMS\Core\Utility\GeneralUtility::loadTCA('tt_content'); $TCA['tt_content']['types'][$typeName]['showitem'] = $TCA['tt_content']['types']['textpic']['showitem'];

ext_localconf.php - Teil 1 typo3conf/ext/bk2k_content_elements/ext_localconf.php <?php if(!defined('TYPO3_MODE')){ die('Access denied.'); } /** * Include TypoScript for tt_content before static */ $customFluidContentElementTypoScriptConstants = trim(' plugin.tx_bk2kcontentelements { view { templateRootPath = EXT:bk2k_content_elements/Resources/Private/Templates/ partialRootPath = EXT:bk2k_content_elements/Resources/Private/Partials/ layoutRootPath = EXT:bk2k_content_elements/Resources/Private/Layouts/ '); \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScript( $_EXTKEY, 'constants', $customFluidContentElementTypoScriptConstants );

ext_localconf.php - Teil 2 typo3conf/ext/bk2k_content_elements/ext_localconf.php /** * Include TypoScript for tt_content after static */ $customFluidContentElementTypoScriptSetup = trim(' tt_content.bk2kcontentelements_customfluidelement = COA tt_content.bk2kcontentelements_customfluidelement { 10 = < lib.stdheader 20 = FLUIDTEMPLATE 20 { file = {$plugin.tx_bk2kcontentelements.view.templateRootPath}CustomElement/Render.html partialRootPath = {$plugin.tx_bk2kcontentelements.view.partialRootPath} layoutRootPath = {$plugin.tx_bk2kcontentelements.view.layoutRootPath} } '); \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScript( $_EXTKEY, 'setup', $customFluidContentElementTypoScriptSetup, 43 );

Das war es schon. Das TypoScript wird direkt in der in den ExtTables geschrieben damit es auf jedenfall verfügbar ist. Wir haben vollen Zugriff auf den kompletten Datensatz über {data} im Fluidtemplate Daten vom FAL müssen im Controller bereit gestellt oder wie hier ein ViewHelper genutzt werden.

Zusammenfassung

Es ist einfach Content Elemente zu erstellen Dank Fluid wird das rendern zum Kinderspiel Wir brauchen kein CSS_Styled_Content Im Idealfall sparen wir Zeit

Ausblick – Hands On

Daten stehen bereit. Resources

Alle Beispiele sind auf GitHub verfügbar. https://github.com/benjaminkott/bk2k_content_elements

Fragen?

Danke! facebook.com/benjamin.kott twitter.com/benjaminkott bk2k.info