Your SlideShare is downloading. ×
  • Like
TYPO3 Neos - ein technischer Überblick - DWX 2013
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

TYPO3 Neos - ein technischer Überblick - DWX 2013

  • 3,371 views
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • @j0nnybrav0 Hi Tobi. Nein, das sollte kein Problem darstellen - weil das xdebug.max_nesting_level beispielsweise sowie nicht in Produktiv-Umgebungen eingesetzt werden sollte. Trotzdem schadet aber ein Varnish natürlich nie ;-) Ansonsten ist Neos schon sehr gut, was die Performance angeht - hier wird stark optimiert. Der First-Hit dauert natürlich etwas, aber danach geht's recht schnell...

    Patrick
    Are you sure you want to
    Your message goes here
  • Hallo Patrick,

    Du kennst mich nicht, aber ich habe schon eine Menge von Dir gelesen :)
    Ich habe eine Frage bezüglich NEOS und den Systemvorraussetzungen: Du schreibst hier z.B. xdebug.max_nesting_level = 500. Ist das bei HighPerformance-Geschichten nicht sehr kritisch zu betrachten? - Heißt dies, dass NEOS in diesem Bereich ohne externe Cache-Engines wie z.B. Varnish nicht zu benutzen ist?

    Ein paar Fachtipps/Links vom Experten würden mich hierzu sehr interessieren.

    Vielen Dank und viele Grüße nach München,

    Tobi
    Are you sure you want to
    Your message goes here
  • Gerne - hat auch Spaß gemacht, sie zu erstellen und zu präsentieren - leider waren nicht soooo viele Leute da - aber das kommt noch - nächstes Jahr werden sie die Bude einrennen ;-)
    Are you sure you want to
    Your message goes here
  • Hallo Patrick,

    wie immer eine sehr gute und fundierte Präsentation -> danke
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
3,371
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
43
Comments
4
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. TYPO3 NeosEin technischer ÜberblickPatrick LobacherGeschäftsführer24.06.2013
  • 2. (c) 2013 - typovision GmbH | Thema der Präsentation | Autor | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick2Über den ReferentenPatrick LobacherGeschäftsführer typovision GmbHVeröffentlichungen:• 42 Jahre, glücklich verheiratet, wohnhaft in München• Autor von 9 Fachbüchern und > 40 Fachartikeln zum Thema TYPO3 undWebentwicklung• Selbständig im Bereich Webentwicklung seit 1994• Certified TYPO3 Integrator seit 2009• Mitglied bis 2012 in den TYPO3 Core-Teams:Certification, Extbase und Content Editorial• Mitglied bis 2012 im Expert Advisory Board der TYPO3 Association (EAB)• Organisator des TYPO3camp Munich 2008-2013 und der T3DD12• Speaker auf nationalen und internationalen Kongressen• Dozent für führende Schulungsinstitute und die MVHS
  • 3. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick3Über die typovision GmbH• Münchner Fullservice-Agentur für digitale Kommunikation• 34 festangestellte Mitarbeiter (+ 10 aus festem Freelancer Pool)• Geschäftsführer: Sebastian Böttger, Patrick Lobacher• Hochspezialisiert auf TYPO3 seit 11 Jahren und Solr• Agenturpräsentation unter: www.typovision.de/dieagentur• Über 400 TYPO3-Projekte jeglicher Größenordnung - für Kunden wie:TYPO3PLATINUMMEMBER
  • 4. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de 4Was istTYPO3 Neos?
  • 5. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick5TYPO3 Neos - the next generation CMS
  • 6. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick6TYPO3 Neos - the next generation CMS
  • 7. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick7Die Geschichte von TYPO3 Neos beginnt bei TYPO3 CMS• TYPO3 CMS ist ein „Enterprise Open SourceContent Management Framework“• TYPO3 CMS existiert seit 1998 / Erfunden vom Dänen Kaspar Skårhøj• ca. 500.000 Installationen weltweit / > 5 Mio Downloads• Einsatz in DE z.B. bei > 50% aller DAX 500 Unternehmen, > 50% allerBundesliga-Vereinen, Discounter, Autovermieter, Öffentliche Träger• > 6.000 Extensions• > 100.000 Entwickler weltweit• > 1500 Agenturen weltweit• Finanziert und unterstützt von der TYPO3 AssociationGeschichte von TYPO3 Neos beginnt bei TYPO3 CMS
  • 8. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick8Die Geschichte von TYPO3 Neos: TYPO3 Phoenix• Auf den ersten T3DD (TYPO Developer Days) im Jahr 2006 wurde derEntschluss gefasst, TYPO3 von Grund auf neu zu schreiben• Codename: TYPO3 Phoenix (bzw. TYPO3 5.0)• Das Projekt wurde von dem Chefarchitekten Robert Lemke begonnenund nach wenigen Monaten von Karsten Dambekalns flankiert• Mit dem „Berlin Manifesto“ wurde 2008 der Rahmen und dieAbgrenzung zum TYPO3 CMS festgelegthttp://typo3.org/roadmap/berlin-manifesto/Geschichte von TYPO3 Neos: TYPO3 Phoenix
  • 9. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick9Die Geschichte von TYPO3 Neos: TYPO3 Flow und Neos• Viele Grundfunktionen eines CMS sind nicht CMS-spezifisch (Session-Handling, Datenbank-Handling, Templating, ...) => daher Abspaltung• Durch die Einführung von Extbase im Jahr 2009 wurde es möglich,bereits in TYPO3 CMS Extensions zu schreiben, die in TYPO3 Flow mitgeringen Änderungen lauffähig sind• Am 20. Oktober 2011 wurde das Application Framework TYPO3 Flow(ehemals FLOW3) als Final veröffentlicht• TYPO3 Neos ist eine Applikation die auf TYPO3 Flow basiert• TYPO3 Neos Alpha 3 im Februar 2013• Erste finale Version im Oktober 2013Geschichte von TYPO3 Neos: TYPO3 Flow und Ne0s
  • 10. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick10Die TYPO3 Welt - seit Oktober 2012• TYPO3 CMS• TYPO3 Flow• TYPO3 Neos• TYPO3 SurfGeschichte von TYPO3 Neos: Die TYPO3 Welt
  • 11. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de 11Die Architekturvon TYPO3 Neos
  • 12. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick12Die Architektur von TYPO3 Neos - BackendDie Architektur von TYPO3 Neos - BackendFluidModern Templating EngineTYPO3CRContent Repository (JCR / Sling)TypoScriptTypoScript 2.0 - next GenerationFormsForm API & Form BuilderExposeExtensible admin interfaceEelEmbedded Expression Language
  • 13. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick13Die Architektur von TYPO3 Neos - FrontendDie Architektur von TYPO3 Neos - FrontendEmberJSJavaScript web applicationframeworkCreate.jsWeb Editing InterfaceAloha / HalloHTML5 WYSIWYG EditorVIE = viejs.orgSemantic Interaction FrameworkRequireJSJavaScript file and module loader
  • 14. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de 14Die Grundlagen vonTYPO3 Flow & Fluid
  • 15. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick15TYPO3 FLow - Basis Design• OOP - Vollständig Objektorientiert• TDD - Test Driven Development• DDD - Domain Driven Design (Eric Evans)• MVC - Model, View, Controller• AOP - Aspect Oriented Programming (Separation ofConcerns, Cross cutting concerns)• DI - Dependency Injection• ORM - Basiert auf Doctrine 2 (eigene möglich)TYPO3 Flow - Basis DesignAchtung:Buzzword-Bingo :-)
  • 16. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick16TYPO3 FLow - Paradigmen + Struktur• Packages erweitern das Grundsystem• Convention over Configuration• Verzeichnis- und Dateibenennung gemäßUbiquitous Language(z.B. Models)•TYPO3 Flow - Paradigmen und Struktur
  • 17. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick17TYPO3 FLow - Beispiel Model• Entity oder Value Object (DDD)• Reflection durch„PHPDoc Annotations“• Validierung am Model• Relationen über Annotations• Steuerung des ORM ist ebenfallsüber Annotations möglich• Getter und Setter für den ZugriffTYPO3 Flow - Domain Model
  • 18. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick18TYPO3 FLow - Beispiel Repository• Magic-Methoden bereitsout-of-the-box vorhanden- findAll()- findBy*propertyName*()- findOneBy*propertyName*()- ...• Query Manager liefert Interfacezu Query zurück• Ausgeführt wird der Query erst bei„Benutzung“ der DatenTYPO3 Flow - Repository
  • 19. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick19TYPO3 FLow - Beispiel Controller• Dependency Injection über @InjectAnnotation• Persistierung ist automatisiert(am Ende der Action)• Validierung ist automatisiert(am Anfang der Action)• Slim-ControllerTYPO3 Flow - Controller
  • 20. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick20TYPO3 Fluid - modernes Templating• Templating ist Objektorientiert• Valider Code• View-Logik im View!• ViewHelper (Klassen)unterstützen den View• ViewHelper: Formulare, Links,Security, Schleifen, If,Formatierung, Widgets, ...,TYPO3 Fluid - modernes Templating
  • 21. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de 21Installationvon TYPO3 Neos
  • 22. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick22Systemvoraussetzungen von TYPO3 Neos• Webserver (empfohlen ist Apache 2.x mit aktiviertem mod_rewrite Modul)• PHP 5.3.2 - 5.4.x• Folgende Funktionen müssen in PHP aktiviert sein: system(), shell_exec(),escapeshellcmd() und escapeshellarg()• php.ini: memory_limit = 256M oder höher• php.ini: xdebug.max_nesting_level = 500 (sofern xdebug verwendet wird)• php.ini: Fügen sie die folgende Optionen ans Ende hinzu: detect_unicode = Off• php.ini: Zudem muss Magic_Quotes ausgeschaltet werden: magic_quotes_gpc = Off• php.ini: Die Kommandozeile von Flow benötigt ferner noch eine Zeitzonen-Einstellung:date.timezone= "Europe/Berlin"• MySQL 5.1.50 - 5.x.x (zum Beispiel - grundsätzlich kann jede zum Doctrine DBAL kompatibleDatenbank verwendet werden)• Zugang zur KonsoleSystemvoraussetzungen von TYPO3 Neos
  • 23. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick23Installation von TYPO3 Neos - Composer• Die Installation erfolgt über „Composer“(Dependency Manager für PHP)cd /your/htdocs/curl -s https://getcomposer.org/installer | phpphp ./composer.phar create-project --no-dev --stability alpha typo3/neos-base-distribution TYPO3-Neos-1.0-alpha3• Dies sorgt für die Installation von TYPO3 Flow, Neos und denbenötigten Modulen (inkl. 3rd Party wie Doctrine 2, Aloha, ...)Installation von TYPO3 Neos
  • 24. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick24Installation von TYPO3 Neos - Rechte und VirtualHost• Anschließend werden die Rechte in der Konsole gesetzt:sudo ./flow flow:core:setfilepermissions shelluser wwwuser wwwgroup• Virtual Host Eintrag (z.B. Apache)NameVirtualHost *:80<VirtualHost *:80>DocumentRoot "/pfad/zur/installation/TYPO3-Neos-1.0-alpha3/Web/"# Während der Entwicklung sollte die# folgende Zeile auskommentiert werdenSetenv FLOW_CONTEXT ProductionServerName neos.demo</VirtualHost>• Eintrag in /etc/hosts127.0.0.1 neos.demoInstallation von TYPO3 Neos
  • 25. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick25Installation von TYPO3 Neos - Setup• Aufruf der Setup-Routine durchhttp://neos.demo/setup/Installation von TYPO3 Neos
  • 26. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick26Installation von TYPO3 Neos - Setup• Datenbak-Setup• Voreinstellung ist MySQL• Änderung des Drivers durch Editierender Datei:Configuration/Settings.yamlInstallation von TYPO3 Neos
  • 27. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick27Installation von TYPO3 Neos - Setup• Anlegen eines Administrators• Weitere User können später in derUserverwaltung angelegt werdenInstallation von TYPO3 Neos
  • 28. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick28Installation von TYPO3 Neos - Setup• Import einer Demo-Site• Oder Starten mit einer leerenWebsiteInstallation von TYPO3 Neos
  • 29. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick29Installation von TYPO3 Neos
  • 30. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de 30Featuresvon TYPO3 Neos
  • 31. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick31Features von TYPO3 Neos• Maximal erweiterbares Enterprise CMF - Content Management Framework• Basis ist das stabile TYPO3 Flow Framework, welches bereits in Version 2.0 vorliegt• Einfacher und flexibler Content Export/Import• Multi-Domain Support• Multi-Language Support (Version 1.1)• Modernste Technologie und Paradigmen unter der Haube (DDD, AOP, RequireJS,EmberJS, ...)• Intuitives Benutzer-Interface• Wireframe Mode - Content-Editing ohne Template• Webbasiertes Package ManagementFeatures von TYPO3 Neos
  • 32. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick32Features von TYPO3 Neos• In-place Content-Editing• Eigene Content-Elemente (inkl. In-place Content-Editing) leicht möglich• Integration von TYPO3 Flow Applikationen als Plugins• TypoScript2 / EEL / FlowQuery• Workspaces• Cloud-Ready• Custom Single-Sign-On / Custom Authentification• Audit Logging• Soap/REST/JSON out-of-the-box• TYPO3 Surf für das automatische Deployment (Integration mit CI Server wieJenkins)Features von TYPO3 Neos
  • 33. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick33Features von TYPO3 Neos - Screenshots
  • 34. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick34Features von TYPO3 Neos - Screenshots
  • 35. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick35Features von TYPO3 Neos - Screenshots
  • 36. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de 36Internas vonTYPO3 Neos
  • 37. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick37Node Structure• TYPO3CR Node• Node Name(dient der Identifikation)• Node Type(z.B. Document, Folder, AbstractNode, Content,ContentCollection...)• Properties(Abhängig vom NodeType)• Einfach erweiterbar und leichtkonfigurierbarPageContent SectionContent ElementSite rootTYPO3 Neos Internas: Node StructureDomain Model
  • 38. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick38Node Zugriff• Der Zugriff auf Nodes erfolgt durch „NodePaths“TYPO3 Neos Internas: Node Zugriff/sites/typo3org/home/subpage/main/text1contentsectionpagessite root
  • 39. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick39TypoScript• TypoScript ist eine hierarchische , objektorientierte und Prototypen-basierte Verarbeitungssprache• Wird von Neos verwendet, um den Content flexibel zu rendern• Objekte sind z.B. Array, Collection, Case, Menu, Page, Template, Plugin,Value, ...• Objekte haben Eigenschaften, die das Objekt „konfigurieren“• TypoScript hat Zugriff auf den jeweiligen „Context“ (z.B. Seitenbaum imObjekt „menu“ oder Seiteneigenschaften im Objekt „page“)• Es gibt „Prozessoren“ die die Eigenschaftswerte verändern können(ähnlich stdWrap-Funktionen in TYPO3 CMS)TYPO3 Neos Internas: TypoScript
  • 40. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick40TypoScript: Fluid-Template<!DOCTYPE html><html lang="en"><head><!-- {namespace typo3=TYPO3NeosViewHelpers}{namespace typoScript=TYPO3TypoScriptViewHelpers--><meta charset="utf-8"><f:base/><meta name="generator" content="TYPO3 Flow" /><title>Default Template</title><f:section name="stylesheets"><link rel="stylesheet" href="../../../Public/Stylesheets/reset.css" media="all" /></f:section><f:section name="javascripts"><script src="../../../Public/JavaScript/main.js"></script></f:section></head><body class="js-off page-landing" id="typo3org"><f:section name="body"><div class="p t3-reloadable-content" id="page"><!-- ### content ### --><div class="c cl" id="content"><!-- ### aside ### --><div class="a" id="aside"><typoScript:renderTypoScript path="parts/subMenu" />TYPO3 Neos Internas: TypoScript - Fluid Template
  • 41. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick41TypoScript: Beispiel - Teil 1include: TypoScripts/Library/ContentElements.ts2namespace: TypoScript=TYPO3.TypoScriptpage = Pagepage.headerData {stylesheets = Templatestylesheets {templatePath = resource://TYPO3.NeosDemoTypo3Org/Private/Templates/Page/Default.htmlsectionName = stylesheets}javascripts = Templatejavascripts {templatePath = resource://TYPO3.NeosDemoTypo3Org/Private/Templates/Page/Default.htmlsectionName = javascripts}title = Templatetitle.templatePath = resource://TYPO3.NeosDemoTypo3Org/Private/Templates/TypoScriptObjects/TitleMenu.htmltitle.items = ${q(node).add(q(node).parents())}title << 1.wrap(prefix:<title>, suffix: </title>)}TYPO3 Neos Internas: TypoScript - Beispiel - Teil 1
  • 42. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick42TypoScript: Beispiel - Teil 2page.body {templatePath = resource://TYPO3.NeosDemoTypo3Org/Private/Templates/Page/Default.htmlsectionName = bodyparts {mainMenu = MenumainMenu {entryLevel = 2templatePath = resource://TYPO3.NeosDemoTypo3Org/Private/Templates/TypoScriptObjects/MainMenu.htmlmaximumLevels = 2}subMenu = MenusubMenu {entryLevel = 3templatePath = resource://TYPO3.NeosDemoTypo3Org/Private/Templates/TypoScriptObjects/SubMenu.htmlmaximumLevels = 3}breadcrumb = Templatebreadcrumb {templatePath = resource://TYPO3.NeosDemoTypo3Org/Private/Templates/TypoScriptObjects/BreadcrumbMenu.htmlitems = ${q(node).add(q(node).parents())}TYPO3 Neos Internas: TypoScript - Beispiel - Teil 2
  • 43. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick43TypoScript: Prozessoren• Beispiel:myObject = MyObject {value = Rockyvalue << 1.wrap(prefix: Der , suffix: ist der Beste!)}# Resultat ist Der Rocky ist der Beste!</h1>• Weitere Prozessoren• crop• date• if, ifEmpty, ifBlank• multiply• override• replace• round• shiftCase• substring• toInteger• trim• wrapTYPO3 Neos Internas: TypoScript - Prozessoren
  • 44. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick44Eel - Embedded Expression Language• Während TypoScript Zuweisungen und Prozessoren beinhaltet, kann man mit Eel Ausdrückeder Art myObject.foo = ${q(node).property(bar)} formulieren• Die Embedded Expression Language (Eel) ist ein Baustein um Domain Specific Languages(DSL) zu erstellen.• Eel stellt eine reichhaltige Syntax zur Verfügung um beliebige Ausdrücke zu erstellen, damitsich der Autor der DSL auf die Semantik konzentrieren kann${foo.bar} // Traversal${foo.bar()} // Method call${foo.bar().baz()} // Chained method call${foo.bar("arg1", true, 42)} // Method call with arguments${12 + 18.5} // Calculations are possible${foo == bar} // ... and comparisons${foo.bar(12+18.5, foo == bar)} // and of course also use it inside arguments${[foo, bar]} // Array Literal${{foo: bar, baz: test}} // Object LiteralTYPO3 Neos Internas: Eel - Embedded Expression Language
  • 45. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick45FlowQuery• FlowQuery stellt eine Art jQuery für TYPO3 Flow dar• FlowQuery stellt damit einen Weg dar, um Content (der ja eine TYPO3CR Node in Neos ist) imEel zu verarbeiten• In FlowQuery gibt es Operationen:• propertyZugriff auf alle Eigenschaften einer Node• filterFilterausdrücke in „Fizzle“• childrenGibt alle Kinder der TYPO3CR Node zurück• parentsGibt alle Eltern der TYPO3CR Node zurück• Weitere Operationen: add, count, first, get, is, last, ...TYPO3 Neos Internas: FlowQuery
  • 46. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick46FlowQuery - Beispiele• Anzahl der Kommentare = Anzahl der Kinder der aktuellen Node mit dem Namen„comments“, deren Eigenschaft „spam“ auf dem Wert „false“ steht.numberOfComments = ${q(node).children(comments).children("[spam =false]").count()}• Breadcrumb-Menü = Aktuelle Seite + alle Elternseitenbreadcrumb = Templatebreadcrumb {templatePath = resource://TYPO3.NeosDemoTypo3Org/Private/Templates/TypoScriptObjects/BreadcrumbMenu.htmlitems = ${q(node).add(q(node).parents())}}{namespace neos=TYPO3NeosViewHelpers}<f:if condition="{items}"><ul class="breadcrumbs"><f:for each="{items}" as="item" reverse="TRUE"><f:if condition="{item.hiddenInIndex} == 0"><li><neos:link.node node="{item}">{item.label}</neos:link.node></li></f:if></f:for>TYPO3 Neos Internas: FlowQuery - Beispiele
  • 47. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de 47Mitarbeitbei TYPO3 Neos
  • 48. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick48We need you!!• Komme ins TYPO3 Neos und Flow Team!• Alles wird gebraucht: Programmier,Architekten, UX-Experten, Designer,Doku, Tester, JS-Spezialisten, ...• Meldet Euch bei robert[AT]typo3.orgMitarbeit bei TYPO3 Neos: We need you!!
  • 49. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick49Kunden gesucht!• Direkte Mitarbeit• Gebe frühes Feedback zu neuen Funktionen, User Interfaces, ...• Direkter Kontakt und Diskussion mit den Entwickler• Sofern sinnvoll, wird das Feedback unmittelbar umgesetzt• Vorteile• Gestalte das WCMS der Zukunft direkt mit• Nimm Einfluss auf die Entwicklung• Zugang zu Entwicklern, Architekten und UX‘lern• Networking mit anderen Neos-Kunden• Kontakt• rasmus[at]typo3.orgMitarbeit bei TYPO3 Neos: Kunden gesucht
  • 50. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de 50Quellen undInformationen
  • 51. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick51Quellen und Informationen• TYPO3 Neos Websitehttp://neos.typo3.org/• TYPO3 Neos Downloadhttp://neos.typo3.org/download.html• TYPO3 Flow Websitehttp://flow.typo3.org/• TYPO3 Neos Dokumentationhttp://docs.typo3.org/neos/TYPO3NeosDocumentation/Index.html• TYPO3 Flow Dokumentationhttp://flow.typo3.org/documentation.htmlQuellen und Informationen
  • 52. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.deDWX13 / TYPO3 Neos - ein technischer Überblick52Quellen und Informationen• TYPO3 Neos Projekt bei forgehttp://forge.typo3.org/projects/typo3neos• TYPO3 Flow Projekt bei forgehttp://forge.typo3.org/projects/flow3• Cheatsheet für Fluid (und demnächst für Flow)http://www.typovision.de/de/kompetenzen/typo3/Quellen und Informationen
  • 53. (c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de 53Fragen?Oder komplett verwirrt?Präsentation runterladen:http://www.typovision.de/DWX/
  • 54. Vielen Dank für EureAufmerksamkeit