Lange Zeit gab es entweder benutzerfreundliche Content-Management-Systeme, die nicht besonders leistungsfähig waren oder aber technisch ausgereifte Tools, die Usability nicht zu ihren Stärken zählen konnten. TYPO3 Neos ist angetreten, um beides perfekt in einem modernen CMS zu verbinden. Ende letzten Jahres hat die TYPO3-Association nach achtjähriger Entwicklungszeit das Enterprise Open Source Content Management System TYPO3 Neos veröffentlicht. Dabei standen vor allem die Usability für Redakteure und Anwender sowie die Flexibilität und Leistungsfähigkeit für Entwickler im Vordergrund. Ausgestattet mit modernsten Technologien und einer Architektur, die maximal flexibel gestaltet wurde, tritt TYPO3 Neos an, alle Bedürfnisse an modernes Content-Management bestmöglich zu erfüllen. Der Vortrag zeigt das System in einem Roundtrip für Entscheider und geht auch auf die technischen Details wie Architektur, TypoScript, FlowQuery, EEL, Fizzle und das unter TYPO3 liegende Web-Application-Framework TYPO3 Flow ein.
1. TYPO3 Neos
Next Generation CMS
Patrick Lobacher
GF +Pluswerk GmbH
29.10.2014
2. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Patrick Lobacher
Geschäftsführer +Pluswerk GmbH
• 44 Jahre, glücklich verheiratet, wohnhaft in
München
• Selbständig im Bereich Webentwicklung seit 1994
• Autor von 10 Fachbüchern und > 50 Fachartikeln
zum Thema TYPO3 und Webentwicklung
• Mitglied im TYPO3 Education Committee
• Speaker, Trainer, Consultant, Coach, Nerd
Veröffentlichungen:
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
3. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Agentur für digitale Kommunikation
+[ 10 ] Standorte in Deutschland
+[ 130 ] Mitarbeiter
+[ 999 ] realisierte Projekte mit Magento und TYPO3
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
4. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Agenda
Slides: www.lobacher.de/ipc14-neos
• Was ist TYPO3 Neos?
• Features
• Architektur & Internas
• Konzepte
• Showcases
• Quellen & Infos
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
6. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
TYPO3 Neos is the next-generation
open source content management
system made by the TYPO3
community. Neos is based on the
PHP framework TYPO3 Flow.
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
7.
8. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Die Geschichte von TYPO3 Neos beginnt bei TYPO3 CMS
• TYPO3 CMS ist ein „Enterprise Open Source
Content 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% aller Bundesliga-Vereinen, Discounter, Autovermieter,
Öffentliche Träger,
• > 6.000 Extensions
• > 150.000 Entwickler weltweit
• > 2000 Agenturen weltweit
• Finanziert und unterstützt von der TYPO3 Association
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
9. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Die Geschichte von TYPO3 Neos: TYPO3 Phoenix
• Auf den ersten T3DD (TYPO3 Developer Days) im Jahr 2006
wurde der Entschluss gefasst, TYPO3 von Grund auf neu zu
schreiben
• Codename: TYPO3 Phoenix (bzw. TYPO3 5.0)
• Einige benötigte/gewünschten Features gab es damals in PHP
noch nicht und mussten komplett neu implementiert werden:
Content Repository (JSR-170), Aspect Oriented Programming,
Domain Driven Design, Dependency Injection, ...
• Mit dem „Berlin Manifesto“ wurde 2008 der Rahmen und die
Abgrenzung zum TYPO3 CMS festgelegt
http://typo3.org/about/the-history-of-typo3/berlin-manifesto/
(Erweitert 2013 um den Zusatz, dass TYPO3 Neos nicht der Nachfolger von TYPO3 CMS ist)
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
10. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Die Geschichte von TYPO3 Neos: TYPO3 Flow und Neos
• Viele Grundfunktionen eines CMS sind nicht CMS-spezifisch
(Session-Handling, Datenbank-Handling, Templating, ...) =>
daher Trennung dieser Funktionalitäten in ein eigenes
Framework => TYPO3 Flow
• Am 20. Oktober 2011 wurde das Application Framework TYPO3
Flow (ehemals FLOW3) als Final veröffentlicht (Aktuell 2.2.2)
• TYPO3 Neos ist eine Applikation die auf TYPO3 Flow basiert
• Erste Version 1.0.0 am 10.12.2013
• Aktuell 1.1.2 am 02.09.2014
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
11. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Die TYPO3 Welt
• Dachmarke TYPO3
• TYPO3 CMS
(hat kein eigenes Logo)
• TYPO3 Flow
• TYPO3 Neos
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
12. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
TYPO3 Neos: Positionierung
• Es gibt ab Dezember 2013 zwei unabhängige CMS aus dem Hause
TYPO3:
• TYPO3 CMS 6.2.x und 4.5.x LTS
• TYPO3 Neos 1.1.x
• Technologisch haben beide (fast) NICHTS miteinander zu tun
• Es gibt (zur Zeit) KEINE automatische Migrationsmöglichkeiten von
einem der beiden Systeme zum anderen
• TYPO3 Neos ist NICHT der Nachfolger von TYPO3 CMS,
sondern ein eigenständiges CMS mit anderem Fokus
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
22. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Systemvoraussetzungen von TYPO3 Neos
• Webserver (empfohlen ist Apache 2.x mit aktiviertem mod_rewrite
Modul)
• PHP 5.3.7 - 5.4.x (minimal wäre PHP 5.3.2 - dort kann es zu Problemen
kommen)
• Folgende Funktionen müssen in PHP aktiviert sein: system, shell_exec, escapeshellcmd,
escapeshellarg, proc_open und exec()
• php.ini: memory_limit = 512M oder höher (empfohlen 1014M)
• 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 Zeitzoneneinstellung:
date.timezone= „Europe/Berlin“
• Shell-Zugang
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
23. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Installation von TYPO3 Neos - Composer
• Die Installation erfolgt über „Composer“
(Dependency Manager für PHP)
• Dafür ist Zugang zur Konsole nötig
$ cd /pfad/zum/webserver/
$ curl -sS https://getcomposer.org/installer | php
$ php /path/to/composer.phar create-project --no-dev
typo3/neos-base-distribution TYPO3-Neos-1.1
$ cd TYPO3-Neos-1.1
$ ./flow flow:core:setfilepermissions shelluser
wwwuser wwwgroup
http://neos.demo/setup/
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
24. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
http://www.codecoon.com
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
25. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
https://launchr.com/typo3-neos
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
26. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Die Architektur von TYPO3 Neos - Backend
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
Fluid
Modern Templating Engine
TYPO3CR
Content Repository
(JCR 170/ Sling)
TypoScript
TypoScript 2.0
Form
Form API & Form Builder
Expose
Extensible admin interface
Eel
Embedded Expression
Language
FlowQuery
27. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Die Architektur von TYPO3 Neos - Frontend
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
EmberJS
JavaScript Web Application
Framework
Create.js
Web Editing Interface
Aloha / Hallo
HTML5 WYSIWYG Editor
VIE = viejs.org
Semantic Interaction
Framework
RequireJS
JavaScript file and module
loader
29. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Node 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 leicht
konfigurierbar
Page
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
Content Section
Content Element
Site root
Domain Model
30. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Node Type
• Jede TYPO3CR Node hat einen
sogenannten Node Type
• Node Types können in jedem Package
über YAML (Yet Another Markup
Language) definiert werden
• Jeder Node Type kann einen oder
mehrere Eltern-Typen haben. Wenn
diese spezifiziert sind, werden alle
Eigenschaften und Settings der Eltern
Types vererbt
• Zusätzlich ist es möglich Child-Nodes zu
definieren, die automatisch erstellt
werden
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
31. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
32. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Node Zugriff
• Der Zugriff auf Nodes erfolgt durch „NodePaths“
• Jede Seite ist ein Node, jedes Element auf einer Seite ebenfalls
/sites/typo3org/home/subpage/main/text1
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
section
content
pages
site root
34. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
TypoScript
• 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 im
Objekt „menu“ oder Seiteneigenschaften im Objekt „page“)
• Es gibt „Prozessoren“ die die Eigenschaftswerte verändern können
(ähnlich stdWrap-Funktionen in TYPO3 CMS)
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
35. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
36. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
37. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
38. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Eel - Embedded Expression Language
•Während TypoScript Zuweisungen und Prozessoren beinhaltet, kann man
mit Eel Ausdrücke der Art
myObject.foo = ${…}
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, damit sich der Autor der DSL auf die Semantik
konzentrieren kann
•Eel ist in Anlehnung an JavaScript (Subset) realisiert worden
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
40. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
FlowQuery
• FlowQuery ist eine Art jQuery für das Content Repository
• FlowQuery stellt damit einen Weg dar, um Content (der ja eine TYPO3CR
Node in Neos ist) in Eel zu verarbeiten
• FlowQuery Operationen werden durch PHP-Klassen realisiert
• In FlowQuery gibt es Operationen (property, filter, children, parents,
count, …) und einen Kontext (Node, Site, DocumentNode, …)
• FlowQuery ist beliebig erweiterbar
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
44. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Konzepte: Content-Dimension
Sprache de en fr
Land DE US CH
Multi-Varianten A B C
Ziel-Gruppen Marketing Vertrieb GF
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
CORE:þ
UI:ý
Personalisierung User1 User2 User3
Location based, Time-Zone, Channel, Device,…
45. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Konzepte: Content Cache
• Jedes TypoScript-Objekt
kann seine eigene Cache
Konfiguration besitzen
• @cache {
mode = 'cached'
maximumLifetime = '86400'
entryIdentifier {
node = ${node}
format = ${request.format}
}
entryTags {
# Whenever the node changes the matched condition could change
1 = ${'Node_' + documentNode.identifier}
# Whenever one of the parent nodes changes the layout could change
2 = ${'DescendantOf_' + documentNode.identifier}
}
}
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
CORE:þ
UI:ý
62. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Komme ins TYPO3 Neos Team
• Komme ins TYPO3 Neos und
Flow Team!
• Jeder wird gebraucht: Programmierer,
Architekten, UX-Experten, Designer,
Doku, Tester, JS-Spezialisten, ...
• Meldet Euch bei robert [at] typo3.org
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014
63. Responsive Webdesign verkaufen
TYPO3 Neos - Next Generation CMS
Kunden gesucht!
• Direkte Mitarbeit
• Gebe frühes Feedback zu neuen Funktionen, User Interfaces, ...
• Direkter Kontakt und Diskussion mit den Entwicklern
• 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.org
• TYPO3 Neos Agentur (pluswerk, techdivision, networkteam, …)
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 29.10.2014