SlideShare ist ein Scribd-Unternehmen logo
Neos CMS 2.0

Das Kompendium



Patrick Lobacher

+Pluswerk AG
12.08.2015
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
2
Feedback erwünscht
• Lieber Neos-Enthusiast!



Ich versuche das Neos CMS Kompendium stets aktuell zu halten und ständig
zu ergänzen. Aber dafür brauche ich Deinen Input! Wenn Du Ideen hast,
Code-Beispiele, FAQ-Themen oder schlicht Lob (oder Kritik), dann schreibe
mir bitte an die folgende Adresse:



patrick [AT] lobacher.de



Viel Spaß mit dem Kompendium!

Patrick Lobacher

Feedback
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
3
Changelog
Changelog
Datum Veränderungen
08.08.2013 Initiale Version / Danke an Christian Schwerdt für den domainFACTORY Input
09.08.2013 Korrekturen von Roland Schenke und Michael Oehlhof eingearbeitet - Danke!
10.08.2013 Nginx-Config eingearbeitet. Danke an Christian Kuhn, Christian Müller und Anja Leichsenring

10.08.2013 Troubleshoot-Sektion eingefügt
18.08.2013 Korrekturen von Roland Schenke eingearbeitet - Danke!
18.08.2013 Übersetzung des Kompendiums (zur Version alpha5) von Roland Schenke. Danke!!
12.12.2013 Update auf Neos CMS 1.0 final
15.12.2013 Update für Neos CMS 1.0.1
07.01.2014 Link für Installation unter Shared Hosting und Korrekturen (Danke an Christian Glass!)
03.03.2014 CI auf „LOBACHER.“ umgestellt
05.03.2014 Update auf Neos CMS 1.0.2
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
4
Changelog
Changelog
Datum Veränderungen
07.03.2014 Installation auf einem all-inkl.com Server integriert. Danke an Mario Janetzko!
16.04.2014 Bugfixing im Bereich „Erweiterung der Site - Plugin 1“ . Danke an Rico Schüppel!
27.04.2014 Korrekturen von Roland Schenke eingearbeitet - Danke!
19.06.2014 Update auf Neos CMS 1.1 final, Uberspace Anleitung von Kerstin Huppenbauer - Danke!
28.06.2014 TYPO3 Surf Deployment Anleitung auf Uberspace Servern zugefügt. Danke an Benjamin Albrecht!
27.08.2014 Bugfix-Release 1.1.1
03.09.2014 Bugfix-Release 1.1.2
18.09.2014 Ergänzung bei Anleitung für Installation auf Domain Factory Servern (Danke an Timo Nußbaum!)
21.11.2014
Update für Neos CMS 1.2.0 beta 1 / Integration „Vor-Konfigurierte Neos Server bei Amazon Web Services (AWS)“
Danke an Michael Schams!!
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
5
Changelog
Changelog
Datum Veränderungen
26.11.2014 Update für Neos CMS 1.2.0 beta 2
11.12.2014 Update für Neos CMS 1.2.0
12.08.2015 Update auf Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 6
Neos CMS

Schulung
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
7
Neos CMS 2.0 Intensivschulung
• In nur zwei Tagen lernst Du alle Aspekte, die wichtig
sind, um eine komplette Website zu erstellen
• Dabei musst Du kein Entwickler sein - wir werden
kaum PHP programmieren (müssen)
• Du erhältst neben Mittagessen, Getränken und kleinen
Snacks vor allem auch ein umfangreiches und
exklusives Schulungsmaterial und die erste Version
des demnächst erscheinenden Neos Buches
• Die Gruppen sind bewusst klein gehalten (max. 6
Teilnehmer), damit genügend Zeit für alle Fragen
bleibt
• Schulungsinhalte: https://www.xing.com/events/
neos-cms-2-0-typo3-neos-ntensivschulung-1585626
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
8
Neos CMS Intensivschulung
• Termine 2015
• München: 10. - 11.09.2015 / 12. - 13.11.2015
• Köln: 20. - 21.08.2015 (nur noch 2 Plätze!)
• Berlin:  08. - 09.10.2015
• Hamburg: 22. - 23.10.2015

• Kosten: 899.- EUR zzgl. MwSt.

• Rabatt: Bei Hinweis auf das Kompendium erhältst Du 15% Rabatt!!!

• Anmeldung: Mail an info@pluswerk.ag schreiben
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 9
Die Neuerungen in
Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
10
Mehrsprachigkeit im Backend - UI
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
11
Mehrsprachigkeit im Backend - UI
• Die verfügbaren Sprachen werden in der Datei Settings.yaml
definiert:



TYPO3:

Neos:

userInterface:

defaultLanguage: 'de'

scrambleTranslatedLabels: FALSE

availableLanguages:

'da': 'Dansk – Danish'

'de': 'Deutsch – German’

…
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
12
Mehrsprachigkeit im Backend - Labels
• Es können nun Labels in Yaml-Dateien referenziert werden:

label: 'TYPO3.NeosDemoTypo3Org:NodeTypes.Page:

properties.subpageLayout.selectBoxEditor.

values.default'
• Im entsprechenden Language-File 

Packages/Sites/TYPO3.NeosDemoTypo3Org/Resources/
Private/Translations/en/NodeTypes/Page.xlf

wird das Label aufgelöst:

<trans-unit id="properties.subpageLayout.

selectBoxEditor.values.default"
xml:space="preserve">

<source>Default</source>

</trans-unit>
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
13
Event Log Modul
• Oft will man sich einen 

Überblick darüber ver-

schaffen, wer welche 

Inhalte wie und wann 

verändert hat.
• Dazu hat man Neos ein 

Event Log spendiert – 

welches alle 

Benutzerinteraktionen 

aufzeichnet und diese in 

einem Backend-Modul 

übersichtlich darstellt
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
14
Security 2.0 - ACL
• Das Security-Framework wurde in den letzten 2 Jahren deutlich
generalüberholt und steht nun in einer erweiterten und verbesserten
Version zur Verfügung:
• Komplettes Ausblenden von Teilen des Node-Trees
• Schutz von beliebigen Methoden-Aufrufen
• Definition der Sichtbarkeit von beliebigen Elementen in Abhängigkeit des
authentifizierten Benutzers
• Einschränkung der Anzeige von Backend Modulen
• Einschränkung, welche TYPO3CR Node Types erzeugt werden dürfen
• Einschränkung des Bearbeitens von Teilen des Node-Trees
• Einschränkung der Anzeige von Eigenschaften im Property Inspektor
• Einschränkung des Bearbeitens von Dimensionen
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
15
Security 2.0 - ACL - Settings.yaml
• Zudem wurden die Funktionalitäten an die Domäne von Neos
angeglichen – damit ist es nun möglich, unter anderem folgende
Abfragen durchzuführen (Settings.yaml)



// Ist die aktuelle Node unterhalb der angegebenen?

isDescendantNodeOf("/sites/typo3cr/service")

// Ist die aktuelle Node vom Typ der angegebenen?

nodeIsOfType("TYPO3.Neos.NodeTypes:Text")

// Hat die aktuelle Dimension den Wert der
angegebenen?

hasDimensionValue("language", "de_DE")

Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
16
Security 2.0 - ACL - Policy.yam (1/2)
• Im folgenden Beispiel wollen wir einschränken, dass
• von jedem (Rolle TYPO3.Flow:Everybody) auf einer
Produktseite nur Texte angelegt werden können
• und dass nur registrierte Kunden (Rolle
Acme.SomePackage:RegisteredCustomers) den geschützten
Kundenbereich betreten können
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
17
Security 2.0 - ACL - Policy.yam (2/2)
• privilegeTargets:

'TYPO3TYPO3CRSecurityAuthorizationPrivilegeNodeReadNodePrivilege':

'Acme.SomePackage:CustomerArea':

matcher: 'isDescendantNodeOf("/sites/yoursite/customers")'

'TYPO3TYPO3CRSecurityAuthorizationPrivilegeNodeCreateNodePrivilege':

'Acme.SomePackage:CreateTextElementsOnProductPages':

matcher: 'isDescendantNodeOf("/sites/yoursite/products") &&
createdNodeIsOfType("TYPO3.Neos.NodeTypes:Text")'



roles: 

'TYPO3.Flow:Everybody':

privileges:

-

privilegeTarget:
'Acme.SomePackage:CreateTextElementsOnProductPages'

permission: GRANT 

'Acme.SomePackage:RegisteredCustomers':

privileges: 

-

privilegeTarget: 'Acme.SomePackage:CustomerArea'

permission: GRANT
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
18
Vorbereitung für Cloud-Asset-Management
• Man verwendet Google Drive, Dropbox oder OneDrive wird verwendet, um Dateien
und Assets zu verwalten. Zusätzlich sollten moderne Applikationen in der Lage sein,
um mit PaaS Systeme wie Heroku oder AWS EC2 zusammen zu arbeiten. Da diese
Systeme kein schreibbares und persistentes Dateisystem zur Verfügung zu stellen,
wird ein alternatives Speichersystem für Assets benötigt. Zudem werden CDNs für
statische Assets verwendet, um die Website performant zu halten.
• Mit Flow 3.0 (und damit respektive Neos 2.0) hat ein neues Resource Management
Einzug gehalten, welches in der Lage ist, all das zu leisten.
• Einerseits erlaubt dieses, persistente Ressourcen (wie Bilder) zu verwenden, die der
Benutzer beispielsweise auf Amazon S3 geladen hat und andererseits ist es damit
möglich Ressourcen aus dem Output der Website (z.B. Bilder, welche per Crop oder
Resize behandelt wurden) auf einem CDN wie Akamai or Rackspace CloudFiles zu
publizieren.
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
19
SEO (1/5)
• Es wurden einige Verbesserungen im
Bereich SEO eingeführt
• So wurde z.B. der Seiten- und der
Navigations-Titel getrennt
• Man kann zudem den Seitentitel gezielt
überschreiben
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
20
SEO (2/5)
• Zudem kann man die Meta-Tags
„Description“ und „Keywords“ pro Seite
festlegen
• Weiterhin gibt es die Möglichkeit die Meta-
Tag „Robots“ mit den Werten „noindex“
und/oder „nofollow“ zu definieren
• Schließlich kann man auch einen Canonical-
Link festlegen
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
21
SEO (3/5)
• Für die Anzeige bei Facebook lassen
sich einige Open-Graph-Tags festlegen:

• og:type (None, Website, Article)
• og:title
• og:description
• og:image
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
22
SEO (4/5)
• Für die Anzeige bei Twitter lassen sich
einige Twitter-Card-Tags festlegen:

• twitter:site
• twitter:title
• twitter:description
• twitter:image
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
23
SEO (5/5)
• Für die XML-Sitemap kann per Seite
eingestellt werden:
• Frequenz (keine, immer, stündlich,
täglich, wöchentlich, jährlich, nie)
• Priorität (zwischen 0 und 1)
• Um die Sitemap zu aktivieren, muss die
Routes.yaml ergänzt werden:

-

name: 'Neos Seo'

uriPattern: '<TYPO3NeosSeoSubroutes>'

subRoutes:

'TYPO3NeosSeoSubroutes':

package: 'TYPO3.Neos.Seo'

variables:

'xmlSitemapPath': 'sitemap.xml'
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
24
Google Analytics (1/2)
• Es gibt ein Google Analytics Paket,
welches man hier erhält:

https://packagist.org/
packages/typo3/neos-
googleanalytics
• Hier sieht man aktuelle Google

Analytics Metriken übersichtlich

per Seite angezeigt
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
25
Google Analytics (2/2)
• Per Default sind folgende Werte sichtbar (voll konfigurierbar):
• Grafische Anzeige der Session-Anzahl über ein Zeitraum von 3 Monaten
• Sessions, PageViews und User im letzten Monat
• Anteile an Desktop, Mobile und Tablet
• Anzahl neue und wiederkehrende User
• Die Konfiguration ist in der Datei Settings.yaml zu erledigen:

TYPO3:

Neos:

GoogleAnalytics:

authentication:

applicationName: 'TYPO3 Neos'

clientId: ~

…

Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
26
Media-Modul (1/2)
• Es wurde sogenannte „Collections“ als zusätzlicher Layer eingeführt

Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
27
Media-Modul (2/2)
• Man kann nun die Assets auch 

filtern bzw. sortieren

• Tags lassen sich editieren









Zudem wurde in der Liste sowohl ein Thumbnail, wie auch Dateigröße und Typ
integriert
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
28
Content-Editing
• Suchen ist nicht mehr Case-Sensitiv (Link-Wizards,
Reference(s)-Editors und Node Tree Filter)
• Die Content-Elements Toolbar unterstützt nun
„insert/paste before/into/after“
• Das Image-Handling wurde verbessert: Support für
SVG zugefügt, Image Upload ist auch per Drag&Drop
im Inspector möglich, Cropping und Resizing kann
nun per Node-Type konfiguriert werden
• Der Inspector zeigt nun ausführliche Infos zu Meta-
Daten (wie Erstellungsdatum, Modifizierungsdatum,
u.s.w. an)
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
29
TypoScript, Eel und FlowQuery
• @override heisst nun @context
• Es gibt nun die FlowQuery Operatoren: parentsUntil,
nextUntil, prevUntil, prevAll und nextAll
• Conditions können nun verwendet werden, um zu
evaluieren ob ein Prozessor angewendet werden sll
• Eel erlaubt nun verschachtelte Objekt-Literale, wie
{bar: {foo: 'baz'}}
• FlowQuery-Filter besitzen nun weitere
Vergleichsoperatoren: <, <=, >, >=
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
30
Dokumentation
• Die Dokumentation wurde überarbeiten 

und unter



http://neos.readthedocs.org/en/2.0/
index.html



zur Verfügung gestellt

• Es gibt zudem PDF und ePub Versionen
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
31
Weitere Änderungen
• Das Speicherformat der Node-Properties wurde auf JSON umgestellt
• Das Exception-Handling wurde verbessert
• Erstellungsdatum, Veränderungsdatum und Publizierungsdatum für Nodes
wurde hinzugefügt
• Es wurden Backend-Content Helper hinzugefügt
• Node Repair wurde überarbeitet (Entferne kaputte Nodes, Entferne Nodes
deren Referenz verloren gegangen ist, Entferne undefinierte Eigenschaften,
Füge fehlende Werte hinzu, …)
• Die Position für automatisch angelegte Child-Nodes kann nun konfiguriert
werden
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
32
Upgrade Changelog
• Upgrade-Anweisungen finden sich hier



https://neos.io/develop/download/upgrade-
instructions-2-0.html

• Upgrade-Anweisungen finden sich hier



http://neos.readthedocs.org/en/stable/Appendixes/ChangeLogs/200.html
Die Neuerungen von Neos CMS 2.0.0
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 33
Was ist
Neos CMS?
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
34
Neos CMS - the next generation CMS
https://www.neos.io/learn/marketing-material.html
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
35
Neos CMS - the next generation CMS
Neos (griechisch νέος) heißt übersetzt schlicht “neu”
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
36
Die Geschichte von Neos CMS 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
• > 100.000 Entwickler weltweit
• > 1500 Agenturen weltweit
• Finanziert und unterstützt von der TYPO3 Association
Geschichte von Neos CMS beginnt bei TYPO3 CMS
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
37
Die Geschichte von Neos CMS: 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 Features gab es damals in PHP noch nicht und
mußten komplett neu implementiert werden: Content Repository,
Aspect Oriented Programming, OP, Dependency Injection, ...
• Mit dem „Berlin Manifesto“ wurde 2008 der Rahmen und die
Abgrenzung zum TYPO3 CMS festgelegt

http://typo3.org/roadmap/berlin-manifesto/

(Das Manifest ist mittlerweile in Teilen nicht mehr gültig)

Geschichte von Neos CMS: TYPO3 Phoenix
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
38
Die Geschichte von Neos CMS: 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 Framwork TYPO3 Flow
• Durch die Einführung von Extbase im Jahr 2009 wurde es möglich, bereits
in TYPO3 CMS Extensions zu schreiben, die in TYPO3 Flow mit geringen
Änderungen lauffähig sind (sofern sie keine Internas verwenden)
• Am 20. Oktober 2011 wurde das Application Framework TYPO3 Flow
(ehemals FLOW3) als Final veröffentlicht
• Neos CMS ist eine Applikation die auf TYPO3 Flow basiert
• Neos CMS Alpha 7 im Oktober 2013 / Beta 1 am 12.11.2013
• Erste finale Version 1.0.0 am 10.12.2013

Geschichte von Neos CMS: TYPO3 Flow und Ne0s
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
39
Die Geschichte von Neos CMS: TYPO3 Flow und Neos
• Am 18.05.2015 gab es einen Split und das TYPo3 Neos Projekt ist aus der
TYPO3 Association ausgetreten
• Fortan residiert das Projekt unter http://neos.io
• Die Version 2.0.0 wurde am 12.08.2015 veröffentlicht
Geschichte von Neos CMS: TYPO3 Flow und Ne0s
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
40
Versionshistorie Neos CMS
Geschichte von Neos CMS: TYPO3 Flow und Ne0s
Version Datum
TYPO3 Phoenix Sprint Release 1 31.05.2010
... ...
TYPO3 Phoenix Sprint Release 9 02.08.2012
Neos CMS alpha 1 05.10.2012
Neos CMS alpha 2 19.12.2012
Neos CMS alpha 3 16.02.2013
Neos CMS alpha 4
4
07.07.2013
Neos CMS alpha 5 07.08.2013
Neos CMS alpha 6 15.10.2013
Neos CMS alpha 7 30.10.2013
Neos CMS beta 1 12.11.2013
Neos CMS beta 2 03.12.2013
Neos CMS 1.0 final 10.12.2013
Neos CMS 1.0.1 13.12.2013
Neos CMS 1.0.2 15.03.2014
Neos CMS 1.1 final 19.06.2014
Neos CMS 1.1.1 27.08.2014
Neos CMS 1.1.2 03.09.2014
Neos CMS 1.2.0 beta 1 14.11.2014
Neos CMS 1.2.0 beta 2 26.11.2014
Version Datum
Neos CMS 1.2.0 10.12.2014
Neos CMS 1.2.1 02.01.2015
Neos CMS 1.2.2 05.02.2015
Neos CMS 1.2.3 26.03.2015
Neos CMS 1.2.4 17.04.2015
Neos CMS 1.2.5 18.04.2015
Neos CMS 1.2.6 10.05.2015
Neos CMS 1.2.7 30.05.2015
Neos CMS 1.2.8 03.06.2015
Neos CMS 1.2.9 02.07.2015
Neos CMS 2.0.0 12.08.2015
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 41
Die Architektur
von Neos CMS
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
42
Die Architektur von Neos CMS - Backend


Die Architektur von Neos CMS - Backend
Fluid

Modern Templating Engine

TYPO3CR

Content Repository (JCR / Sling)



TypoScript

TypoScript 2.0 - next Generation

Forms

Form API & Form Builder



Expose

Extensible admin interface



Eel

Embedded Expression Language

FlowQuery

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
43
Die Architektur von Neos CMS - Frontend


Die Architektur von Neos CMS - Frontend
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

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 44
Installation
von Neos CMS
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
45
Systemvoraussetzungen von Neos CMS
• 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) -
empfohlen wird PHP >= 5.6
• 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"
Systemvoraussetzungen von Neos CMS
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
46
Systemvoraussetzungen von Neos CMS
• Wichtig ist auch, dass das PHP auf der Kommandozeile ebenfalls mindestens
Version 5.3.7 ist (und über die angegebenen php.ini Einstellungen verfügt) - dies
kann mit dem folgenden Befehl überprüft werden



php --version

• MySQL 5.1.50 - 5.x.x (zum Beispiel - grundsätzlich kann jede zum Doctrine DBAL
kompatible Datenbank verwendet werden)

• Zugang zur Konsole (root User!), wenn die Zugangsrechte vom Hoster nicht
entsprechend gesetzt worden sind. Bei den meisten Hostern ist dies aber der Fall -
dann reicht ein normaler User.
Systemvoraussetzungen von Neos CMS
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
47
Verzeichnisstruktur
• Die Installation soll letztlich in folgende Verzeichnisstruktur erfolgen



/pfad/zum/Webserver

|-NeosCMS

|---Build

|---...

|---Web (Document Root)

• Alle Neos-Dateien liegen in dem Verzeichnis NeosCMS (dieses wird von
„Composer“ in den nächsten Schritten angelegt)
• Es gibt keine Trennung zwischen Core und UserSpace (wie bei TYPO3 CMS)
• Das Document Root wird auf /pfad/zum/Webserver/Neos-CMS/Web
gelegt
Installation von Neos CMS - Verzeichnisstruktur
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
48
Installation von Neos CMS - 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

• Dies legt die Datei composer.phar im aktuellen Verzeichnis an
• Will man den Composer zentral verwenden, kann man ihn auch
verschieben/kopieren



mv composer.phar /usr/local/bin/composer
Installation von Neos CMS - Composer
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
49
Installation von Neos CMS - Composer
• Laden von Neos CMS via Composer (in einer Zeile notieren!): 



php /path/to/composer.phar create-project --no-dev
typo3/neos-base-distribution NeosCMS

• Dies sorgt für die Installation von Flow, Neos CMS und den benötigten
Modulen (inkl. 3rd Party wie Doctrine 2, Aloha, ...)
• Anschließend erhält man ein Verzeichnis NeosCMS, welches die letzte
Version von Neos enthält
• Zur Installation von Composer unter Windows gibt es hier Infos:

http://getcomposer.org/doc/00-intro.md#installation-windows
Installation von Neos CMS - Composer
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
50
[Alternative:] Archive verwenden
• Auf Sourceforge steht die aktuelle Neos Version zum Download als
zip, tar.gz und tar.bz2 bereit: 



http://sourceforge.net/projects/typo3/files/TYPO3%20Neos/2.0.0/
Installation von Neos CMS - GIT Version
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
51
[Alternative:] GIT-Version von Neos CMS verwenden
• Laden der aktuellsten GIT-Version von Neos CMS: 



git clone git://git.typo3.org/Neos/Distributions/
Base.git TYPO3-Neos && cd TYPO3-Neos



Anschließend müssen dann noch die Abhängigkeiten geladen werden:



composer install -s

Installation von Neos CMS - GIT Version
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
52
Installation von Neos CMS - Rechte setzen
• Anschließend werden die Datei-Rechte in der Konsole gesetzt (falls nötig):



cd NeosCMS

sudo ./flow flow:core:setfilepermissions shelluser wwwuser wwwgroup



(Weitere Infos: http://flowframework.readthedocs.org/en/stable/
TheDefinitiveGuide/PartII/Installation.html)

• shelluser

Dies ist der User, mit dem man in der Konsole eingeloggt ist - kann mittels whoami herausgefunden werden

• wwwuser

Der User, unter dem der Webserver läuft (steht in der Datei httpd.conf) - unter Mac OS X z.B. _www

• wwwgroup

Die Gruppe, unter dem der Webserver läuft (steht in der Datei httpd.conf) - unter Mac OS X z.B. _www

Installation von Neos CMS - Rechte
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
53
Installation von Neos CMS - VirtualHost
• Virtual Host Eintrag (z.B. Apache)

NameVirtualHost *:80 # sofern benötigt



<VirtualHost *:80>



DocumentRoot "/pfad/zum/webserver/NeosCMS/Web/"



# Während der Entwicklung sollte die folgende Zeile

# auskommentiert werden, denn dies stellt den Context auf

# „Production“ - dies bedeutet: kein Logging, mit Caching, ...

# Default ist „Development“

SetEnv FLOW_CONTEXT Production

ServerName neos.demo



</VirtualHost>

• Eintrag in /etc/hosts (C:windowssystem32driversetchosts)

127.0.0.1 neos.demo
Installation von Neos CMS - VirtualHost
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
54
Installation von Neos CMS - Setup
• Aufruf der Setup-Routine durch



http://neos.demo/setup/

Installation von Neos CMS - Setup
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
55
Installation von Neos CMS - Setup
• Das Passwort befindet in der Datei im angezeigten Pfad (merken!)

/pfad/zum/webserver/NeosCMS/Data/SetupPassword.txt





Installation von Neos CMS - Setup
Die Datei mit dem Passwort wird
anschließend wieder gelöscht.

Hat man das Passwort vergessen,
muss man die Datei



/pfad/zum/webserver/
NeosCMS/Data/Persistent/
FileBasedSimpleKeyService
/SetupKey



löschen und das Setup

erneut aufrufen.
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
56
Installation von Neos CMS - Setup
• Es folgt nun der 

Requirements-

Check
• Es werden

installierte Image

Extensions angezeigt
• Neos verwendet

automatisch die

„leistungs-

fähigste“



Installation von Neos CMS - Setup
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
57
Installation von Neos CMS - Setup
• Datenbank-Setup
• Voreinstellung ist MySQL
• Änderung des Treibers durch 

Editieren der Datei:

Configuration/Settings.yaml
• Sollte als DB-Host 127.0.0.1 nicht

funktionieren, so kann man probieren

stattdessen localhost dort

einzutragen
• Man kann entweder eine bestehende

DB auswählen oder eine neue anlegen

Installation von Neos CMS - Setup
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
58
Installation von Neos CMS - Setup
• Anlegen eines Administrators

• Weitere Benutzer können später in der

Benutzerverwaltung angelegt werden
• Zusätzliche Benutzer-Daten können

ebenfalls später in der 

Benutzerverwaltung zugefügt werden
• Manuell kann man einen Benutzer 

ebenfalls anlegen - in der Konsole:



./flow user:create username password firstname lastname
Installation von Neos CMS - Setup
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
59
Installation von Neos CMS - Setup
• Nun kann man entweder 

eine Demo-Site importieren

(empfohlen)

• Oder mit einer leeren Website

starten
• Sobald in diese beide unteren

Formularfelder etwas 

eingetragen ist, wird eine 

neue Site angelegt
Installation von Neos CMS - Setup
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
60
Installation von Neos CMS - Setup
• Wenn die Installation erfolgreich

durchgelaufen ist, erscheint

der entsprechende Hinweis

• Die Dokumentation befindet sich

unter



neos.readthedocs.org/en/stable/

Installation von Neos CMS - Setup
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
61
Installation von Neos CMS
Installation von Neos CMS - Setup
So wie oben sieht das Frontend aus, wenn man
die Demo-Site TYPO3.NeosDemoTypo3Org

importiert hat.




Wenn man eine leere Site

angelegt hat, erhält man den

folgenden Screen:

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
62
Installation von Neos CMS
Installation von Neos CMS - Setup
Zugang zur Installation:
• Frontend

http://neos.demo/
• Backend

http://neos.demo/neos/
• Setup

http://neos.demo/setup/

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 63
Installation auf einem
domainFACTORY Server (12/2014)
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
64
Installation auf einem domainFACTORY Server
Installation auf einem domainFACTORY Server
Auf domainFACTORY Server muss man einer leicht abweichenden
Installationsanleitung folgen
• Credits gehen an:
• Christian Schwerdt (die Medienagenten oHG)
• Timo Nußbaum (Korrekturen)
• Die Anleitung findet sich auch hier (zuletzt überprüft 12/2014):



https://github.com/cschwerdt/TYPO3-NEOS-Install
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
65
Installation auf einem domainFACTORY Server
Installation auf einem domainFACTORY Server
• Composer laden

curl -s https://getcomposer.org/installer | /usr/local/bin/php5-53STABLE-CLI
• Neos CMS 1.2.x laden:

/usr/local/bin/php5-53LATEST-CLI composer.phar create-project --no-dev typo3/
neos-base-distribution TYPO3-Neos

• In den domainFACTORY-Settings muss nun die Domain so konfiguriert
werden, dass sie auf /Web zeigt

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
66
Installation auf einem domainFACTORY Server
Installation auf einem domainFACTORY Server
• PHP-Pfad im Flow-CLI ändern

(hier „vi“ - man kann aber natürlich auch jeden anderen Texteditor verwenden)



cd TYPO3-Neos

vi flow



Die erste Zeile muss nun von



#!/usr/bin/env php



in die folgende geändert werden:



#!/usr/local/bin/php5-53STABLE-CLI



Anschließend abspeichern mit



:!wq
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
67
Installation auf einem domainFACTORY Server
Installation auf einem domainFACTORY Server
• Settings.yaml in Configuration/ anpassen (Editor „vi“ oder anderer)

cd Configuration/

cp Settings.yaml.example Settings.yaml

vi Settings.yaml



//set database host

db: 'mysql5.<yourdomain.com>'



//uncomment core: & phpBinaryPathAndFilename

//and change phpBinaryPathAndFilename to: 

core:

phpBinaryPathAndFilename: '/usr/local/bin/php5-53STABLE-CLI'

subRequestPhpIniPathAndFilename’: '/usr/local/bin/php5-53STABLE-CLI'





Nun Abspeichern via:



:wq!
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
68
Installation auf einem domainFACTORY Server
Installation auf einem domainFACTORY Server
• Settings.yaml in Development/ anpassen (Editor „vi“ oder anderer)

cd Development/

cp Settings.yaml.example Settings.yaml

vi Settings.yaml





//set dbname, dbuser, dbpassword:

dbname: '<dbname>'

user: '<dbuser>'

password: '<password>'





Nun Abspeichern via:



:wq!
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
69
Installation auf einem domainFACTORY Server
Installation auf einem domainFACTORY Server
• Flow testen

./flow help

• Datenbank migrieren

./flow doctrine:migrate 

• Site kickstarten

Syntax: ./flow kickstart:site [PackageKey] [SiteName]

./flow kickstart:site Your.Demopage Website

• Sites auflisten

./flow site:list
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
70
Installation auf einem domainFACTORY Server
Installation auf einem domainFACTORY Server
• Neos Backend User anlegen

./flow user:create <username> <password> <firstname> <lastname> 

• Admin Userrolle zum User zufügen

./flow user:addrole <username> Administrator
• Fertig :-)

• ACHTUNG:

Die Standard-Collation-Type für neue Datenbanken sind per default nicht richtig
gesetzt (collation_server=utf8_unicode_ci). Wenn man nun eigene Extensions
verwendet, führt das zu einem doctrine:migrate Fehler.
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 71
Installation auf einem
all-inkl.com Server (12/2014)
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
72
Installation auf einem all-inkl.com Server
Installation auf einem all-inkl.com Server
Auf den Severn der „ALL-INKL.COM - Neue Medien Münnich“ muss man
einer leicht abweichenden Installationsanleitung folgen
• Credits gehen an: Mario Janetzko (die Medienagenten oHG)



• Ab der Version Neos CMS 1.1 muss lediglich in der .htaccess eingetragen
werden, welche PHP-Version benutzt wird (AddHandler). Die restliche
Anleitung wird *nicht mehr* benötigt!
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
73
Installation auf einem all-inkl.com Server
Installation auf einem all-inkl.com Server
• Vor dem Installieren müssen folgende Schritte durchgeführt werden
• Öffnen der Datei Bootstrap.php im Pfad /Packages/Framework/
TYPO3.Flow/Classes/TYPO3/Flow/Core/

• Einfügen der folgenden Zeile nach namespace TYPO3FlowCore;



<?php

namespace TYPO3FlowCore;



ini_set('date.timezone','Europe/Berlin');

ini_set('memory_limit','256M');



…
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
74
Installation auf einem all-inkl.com Server
Installation auf einem all-inkl.com Server
• Auskommentieren der Zeilen 557 - 560 in der Datei Bootstrap.php



ALT:



if (version_compare(PHP_VERSION, '5.4', '<') && get_magic_quotes_gpc() === 1) {

echo('Flow requires the PHP setting "magic_quotes_gpc" set to Off. (Error
#1224003190)’);

exit(1);

}



NEU:



/* if (version_compare(PHP_VERSION, '5.4', '<') && get_magic_quotes_gpc() === 1) {

echo('Flow requires the PHP setting "magic_quotes_gpc" set to Off. (Error
#1224003190)’);

exit(1);

} */

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
75
Installation auf einem all-inkl.com Server
Installation auf einem all-inkl.com Server
• Hinzufügen der folgenden Zeilen in die Datei Web/index.php ab 

Zeile 23:



…

require($rootPath . 'Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/
Bootstrap.php');



putenv ("FLOW_REWRITEURLS=1");

putenv ("FLOW_CONTEXT=Production");

if (substr($_SERVER['HTTP_HOST'],0,4) === 'dev.') {

putenv ("FLOW_CONTEXT=Development");

}



$context = getenv('FLOW_CONTEXT') ?: (getenv('REDIRECT_FLOW_CONTEXT') ?:
'Development');

…

• Nun kann die Installation gestartet werden! 

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 76
Installation auf einem
Uberspace Server (12/2014)
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
77
Installation auf einem Uberspace Server
Installation auf einem Uberspace Server
Auf den Uberspace-Servern (http://www.uberspace.de/) muss man
einer leicht abweichenden Installationsanleitung folgen
• Credits gehen an: Kerstin Huppenbauer (digiparden GmbH)

• Das Original befindet sich unter der URL:

http://www.flowrocks.de/posts/2014/06/18/typo3-neos-
in-einem-uberspace-installieren..html

• (NAME durch den eigenen Uberspace-Namen und DOMAIN durch die
eigene Domain ersetzen)
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
78
Installation auf einem Uberspace Server
Domains
Domains müssen extern registriert werden und lassen sich über

uberspace-add-domain -d DOMAIN -w


als Aliasdomain der Webserver Konfiguration hinzufügen.


Die lange Version findet sich hier: 

https://uberspace.de/dokuwiki/domain:verwalten
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
79
Installation auf einem Uberspace Server
Composer
Composer installieren und ins bin Verzeichnis verschieben:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /home/NAME/bin/composer 

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
80
Installation auf einem Uberspace Server
PHP
Als nächstes die aktive PHP-Version überprüfen. Da Flow auch PHP-CLI nutzt, muss die Version identisch
sein. In meinem Fall war unter /package/host/localhost/ der PHP-Interpreter mit php-5.5.10
verlinkt - which php lieferte aber /package/host/localhost/php-5.5.5/bin/php zurück. Dies
läßt sich einfach in der Datei phpversion ändern: cat ~/etc/phpversion und dort die passende PHP-
Version eintragen, mit killall php-cgi den PHP-Interpreter neu starten und aus der Shell aus und wieder
einloggen.
PHP Module installieren
Um eigene PEAR oder PECL Module zu installieren, muss zunächst eine Konfigurationsdatei angelegt
werden:
pear config-create ~ ~/.pearrc
Anschließend kann z.B. Imagick über
uberspace-install-pecl imagick
installiert werden.
Ausführliche Informationen finden sich hier - auch wie eine eigene php.ini angelegt werden kann:

https://uberspace.de/dokuwiki/development:php
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
81
Installation auf einem Uberspace Server
Neos installieren
Nach den Vorbereitungen kann nun Neos installiert werden. 

Der Document-Root bei Uberspace ist /home/NAME/html, was ein Symlink auf /var/www/virtual/
NAME/html ist. Da Neos das Web-Verzeichnis als Web-Root nutzt, sollte Neos also nicht im Document-
Root sondern irgendwo daneben installiert werden:
cd /var/www/virtual/NAME
git clone https://git.typo3.org/Neos/Distributions/Base.git
cd Base
composer update


Um nun unsere vorhin hinzugefügte Domain mit der Neos Installation zu verbinden, legen wir im Root
unseres Uberspaces einfach einen Symlink an. Ohne eigene Domain würde der Symlink aus dem
Document Root auf das Web-Verzeichnis zeigen.
cd /var/www/virtual/NAME
ln -s /var/www/virtual/NAME/Base/Web DOMAIN
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
82
Installation auf einem Uberspace Server
Neos installieren
Der Symlink muss dabei dem Hostnamen entsprechen. Soll die Seite über weitere Hostnamen erreichbar
sein (z.B. für Developement und Production Context), können einfach weitere Symlinks mit den
Hostnamen angelegt werden. Da Development der Default Context ist, kann der Production Context in
der .htaccess wie folgt gesetzt werden
SetEnvIf Host "^www" FLOW_CONTEXT=Production
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
83
Installation auf einem Uberspace Server
MySQL
Das MySQL Passwort wurde von Uberspace gesetzt und befindet sich in der .my.cnf
cat .my.cnf

Passwort kopieren, Neos Backend aufrufen und der Spaß kann beginnen :-)
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 84
Deployment mit TYPO3 Surf
auf einem Uberspace Server

(12/2014)
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
85
Deployment mit TYPO3 Surf auf einem Uberspace Server
Deployment mit TYPO3 Surf auf einem Uberspace Server
Hier eine Anleitung, um Neos CMS mit Hilfe von TYPO3 Surf auf einem
Uberspace-Servern (http://www.uberspace.de/) zu deployen.
• Credits gehen an: Benjamin Albrecht (@beelbrecht, beelbrecht.de)

• Das Original befindet sich unter der URL:

https://gist.github.com/beelbrecht/fa8baf9f22faca64711e

• Infos zu Surf gibt es hier:

http://de.slideshare.net/kfish/deploying-typo3-neos-websites-using-surf

http://etobi.de/blog/2012/10/deployment-write-a-deployment-recipe-for-typo3-surf/

http://forge.typo3.org/projects/package-typo3-surf/repository/revisions/master/entry/Documentation/Guide/Index.rst

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
86
Deployment mit TYPO3 Surf auf einem Uberspace Server
Deployment mit TYPO3 Surf auf einem Uberspace Server 1/4
<?php
// TYPO3 Surf script to deploy and update Neos CMS at your uberspace.de account
// before of after the initial deployment, you have to setup some things manually at your host //

// (e.g. DB credentials in Settings.yaml)
// Note: replace placeholders such as [PLACEHOLDER] with the correct information
// Create a simple workflow based on the predefined 'SimpleWorkflow'.
$workflow = new TYPO3SurfDomainModelSimpleWorkflow();
// Create and configure a simple shell task to add the FLOW_CONTEXT to your .htaccess file
// If you're using NEOS at your local machine to develop a NEOS site, you won't add this file and 

// this setting to your Git repo...
$editHtaccessCommandOptions = array(
'command' => 'echo -e "nSetEnv FLOW_CONTEXT Production n" >> {releasePath}/Web/.htaccess'
);

$workflow->defineTask('[foobar]:editHtaccess', 'typo3.surf:shell', $editHtaccessCommandOptions);


$workflow->addTask('[foobar]:editHtaccess', 'finalize');



(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
87
Deployment mit TYPO3 Surf auf einem Uberspace Server
Deployment mit TYPO3 Surf auf einem Uberspace Server 2/4
// Add the workflow to the deployment. The $deployment instance is created by Surf.
$deployment->setWorkflow($workflow);
// Create and configure your node / nodes (host / hosts).
$node = new TYPO3SurfDomainModelNode('uberspace');
$node->setHostname('[username].[host].uberspace.de');


// If you don't use SSH-Keys to log into your remote host via SSH (as recommended),
// you have to to add the following line:
// $node->setOption('password', '[PASSWORD]');
// But you don't want to have any passwords as string in your deployment script ;-)
$node->setOption('username', '[username]');
// Define your application and add it to your node.
$application = new TYPO3SurfApplicationTYPO3Flow('[sitename]');


// The deployment path is not the document root!
// The document root has to be: '[deploymentPath]/releases/current/Web'.
// At uberspace: create a symlink from '/var/www/virtual/[user]/html' 

// to '[deploymentPath]/release/current/Web'
$application->setDeploymentPath('/var/www/virtual/[username]/[sitename]');



(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
88
Deployment mit TYPO3 Surf auf einem Uberspace Server
Deployment mit TYPO3 Surf auf einem Uberspace Server 3/4
// Be sure, that your node has read-access to your git repository.
// In most cases, you can use the git- or https-protocol for public repositories or
// SSH to read from private repositories.
$application->setOption('repositoryUrl', '[urlToYourNeosDistributionGitRepository]');


// Be sure, that you have installed composer
$application->setOption('composerCommandPath', '/home/[username]/bin/composer');
$application->setOption('keepReleases', '5');
$application->addNode($node);
// remove unused task.
// you can't run a command with "sudo" at shared hosting environments
$deployment->onInitialize(function() use ($workflow, $application) {
$workflow->removeTask('typo3.surf:typo3:flow:setfilepermissions');
});
// Add the application to your deployment.
$deployment->addApplication($application);



(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
89
Deployment mit TYPO3 Surf auf einem Uberspace Server
Deployment mit TYPO3 Surf auf einem Uberspace Server 4/4
Um das Deployment Script zu verwenden, muss TYPO3 Surf zunächst installiert werden:
./flow package:import TYPO3.Surf
Nun legt man das Deployment-Script im folgenden Verzeichnis ab:

%FLOW_ROOT%/Build/Surf/NeosDeployment.php



Infos zu dem Deployment gibt es hiermit:

./flow surf:describe NeosDeployment
Simulieren kann man das Deployment hiermit:

./flow surf:simulate NeosDeployment
Hiermit wird das Deployment durchgeführt:

$ ./flow surf:deploy MyDeployment



(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 90
Nginx Config
für Neos CMS (12/2014)
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
91
Nginx Config für Neos CMS
Nginx Config für Neos CMS
• Credits gehen an:
• Christian Kuhn
• Christian Müller
• Anja Leichsenring

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
92
Nginx Config für Neos CMS
Nginx Config für Neos CMS
• Datei /etc/nginx/sites-available/neos.demo (Domain sei neos.demo)

# Upstream to abstract backend connection(s) for php

upstream neos.demo {

server unix:/var/run/neos.demo_fpm.sock;

} 

server {

server_name neos.demo;

root /pfad/zum/webserver/TYPO3-Neos/Web;

index index.php; 

error_log /pfad/zum/webserver/TYPO3-Neos/logs/error_log;

access_log /pfad/zum/webserver/TYPO3-Neos/logs/access_log;

## Disable .htaccess and other hidden files

location ~ /. {

deny all;

access_log off;

log_not_found off;

}

location = /favicon.ico {

log_not_found off;

access_log off;

}

location = /robots.txt {

allow all;

log_not_found off;

access_log off;

}
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
93
Nginx Config für Neos CMS
Nginx Config für Neos CMS
• Datei /etc/nginx/sites-available/neos.demo (...FORTSETZUNG...)

location /_Resources/ {

access_log off;

log_not_found off;

expires max;

break;

}

location /_Resources/Persistent/ {

access_log off;

log_not_found off;

expires max;

rewrite "(.{40})/.+.(.+)" /_Resources/Persistent/$1.$2 break;

rewrite "([a-z0-9]+/(.+/)?[a-f0-9]{40})/.+.(.+)" /_Resources/Persistent/$1.$2 break;

}

###

# stop rewriting by existing files | is instead of -> location / { rewrite ".*" /index.php last; }

# use this if you want to run other PHP-Applications in TYPO3-Flow/Web directory

###

try_files $uri $uri/ /index.php?$args;
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
94
Nginx Config für Neos CMS
Nginx Config für Neos CMS
• Datei /etc/nginx/sites-available/neos.demo (...FORTSETZUNG...Fertig!)

location ~ .php$ {

fastcgi_index index.php; 

###

# for FLOW3 <= 1.1.x only | see note #15 on http://forge.typo3.org/issues/8923

###

# fastcgi_param FLOW3_CONTEXT Development;

# fastcgi_param FLOW3_CONTEXT Production;

# fastcgi_param FLOW3_REWRITEURLS 1;

###
# Make sure that you set the environment vars for new versions 

# of TYPO3-XXXXX(TYPO3-Neos) products properly

# see note #15 on http://forge.typo3.org/issues/8923

###

fastcgi_param FLOW_CONTEXT Development;

fastcgi_param FLOW_REWRITEURLS 1;

fastcgi_split_path_info ^(.+.php)(.*)$;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param PATH_INFO $fastcgi_path_info;

fastcgi_pass neos.domain.tld;

include /etc/nginx/fastcgi_params;

}

}
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
95
Nginx Config für Neos CMS
Nginx Config für Neos CMS
• Datei /etc/php5/fpm/pool.d/neos.demo.pool.conf 



[neos.demo] 

listen = /var/run/neos.demo.sock

listen.owner = neos.demo

listen.group = demo

listen.mode = 0660 

user = neos.demo

group = demo 

pm = dynamic 

pm.max_children = 50 

pm.start_servers = 5 

pm.min_spare_servers = 3

pm.max_spare_servers = 10

pm.max_requests = 200

request_terminate_timeout = 360s

chdir = /

php_admin_value[session.save_path] = "/pfad/zum/webserver/TYPO3-Neos/sessions"

# Waehrend der Installation kann das nicht ausreichen, ich hab danach wieder aufgeraeumt. 

# Neos sagt das aber, dann eintragen, php-fpm neu starten, weitermachen. Zum Betrieb reicht das hier aus.

php_admin_value[open_basedir] = "/pfad/zum/webserver/TYPO3-Neos/:/usr/share/pear:/usr/share/php:/tmp:/usr/
local/lib/php:/usr/bin/php"
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
96
Nginx Config für Neos CMS
Nginx Config für Neos CMS
• Datei Configuration/Settings.yaml 



TYPO3:

Flow:

persistence:

backendOptions:

dbname: ...

user: ...

password: ...

host: 127.0.0.1

core:

subRequestPhpIniPathAndFilename: /etc/php5/cli/php.ini
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 97
Upgrade
von Neos CMS
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
98
Upgrade von Neos CMS
Upgrade von Neos CMS
Um eine existierende Installation auf das letzte Patch-Level zu heben, kann
man wie folgt vorgehen:
cd /pfad/zum/webserver/
composer update --no-dev "typo3/*"
# Cache loeschen!
./flow flow:cache:flush --force
./flow doctrine:migrate



Gegebenenfalls muss man php composer.phar verwenden!
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
99
Upgrade von Neos CMS
Switching zum Development Master
Um die letzten Änderungen zu teste, kann man auf den Development
Master umschalten:
cd /installation-root/
# update composer.json according to https://git.typo3.org/
Neos/Distributions/Base.git/blob/HEAD:/composer.json
# actually update the packages
composer update
# Remember to flush the caches afterwards
./flow flow:cache:flush --force
./flow doctrine:migrate



Gegebenenfalls muss man php composer.phar verwenden!
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 100
Virtuelle
Maschinen
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
101
Virtuelle Maschinen
Virtuelle Maschinen
Es gibt einige Projekte, die virtuelle Maschinen für Neos CMS (und Flow)
anbieten:
• Vagrant-Umgebung (TYPO3 muss darin selbst installiert werden)

https://github.com/swiftlizard/VagrantTYPO3

• Vagrant-Umgebung (Neos CMS muss darin selbst installiert werden)

https://github.com/mrimann/VagrantTYPO3Flow

• Komplett funktionsfähiges Neos CMS

https://launchr.com/typo3-neos
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 102
Vor-Konfigurierte Neos Server
bei Amazon Web Services (AWS)
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
103
Vor-Konfigurierte Neos Server bei AWS
AWS - Features

• keine Installation notwendig (alle Komponenten sind vor-installiert)
• Betriebsystem: Debian Linux (64 Bit)
• Server Location auswählbar (zur Zeit: USA, Irland, Deutschland, Singapur, Japan,
Australien und China)
• uneingeschränkter "root" Zugang zum Server via SSH
• uneingeschränkter "Administrator" Zugang zu Neos
• Server ist einfach skalierbar (CPU, Speicher, Disks, etc.)
• keine Mindestvertragslaufzeit ("pay as you go": berechnet werden nur aktive
Server auf stundenbasis)
• eignet sich besonders als Grundlage für eine neue Neos Website oder um Neos
zu testen oder auszuprobieren
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
104
Vor-Konfigurierte Neos Server bei AWS
AWS - Voraussetzungen

• ein Account bei Amazon Web Services (AWS)
• grundlegende Kenntnisse in der System Administration (Linux)
• ca. 2 bis 3 Minuten Zeit, bis der Server in der Cloud hochgefahren ist :-)





Danke an Michael Schams (http://schams.net/) 

für die Anleitung! :-)
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
105
Vor-Konfigurierte Neos Server bei AWS
AWS - Vorgehen zum Starten eines Neos Servers
Schritt 1: im AWS Marketplace das Neos Machine Image finden:



https://aws.amazon.com/marketplace/seller-profile/?
id=3c5e5f3c-d60e-4405-a9ca-aae8abfa3e2b
Schritt 2: Server auswählen, konfigurieren (Geo-Location, Serverleistung,
Firewall, SSH Schlüssel, etc.) und starten
Schritt 3: mittels SSH auf den Server verbinden, um automatisch generierte
Passwörter zu ermitteln
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
106
Vor-Konfigurierte Neos Server bei AWS
AWS - Sonstige Informationen
Die Nutzung der "Software" ist kostenlos - es fallen lediglich die Gebühren für
die AWS Infrastruktur an (beginnend bei US$0.013 pro Stunde), siehe 

http://aws.amazon.com/ec2/pricing/
AWS bieten einen "Free Tier", womit unter Umständen ein einfacher Neos
Server (t2.micro Instanz) für 12 Monate kostenlos genutzt werden kann
(allerdings nur bedingt für den Produktiveinsatz geeignet), siehe: 

http://aws.amazon.com/free
Credits gehen an: Michael Schams (schams.net), der bereits für die TYPO3 CMS
Machine Images im AWS Marketplace verantwortlich ist.
Ausführliche Dokumentation und weitere Informationen unter 

http://schams.net/typo3-on-aws
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 107
Features
von Neos CMS
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
108
Features von Neos CMS

• 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 (bisher nur per Kommandozeile)
• Multi-Domain Support
• Multi-Language Support
• Modernste Technologie und Paradigmen unter der Haube (DDD, AOP, RequireJS,
EmberJS, ...)
• Intuitives Benutzer-Interface
• Wireframe Mode - Content-Editing ohne Template
• Webbasiertes Package Management
Features von Neos CMS
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
109
Features von Neos CMS

• In-place Content-Editing
• Eigene Content-Elemente (inkl. In-place Content-Editing) leicht möglich
• Integration von TYPO3 Flow Applikationen als Plugins (Packages)
• TypoScript 2 / Eel / FlowQuery
• Workspaces (Nicht Multiuser-fähig bislang)
• Custom Single-Sign-On / Custom Authentification per Programmierung möglich
• Audit Logging
• TYPO3 Surf für das automatische Deployment (Integration mit CI Server wie
Jenkins)
Features von Neos CMS
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
110
Features von Neos CMS
• Mehrsprachigkeit im User Interface (2.0)
• Benutzer ohne Admin-Rechte (Redakteure, es gibt zwar einen „Redakteur-User“,
dieser ist aber bislang lediglich ein „Non-Admin“) (2.0)
• Benutzerrechte / Benutzergruppen (2.0)
• ACLs (2.0)
• Non-Core-Features: Google Analytics Einbindung, … (2.0)
• Logs (User, Admin, …) (2.0)
• SEO-Features (Seiteneigenschaften: noindex, nofollow, keywords, description,
canonical, …) (2.0)
Features von Neos CMS
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
111
Bislang fehlende Features
• Webbased Installer (Kommandozeile mit Root-Zugriff notwendig)
• Öffentliche Extensions (es gibt noch kein Package Repository)
• Gemeinsam genutzte Workspaces
• Versionierung (UI-Interface)
• UI für Übersetzung (Diff-View, …)
• Non-Core-Features: News, Anbindung an 3rd-Party-Systeme, Slider, SSL, …
• REST (im Backend bereits implementiert und genutzt)
Features von Neos CMS
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
112
Bislang fehlende Features
• Richtiges RWD-Interface (Interface funktioniert nur mit ca.
1000px und größer)
• RWD-Rendering von Bildern
• Digital Asset Management (es gibt einen MediaBrowser)
• Formular-Designer (man kann lediglich programmatisch
vorbereitete Formulare auswählen)
• Content Synchronization and Syndication
• Admin-Interface um beliebige Datensätze zu bearbeiten
• ...
Features von Neos CMS
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 113
Aufbau der Neos
Oberfläche
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
Aufbau der Admin-Oberfläche
114
Features von Neos CMS - Screenshots
Funktionen

Menü
Page-Browser

(Seitenbaum)

User-Administration

Logout und Settings
Publisher

Publizieren, bei 

Klick auf Pfeil 

Möglichkeit zu

„Auto-Publish“
Inspector

Content-bezogene

Eigenschaften, z.B.
Seiten-
eigenschaften, o.ä.
Preview-Mode

z.B. Print-Anzeige
Editing-Modes

z.B. Anzeige ohne
Design
Struktur-

Ansicht

Apply
Umschaltung

der Dimension

(hier „Sprache“)

Voll-Bild

ohne Backend
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
115
Features von Neos CMS - Screenshots
Inspector
Selektiertes Element

z.B. Headline, Content-Collection, Page, ...
Properties

Kontextsensitive

Eigenschaften, z.B. 

Seiten-
eigenschaften, o.ä.
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
116
Features von Neos CMS - Screenshots
Funktionen-Menü
Content

Hier können die verschiedenen Sites umgeschaltet werden



Workspaces

Verwaltung der Arbeitsbereiche

Media-Browser

Verwaltung der Medien



User Management

Benutzer-Verwaltung



Package Management

Paket-Verwaltung



Sites Management

Verwaltung der Websites



Configuration
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
117
Features von Neos CMS - Screenshots
Workspaces Verwaltung Publish

Publizieren

Discard

Verwerfen

Auswahl
einzelner
Änderungen

Angabe
zum 

Node-Typ

Typ der

Änderung

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
118
Features von Neos CMS - Screenshots
Workspaces Verwaltung
Seiten, die
Änderungen
enthalten

werden im

Seitenbaum

orange

markiert

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
119
Features von Neos CMS - Screenshots
User-Verwaltung Edit

Editieren

Delete

Löschen
Rolle

View

Ansehen

Neuen

Benutzer

anlegen

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
120
Features von Neos CMS - Screenshots
User-Verwaltung - Neuer User
Einen neuen User anlegen - es muss lediglich ein Username, das Passwort und die persönlichen Daten
angegeben werden. Zusätzlich wird die Rolle (Admin oder Editor) gewählt.

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
121
Features von Neos CMS - Screenshots
User-Verwaltung - Editieren
Hier können die Userdaten editiert

werden und zudem auch weitere Daten

angeben werden - z.B. Title
Zusätzlich kann man hier beliebig viele

„Electronic Addresses“ anlegen - also

z.B. Email-Adressen oder Skype
Durch die Angabe „Primary“ wählt man

die Haupt-Adresse aus
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
122
Features von Neos CMS - Screenshots
User-Verwaltung - Info
Die Funktion „Info“ zeigt eine Übersicht über alle eingegebenen Daten an
Ein Klick auf „Delete“ öffnet eine
Lightbox, in welcher noch einmal
nachgefragt wird, ob man wirklich
löschen möchte

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
123
Features von Neos CMS - Screenshots
Package-Verwaltung
Delete

Deactivate

& Activate

Freeze

& Unfreeze

Auswählen

Aktionen
auf der
Auswahl

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
124
Features von Neos CMS - Screenshots
Site-Verwaltung Übersicht
Delete

Deactivate

& Activate

Edit

Neue Seite anlegen

Status der Site

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
125
Features von Neos CMS - Screenshots
Site-Verwaltung Editieren
Domain

deaktivieren

Domain

löschen

Domain
editieren

Domain

zufügen

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
126
Features von Neos CMS - Screenshots
Raw Content Mode - Anzeige der Elemente ohne Design
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
127
Features von Neos CMS - Screenshots
Preview Zentrale - Anzeige-Alternativen
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
128
Features von Neos CMS - Screenshots
Seitenbaum
Doppelklicken um den
Seitentitel zu editieren

Filtern des Seitenbaums nach
Typ (Seite, Shortcut, ...)

Drag&Drop um Seite 

zu verschieben

Klick auf Seitentitel um
Seite in der Preview
rechts zu sehen

Refresh

Löschen der 

ausgewählten Seite

Einfügen (innerhalb)

Ausschneiden

Seitentitel editieren
Seite unsichtbar/sichtbar
Seite kopieren
Suche im Seitenbaum
Klick auf Plus-Symbol 

legt neue Seite an

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
129
Features von Neos CMS - Screenshots
Strukturbaum
Im Strukturbaum werden alle
Elemente (sichtbare und
unsichtbare) der aktuellen Seite
hierarchisch aufgelistet
Auch hier hat man die selben
Icons für Funktionen wie „Neu“,
„Ausblenden“, „Kopieren“, ...
zur Verfügung
Klick auf die Überschrift öffnet
rechts die Eigenschaften im
Inspector und platziert den
InPlace-Editor an der
entsprechenden Stelle

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
130
Features von Neos CMS - Screenshots
Content-Funktionen Neues 

Content-Element
anlegen

Content-Element
kopieren

Content-Element
löschen

Content-Element
ausblenden

Content-Element
ausschneiden

Sobald man auf
„Kopieren“ oder
„Ausschneiden“ klickt,
erscheint „Einfügen“

(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
131
Features von Neos CMS - Screenshots
Content-Funktionen
Absatzformate

Tabelle

einfügen
Formatfrei

einfügen
Formatierung entfernen

Link
einfügen
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
132
Features von Neos CMS - Screenshots
Content Element einfügen
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
133
Features von Neos CMS - Screenshots
Mehrspaltige Content Elemente
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
134
Features von Neos CMS - Screenshots
Formulare auswählen
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
135
Features von Neos CMS - Screenshots
Media Browser
Collections
Upload Ansichten
Zum Taggen wird 

die Datei per
Drag&Drop auf das
Tag „gezogen“
Filter &

Sortierung
Tags
Suche
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
136
Features von Neos CMS - Screenshots
Media Browser
Meta-
Daten
Aktionen
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
137
Features von Neos CMS - Screenshots
Image Handling
UploadMedia-
Browser
Crop
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
138
Features von Neos CMS - Screenshots
Cropping (unobstrusive)
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 139
Internas von
Neos CMS
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
140
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
Content Section
Content Element
Site root
Neos CMS Internas: Node Structure
Domain Model
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
141
Node Type
• Jede TYPO3CR Node hat einen sogenannten

Node Type
• Node Types können in jedem Package
definiert werden, indem Sie in der Datei
Configuration/NodeTypes.yaml deklariert
werden.
• Jeder Node Type kann einen oder mehrere
Eltern Typen haben. Wenn diese spezifiziert
sind, werden alle Eigenschaften und
Settings der Eltern Types vererbt


Neos CMS Internas: Node Type
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
142
Vordefinierte Node Types:
• TYPO3.Neos:Node

Das ist der Basis-Typ, der von allen Content-Typen erweitert werden sollte, welche im
Kontext von Neos CMS verwendet werden. Hier gibt es keinerlei Eigenschaften.

• TYPO3.Neos:Document

Eine wichtige Unterscheidung wird zwischen Nodes getroffen, die sich wie eine Seite
verhalten (und so aussehen) und zwischen „normalen Inhalt“, wie Text, der auf einer
Seite gerendert wird. Nodes, die sich wie Seiten verhalten, werden in Neos als
„Document Nodes“ bezeichnet. Diese haben beispielsweise eine einzigartige und
extern sichtbare URL in Neos. Die Standard-Seite innerhalb von Neos ist implementiert
durch den Node Typen TYPO3.Neos.NodeTypes:Page welcher direkt von
TYPO3.Neos:Document abgeleitet wird.
Neos CMS Internas: Node Type
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
143
Vordefinierte Node Types:
• TYPO3.Neos:ContentCollection und TYPO3.Neos:Content

Jeglicher Content, der sich wie eine Seite verhält, sich aber innerhalb einer solchen
befindet, wird durch zwei verschiedene Node Typen implementiert:

• TYPO3.Neos:ContentCollection type

Dieser Node Typ dient der Strukturierung. Normalerweise enthält er keine
Eigenschaften sondern eine geordnete Liste von Sub-Nodes, welche innerhalb des
Nodes gerendert werden. Momentan sollte von dieser Typ nicht abgeleitet werden,
wenn man eigene Node Types erstellt
• TYPO3.Neos:Content 

Dies ist der Node Typ für alle Standard Elemente, wie „text“, „image“, „youtube“, ...
Neos CMS Internas: Node Type
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
144
Node Zugriff
• Der Zugriff auf Nodes erfolgt durch „NodePaths“
• Jede Seite ist ein Node, jedes Element auf einer Seite ebenfalls
Neos CMS Internas: Node Zugriff
/sites/typo3org/home/subpage/main/text1
content
section
pages
site root
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
145
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)
Neos CMS Internas: TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
146
TypoScript: Fluid-Template
{namespace ts=TYPO3TypoScriptViewHelpers}
{namespace bootstrap=TYPO3TwitterBootstrapViewHelpers}
<!DOCTYPE html>
<html lang="en">
<head>
<f:section name="metadata">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</f:section>
<f:section name="stylesheets">
<link rel="stylesheet" href="{f:uri.resource(path: '3/css/bootstrap.min.css', package:
'TYPO3.Twitter.Bootstrap')}" media="all" />
</f:section>
</head>
<body>
<f:section name="body">
<div class="top-navigation-wrap">
<div class="container">
{parts.mainMenu -> f:format.raw()}
{parts.secondLevelMenu -> f:format.raw()}
</div>
</div>

…

</f:section>
</body>
</html>
Neos CMS Internas: TypoScript - Fluid Template
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
147
TypoScript: Beispiel - Teil 1
include: NodeTypes/Carousel.ts2
namespace: TypoScript=TYPO3.TypoScript
page = Page {
head {
stylesheets {
site = TypoScript:Template {
templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/Page/Default.html'
sectionName = 'stylesheets'
node = ${node}
}
}
metadata = TypoScript:Template {
templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/Page/Default.html'
sectionName = 'metadata'
}

titleTag {
// Overwrite the title tags content with a collection to create a breadcrumb
content = TYPO3.TypoScript:Collection {
// Retrieve all parent document nodes excluding the homepage
collection = ${q(documentNode).add(q(documentNode).parents()).slice(0, -1).get()}
itemName = 'node'
iterationName = 'nodeIterator'
// Implode node titles with a dash
itemRenderer = ${q(node).property('title') + (nodeIterator.isLast ? '' : ' - ')}
// Always add general site name as suffix
@process.siteName = ${(value ? value + ' - ' : '') + 'Neos CMS'}
}
}
Neos CMS Internas: TypoScript - Beispiel - Teil 1
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
148
TypoScript: Beispiel - Teil 2
bodyTag.attributes.class = ${q(node).parents().count() >= 1 && q(node).children('[instanceof
TYPO3.Neos:Document]').filter('[_hiddenInIndex=false]').count() > 0 ? 'has-subpages' : ''}
body {
templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/Page/Default.html'
sectionName = 'body'
parts {
mainMenu = Menu {
entryLevel = 1
templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/
TypoScriptObjects/MainMenu.html'
maximumLevels = 3
itemCollection = ${q(site).add(q(site).children('[instanceof
TYPO3.Neos:Document]')).get()}
}
secondLevelMenu = Menu {
entryLevel = 2
templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/
TypoScriptObjects/SecondLevelMenu.html'
maximumLevels = 1
}
Neos CMS Internas: TypoScript - Beispiel - Teil 2
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
149
TypoScript: Prozessoren
• Beispiel:



myObject = MyObject {

property = 'Rocky'

property.@process.1 = ${'Der ' + value + ' ist der Beste!’}

}


# Resultat ist 'Der Rocky ist der Beste!’


• Kann auch so geschrieben werden:



myObject = MyObject {

property = 'some value'

property.@process.someWrap {

expression = ${'before ' + value + ' after'}

@position = 'start'

}

}

• Prozessoren sind Eel Ausdrücke oder TypoScript Objekte, welche auf den Wert des Kontextes angewendet werden. 

Auf das aktuelle Objekte kann mittels this zugegriffen werden
Neos CMS Internas: TypoScript - Prozessoren
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
150
Eel - Embedded Expression Language
• Während TypoScript Zuweisungen und Prozessoren beinhaltet, kann man mit Eel Ausdrücke
der 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, damit
sich der Autor der DSL auf die Semantik konzentrieren kann



${foo.bar} // Traversal

${foo.bar()} // Methoden-Aufruf

${foo.bar().baz()} // Verketter Methoden-Aufruf



${foo.bar("arg1", true, 42)} // Methoden-Aufruf mit Argumenten

${12 + 18.5} // Kalkulation

${foo == bar} // Vergleiche



${foo.bar(12+7, foo == bar)} // Alles kombiniert

${[foo, bar]} // Array Literal

${{foo: bar, baz: test}} // Object Literal
Neos CMS Internas: Eel - Embedded Expression Language
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
151
FlowQuery
• 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) im
Eel zu verarbeiten
• In FlowQuery gibt es Operationen:
• property

Zugriff auf alle Eigenschaften einer Node
• filter

Filterausdrücke in „Fizzle“
• children

Gibt alle Kinder der TYPO3CR Node zurück
• parents

Gibt alle Eltern der TYPO3CR Node zurück
• Weitere Operationen: add, count, first, get, is, last, ...

Neos CMS Internas: FlowQuery
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
152
FlowQuery - 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 Elternseiten

prototype(TYPO3.Neos:Breadcrumb) < prototype(TYPO3.TypoScript:Template) {

templatePath = 'resource://TYPO3.Neos/Private/Templates/TypoScriptObjects/
BreadcrumbMenu.html'

node = ${node}

items = ${q(node).add(q(node).parents('[instanceof TYPO3.Neos:Document]'))}

}

{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>
Neos CMS Internas: FlowQuery - Beispiele
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 153
Technische Details
TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
154
TypoScript 2.0 - Übersicht

• Nachdem bereits in TYPO3 CMS TypoScript verwendet wurde, bezeichnet man
TypoScript in Neos CMS (bzw. in TYPO3 Flow) mit der Versionsnummer 2.0
• Letztlich haben beide Versionen (vor allem technisch) nicht allzuviel miteinander zu
tun
• TypoScript wird ausschließlich zum Rendern von Inhalten im Frontend verwendet
(keine Konfiguration mehr von Usern im Backend beispielsweise wie durch TSconfig in
TYPO3 CMS üblich)
• TypoScript ist hierarchisch, weil es auch hierarchischen Inhalt rendert
• TypoScript ist Prototypen-basiert (ähnlich wie JavaScript), da es beispielsweise erlaubt
die Eigenschaften von allen Instanzen gleichzeitig zu ändern
• TypoScript ist eine Verarbeitungssprache, da es die Werte in einem Kontext verarbeitet
und in einem einzigen Ausgabe-Wert überführt
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
155
TypoScript: Objekte

• TypoScript ist eine Sprache um TypoScript Objekte zu beschreiben
• Ein TypoScript Objekt besitzt Eigenschaften - sogenannte Properties
• TypoScript Objekte haben Zugriff zu einem „Kontext“, welcher letztlich eine Liste von
Variablen ist
• TypoScript überführt diesen Kontext mit Hilfe der Properties in eine Ausgabe
• Intern kann TypoScript auch diesen Kontext verändern, sowie das Rendern von
„verschachtelten“ Objekten (TypoScript-Tree) anstoßen
• TypoScript-Objekte werden durch PHP-Klassen realisiert, welche zur Laufzeit
instanziert werden. Dabei kann eine Klasse die Basis von mehreren verschiedenen
Objekten sein
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
156
TypoScript: Objekte

• Gültiges TypoScript wäre beispielsweise wie folgt
• Dabei werden TypoScript-Pfade immer in lowerCamelCase notiert und Objekte
(Prototypen) in UpperCamelCase

foo = Page

my.object = Text

my.image = TYPO3.Neos.ContentTypes:Image

• Wertezuweisungen

foo.myProperty1 = 'Some Property which Page can access'

my.object.myProperty1 = "Some other property"

my.image.width = ${q(node).property('foo')}
• Werte die Strings darstellen müssen mit Anführungszeichen umschlossen werden
(einzelne oder doppelte). Als Werte sind auch Eel-Ausdrücke zugelassen.
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
157
TypoScript: Syntax

• Man kann TypoScript auch mittels geschweiften Klammern notieren („ausklammern“)
- dies bedeutet, dass der Pfad vor der öffnenden Klammer immer allen Pfaden
innerhalb der Klammern vorangestellt wird.

my {

image = Image

image.width = 200

object {

myProperty1 = 'some property'

}

}
• Dies ist identisch mit dem folgenden Code

my.image = Image

my.image.width = 200

my.object.myProperty1 = 'some property'
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
158
TypoScript: Objekt Instanziierung

• Es ist zudem möglich, Werte direkt bei der Instanziierung zu vergeben, wie das dritte
Beispiel zeigt (alle Beispiele sind in der Wirkung identisch):



someImage = Image

someImage.foo = 'bar'



someImage = Image

someImage {

foo = 'bar'

}



someImage = Image {

foo = 'bar'

}
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
159
TypoScript Objekte sind frei von Seiteneffekten

• Obwohl TypoScript Objekte ihren Kontext verändern können, sind sie ohne
„Seiteneffekte“. 

• Dafür wird der Kontext nach der Benutzung eines TypoScript-Objektes wieder
„aufgeräumt“, auch wenn dieser vorher verändert wurde
• TypoScript Objekte können nur andere TypoScript-Objekte ändern, die verschachtelt
sind - aber nicht Objekte welche davor oder danach kommen

• Das sorgt dafür, dass sich ein TypoScript-Pfad zusammen mit seinem Kontext immer
gleich verhält - egal an welcher Stelle dieser aufgerufen wird
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
160
TypoScript: Prototypen

• Wenn ein TypoScript Objekt instanziiert wird (weil z.B. jemand someImage = Image
schreibt), dann wird der Prototyp für dieses Objekt kopiert und als Basis für dieses
neue Objekt (someImage) verwendet.
• Ein Prototyp wird wie folgt definiert:

prototype(MyImage) {

width = '500px'

height = '600px'

}
• Nun kann man das Objekt verwenden:

# Das Objekt someImage hat eine Breite von 500px und eine Höhe
von 600 px

someImage = MyImage

# Nun ist die Breite 100px (und die Höhe nach wie vor 600px)

someImage.width = '100px'
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
161
TypoScript: Prototypen

• Prototypen sind veränderbar: 



prototype(MyYouTube) {

width = '100px'

height = '500px'

}



# Hiermit wird die Breite für alle Instanzen

# auf 400px geändert

prototype(MyYouTube).width = '400px'



# Man kann auch neue Eigenschaften (Properties) definieren

prototype(MyYouTube).showFullScreen = ${true}



# Man kann einen Prototypen auch „vererben“

prototype(MyImage) < prototype(TYPO3.Neos:Content)
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
162
TypoScript: Prototypen

• Über Verberbung bleiben Prototypen aneinander „gebunden“. Ändert sich eine
Eigenschaft in einer Instanz, wird diese auch in der anderen geändert. 



prototype(TYPO3.Neos.Content).fruit = 'apple'

prototype(TYPO3.Neos.Content).meal = 'dinner'



# MyImage hat nun auch die Eigenschaften "fruit = apple" and "meal = dinner"

prototype(MyImage) < prototype(TYPO3.Neos:Content)



# Da MyImage das Objekt Template *erweitert*, 

# hat MyImage.fruit nun ebenfalls den Wert 'Banana'

prototype(TYPO3.Neos:Content).fruit = 'Banana'

• # Da die Eigenschaft „meal“ nun in der Kind-Klasse überschrieben wurde, 

# hat ein Überschreiben in der Eltern-Klasse keine Auswirkung mehr

prototype(MyImage).meal = 'breakfast'

prototype(TYPO3.Neos:Content).meal = 'supper'
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
163
TypoScript: Prototypen

• Prototypen-Verberbung ist nur auf globaler Ebene möglich



prototype(Foo) < prototype(Bar)



• Nicht möglich wären daher folgende Anweisungen



prototype(Foo) < some.prototype(Bar)

other.prototype(Foo) < prototype(Bar)

prototype(Foo).prototype(Bar) < prototype(Baz)
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
164
TypoScript: Prototypen

• Hierarchische TypoScript Prototypen



# Setze die Eigenschaft „bar“ (bzw. „some.thing“) für alle Objekte vom Typ „Foo“

prototype(Foo).bar = 'baz'

prototype(Foo).some.thing = 'baz2'



# Für alle Objekte vom Typ „Foo“, welche innerhalb des Pfades „some.path“ a

# auftauchen, setze die Eigenschaft „some“

some.path.prototype(Foo).some = 'baz2'



# Für alle Objekte vom Typ „Bar“ die innerhalb von Objekten vom Typ „Foo“ 

# auftauchen, setze die Eigenschaft „some“

prototype(Foo).prototype(Bar).some = 'baz2'



# Kombination aus allen Möglichkeiten zuvor

prototype(Foo).left.prototype(Bar).some = 'baz2'
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
165
TypoScript: Namespaces

• Namespaces können bei der Deklaration verwendet werden



# Definiert einen Namespace „Acme.Demo“ für den Prototyp „YouTube“

prototype(Acme.Demo:YouTube) {

width = '100px'

height = '500px'

}

• Der Namespace ist per Konvention der Package-Key, des Packages wo sich das TypoScript
befindet

• Man kann voll qualifizierte Namespaces verwenden:



prototype(TYPO3.Neos:ContentCollection.Default) <
prototype(TYPO3.Neos:Collection)
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
166
TypoScript: Namespaces

• Verwendet man keinen Namespace, wird per Default immer TYPO3.Neos verwendet.
• Man kann aber auch eine Namespace-Direktive verwenden um einen eigenen
Namespace zu verwenden:



namespace Foo = Acme.Demo



# Die folgenden beiden Anweisungen sind identisch

video = Acme.Demo:YouTube

video = Foo:YouTube
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
167
TypoScript: Eigenschaften

• Auch wenn TypoScript-Objekte direkt auf den Kontext zugreifen können, sollte man
dennoch Eigenschaften (Properties) dafür verwenden

# Wir nehmen an, dass es eine Eigenschaft "foo=bar" 

# im aktuellen Kontext an dieser Stelle gibt

myObject = MyObject



# Explizites Zuweisen des Wertes der Variable „foo“ 

# aus dem aktuellen Kontext und Zuweisen an die

# „foo“ Eigenschaft des Objektes „myObject“

myObject.foo = ${foo}
• Objekte sollten ausschließlich eigene Eigenschaften verwenden, um den Output zu
generieren
• Lediglich bei der Prototypen-Definition kann man direkt auf den Kontext zugreifen:

prototype(MyObject).foo = ${foo}
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
168
TypoScript: Manipulation des Kontext

• Der TypoScript-Kontext kann direkt manipuliert werden, indem man die @override
Meta-Eigenschaft verwendet:



myObject = MyObject

myObject.@override.bar = ${foo * 2}


• Der obige Code erzeugt nun eine weitere Kontext-Variable mit dem Namen bar und dem
doppelten Wert von foo.
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
169
TypoScript: Prozessoren

• Prozessoren erlauben es, TypoScript Eigenschaften zu manipulieren:



myObject = MyObject {

property = 'some value'

property.@process.1 = ${'before ' + value + ' after'}

}

# Das Ergebnis ist nun 'before some value after'
• Es können mehrere Prozessoren verwendet werden
• Die Reihenfolge ergibt sich aus der numerische Position im TypoScript (nach @process) -
ein @process.2 würde demnach nach @process.1 ablaufen
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
170
TypoScript: Prozessoren

• Man kann für Prozessoren auf eine erweiterte Syntax verwenden



myObject = MyObject {

property = 'some value'

property.@process.someWrap {

expression = ${'before ' + value + ' after'}

@position = 'start'

}

}

# Das Ergebnis ist nun 'before some value after'
• Damit kann man einen Namen (hier „someWrap“) verwenden
• Prozessoren sind Eel Ausdrücke bzw. TypoScript Objekte, die auf Wert des Kontextes
angewendet werden. Das aktuelle Objekt erreicht man via this
Technische Details - TypoScript
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 171
Neos TypoScript
Referenz
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
172
TYPO3.TypoScript:Array (Teil 1)

• Rendert die verschachtelten TypoScript Objekte und verbindet deren Ausgabe
• Die Reihenfolge wird über das @position Argument spezifiziert
• Für dieses Argument gilt die folgende Reihenfolge
• start [priority]

Je höher die Priorität, desto früher wird das Objekt hinzugefügt. Wenn keine Priorität
angegeben wird, wird das Element hinter allen Elementen mit Priorität einsortiert
• [numeric ordering] 

Position (aufsteigend sortiert)
• end [priority] 

Je höher die Priorität, desto später wird das Objekt hinzugefügt. Wenn keine Priorität
angegeben wird, wird das Element vor allen Elementen mit Priorität einsortiert
Neos TypoScript Referenz
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
173
TYPO3.TypoScript:Array (Teil 2)

• Zusätzlich kann spezifiziert werden, dass ein Element vor oder nach einem anderen
Element einsortiert wird:

• before [namedElement] [optionalPriority]

Fügt dieses Element vor dem Element „namedElement“ ein. Gibt es mehrere
Statements, so entscheidet die Priorität wie weit das Element vor „namedElement“
positioniert wird; es gilt also je höher, desto näher. Statements ohne Priorität werden am
weitesten vor dem Element platziert. Wenn „namedElement“ nicht existiert, wird das
Element nach allen „start“ Positionen platziert.
• after [namedElement] [optionalPriority]

Analog „before“ nur genau andersherum („nach namendElement“, „vor allen end
Positionen“,...)
Neos TypoScript Referenz
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
174
TYPO3.TypoScript:Array (Teil 3) (o = Kleines Oh / „Order“)



myArray = TYPO3.TypoScript:Array {
o1 = TYPO3.Neos.NodeTypes:Text
o1.@position = 'start 12'
o2 = TYPO3.Neos.NodeTypes:Text
o2.@position = 'start 5'
o2 = TYPO3.Neos.NodeTypes:Text
o2.@position = 'start'
o3 = TYPO3.Neos.NodeTypes:Text
o3.@position = '10'
o4 = TYPO3.Neos.NodeTypes:Text
o4.@position = '20'
o5 = TYPO3.Neos.NodeTypes:Text
o5.@position = 'before o6'
o6 = TYPO3.Neos.NodeTypes:Text
o6.@position = 'end'
o7 = TYPO3.Neos.NodeTypes:Text
o7.@position = 'end 20'
o8 = TYPO3.Neos.NodeTypes:Text
o8.@position = 'end 30'
o9 = TYPO3.Neos.NodeTypes:Text
o9.@position = 'after o8'
}
Neos TypoScript Referenz
(c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag
Neos CMS - das Kompendium
175
TYPO3.TypoScript:Collection (Teil 1)

• Führt eine Schleife auf einer Array-ähnlichen „collection“ aus und rendert jedes Element
mit Hilfe des itemRenderer


Neos TypoScript Referenz
collection
(array/iterable, required) 

Das Array oder das „iterable“ über welches iteriert wird
itemName
(string, required) 
 Der Name, unter dem jedes Element verfügbar gemacht
wird
iterationName
(string) 
 Meta-Infos über die Iteration: index (beginnend bei 0),
cycle (beginned bei 1), isFirst, isLast.
itemRenderer (nested TypoScript object)
Dieses TypoScript Objekt wird einmal je Durchlauf
aufgerufen und dessen Resultat verbunden.
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)

Weitere ähnliche Inhalte

Was ist angesagt?

TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerkTYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
die.agilen GmbH
 
TYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerkTYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerk
die.agilen GmbH
 
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die NeuerungenTYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
die.agilen GmbH
 
TYPO3 CMS 7.2 - Die Neuerungen - pluswerk
TYPO3 CMS 7.2 - Die Neuerungen - pluswerkTYPO3 CMS 7.2 - Die Neuerungen - pluswerk
TYPO3 CMS 7.2 - Die Neuerungen - pluswerk
die.agilen GmbH
 
Upgrade auf TYPO3 6.2
Upgrade auf TYPO3 6.2Upgrade auf TYPO3 6.2
Upgrade auf TYPO3 6.2
Wolfgang Wagner
 
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
die.agilen GmbH
 
Typo3 4.3 Die Neuerungen im Überblick
Typo3 4.3 Die Neuerungen im ÜberblickTypo3 4.3 Die Neuerungen im Überblick
Typo3 4.3 Die Neuerungen im Überblick
die.agilen GmbH
 
TYPO3 CMS 6.1 - Die Neuerungen - typovision GmbH
TYPO3 CMS 6.1 - Die Neuerungen - typovision GmbHTYPO3 CMS 6.1 - Die Neuerungen - typovision GmbH
TYPO3 CMS 6.1 - Die Neuerungen - typovision GmbH
die.agilen GmbH
 
TYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenTYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein Wissen
Alex Kellner
 
TYPO3: Extension news
TYPO3: Extension newsTYPO3: Extension news
TYPO3: Extension news
NicolaiSch
 
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
die.agilen GmbH
 
Typo3 und Varnish
Typo3 und VarnishTypo3 und Varnish
Typo3 und Varnish
Oliver Thiele
 
Vorstellung TYPO3 Neos - Release 1.0 - Releaseparty Rosenheim
Vorstellung TYPO3 Neos - Release 1.0 - Releaseparty RosenheimVorstellung TYPO3 Neos - Release 1.0 - Releaseparty Rosenheim
Vorstellung TYPO3 Neos - Release 1.0 - Releaseparty Rosenheim
Alex Kellner
 
TYPO3 4.5 LTS - Die Neuerungen auf einen Blick
TYPO3 4.5 LTS - Die Neuerungen auf einen BlickTYPO3 4.5 LTS - Die Neuerungen auf einen Blick
TYPO3 4.5 LTS - Die Neuerungen auf einen Blick
die.agilen GmbH
 
Neos CMS - Das CMS der nächsten Generation - IPC 2015
Neos CMS - Das CMS der nächsten Generation - IPC 2015Neos CMS - Das CMS der nächsten Generation - IPC 2015
Neos CMS - Das CMS der nächsten Generation - IPC 2015
die.agilen GmbH
 
TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)
Marcus Schwemer
 
TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-ProjektenTYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
Alex Kellner
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
B1 Systems GmbH
 
Deploy Magento Shops with Capistrano v3
Deploy Magento Shops with Capistrano  v3Deploy Magento Shops with Capistrano  v3
Deploy Magento Shops with Capistrano v3
Roman Hutterer
 
Anleitung zur Installation von Tomcat für Opencms
Anleitung zur Installation von Tomcat für OpencmsAnleitung zur Installation von Tomcat für Opencms
Anleitung zur Installation von Tomcat für Opencms
Stefan Hilpp
 

Was ist angesagt? (20)

TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerkTYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
 
TYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerkTYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerk
 
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die NeuerungenTYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
 
TYPO3 CMS 7.2 - Die Neuerungen - pluswerk
TYPO3 CMS 7.2 - Die Neuerungen - pluswerkTYPO3 CMS 7.2 - Die Neuerungen - pluswerk
TYPO3 CMS 7.2 - Die Neuerungen - pluswerk
 
Upgrade auf TYPO3 6.2
Upgrade auf TYPO3 6.2Upgrade auf TYPO3 6.2
Upgrade auf TYPO3 6.2
 
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
 
Typo3 4.3 Die Neuerungen im Überblick
Typo3 4.3 Die Neuerungen im ÜberblickTypo3 4.3 Die Neuerungen im Überblick
Typo3 4.3 Die Neuerungen im Überblick
 
TYPO3 CMS 6.1 - Die Neuerungen - typovision GmbH
TYPO3 CMS 6.1 - Die Neuerungen - typovision GmbHTYPO3 CMS 6.1 - Die Neuerungen - typovision GmbH
TYPO3 CMS 6.1 - Die Neuerungen - typovision GmbH
 
TYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenTYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein Wissen
 
TYPO3: Extension news
TYPO3: Extension newsTYPO3: Extension news
TYPO3: Extension news
 
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
 
Typo3 und Varnish
Typo3 und VarnishTypo3 und Varnish
Typo3 und Varnish
 
Vorstellung TYPO3 Neos - Release 1.0 - Releaseparty Rosenheim
Vorstellung TYPO3 Neos - Release 1.0 - Releaseparty RosenheimVorstellung TYPO3 Neos - Release 1.0 - Releaseparty Rosenheim
Vorstellung TYPO3 Neos - Release 1.0 - Releaseparty Rosenheim
 
TYPO3 4.5 LTS - Die Neuerungen auf einen Blick
TYPO3 4.5 LTS - Die Neuerungen auf einen BlickTYPO3 4.5 LTS - Die Neuerungen auf einen Blick
TYPO3 4.5 LTS - Die Neuerungen auf einen Blick
 
Neos CMS - Das CMS der nächsten Generation - IPC 2015
Neos CMS - Das CMS der nächsten Generation - IPC 2015Neos CMS - Das CMS der nächsten Generation - IPC 2015
Neos CMS - Das CMS der nächsten Generation - IPC 2015
 
TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)
 
TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-ProjektenTYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 
Deploy Magento Shops with Capistrano v3
Deploy Magento Shops with Capistrano  v3Deploy Magento Shops with Capistrano  v3
Deploy Magento Shops with Capistrano v3
 
Anleitung zur Installation von Tomcat für Opencms
Anleitung zur Installation von Tomcat für OpencmsAnleitung zur Installation von Tomcat für Opencms
Anleitung zur Installation von Tomcat für Opencms
 

Ähnlich wie Neos CMS - das Kompendium (Version 2.0.0)

TYPO3 Neos - Next Generation CMS - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014TYPO3 Neos - Next Generation CMS - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014
die.agilen GmbH
 
TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)
die.agilen GmbH
 
TYPO3 Neos - ein technischer Überblick - DWX 2013
TYPO3 Neos - ein technischer Überblick - DWX 2013TYPO3 Neos - ein technischer Überblick - DWX 2013
TYPO3 Neos - ein technischer Überblick - DWX 2013
die.agilen GmbH
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Andreas Wissel
 
Typo3 cms-6-0-die-neuerungen
Typo3 cms-6-0-die-neuerungenTypo3 cms-6-0-die-neuerungen
Typo3 cms-6-0-die-neuerungen
Mokhtar Slama
 
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhoneWebapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
die.agilen GmbH
 
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
NETWAYS
 
Public Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBBPublic Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBB
BATbern
 
Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013
NETWAYS
 
Einführung in das TCF Microsoft Cloud Onboarding Model
Einführung in das TCF Microsoft Cloud Onboarding ModelEinführung in das TCF Microsoft Cloud Onboarding Model
Einführung in das TCF Microsoft Cloud Onboarding Model
Twin Cap First AG
 
CLOUDSERVICES FÜR ISVs
CLOUDSERVICES FÜR ISVsCLOUDSERVICES FÜR ISVs
CLOUDSERVICES FÜR ISVs
acentrix GmbH
 
Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...
Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...
Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...
comspace GmbH & Co. KG
 
Chatbot Hackathon Slidedeck
Chatbot Hackathon SlidedeckChatbot Hackathon Slidedeck
Chatbot Hackathon Slidedeck
Allgeier (Schweiz) AG
 
Metalstack Cloud - DSGVO konformes Managed Kubernetes für KMU
Metalstack Cloud - DSGVO konformes Managed Kubernetes für KMUMetalstack Cloud - DSGVO konformes Managed Kubernetes für KMU
Metalstack Cloud - DSGVO konformes Managed Kubernetes für KMU
Eduard Boger
 
OSMC 2012 | Monitoring bei der DB Systel by Ralf Döring
OSMC 2012 | Monitoring bei der DB Systel by Ralf DöringOSMC 2012 | Monitoring bei der DB Systel by Ralf Döring
OSMC 2012 | Monitoring bei der DB Systel by Ralf Döring
NETWAYS
 
Simplify SCCM with netECM
Simplify SCCM with netECMSimplify SCCM with netECM
Simplify SCCM with netECM
Digicomp Academy AG
 
Domino 12(.0.2) Lessons learned - DNUG Stammtisch Hamburg
Domino 12(.0.2) Lessons learned - DNUG Stammtisch HamburgDomino 12(.0.2) Lessons learned - DNUG Stammtisch Hamburg
Domino 12(.0.2) Lessons learned - DNUG Stammtisch Hamburg
DNUG e.V.
 
AdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveAdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep Dive
Klaus Bild
 
Cloud Native Computing & DevOps
Cloud Native Computing & DevOpsCloud Native Computing & DevOps
Cloud Native Computing & DevOps
Aarno Aukia
 

Ähnlich wie Neos CMS - das Kompendium (Version 2.0.0) (20)

TYPO3 Neos - Next Generation CMS - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014TYPO3 Neos - Next Generation CMS - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014
 
TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)
 
TYPO3 Neos - ein technischer Überblick - DWX 2013
TYPO3 Neos - ein technischer Überblick - DWX 2013TYPO3 Neos - ein technischer Überblick - DWX 2013
TYPO3 Neos - ein technischer Überblick - DWX 2013
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
 
Typo3 cms-6-0-die-neuerungen
Typo3 cms-6-0-die-neuerungenTypo3 cms-6-0-die-neuerungen
Typo3 cms-6-0-die-neuerungen
 
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhoneWebapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
 
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
 
Linuxtag holgerkoch openqrm_2013
Linuxtag holgerkoch openqrm_2013Linuxtag holgerkoch openqrm_2013
Linuxtag holgerkoch openqrm_2013
 
Public Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBBPublic Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBB
 
Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013
 
Einführung in das TCF Microsoft Cloud Onboarding Model
Einführung in das TCF Microsoft Cloud Onboarding ModelEinführung in das TCF Microsoft Cloud Onboarding Model
Einführung in das TCF Microsoft Cloud Onboarding Model
 
CLOUDSERVICES FÜR ISVs
CLOUDSERVICES FÜR ISVsCLOUDSERVICES FÜR ISVs
CLOUDSERVICES FÜR ISVs
 
Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...
Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...
Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...
 
Chatbot Hackathon Slidedeck
Chatbot Hackathon SlidedeckChatbot Hackathon Slidedeck
Chatbot Hackathon Slidedeck
 
Metalstack Cloud - DSGVO konformes Managed Kubernetes für KMU
Metalstack Cloud - DSGVO konformes Managed Kubernetes für KMUMetalstack Cloud - DSGVO konformes Managed Kubernetes für KMU
Metalstack Cloud - DSGVO konformes Managed Kubernetes für KMU
 
OSMC 2012 | Monitoring bei der DB Systel by Ralf Döring
OSMC 2012 | Monitoring bei der DB Systel by Ralf DöringOSMC 2012 | Monitoring bei der DB Systel by Ralf Döring
OSMC 2012 | Monitoring bei der DB Systel by Ralf Döring
 
Simplify SCCM with netECM
Simplify SCCM with netECMSimplify SCCM with netECM
Simplify SCCM with netECM
 
Domino 12(.0.2) Lessons learned - DNUG Stammtisch Hamburg
Domino 12(.0.2) Lessons learned - DNUG Stammtisch HamburgDomino 12(.0.2) Lessons learned - DNUG Stammtisch Hamburg
Domino 12(.0.2) Lessons learned - DNUG Stammtisch Hamburg
 
AdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveAdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep Dive
 
Cloud Native Computing & DevOps
Cloud Native Computing & DevOpsCloud Native Computing & DevOps
Cloud Native Computing & DevOps
 

Mehr von die.agilen GmbH

LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)
LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)
LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)
die.agilen GmbH
 
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
die.agilen GmbH
 
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
die.agilen GmbH
 
Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017
Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017
Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017
die.agilen GmbH
 
Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...
Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...
Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...
die.agilen GmbH
 
Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...
Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...
Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...
die.agilen GmbH
 
Roman Rackwitz - Gamification und OKR
Roman Rackwitz - Gamification und OKRRoman Rackwitz - Gamification und OKR
Roman Rackwitz - Gamification und OKR
die.agilen GmbH
 
Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...
Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...
Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...
die.agilen GmbH
 
Agile Mitarbeiterführung mit OKRs / Manage Agile 2017 / Berlin
Agile Mitarbeiterführung mit OKRs / Manage Agile 2017 / BerlinAgile Mitarbeiterführung mit OKRs / Manage Agile 2017 / Berlin
Agile Mitarbeiterführung mit OKRs / Manage Agile 2017 / Berlin
die.agilen GmbH
 
The agile enterprise - Digital Transformation as a practical application
The agile enterprise - Digital Transformation as a practical applicationThe agile enterprise - Digital Transformation as a practical application
The agile enterprise - Digital Transformation as a practical application
die.agilen GmbH
 
How leadership of employees via Objectives and Key Results (OKR) speeds up th...
How leadership of employees via Objectives and Key Results (OKR) speeds up th...How leadership of employees via Objectives and Key Results (OKR) speeds up th...
How leadership of employees via Objectives and Key Results (OKR) speeds up th...
die.agilen GmbH
 
4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...
4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...
4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...
die.agilen GmbH
 
DWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - Pluswerk
DWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - PluswerkDWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - Pluswerk
DWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - Pluswerk
die.agilen GmbH
 
Innovationsmotoren für IoT - DWX 2016 - Pluswerk
Innovationsmotoren für IoT - DWX 2016 - PluswerkInnovationsmotoren für IoT - DWX 2016 - Pluswerk
Innovationsmotoren für IoT - DWX 2016 - Pluswerk
die.agilen GmbH
 
OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...
OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...
OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...
die.agilen GmbH
 
30 Jahre Scrum - alles agil, alles gut? Auf dem Weg zum digitalen Unternehme...
30 Jahre Scrum - alles agil, alles gut?  Auf dem Weg zum digitalen Unternehme...30 Jahre Scrum - alles agil, alles gut?  Auf dem Weg zum digitalen Unternehme...
30 Jahre Scrum - alles agil, alles gut? Auf dem Weg zum digitalen Unternehme...
die.agilen GmbH
 
Innovationsmotor Design Thinking - pluswerk
Innovationsmotor Design Thinking - pluswerkInnovationsmotor Design Thinking - pluswerk
Innovationsmotor Design Thinking - pluswerk
die.agilen GmbH
 
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...
die.agilen GmbH
 
WTC15 - Innovationsmotor Design Thinking
WTC15 - Innovationsmotor Design ThinkingWTC15 - Innovationsmotor Design Thinking
WTC15 - Innovationsmotor Design Thinking
die.agilen GmbH
 
Medienhaus pecha-kucha - T3CON 2015
Medienhaus pecha-kucha - T3CON 2015Medienhaus pecha-kucha - T3CON 2015
Medienhaus pecha-kucha - T3CON 2015
die.agilen GmbH
 

Mehr von die.agilen GmbH (20)

LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)
LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)
LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)
 
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
 
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
 
Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017
Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017
Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017
 
Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...
Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...
Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...
 
Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...
Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...
Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...
 
Roman Rackwitz - Gamification und OKR
Roman Rackwitz - Gamification und OKRRoman Rackwitz - Gamification und OKR
Roman Rackwitz - Gamification und OKR
 
Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...
Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...
Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...
 
Agile Mitarbeiterführung mit OKRs / Manage Agile 2017 / Berlin
Agile Mitarbeiterführung mit OKRs / Manage Agile 2017 / BerlinAgile Mitarbeiterführung mit OKRs / Manage Agile 2017 / Berlin
Agile Mitarbeiterführung mit OKRs / Manage Agile 2017 / Berlin
 
The agile enterprise - Digital Transformation as a practical application
The agile enterprise - Digital Transformation as a practical applicationThe agile enterprise - Digital Transformation as a practical application
The agile enterprise - Digital Transformation as a practical application
 
How leadership of employees via Objectives and Key Results (OKR) speeds up th...
How leadership of employees via Objectives and Key Results (OKR) speeds up th...How leadership of employees via Objectives and Key Results (OKR) speeds up th...
How leadership of employees via Objectives and Key Results (OKR) speeds up th...
 
4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...
4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...
4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...
 
DWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - Pluswerk
DWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - PluswerkDWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - Pluswerk
DWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - Pluswerk
 
Innovationsmotoren für IoT - DWX 2016 - Pluswerk
Innovationsmotoren für IoT - DWX 2016 - PluswerkInnovationsmotoren für IoT - DWX 2016 - Pluswerk
Innovationsmotoren für IoT - DWX 2016 - Pluswerk
 
OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...
OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...
OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...
 
30 Jahre Scrum - alles agil, alles gut? Auf dem Weg zum digitalen Unternehme...
30 Jahre Scrum - alles agil, alles gut?  Auf dem Weg zum digitalen Unternehme...30 Jahre Scrum - alles agil, alles gut?  Auf dem Weg zum digitalen Unternehme...
30 Jahre Scrum - alles agil, alles gut? Auf dem Weg zum digitalen Unternehme...
 
Innovationsmotor Design Thinking - pluswerk
Innovationsmotor Design Thinking - pluswerkInnovationsmotor Design Thinking - pluswerk
Innovationsmotor Design Thinking - pluswerk
 
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...
 
WTC15 - Innovationsmotor Design Thinking
WTC15 - Innovationsmotor Design ThinkingWTC15 - Innovationsmotor Design Thinking
WTC15 - Innovationsmotor Design Thinking
 
Medienhaus pecha-kucha - T3CON 2015
Medienhaus pecha-kucha - T3CON 2015Medienhaus pecha-kucha - T3CON 2015
Medienhaus pecha-kucha - T3CON 2015
 

Neos CMS - das Kompendium (Version 2.0.0)

  • 1. Neos CMS 2.0
 Das Kompendium
 
 Patrick Lobacher
 +Pluswerk AG 12.08.2015
  • 2. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 2 Feedback erwünscht • Lieber Neos-Enthusiast!
 
 Ich versuche das Neos CMS Kompendium stets aktuell zu halten und ständig zu ergänzen. Aber dafür brauche ich Deinen Input! Wenn Du Ideen hast, Code-Beispiele, FAQ-Themen oder schlicht Lob (oder Kritik), dann schreibe mir bitte an die folgende Adresse:
 
 patrick [AT] lobacher.de
 
 Viel Spaß mit dem Kompendium!
 Patrick Lobacher
 Feedback
  • 3. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 3 Changelog Changelog Datum Veränderungen 08.08.2013 Initiale Version / Danke an Christian Schwerdt für den domainFACTORY Input 09.08.2013 Korrekturen von Roland Schenke und Michael Oehlhof eingearbeitet - Danke! 10.08.2013 Nginx-Config eingearbeitet. Danke an Christian Kuhn, Christian Müller und Anja Leichsenring
 10.08.2013 Troubleshoot-Sektion eingefügt 18.08.2013 Korrekturen von Roland Schenke eingearbeitet - Danke! 18.08.2013 Übersetzung des Kompendiums (zur Version alpha5) von Roland Schenke. Danke!! 12.12.2013 Update auf Neos CMS 1.0 final 15.12.2013 Update für Neos CMS 1.0.1 07.01.2014 Link für Installation unter Shared Hosting und Korrekturen (Danke an Christian Glass!) 03.03.2014 CI auf „LOBACHER.“ umgestellt 05.03.2014 Update auf Neos CMS 1.0.2
  • 4. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 4 Changelog Changelog Datum Veränderungen 07.03.2014 Installation auf einem all-inkl.com Server integriert. Danke an Mario Janetzko! 16.04.2014 Bugfixing im Bereich „Erweiterung der Site - Plugin 1“ . Danke an Rico Schüppel! 27.04.2014 Korrekturen von Roland Schenke eingearbeitet - Danke! 19.06.2014 Update auf Neos CMS 1.1 final, Uberspace Anleitung von Kerstin Huppenbauer - Danke! 28.06.2014 TYPO3 Surf Deployment Anleitung auf Uberspace Servern zugefügt. Danke an Benjamin Albrecht! 27.08.2014 Bugfix-Release 1.1.1 03.09.2014 Bugfix-Release 1.1.2 18.09.2014 Ergänzung bei Anleitung für Installation auf Domain Factory Servern (Danke an Timo Nußbaum!) 21.11.2014 Update für Neos CMS 1.2.0 beta 1 / Integration „Vor-Konfigurierte Neos Server bei Amazon Web Services (AWS)“ Danke an Michael Schams!!
  • 5. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 5 Changelog Changelog Datum Veränderungen 26.11.2014 Update für Neos CMS 1.2.0 beta 2 11.12.2014 Update für Neos CMS 1.2.0 12.08.2015 Update auf Neos CMS 2.0.0
  • 6. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 6 Neos CMS
 Schulung
  • 7. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 7 Neos CMS 2.0 Intensivschulung • In nur zwei Tagen lernst Du alle Aspekte, die wichtig sind, um eine komplette Website zu erstellen • Dabei musst Du kein Entwickler sein - wir werden kaum PHP programmieren (müssen) • Du erhältst neben Mittagessen, Getränken und kleinen Snacks vor allem auch ein umfangreiches und exklusives Schulungsmaterial und die erste Version des demnächst erscheinenden Neos Buches • Die Gruppen sind bewusst klein gehalten (max. 6 Teilnehmer), damit genügend Zeit für alle Fragen bleibt • Schulungsinhalte: https://www.xing.com/events/ neos-cms-2-0-typo3-neos-ntensivschulung-1585626 Die Neuerungen von Neos CMS 2.0.0
  • 8. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 8 Neos CMS Intensivschulung • Termine 2015 • München: 10. - 11.09.2015 / 12. - 13.11.2015 • Köln: 20. - 21.08.2015 (nur noch 2 Plätze!) • Berlin:  08. - 09.10.2015 • Hamburg: 22. - 23.10.2015
 • Kosten: 899.- EUR zzgl. MwSt.
 • Rabatt: Bei Hinweis auf das Kompendium erhältst Du 15% Rabatt!!!
 • Anmeldung: Mail an info@pluswerk.ag schreiben Die Neuerungen von Neos CMS 2.0.0
  • 9. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 9 Die Neuerungen in Neos CMS 2.0.0
  • 10. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 10 Mehrsprachigkeit im Backend - UI Die Neuerungen von Neos CMS 2.0.0
  • 11. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 11 Mehrsprachigkeit im Backend - UI • Die verfügbaren Sprachen werden in der Datei Settings.yaml definiert:
 
 TYPO3:
 Neos:
 userInterface:
 defaultLanguage: 'de'
 scrambleTranslatedLabels: FALSE
 availableLanguages:
 'da': 'Dansk – Danish'
 'de': 'Deutsch – German’
 … Die Neuerungen von Neos CMS 2.0.0
  • 12. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 12 Mehrsprachigkeit im Backend - Labels • Es können nun Labels in Yaml-Dateien referenziert werden:
 label: 'TYPO3.NeosDemoTypo3Org:NodeTypes.Page:
 properties.subpageLayout.selectBoxEditor.
 values.default' • Im entsprechenden Language-File 
 Packages/Sites/TYPO3.NeosDemoTypo3Org/Resources/ Private/Translations/en/NodeTypes/Page.xlf
 wird das Label aufgelöst:
 <trans-unit id="properties.subpageLayout.
 selectBoxEditor.values.default" xml:space="preserve">
 <source>Default</source>
 </trans-unit> Die Neuerungen von Neos CMS 2.0.0
  • 13. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 13 Event Log Modul • Oft will man sich einen 
 Überblick darüber ver-
 schaffen, wer welche 
 Inhalte wie und wann 
 verändert hat. • Dazu hat man Neos ein 
 Event Log spendiert – 
 welches alle 
 Benutzerinteraktionen 
 aufzeichnet und diese in 
 einem Backend-Modul 
 übersichtlich darstellt Die Neuerungen von Neos CMS 2.0.0
  • 14. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 14 Security 2.0 - ACL • Das Security-Framework wurde in den letzten 2 Jahren deutlich generalüberholt und steht nun in einer erweiterten und verbesserten Version zur Verfügung: • Komplettes Ausblenden von Teilen des Node-Trees • Schutz von beliebigen Methoden-Aufrufen • Definition der Sichtbarkeit von beliebigen Elementen in Abhängigkeit des authentifizierten Benutzers • Einschränkung der Anzeige von Backend Modulen • Einschränkung, welche TYPO3CR Node Types erzeugt werden dürfen • Einschränkung des Bearbeitens von Teilen des Node-Trees • Einschränkung der Anzeige von Eigenschaften im Property Inspektor • Einschränkung des Bearbeitens von Dimensionen Die Neuerungen von Neos CMS 2.0.0
  • 15. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 15 Security 2.0 - ACL - Settings.yaml • Zudem wurden die Funktionalitäten an die Domäne von Neos angeglichen – damit ist es nun möglich, unter anderem folgende Abfragen durchzuführen (Settings.yaml)
 
 // Ist die aktuelle Node unterhalb der angegebenen?
 isDescendantNodeOf("/sites/typo3cr/service")
 // Ist die aktuelle Node vom Typ der angegebenen?
 nodeIsOfType("TYPO3.Neos.NodeTypes:Text")
 // Hat die aktuelle Dimension den Wert der angegebenen?
 hasDimensionValue("language", "de_DE")
 Die Neuerungen von Neos CMS 2.0.0
  • 16. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 16 Security 2.0 - ACL - Policy.yam (1/2) • Im folgenden Beispiel wollen wir einschränken, dass • von jedem (Rolle TYPO3.Flow:Everybody) auf einer Produktseite nur Texte angelegt werden können • und dass nur registrierte Kunden (Rolle Acme.SomePackage:RegisteredCustomers) den geschützten Kundenbereich betreten können Die Neuerungen von Neos CMS 2.0.0
  • 17. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 17 Security 2.0 - ACL - Policy.yam (2/2) • privilegeTargets:
 'TYPO3TYPO3CRSecurityAuthorizationPrivilegeNodeReadNodePrivilege':
 'Acme.SomePackage:CustomerArea':
 matcher: 'isDescendantNodeOf("/sites/yoursite/customers")'
 'TYPO3TYPO3CRSecurityAuthorizationPrivilegeNodeCreateNodePrivilege':
 'Acme.SomePackage:CreateTextElementsOnProductPages':
 matcher: 'isDescendantNodeOf("/sites/yoursite/products") && createdNodeIsOfType("TYPO3.Neos.NodeTypes:Text")'
 
 roles: 
 'TYPO3.Flow:Everybody':
 privileges:
 -
 privilegeTarget: 'Acme.SomePackage:CreateTextElementsOnProductPages'
 permission: GRANT 
 'Acme.SomePackage:RegisteredCustomers':
 privileges: 
 -
 privilegeTarget: 'Acme.SomePackage:CustomerArea'
 permission: GRANT Die Neuerungen von Neos CMS 2.0.0
  • 18. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 18 Vorbereitung für Cloud-Asset-Management • Man verwendet Google Drive, Dropbox oder OneDrive wird verwendet, um Dateien und Assets zu verwalten. Zusätzlich sollten moderne Applikationen in der Lage sein, um mit PaaS Systeme wie Heroku oder AWS EC2 zusammen zu arbeiten. Da diese Systeme kein schreibbares und persistentes Dateisystem zur Verfügung zu stellen, wird ein alternatives Speichersystem für Assets benötigt. Zudem werden CDNs für statische Assets verwendet, um die Website performant zu halten. • Mit Flow 3.0 (und damit respektive Neos 2.0) hat ein neues Resource Management Einzug gehalten, welches in der Lage ist, all das zu leisten. • Einerseits erlaubt dieses, persistente Ressourcen (wie Bilder) zu verwenden, die der Benutzer beispielsweise auf Amazon S3 geladen hat und andererseits ist es damit möglich Ressourcen aus dem Output der Website (z.B. Bilder, welche per Crop oder Resize behandelt wurden) auf einem CDN wie Akamai or Rackspace CloudFiles zu publizieren. Die Neuerungen von Neos CMS 2.0.0
  • 19. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 19 SEO (1/5) • Es wurden einige Verbesserungen im Bereich SEO eingeführt • So wurde z.B. der Seiten- und der Navigations-Titel getrennt • Man kann zudem den Seitentitel gezielt überschreiben Die Neuerungen von Neos CMS 2.0.0
  • 20. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 20 SEO (2/5) • Zudem kann man die Meta-Tags „Description“ und „Keywords“ pro Seite festlegen • Weiterhin gibt es die Möglichkeit die Meta- Tag „Robots“ mit den Werten „noindex“ und/oder „nofollow“ zu definieren • Schließlich kann man auch einen Canonical- Link festlegen Die Neuerungen von Neos CMS 2.0.0
  • 21. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 21 SEO (3/5) • Für die Anzeige bei Facebook lassen sich einige Open-Graph-Tags festlegen:
 • og:type (None, Website, Article) • og:title • og:description • og:image Die Neuerungen von Neos CMS 2.0.0
  • 22. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 22 SEO (4/5) • Für die Anzeige bei Twitter lassen sich einige Twitter-Card-Tags festlegen:
 • twitter:site • twitter:title • twitter:description • twitter:image Die Neuerungen von Neos CMS 2.0.0
  • 23. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 23 SEO (5/5) • Für die XML-Sitemap kann per Seite eingestellt werden: • Frequenz (keine, immer, stündlich, täglich, wöchentlich, jährlich, nie) • Priorität (zwischen 0 und 1) • Um die Sitemap zu aktivieren, muss die Routes.yaml ergänzt werden:
 -
 name: 'Neos Seo'
 uriPattern: '<TYPO3NeosSeoSubroutes>'
 subRoutes:
 'TYPO3NeosSeoSubroutes':
 package: 'TYPO3.Neos.Seo'
 variables:
 'xmlSitemapPath': 'sitemap.xml' Die Neuerungen von Neos CMS 2.0.0
  • 24. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 24 Google Analytics (1/2) • Es gibt ein Google Analytics Paket, welches man hier erhält:
 https://packagist.org/ packages/typo3/neos- googleanalytics • Hier sieht man aktuelle Google
 Analytics Metriken übersichtlich
 per Seite angezeigt Die Neuerungen von Neos CMS 2.0.0
  • 25. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 25 Google Analytics (2/2) • Per Default sind folgende Werte sichtbar (voll konfigurierbar): • Grafische Anzeige der Session-Anzahl über ein Zeitraum von 3 Monaten • Sessions, PageViews und User im letzten Monat • Anteile an Desktop, Mobile und Tablet • Anzahl neue und wiederkehrende User • Die Konfiguration ist in der Datei Settings.yaml zu erledigen:
 TYPO3:
 Neos:
 GoogleAnalytics:
 authentication:
 applicationName: 'TYPO3 Neos'
 clientId: ~
 …
 Die Neuerungen von Neos CMS 2.0.0
  • 26. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 26 Media-Modul (1/2) • Es wurde sogenannte „Collections“ als zusätzlicher Layer eingeführt
 Die Neuerungen von Neos CMS 2.0.0
  • 27. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 27 Media-Modul (2/2) • Man kann nun die Assets auch 
 filtern bzw. sortieren
 • Tags lassen sich editieren
 
 
 
 
 Zudem wurde in der Liste sowohl ein Thumbnail, wie auch Dateigröße und Typ integriert Die Neuerungen von Neos CMS 2.0.0
  • 28. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 28 Content-Editing • Suchen ist nicht mehr Case-Sensitiv (Link-Wizards, Reference(s)-Editors und Node Tree Filter) • Die Content-Elements Toolbar unterstützt nun „insert/paste before/into/after“ • Das Image-Handling wurde verbessert: Support für SVG zugefügt, Image Upload ist auch per Drag&Drop im Inspector möglich, Cropping und Resizing kann nun per Node-Type konfiguriert werden • Der Inspector zeigt nun ausführliche Infos zu Meta- Daten (wie Erstellungsdatum, Modifizierungsdatum, u.s.w. an) Die Neuerungen von Neos CMS 2.0.0
  • 29. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 29 TypoScript, Eel und FlowQuery • @override heisst nun @context • Es gibt nun die FlowQuery Operatoren: parentsUntil, nextUntil, prevUntil, prevAll und nextAll • Conditions können nun verwendet werden, um zu evaluieren ob ein Prozessor angewendet werden sll • Eel erlaubt nun verschachtelte Objekt-Literale, wie {bar: {foo: 'baz'}} • FlowQuery-Filter besitzen nun weitere Vergleichsoperatoren: <, <=, >, >= Die Neuerungen von Neos CMS 2.0.0
  • 30. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 30 Dokumentation • Die Dokumentation wurde überarbeiten 
 und unter
 
 http://neos.readthedocs.org/en/2.0/ index.html
 
 zur Verfügung gestellt
 • Es gibt zudem PDF und ePub Versionen Die Neuerungen von Neos CMS 2.0.0
  • 31. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 31 Weitere Änderungen • Das Speicherformat der Node-Properties wurde auf JSON umgestellt • Das Exception-Handling wurde verbessert • Erstellungsdatum, Veränderungsdatum und Publizierungsdatum für Nodes wurde hinzugefügt • Es wurden Backend-Content Helper hinzugefügt • Node Repair wurde überarbeitet (Entferne kaputte Nodes, Entferne Nodes deren Referenz verloren gegangen ist, Entferne undefinierte Eigenschaften, Füge fehlende Werte hinzu, …) • Die Position für automatisch angelegte Child-Nodes kann nun konfiguriert werden Die Neuerungen von Neos CMS 2.0.0
  • 32. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 32 Upgrade Changelog • Upgrade-Anweisungen finden sich hier
 
 https://neos.io/develop/download/upgrade- instructions-2-0.html
 • Upgrade-Anweisungen finden sich hier
 
 http://neos.readthedocs.org/en/stable/Appendixes/ChangeLogs/200.html Die Neuerungen von Neos CMS 2.0.0
  • 33. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 33 Was ist Neos CMS?
  • 34. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 34 Neos CMS - the next generation CMS https://www.neos.io/learn/marketing-material.html
  • 35. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 35 Neos CMS - the next generation CMS Neos (griechisch νέος) heißt übersetzt schlicht “neu”
  • 36. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 36 Die Geschichte von Neos CMS 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 • > 100.000 Entwickler weltweit • > 1500 Agenturen weltweit • Finanziert und unterstützt von der TYPO3 Association Geschichte von Neos CMS beginnt bei TYPO3 CMS
  • 37. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 37 Die Geschichte von Neos CMS: 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 Features gab es damals in PHP noch nicht und mußten komplett neu implementiert werden: Content Repository, Aspect Oriented Programming, OP, Dependency Injection, ... • Mit dem „Berlin Manifesto“ wurde 2008 der Rahmen und die Abgrenzung zum TYPO3 CMS festgelegt
 http://typo3.org/roadmap/berlin-manifesto/
 (Das Manifest ist mittlerweile in Teilen nicht mehr gültig)
 Geschichte von Neos CMS: TYPO3 Phoenix
  • 38. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 38 Die Geschichte von Neos CMS: 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 Framwork TYPO3 Flow • Durch die Einführung von Extbase im Jahr 2009 wurde es möglich, bereits in TYPO3 CMS Extensions zu schreiben, die in TYPO3 Flow mit geringen Änderungen lauffähig sind (sofern sie keine Internas verwenden) • Am 20. Oktober 2011 wurde das Application Framework TYPO3 Flow (ehemals FLOW3) als Final veröffentlicht • Neos CMS ist eine Applikation die auf TYPO3 Flow basiert • Neos CMS Alpha 7 im Oktober 2013 / Beta 1 am 12.11.2013 • Erste finale Version 1.0.0 am 10.12.2013
 Geschichte von Neos CMS: TYPO3 Flow und Ne0s
  • 39. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 39 Die Geschichte von Neos CMS: TYPO3 Flow und Neos • Am 18.05.2015 gab es einen Split und das TYPo3 Neos Projekt ist aus der TYPO3 Association ausgetreten • Fortan residiert das Projekt unter http://neos.io • Die Version 2.0.0 wurde am 12.08.2015 veröffentlicht Geschichte von Neos CMS: TYPO3 Flow und Ne0s
  • 40. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 40 Versionshistorie Neos CMS Geschichte von Neos CMS: TYPO3 Flow und Ne0s Version Datum TYPO3 Phoenix Sprint Release 1 31.05.2010 ... ... TYPO3 Phoenix Sprint Release 9 02.08.2012 Neos CMS alpha 1 05.10.2012 Neos CMS alpha 2 19.12.2012 Neos CMS alpha 3 16.02.2013 Neos CMS alpha 4 4 07.07.2013 Neos CMS alpha 5 07.08.2013 Neos CMS alpha 6 15.10.2013 Neos CMS alpha 7 30.10.2013 Neos CMS beta 1 12.11.2013 Neos CMS beta 2 03.12.2013 Neos CMS 1.0 final 10.12.2013 Neos CMS 1.0.1 13.12.2013 Neos CMS 1.0.2 15.03.2014 Neos CMS 1.1 final 19.06.2014 Neos CMS 1.1.1 27.08.2014 Neos CMS 1.1.2 03.09.2014 Neos CMS 1.2.0 beta 1 14.11.2014 Neos CMS 1.2.0 beta 2 26.11.2014 Version Datum Neos CMS 1.2.0 10.12.2014 Neos CMS 1.2.1 02.01.2015 Neos CMS 1.2.2 05.02.2015 Neos CMS 1.2.3 26.03.2015 Neos CMS 1.2.4 17.04.2015 Neos CMS 1.2.5 18.04.2015 Neos CMS 1.2.6 10.05.2015 Neos CMS 1.2.7 30.05.2015 Neos CMS 1.2.8 03.06.2015 Neos CMS 1.2.9 02.07.2015 Neos CMS 2.0.0 12.08.2015
  • 41. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 41 Die Architektur von Neos CMS
  • 42. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 42 Die Architektur von Neos CMS - Backend 
 Die Architektur von Neos CMS - Backend Fluid
 Modern Templating Engine
 TYPO3CR
 Content Repository (JCR / Sling)
 
 TypoScript
 TypoScript 2.0 - next Generation
 Forms
 Form API & Form Builder
 
 Expose
 Extensible admin interface
 
 Eel
 Embedded Expression Language
 FlowQuery

  • 43. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 43 Die Architektur von Neos CMS - Frontend 
 Die Architektur von Neos CMS - Frontend 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

  • 44. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 44 Installation von Neos CMS
  • 45. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 45 Systemvoraussetzungen von Neos CMS • 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) - empfohlen wird PHP >= 5.6 • 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" Systemvoraussetzungen von Neos CMS
  • 46. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 46 Systemvoraussetzungen von Neos CMS • Wichtig ist auch, dass das PHP auf der Kommandozeile ebenfalls mindestens Version 5.3.7 ist (und über die angegebenen php.ini Einstellungen verfügt) - dies kann mit dem folgenden Befehl überprüft werden
 
 php --version
 • MySQL 5.1.50 - 5.x.x (zum Beispiel - grundsätzlich kann jede zum Doctrine DBAL kompatible Datenbank verwendet werden)
 • Zugang zur Konsole (root User!), wenn die Zugangsrechte vom Hoster nicht entsprechend gesetzt worden sind. Bei den meisten Hostern ist dies aber der Fall - dann reicht ein normaler User. Systemvoraussetzungen von Neos CMS
  • 47. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 47 Verzeichnisstruktur • Die Installation soll letztlich in folgende Verzeichnisstruktur erfolgen
 
 /pfad/zum/Webserver
 |-NeosCMS
 |---Build
 |---...
 |---Web (Document Root)
 • Alle Neos-Dateien liegen in dem Verzeichnis NeosCMS (dieses wird von „Composer“ in den nächsten Schritten angelegt) • Es gibt keine Trennung zwischen Core und UserSpace (wie bei TYPO3 CMS) • Das Document Root wird auf /pfad/zum/Webserver/Neos-CMS/Web gelegt Installation von Neos CMS - Verzeichnisstruktur
  • 48. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 48 Installation von Neos CMS - 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
 • Dies legt die Datei composer.phar im aktuellen Verzeichnis an • Will man den Composer zentral verwenden, kann man ihn auch verschieben/kopieren
 
 mv composer.phar /usr/local/bin/composer Installation von Neos CMS - Composer
  • 49. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 49 Installation von Neos CMS - Composer • Laden von Neos CMS via Composer (in einer Zeile notieren!): 
 
 php /path/to/composer.phar create-project --no-dev typo3/neos-base-distribution NeosCMS
 • Dies sorgt für die Installation von Flow, Neos CMS und den benötigten Modulen (inkl. 3rd Party wie Doctrine 2, Aloha, ...) • Anschließend erhält man ein Verzeichnis NeosCMS, welches die letzte Version von Neos enthält • Zur Installation von Composer unter Windows gibt es hier Infos:
 http://getcomposer.org/doc/00-intro.md#installation-windows Installation von Neos CMS - Composer
  • 50. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 50 [Alternative:] Archive verwenden • Auf Sourceforge steht die aktuelle Neos Version zum Download als zip, tar.gz und tar.bz2 bereit: 
 
 http://sourceforge.net/projects/typo3/files/TYPO3%20Neos/2.0.0/ Installation von Neos CMS - GIT Version
  • 51. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 51 [Alternative:] GIT-Version von Neos CMS verwenden • Laden der aktuellsten GIT-Version von Neos CMS: 
 
 git clone git://git.typo3.org/Neos/Distributions/ Base.git TYPO3-Neos && cd TYPO3-Neos
 
 Anschließend müssen dann noch die Abhängigkeiten geladen werden:
 
 composer install -s
 Installation von Neos CMS - GIT Version
  • 52. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 52 Installation von Neos CMS - Rechte setzen • Anschließend werden die Datei-Rechte in der Konsole gesetzt (falls nötig):
 
 cd NeosCMS
 sudo ./flow flow:core:setfilepermissions shelluser wwwuser wwwgroup
 
 (Weitere Infos: http://flowframework.readthedocs.org/en/stable/ TheDefinitiveGuide/PartII/Installation.html)
 • shelluser
 Dies ist der User, mit dem man in der Konsole eingeloggt ist - kann mittels whoami herausgefunden werden
 • wwwuser
 Der User, unter dem der Webserver läuft (steht in der Datei httpd.conf) - unter Mac OS X z.B. _www
 • wwwgroup
 Die Gruppe, unter dem der Webserver läuft (steht in der Datei httpd.conf) - unter Mac OS X z.B. _www
 Installation von Neos CMS - Rechte
  • 53. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 53 Installation von Neos CMS - VirtualHost • Virtual Host Eintrag (z.B. Apache)
 NameVirtualHost *:80 # sofern benötigt
 
 <VirtualHost *:80>
 
 DocumentRoot "/pfad/zum/webserver/NeosCMS/Web/"
 
 # Während der Entwicklung sollte die folgende Zeile
 # auskommentiert werden, denn dies stellt den Context auf
 # „Production“ - dies bedeutet: kein Logging, mit Caching, ...
 # Default ist „Development“
 SetEnv FLOW_CONTEXT Production
 ServerName neos.demo
 
 </VirtualHost>
 • Eintrag in /etc/hosts (C:windowssystem32driversetchosts)
 127.0.0.1 neos.demo Installation von Neos CMS - VirtualHost
  • 54. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 54 Installation von Neos CMS - Setup • Aufruf der Setup-Routine durch
 
 http://neos.demo/setup/
 Installation von Neos CMS - Setup
  • 55. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 55 Installation von Neos CMS - Setup • Das Passwort befindet in der Datei im angezeigten Pfad (merken!)
 /pfad/zum/webserver/NeosCMS/Data/SetupPassword.txt
 
 
 Installation von Neos CMS - Setup Die Datei mit dem Passwort wird anschließend wieder gelöscht.
 Hat man das Passwort vergessen, muss man die Datei
 
 /pfad/zum/webserver/ NeosCMS/Data/Persistent/ FileBasedSimpleKeyService /SetupKey
 
 löschen und das Setup
 erneut aufrufen.
  • 56. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 56 Installation von Neos CMS - Setup • Es folgt nun der 
 Requirements-
 Check • Es werden
 installierte Image
 Extensions angezeigt • Neos verwendet
 automatisch die
 „leistungs-
 fähigste“
 
 Installation von Neos CMS - Setup
  • 57. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 57 Installation von Neos CMS - Setup • Datenbank-Setup • Voreinstellung ist MySQL • Änderung des Treibers durch 
 Editieren der Datei:
 Configuration/Settings.yaml • Sollte als DB-Host 127.0.0.1 nicht
 funktionieren, so kann man probieren
 stattdessen localhost dort
 einzutragen • Man kann entweder eine bestehende
 DB auswählen oder eine neue anlegen
 Installation von Neos CMS - Setup
  • 58. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 58 Installation von Neos CMS - Setup • Anlegen eines Administrators
 • Weitere Benutzer können später in der
 Benutzerverwaltung angelegt werden • Zusätzliche Benutzer-Daten können
 ebenfalls später in der 
 Benutzerverwaltung zugefügt werden • Manuell kann man einen Benutzer 
 ebenfalls anlegen - in der Konsole:
 
 ./flow user:create username password firstname lastname Installation von Neos CMS - Setup
  • 59. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 59 Installation von Neos CMS - Setup • Nun kann man entweder 
 eine Demo-Site importieren
 (empfohlen)
 • Oder mit einer leeren Website
 starten • Sobald in diese beide unteren
 Formularfelder etwas 
 eingetragen ist, wird eine 
 neue Site angelegt Installation von Neos CMS - Setup
  • 60. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 60 Installation von Neos CMS - Setup • Wenn die Installation erfolgreich
 durchgelaufen ist, erscheint
 der entsprechende Hinweis
 • Die Dokumentation befindet sich
 unter
 
 neos.readthedocs.org/en/stable/
 Installation von Neos CMS - Setup
  • 61. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 61 Installation von Neos CMS Installation von Neos CMS - Setup So wie oben sieht das Frontend aus, wenn man die Demo-Site TYPO3.NeosDemoTypo3Org
 importiert hat. 
 
 Wenn man eine leere Site
 angelegt hat, erhält man den
 folgenden Screen:

  • 62. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 62 Installation von Neos CMS Installation von Neos CMS - Setup Zugang zur Installation: • Frontend
 http://neos.demo/ • Backend
 http://neos.demo/neos/ • Setup
 http://neos.demo/setup/

  • 63. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 63 Installation auf einem domainFACTORY Server (12/2014)
  • 64. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 64 Installation auf einem domainFACTORY Server Installation auf einem domainFACTORY Server Auf domainFACTORY Server muss man einer leicht abweichenden Installationsanleitung folgen • Credits gehen an: • Christian Schwerdt (die Medienagenten oHG) • Timo Nußbaum (Korrekturen) • Die Anleitung findet sich auch hier (zuletzt überprüft 12/2014):
 
 https://github.com/cschwerdt/TYPO3-NEOS-Install
  • 65. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 65 Installation auf einem domainFACTORY Server Installation auf einem domainFACTORY Server • Composer laden
 curl -s https://getcomposer.org/installer | /usr/local/bin/php5-53STABLE-CLI • Neos CMS 1.2.x laden:
 /usr/local/bin/php5-53LATEST-CLI composer.phar create-project --no-dev typo3/ neos-base-distribution TYPO3-Neos
 • In den domainFACTORY-Settings muss nun die Domain so konfiguriert werden, dass sie auf /Web zeigt

  • 66. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 66 Installation auf einem domainFACTORY Server Installation auf einem domainFACTORY Server • PHP-Pfad im Flow-CLI ändern
 (hier „vi“ - man kann aber natürlich auch jeden anderen Texteditor verwenden)
 
 cd TYPO3-Neos
 vi flow
 
 Die erste Zeile muss nun von
 
 #!/usr/bin/env php
 
 in die folgende geändert werden:
 
 #!/usr/local/bin/php5-53STABLE-CLI
 
 Anschließend abspeichern mit
 
 :!wq
  • 67. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 67 Installation auf einem domainFACTORY Server Installation auf einem domainFACTORY Server • Settings.yaml in Configuration/ anpassen (Editor „vi“ oder anderer)
 cd Configuration/
 cp Settings.yaml.example Settings.yaml
 vi Settings.yaml
 
 //set database host
 db: 'mysql5.<yourdomain.com>'
 
 //uncomment core: & phpBinaryPathAndFilename
 //and change phpBinaryPathAndFilename to: 
 core:
 phpBinaryPathAndFilename: '/usr/local/bin/php5-53STABLE-CLI'
 subRequestPhpIniPathAndFilename’: '/usr/local/bin/php5-53STABLE-CLI'
 
 
 Nun Abspeichern via:
 
 :wq!
  • 68. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 68 Installation auf einem domainFACTORY Server Installation auf einem domainFACTORY Server • Settings.yaml in Development/ anpassen (Editor „vi“ oder anderer)
 cd Development/
 cp Settings.yaml.example Settings.yaml
 vi Settings.yaml
 
 
 //set dbname, dbuser, dbpassword:
 dbname: '<dbname>'
 user: '<dbuser>'
 password: '<password>'
 
 
 Nun Abspeichern via:
 
 :wq!
  • 69. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 69 Installation auf einem domainFACTORY Server Installation auf einem domainFACTORY Server • Flow testen
 ./flow help
 • Datenbank migrieren
 ./flow doctrine:migrate 
 • Site kickstarten
 Syntax: ./flow kickstart:site [PackageKey] [SiteName]
 ./flow kickstart:site Your.Demopage Website
 • Sites auflisten
 ./flow site:list
  • 70. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 70 Installation auf einem domainFACTORY Server Installation auf einem domainFACTORY Server • Neos Backend User anlegen
 ./flow user:create <username> <password> <firstname> <lastname> 
 • Admin Userrolle zum User zufügen
 ./flow user:addrole <username> Administrator • Fertig :-)
 • ACHTUNG:
 Die Standard-Collation-Type für neue Datenbanken sind per default nicht richtig gesetzt (collation_server=utf8_unicode_ci). Wenn man nun eigene Extensions verwendet, führt das zu einem doctrine:migrate Fehler.
  • 71. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 71 Installation auf einem all-inkl.com Server (12/2014)
  • 72. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 72 Installation auf einem all-inkl.com Server Installation auf einem all-inkl.com Server Auf den Severn der „ALL-INKL.COM - Neue Medien Münnich“ muss man einer leicht abweichenden Installationsanleitung folgen • Credits gehen an: Mario Janetzko (die Medienagenten oHG)
 
 • Ab der Version Neos CMS 1.1 muss lediglich in der .htaccess eingetragen werden, welche PHP-Version benutzt wird (AddHandler). Die restliche Anleitung wird *nicht mehr* benötigt!
  • 73. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 73 Installation auf einem all-inkl.com Server Installation auf einem all-inkl.com Server • Vor dem Installieren müssen folgende Schritte durchgeführt werden • Öffnen der Datei Bootstrap.php im Pfad /Packages/Framework/ TYPO3.Flow/Classes/TYPO3/Flow/Core/
 • Einfügen der folgenden Zeile nach namespace TYPO3FlowCore;
 
 <?php
 namespace TYPO3FlowCore;
 
 ini_set('date.timezone','Europe/Berlin');
 ini_set('memory_limit','256M');
 
 …
  • 74. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 74 Installation auf einem all-inkl.com Server Installation auf einem all-inkl.com Server • Auskommentieren der Zeilen 557 - 560 in der Datei Bootstrap.php
 
 ALT:
 
 if (version_compare(PHP_VERSION, '5.4', '<') && get_magic_quotes_gpc() === 1) {
 echo('Flow requires the PHP setting "magic_quotes_gpc" set to Off. (Error #1224003190)’);
 exit(1);
 }
 
 NEU:
 
 /* if (version_compare(PHP_VERSION, '5.4', '<') && get_magic_quotes_gpc() === 1) {
 echo('Flow requires the PHP setting "magic_quotes_gpc" set to Off. (Error #1224003190)’);
 exit(1);
 } */

  • 75. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 75 Installation auf einem all-inkl.com Server Installation auf einem all-inkl.com Server • Hinzufügen der folgenden Zeilen in die Datei Web/index.php ab 
 Zeile 23:
 
 …
 require($rootPath . 'Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/ Bootstrap.php');
 
 putenv ("FLOW_REWRITEURLS=1");
 putenv ("FLOW_CONTEXT=Production");
 if (substr($_SERVER['HTTP_HOST'],0,4) === 'dev.') {
 putenv ("FLOW_CONTEXT=Development");
 }
 
 $context = getenv('FLOW_CONTEXT') ?: (getenv('REDIRECT_FLOW_CONTEXT') ?: 'Development');
 …
 • Nun kann die Installation gestartet werden! 

  • 76. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 76 Installation auf einem Uberspace Server (12/2014)
  • 77. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 77 Installation auf einem Uberspace Server Installation auf einem Uberspace Server Auf den Uberspace-Servern (http://www.uberspace.de/) muss man einer leicht abweichenden Installationsanleitung folgen • Credits gehen an: Kerstin Huppenbauer (digiparden GmbH)
 • Das Original befindet sich unter der URL:
 http://www.flowrocks.de/posts/2014/06/18/typo3-neos- in-einem-uberspace-installieren..html
 • (NAME durch den eigenen Uberspace-Namen und DOMAIN durch die eigene Domain ersetzen)
  • 78. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 78 Installation auf einem Uberspace Server Domains Domains müssen extern registriert werden und lassen sich über
 uberspace-add-domain -d DOMAIN -w 
 als Aliasdomain der Webserver Konfiguration hinzufügen. 
 Die lange Version findet sich hier: 
 https://uberspace.de/dokuwiki/domain:verwalten
  • 79. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 79 Installation auf einem Uberspace Server Composer Composer installieren und ins bin Verzeichnis verschieben: curl -sS https://getcomposer.org/installer | php mv composer.phar /home/NAME/bin/composer 

  • 80. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 80 Installation auf einem Uberspace Server PHP Als nächstes die aktive PHP-Version überprüfen. Da Flow auch PHP-CLI nutzt, muss die Version identisch sein. In meinem Fall war unter /package/host/localhost/ der PHP-Interpreter mit php-5.5.10 verlinkt - which php lieferte aber /package/host/localhost/php-5.5.5/bin/php zurück. Dies läßt sich einfach in der Datei phpversion ändern: cat ~/etc/phpversion und dort die passende PHP- Version eintragen, mit killall php-cgi den PHP-Interpreter neu starten und aus der Shell aus und wieder einloggen. PHP Module installieren Um eigene PEAR oder PECL Module zu installieren, muss zunächst eine Konfigurationsdatei angelegt werden: pear config-create ~ ~/.pearrc Anschließend kann z.B. Imagick über uberspace-install-pecl imagick installiert werden. Ausführliche Informationen finden sich hier - auch wie eine eigene php.ini angelegt werden kann:
 https://uberspace.de/dokuwiki/development:php
  • 81. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 81 Installation auf einem Uberspace Server Neos installieren Nach den Vorbereitungen kann nun Neos installiert werden. 
 Der Document-Root bei Uberspace ist /home/NAME/html, was ein Symlink auf /var/www/virtual/ NAME/html ist. Da Neos das Web-Verzeichnis als Web-Root nutzt, sollte Neos also nicht im Document- Root sondern irgendwo daneben installiert werden: cd /var/www/virtual/NAME git clone https://git.typo3.org/Neos/Distributions/Base.git cd Base composer update 
 Um nun unsere vorhin hinzugefügte Domain mit der Neos Installation zu verbinden, legen wir im Root unseres Uberspaces einfach einen Symlink an. Ohne eigene Domain würde der Symlink aus dem Document Root auf das Web-Verzeichnis zeigen. cd /var/www/virtual/NAME ln -s /var/www/virtual/NAME/Base/Web DOMAIN
  • 82. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 82 Installation auf einem Uberspace Server Neos installieren Der Symlink muss dabei dem Hostnamen entsprechen. Soll die Seite über weitere Hostnamen erreichbar sein (z.B. für Developement und Production Context), können einfach weitere Symlinks mit den Hostnamen angelegt werden. Da Development der Default Context ist, kann der Production Context in der .htaccess wie folgt gesetzt werden SetEnvIf Host "^www" FLOW_CONTEXT=Production
  • 83. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 83 Installation auf einem Uberspace Server MySQL Das MySQL Passwort wurde von Uberspace gesetzt und befindet sich in der .my.cnf cat .my.cnf
 Passwort kopieren, Neos Backend aufrufen und der Spaß kann beginnen :-)
  • 84. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 84 Deployment mit TYPO3 Surf auf einem Uberspace Server
 (12/2014)
  • 85. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 85 Deployment mit TYPO3 Surf auf einem Uberspace Server Deployment mit TYPO3 Surf auf einem Uberspace Server Hier eine Anleitung, um Neos CMS mit Hilfe von TYPO3 Surf auf einem Uberspace-Servern (http://www.uberspace.de/) zu deployen. • Credits gehen an: Benjamin Albrecht (@beelbrecht, beelbrecht.de)
 • Das Original befindet sich unter der URL:
 https://gist.github.com/beelbrecht/fa8baf9f22faca64711e
 • Infos zu Surf gibt es hier:
 http://de.slideshare.net/kfish/deploying-typo3-neos-websites-using-surf
 http://etobi.de/blog/2012/10/deployment-write-a-deployment-recipe-for-typo3-surf/
 http://forge.typo3.org/projects/package-typo3-surf/repository/revisions/master/entry/Documentation/Guide/Index.rst

  • 86. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 86 Deployment mit TYPO3 Surf auf einem Uberspace Server Deployment mit TYPO3 Surf auf einem Uberspace Server 1/4 <?php // TYPO3 Surf script to deploy and update Neos CMS at your uberspace.de account // before of after the initial deployment, you have to setup some things manually at your host //
 // (e.g. DB credentials in Settings.yaml) // Note: replace placeholders such as [PLACEHOLDER] with the correct information // Create a simple workflow based on the predefined 'SimpleWorkflow'. $workflow = new TYPO3SurfDomainModelSimpleWorkflow(); // Create and configure a simple shell task to add the FLOW_CONTEXT to your .htaccess file // If you're using NEOS at your local machine to develop a NEOS site, you won't add this file and 
 // this setting to your Git repo... $editHtaccessCommandOptions = array( 'command' => 'echo -e "nSetEnv FLOW_CONTEXT Production n" >> {releasePath}/Web/.htaccess' );
 $workflow->defineTask('[foobar]:editHtaccess', 'typo3.surf:shell', $editHtaccessCommandOptions); 
 $workflow->addTask('[foobar]:editHtaccess', 'finalize');
 

  • 87. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 87 Deployment mit TYPO3 Surf auf einem Uberspace Server Deployment mit TYPO3 Surf auf einem Uberspace Server 2/4 // Add the workflow to the deployment. The $deployment instance is created by Surf. $deployment->setWorkflow($workflow); // Create and configure your node / nodes (host / hosts). $node = new TYPO3SurfDomainModelNode('uberspace'); $node->setHostname('[username].[host].uberspace.de'); 
 // If you don't use SSH-Keys to log into your remote host via SSH (as recommended), // you have to to add the following line: // $node->setOption('password', '[PASSWORD]'); // But you don't want to have any passwords as string in your deployment script ;-) $node->setOption('username', '[username]'); // Define your application and add it to your node. $application = new TYPO3SurfApplicationTYPO3Flow('[sitename]'); 
 // The deployment path is not the document root! // The document root has to be: '[deploymentPath]/releases/current/Web'. // At uberspace: create a symlink from '/var/www/virtual/[user]/html' 
 // to '[deploymentPath]/release/current/Web' $application->setDeploymentPath('/var/www/virtual/[username]/[sitename]');
 

  • 88. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 88 Deployment mit TYPO3 Surf auf einem Uberspace Server Deployment mit TYPO3 Surf auf einem Uberspace Server 3/4 // Be sure, that your node has read-access to your git repository. // In most cases, you can use the git- or https-protocol for public repositories or // SSH to read from private repositories. $application->setOption('repositoryUrl', '[urlToYourNeosDistributionGitRepository]'); 
 // Be sure, that you have installed composer $application->setOption('composerCommandPath', '/home/[username]/bin/composer'); $application->setOption('keepReleases', '5'); $application->addNode($node); // remove unused task. // you can't run a command with "sudo" at shared hosting environments $deployment->onInitialize(function() use ($workflow, $application) { $workflow->removeTask('typo3.surf:typo3:flow:setfilepermissions'); }); // Add the application to your deployment. $deployment->addApplication($application);
 

  • 89. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 89 Deployment mit TYPO3 Surf auf einem Uberspace Server Deployment mit TYPO3 Surf auf einem Uberspace Server 4/4 Um das Deployment Script zu verwenden, muss TYPO3 Surf zunächst installiert werden: ./flow package:import TYPO3.Surf Nun legt man das Deployment-Script im folgenden Verzeichnis ab:
 %FLOW_ROOT%/Build/Surf/NeosDeployment.php
 
 Infos zu dem Deployment gibt es hiermit:
 ./flow surf:describe NeosDeployment Simulieren kann man das Deployment hiermit:
 ./flow surf:simulate NeosDeployment Hiermit wird das Deployment durchgeführt:
 $ ./flow surf:deploy MyDeployment
 

  • 90. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 90 Nginx Config für Neos CMS (12/2014)
  • 91. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 91 Nginx Config für Neos CMS Nginx Config für Neos CMS • Credits gehen an: • Christian Kuhn • Christian Müller • Anja Leichsenring

  • 92. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 92 Nginx Config für Neos CMS Nginx Config für Neos CMS • Datei /etc/nginx/sites-available/neos.demo (Domain sei neos.demo)
 # Upstream to abstract backend connection(s) for php
 upstream neos.demo {
 server unix:/var/run/neos.demo_fpm.sock;
 } 
 server {
 server_name neos.demo;
 root /pfad/zum/webserver/TYPO3-Neos/Web;
 index index.php; 
 error_log /pfad/zum/webserver/TYPO3-Neos/logs/error_log;
 access_log /pfad/zum/webserver/TYPO3-Neos/logs/access_log;
 ## Disable .htaccess and other hidden files
 location ~ /. {
 deny all;
 access_log off;
 log_not_found off;
 }
 location = /favicon.ico {
 log_not_found off;
 access_log off;
 }
 location = /robots.txt {
 allow all;
 log_not_found off;
 access_log off;
 }
  • 93. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 93 Nginx Config für Neos CMS Nginx Config für Neos CMS • Datei /etc/nginx/sites-available/neos.demo (...FORTSETZUNG...)
 location /_Resources/ {
 access_log off;
 log_not_found off;
 expires max;
 break;
 }
 location /_Resources/Persistent/ {
 access_log off;
 log_not_found off;
 expires max;
 rewrite "(.{40})/.+.(.+)" /_Resources/Persistent/$1.$2 break;
 rewrite "([a-z0-9]+/(.+/)?[a-f0-9]{40})/.+.(.+)" /_Resources/Persistent/$1.$2 break;
 }
 ###
 # stop rewriting by existing files | is instead of -> location / { rewrite ".*" /index.php last; }
 # use this if you want to run other PHP-Applications in TYPO3-Flow/Web directory
 ###
 try_files $uri $uri/ /index.php?$args;
  • 94. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 94 Nginx Config für Neos CMS Nginx Config für Neos CMS • Datei /etc/nginx/sites-available/neos.demo (...FORTSETZUNG...Fertig!)
 location ~ .php$ {
 fastcgi_index index.php; 
 ###
 # for FLOW3 <= 1.1.x only | see note #15 on http://forge.typo3.org/issues/8923
 ###
 # fastcgi_param FLOW3_CONTEXT Development;
 # fastcgi_param FLOW3_CONTEXT Production;
 # fastcgi_param FLOW3_REWRITEURLS 1;
 ### # Make sure that you set the environment vars for new versions 
 # of TYPO3-XXXXX(TYPO3-Neos) products properly
 # see note #15 on http://forge.typo3.org/issues/8923
 ###
 fastcgi_param FLOW_CONTEXT Development;
 fastcgi_param FLOW_REWRITEURLS 1;
 fastcgi_split_path_info ^(.+.php)(.*)$;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 fastcgi_param PATH_INFO $fastcgi_path_info;
 fastcgi_pass neos.domain.tld;
 include /etc/nginx/fastcgi_params;
 }
 }
  • 95. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 95 Nginx Config für Neos CMS Nginx Config für Neos CMS • Datei /etc/php5/fpm/pool.d/neos.demo.pool.conf 
 
 [neos.demo] 
 listen = /var/run/neos.demo.sock
 listen.owner = neos.demo
 listen.group = demo
 listen.mode = 0660 
 user = neos.demo
 group = demo 
 pm = dynamic 
 pm.max_children = 50 
 pm.start_servers = 5 
 pm.min_spare_servers = 3
 pm.max_spare_servers = 10
 pm.max_requests = 200
 request_terminate_timeout = 360s
 chdir = /
 php_admin_value[session.save_path] = "/pfad/zum/webserver/TYPO3-Neos/sessions"
 # Waehrend der Installation kann das nicht ausreichen, ich hab danach wieder aufgeraeumt. 
 # Neos sagt das aber, dann eintragen, php-fpm neu starten, weitermachen. Zum Betrieb reicht das hier aus.
 php_admin_value[open_basedir] = "/pfad/zum/webserver/TYPO3-Neos/:/usr/share/pear:/usr/share/php:/tmp:/usr/ local/lib/php:/usr/bin/php"
  • 96. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 96 Nginx Config für Neos CMS Nginx Config für Neos CMS • Datei Configuration/Settings.yaml 
 
 TYPO3:
 Flow:
 persistence:
 backendOptions:
 dbname: ...
 user: ...
 password: ...
 host: 127.0.0.1
 core:
 subRequestPhpIniPathAndFilename: /etc/php5/cli/php.ini
  • 97. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 97 Upgrade von Neos CMS
  • 98. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 98 Upgrade von Neos CMS Upgrade von Neos CMS Um eine existierende Installation auf das letzte Patch-Level zu heben, kann man wie folgt vorgehen: cd /pfad/zum/webserver/ composer update --no-dev "typo3/*" # Cache loeschen! ./flow flow:cache:flush --force ./flow doctrine:migrate
 
 Gegebenenfalls muss man php composer.phar verwenden!
  • 99. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 99 Upgrade von Neos CMS Switching zum Development Master Um die letzten Änderungen zu teste, kann man auf den Development Master umschalten: cd /installation-root/ # update composer.json according to https://git.typo3.org/ Neos/Distributions/Base.git/blob/HEAD:/composer.json # actually update the packages composer update # Remember to flush the caches afterwards ./flow flow:cache:flush --force ./flow doctrine:migrate
 
 Gegebenenfalls muss man php composer.phar verwenden!
  • 100. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 100 Virtuelle Maschinen
  • 101. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 101 Virtuelle Maschinen Virtuelle Maschinen Es gibt einige Projekte, die virtuelle Maschinen für Neos CMS (und Flow) anbieten: • Vagrant-Umgebung (TYPO3 muss darin selbst installiert werden)
 https://github.com/swiftlizard/VagrantTYPO3
 • Vagrant-Umgebung (Neos CMS muss darin selbst installiert werden)
 https://github.com/mrimann/VagrantTYPO3Flow
 • Komplett funktionsfähiges Neos CMS
 https://launchr.com/typo3-neos
  • 102. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 102 Vor-Konfigurierte Neos Server bei Amazon Web Services (AWS)
  • 103. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 103 Vor-Konfigurierte Neos Server bei AWS AWS - Features
 • keine Installation notwendig (alle Komponenten sind vor-installiert) • Betriebsystem: Debian Linux (64 Bit) • Server Location auswählbar (zur Zeit: USA, Irland, Deutschland, Singapur, Japan, Australien und China) • uneingeschränkter "root" Zugang zum Server via SSH • uneingeschränkter "Administrator" Zugang zu Neos • Server ist einfach skalierbar (CPU, Speicher, Disks, etc.) • keine Mindestvertragslaufzeit ("pay as you go": berechnet werden nur aktive Server auf stundenbasis) • eignet sich besonders als Grundlage für eine neue Neos Website oder um Neos zu testen oder auszuprobieren
  • 104. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 104 Vor-Konfigurierte Neos Server bei AWS AWS - Voraussetzungen
 • ein Account bei Amazon Web Services (AWS) • grundlegende Kenntnisse in der System Administration (Linux) • ca. 2 bis 3 Minuten Zeit, bis der Server in der Cloud hochgefahren ist :-)
 
 
 Danke an Michael Schams (http://schams.net/) 
 für die Anleitung! :-)
  • 105. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 105 Vor-Konfigurierte Neos Server bei AWS AWS - Vorgehen zum Starten eines Neos Servers Schritt 1: im AWS Marketplace das Neos Machine Image finden:
 
 https://aws.amazon.com/marketplace/seller-profile/? id=3c5e5f3c-d60e-4405-a9ca-aae8abfa3e2b Schritt 2: Server auswählen, konfigurieren (Geo-Location, Serverleistung, Firewall, SSH Schlüssel, etc.) und starten Schritt 3: mittels SSH auf den Server verbinden, um automatisch generierte Passwörter zu ermitteln
  • 106. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 106 Vor-Konfigurierte Neos Server bei AWS AWS - Sonstige Informationen Die Nutzung der "Software" ist kostenlos - es fallen lediglich die Gebühren für die AWS Infrastruktur an (beginnend bei US$0.013 pro Stunde), siehe 
 http://aws.amazon.com/ec2/pricing/ AWS bieten einen "Free Tier", womit unter Umständen ein einfacher Neos Server (t2.micro Instanz) für 12 Monate kostenlos genutzt werden kann (allerdings nur bedingt für den Produktiveinsatz geeignet), siehe: 
 http://aws.amazon.com/free Credits gehen an: Michael Schams (schams.net), der bereits für die TYPO3 CMS Machine Images im AWS Marketplace verantwortlich ist. Ausführliche Dokumentation und weitere Informationen unter 
 http://schams.net/typo3-on-aws
  • 107. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 107 Features von Neos CMS
  • 108. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 108 Features von Neos CMS
 • 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 (bisher nur per Kommandozeile) • Multi-Domain Support • Multi-Language Support • Modernste Technologie und Paradigmen unter der Haube (DDD, AOP, RequireJS, EmberJS, ...) • Intuitives Benutzer-Interface • Wireframe Mode - Content-Editing ohne Template • Webbasiertes Package Management Features von Neos CMS
  • 109. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 109 Features von Neos CMS
 • In-place Content-Editing • Eigene Content-Elemente (inkl. In-place Content-Editing) leicht möglich • Integration von TYPO3 Flow Applikationen als Plugins (Packages) • TypoScript 2 / Eel / FlowQuery • Workspaces (Nicht Multiuser-fähig bislang) • Custom Single-Sign-On / Custom Authentification per Programmierung möglich • Audit Logging • TYPO3 Surf für das automatische Deployment (Integration mit CI Server wie Jenkins) Features von Neos CMS
  • 110. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 110 Features von Neos CMS • Mehrsprachigkeit im User Interface (2.0) • Benutzer ohne Admin-Rechte (Redakteure, es gibt zwar einen „Redakteur-User“, dieser ist aber bislang lediglich ein „Non-Admin“) (2.0) • Benutzerrechte / Benutzergruppen (2.0) • ACLs (2.0) • Non-Core-Features: Google Analytics Einbindung, … (2.0) • Logs (User, Admin, …) (2.0) • SEO-Features (Seiteneigenschaften: noindex, nofollow, keywords, description, canonical, …) (2.0) Features von Neos CMS
  • 111. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 111 Bislang fehlende Features • Webbased Installer (Kommandozeile mit Root-Zugriff notwendig) • Öffentliche Extensions (es gibt noch kein Package Repository) • Gemeinsam genutzte Workspaces • Versionierung (UI-Interface) • UI für Übersetzung (Diff-View, …) • Non-Core-Features: News, Anbindung an 3rd-Party-Systeme, Slider, SSL, … • REST (im Backend bereits implementiert und genutzt) Features von Neos CMS
  • 112. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 112 Bislang fehlende Features • Richtiges RWD-Interface (Interface funktioniert nur mit ca. 1000px und größer) • RWD-Rendering von Bildern • Digital Asset Management (es gibt einen MediaBrowser) • Formular-Designer (man kann lediglich programmatisch vorbereitete Formulare auswählen) • Content Synchronization and Syndication • Admin-Interface um beliebige Datensätze zu bearbeiten • ... Features von Neos CMS
  • 113. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 113 Aufbau der Neos Oberfläche
  • 114. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium Aufbau der Admin-Oberfläche 114 Features von Neos CMS - Screenshots Funktionen
 Menü Page-Browser
 (Seitenbaum)
 User-Administration
 Logout und Settings Publisher
 Publizieren, bei 
 Klick auf Pfeil 
 Möglichkeit zu
 „Auto-Publish“ Inspector
 Content-bezogene
 Eigenschaften, z.B. Seiten- eigenschaften, o.ä. Preview-Mode
 z.B. Print-Anzeige Editing-Modes
 z.B. Anzeige ohne Design Struktur-
 Ansicht
 Apply Umschaltung
 der Dimension
 (hier „Sprache“)
 Voll-Bild
 ohne Backend
  • 115. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 115 Features von Neos CMS - Screenshots Inspector Selektiertes Element
 z.B. Headline, Content-Collection, Page, ... Properties
 Kontextsensitive
 Eigenschaften, z.B. 
 Seiten- eigenschaften, o.ä.
  • 116. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 116 Features von Neos CMS - Screenshots Funktionen-Menü Content
 Hier können die verschiedenen Sites umgeschaltet werden
 
 Workspaces
 Verwaltung der Arbeitsbereiche
 Media-Browser
 Verwaltung der Medien
 
 User Management
 Benutzer-Verwaltung
 
 Package Management
 Paket-Verwaltung
 
 Sites Management
 Verwaltung der Websites
 
 Configuration
  • 117. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 117 Features von Neos CMS - Screenshots Workspaces Verwaltung Publish
 Publizieren
 Discard
 Verwerfen
 Auswahl einzelner Änderungen
 Angabe zum 
 Node-Typ
 Typ der
 Änderung

  • 118. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 118 Features von Neos CMS - Screenshots Workspaces Verwaltung Seiten, die Änderungen enthalten
 werden im
 Seitenbaum
 orange
 markiert

  • 119. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 119 Features von Neos CMS - Screenshots User-Verwaltung Edit
 Editieren
 Delete
 Löschen
Rolle
 View
 Ansehen
 Neuen
 Benutzer
 anlegen

  • 120. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 120 Features von Neos CMS - Screenshots User-Verwaltung - Neuer User Einen neuen User anlegen - es muss lediglich ein Username, das Passwort und die persönlichen Daten angegeben werden. Zusätzlich wird die Rolle (Admin oder Editor) gewählt.

  • 121. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 121 Features von Neos CMS - Screenshots User-Verwaltung - Editieren Hier können die Userdaten editiert
 werden und zudem auch weitere Daten
 angeben werden - z.B. Title Zusätzlich kann man hier beliebig viele
 „Electronic Addresses“ anlegen - also
 z.B. Email-Adressen oder Skype Durch die Angabe „Primary“ wählt man
 die Haupt-Adresse aus
  • 122. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 122 Features von Neos CMS - Screenshots User-Verwaltung - Info Die Funktion „Info“ zeigt eine Übersicht über alle eingegebenen Daten an Ein Klick auf „Delete“ öffnet eine Lightbox, in welcher noch einmal nachgefragt wird, ob man wirklich löschen möchte

  • 123. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 123 Features von Neos CMS - Screenshots Package-Verwaltung Delete
 Deactivate
 & Activate
 Freeze
 & Unfreeze
 Auswählen
 Aktionen auf der Auswahl

  • 124. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 124 Features von Neos CMS - Screenshots Site-Verwaltung Übersicht Delete
 Deactivate
 & Activate
 Edit
 Neue Seite anlegen
 Status der Site

  • 125. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 125 Features von Neos CMS - Screenshots Site-Verwaltung Editieren Domain
 deaktivieren
 Domain
 löschen
 Domain editieren
 Domain
 zufügen

  • 126. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 126 Features von Neos CMS - Screenshots Raw Content Mode - Anzeige der Elemente ohne Design
  • 127. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 127 Features von Neos CMS - Screenshots Preview Zentrale - Anzeige-Alternativen
  • 128. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 128 Features von Neos CMS - Screenshots Seitenbaum Doppelklicken um den Seitentitel zu editieren
 Filtern des Seitenbaums nach Typ (Seite, Shortcut, ...)
 Drag&Drop um Seite 
 zu verschieben
 Klick auf Seitentitel um Seite in der Preview rechts zu sehen
 Refresh
 Löschen der 
 ausgewählten Seite
 Einfügen (innerhalb)
 Ausschneiden
 Seitentitel editieren Seite unsichtbar/sichtbar Seite kopieren Suche im Seitenbaum Klick auf Plus-Symbol 
 legt neue Seite an

  • 129. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 129 Features von Neos CMS - Screenshots Strukturbaum Im Strukturbaum werden alle Elemente (sichtbare und unsichtbare) der aktuellen Seite hierarchisch aufgelistet Auch hier hat man die selben Icons für Funktionen wie „Neu“, „Ausblenden“, „Kopieren“, ... zur Verfügung Klick auf die Überschrift öffnet rechts die Eigenschaften im Inspector und platziert den InPlace-Editor an der entsprechenden Stelle

  • 130. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 130 Features von Neos CMS - Screenshots Content-Funktionen Neues 
 Content-Element anlegen
 Content-Element kopieren
 Content-Element löschen
 Content-Element ausblenden
 Content-Element ausschneiden
 Sobald man auf „Kopieren“ oder „Ausschneiden“ klickt, erscheint „Einfügen“

  • 131. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 131 Features von Neos CMS - Screenshots Content-Funktionen Absatzformate
 Tabelle
 einfügen Formatfrei
 einfügen Formatierung entfernen
 Link einfügen
  • 132. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 132 Features von Neos CMS - Screenshots Content Element einfügen
  • 133. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 133 Features von Neos CMS - Screenshots Mehrspaltige Content Elemente
  • 134. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 134 Features von Neos CMS - Screenshots Formulare auswählen
  • 135. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 135 Features von Neos CMS - Screenshots Media Browser Collections Upload Ansichten Zum Taggen wird 
 die Datei per Drag&Drop auf das Tag „gezogen“ Filter &
 Sortierung Tags Suche
  • 136. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 136 Features von Neos CMS - Screenshots Media Browser Meta- Daten Aktionen
  • 137. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 137 Features von Neos CMS - Screenshots Image Handling UploadMedia- Browser Crop
  • 138. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 138 Features von Neos CMS - Screenshots Cropping (unobstrusive)
  • 139. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 139 Internas von Neos CMS
  • 140. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 140 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 Content Section Content Element Site root Neos CMS Internas: Node Structure Domain Model
  • 141. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 141 Node Type • Jede TYPO3CR Node hat einen sogenannten
 Node Type • Node Types können in jedem Package definiert werden, indem Sie in der Datei Configuration/NodeTypes.yaml deklariert werden. • Jeder Node Type kann einen oder mehrere Eltern Typen haben. Wenn diese spezifiziert sind, werden alle Eigenschaften und Settings der Eltern Types vererbt 
 Neos CMS Internas: Node Type
  • 142. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 142 Vordefinierte Node Types: • TYPO3.Neos:Node
 Das ist der Basis-Typ, der von allen Content-Typen erweitert werden sollte, welche im Kontext von Neos CMS verwendet werden. Hier gibt es keinerlei Eigenschaften.
 • TYPO3.Neos:Document
 Eine wichtige Unterscheidung wird zwischen Nodes getroffen, die sich wie eine Seite verhalten (und so aussehen) und zwischen „normalen Inhalt“, wie Text, der auf einer Seite gerendert wird. Nodes, die sich wie Seiten verhalten, werden in Neos als „Document Nodes“ bezeichnet. Diese haben beispielsweise eine einzigartige und extern sichtbare URL in Neos. Die Standard-Seite innerhalb von Neos ist implementiert durch den Node Typen TYPO3.Neos.NodeTypes:Page welcher direkt von TYPO3.Neos:Document abgeleitet wird. Neos CMS Internas: Node Type
  • 143. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 143 Vordefinierte Node Types: • TYPO3.Neos:ContentCollection und TYPO3.Neos:Content
 Jeglicher Content, der sich wie eine Seite verhält, sich aber innerhalb einer solchen befindet, wird durch zwei verschiedene Node Typen implementiert:
 • TYPO3.Neos:ContentCollection type
 Dieser Node Typ dient der Strukturierung. Normalerweise enthält er keine Eigenschaften sondern eine geordnete Liste von Sub-Nodes, welche innerhalb des Nodes gerendert werden. Momentan sollte von dieser Typ nicht abgeleitet werden, wenn man eigene Node Types erstellt • TYPO3.Neos:Content 
 Dies ist der Node Typ für alle Standard Elemente, wie „text“, „image“, „youtube“, ... Neos CMS Internas: Node Type
  • 144. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 144 Node Zugriff • Der Zugriff auf Nodes erfolgt durch „NodePaths“ • Jede Seite ist ein Node, jedes Element auf einer Seite ebenfalls Neos CMS Internas: Node Zugriff /sites/typo3org/home/subpage/main/text1 content section pages site root
  • 145. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 145 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) Neos CMS Internas: TypoScript
  • 146. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 146 TypoScript: Fluid-Template {namespace ts=TYPO3TypoScriptViewHelpers} {namespace bootstrap=TYPO3TwitterBootstrapViewHelpers} <!DOCTYPE html> <html lang="en"> <head> <f:section name="metadata"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </f:section> <f:section name="stylesheets"> <link rel="stylesheet" href="{f:uri.resource(path: '3/css/bootstrap.min.css', package: 'TYPO3.Twitter.Bootstrap')}" media="all" /> </f:section> </head> <body> <f:section name="body"> <div class="top-navigation-wrap"> <div class="container"> {parts.mainMenu -> f:format.raw()} {parts.secondLevelMenu -> f:format.raw()} </div> </div>
 …
 </f:section> </body> </html> Neos CMS Internas: TypoScript - Fluid Template
  • 147. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 147 TypoScript: Beispiel - Teil 1 include: NodeTypes/Carousel.ts2 namespace: TypoScript=TYPO3.TypoScript page = Page { head { stylesheets { site = TypoScript:Template { templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/Page/Default.html' sectionName = 'stylesheets' node = ${node} } } metadata = TypoScript:Template { templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/Page/Default.html' sectionName = 'metadata' }
 titleTag { // Overwrite the title tags content with a collection to create a breadcrumb content = TYPO3.TypoScript:Collection { // Retrieve all parent document nodes excluding the homepage collection = ${q(documentNode).add(q(documentNode).parents()).slice(0, -1).get()} itemName = 'node' iterationName = 'nodeIterator' // Implode node titles with a dash itemRenderer = ${q(node).property('title') + (nodeIterator.isLast ? '' : ' - ')} // Always add general site name as suffix @process.siteName = ${(value ? value + ' - ' : '') + 'Neos CMS'} } } Neos CMS Internas: TypoScript - Beispiel - Teil 1
  • 148. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 148 TypoScript: Beispiel - Teil 2 bodyTag.attributes.class = ${q(node).parents().count() >= 1 && q(node).children('[instanceof TYPO3.Neos:Document]').filter('[_hiddenInIndex=false]').count() > 0 ? 'has-subpages' : ''} body { templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/Page/Default.html' sectionName = 'body' parts { mainMenu = Menu { entryLevel = 1 templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/ TypoScriptObjects/MainMenu.html' maximumLevels = 3 itemCollection = ${q(site).add(q(site).children('[instanceof TYPO3.Neos:Document]')).get()} } secondLevelMenu = Menu { entryLevel = 2 templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/ TypoScriptObjects/SecondLevelMenu.html' maximumLevels = 1 } Neos CMS Internas: TypoScript - Beispiel - Teil 2
  • 149. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 149 TypoScript: Prozessoren • Beispiel:
 
 myObject = MyObject {
 property = 'Rocky'
 property.@process.1 = ${'Der ' + value + ' ist der Beste!’}
 } 
 # Resultat ist 'Der Rocky ist der Beste!’ 
 • Kann auch so geschrieben werden:
 
 myObject = MyObject {
 property = 'some value'
 property.@process.someWrap {
 expression = ${'before ' + value + ' after'}
 @position = 'start'
 }
 }
 • Prozessoren sind Eel Ausdrücke oder TypoScript Objekte, welche auf den Wert des Kontextes angewendet werden. 
 Auf das aktuelle Objekte kann mittels this zugegriffen werden Neos CMS Internas: TypoScript - Prozessoren
  • 150. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 150 Eel - Embedded Expression Language • Während TypoScript Zuweisungen und Prozessoren beinhaltet, kann man mit Eel Ausdrücke der 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, damit sich der Autor der DSL auf die Semantik konzentrieren kann
 
 ${foo.bar} // Traversal
 ${foo.bar()} // Methoden-Aufruf
 ${foo.bar().baz()} // Verketter Methoden-Aufruf
 
 ${foo.bar("arg1", true, 42)} // Methoden-Aufruf mit Argumenten
 ${12 + 18.5} // Kalkulation
 ${foo == bar} // Vergleiche
 
 ${foo.bar(12+7, foo == bar)} // Alles kombiniert
 ${[foo, bar]} // Array Literal
 ${{foo: bar, baz: test}} // Object Literal Neos CMS Internas: Eel - Embedded Expression Language
  • 151. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 151 FlowQuery • 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) im Eel zu verarbeiten • In FlowQuery gibt es Operationen: • property
 Zugriff auf alle Eigenschaften einer Node • filter
 Filterausdrücke in „Fizzle“ • children
 Gibt alle Kinder der TYPO3CR Node zurück • parents
 Gibt alle Eltern der TYPO3CR Node zurück • Weitere Operationen: add, count, first, get, is, last, ...
 Neos CMS Internas: FlowQuery
  • 152. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 152 FlowQuery - 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 Elternseiten
 prototype(TYPO3.Neos:Breadcrumb) < prototype(TYPO3.TypoScript:Template) {
 templatePath = 'resource://TYPO3.Neos/Private/Templates/TypoScriptObjects/ BreadcrumbMenu.html'
 node = ${node}
 items = ${q(node).add(q(node).parents('[instanceof TYPO3.Neos:Document]'))}
 }
 {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> Neos CMS Internas: FlowQuery - Beispiele
  • 153. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 153 Technische Details TypoScript
  • 154. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 154 TypoScript 2.0 - Übersicht
 • Nachdem bereits in TYPO3 CMS TypoScript verwendet wurde, bezeichnet man TypoScript in Neos CMS (bzw. in TYPO3 Flow) mit der Versionsnummer 2.0 • Letztlich haben beide Versionen (vor allem technisch) nicht allzuviel miteinander zu tun • TypoScript wird ausschließlich zum Rendern von Inhalten im Frontend verwendet (keine Konfiguration mehr von Usern im Backend beispielsweise wie durch TSconfig in TYPO3 CMS üblich) • TypoScript ist hierarchisch, weil es auch hierarchischen Inhalt rendert • TypoScript ist Prototypen-basiert (ähnlich wie JavaScript), da es beispielsweise erlaubt die Eigenschaften von allen Instanzen gleichzeitig zu ändern • TypoScript ist eine Verarbeitungssprache, da es die Werte in einem Kontext verarbeitet und in einem einzigen Ausgabe-Wert überführt Technische Details - TypoScript
  • 155. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 155 TypoScript: Objekte
 • TypoScript ist eine Sprache um TypoScript Objekte zu beschreiben • Ein TypoScript Objekt besitzt Eigenschaften - sogenannte Properties • TypoScript Objekte haben Zugriff zu einem „Kontext“, welcher letztlich eine Liste von Variablen ist • TypoScript überführt diesen Kontext mit Hilfe der Properties in eine Ausgabe • Intern kann TypoScript auch diesen Kontext verändern, sowie das Rendern von „verschachtelten“ Objekten (TypoScript-Tree) anstoßen • TypoScript-Objekte werden durch PHP-Klassen realisiert, welche zur Laufzeit instanziert werden. Dabei kann eine Klasse die Basis von mehreren verschiedenen Objekten sein Technische Details - TypoScript
  • 156. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 156 TypoScript: Objekte
 • Gültiges TypoScript wäre beispielsweise wie folgt • Dabei werden TypoScript-Pfade immer in lowerCamelCase notiert und Objekte (Prototypen) in UpperCamelCase
 foo = Page
 my.object = Text
 my.image = TYPO3.Neos.ContentTypes:Image
 • Wertezuweisungen
 foo.myProperty1 = 'Some Property which Page can access'
 my.object.myProperty1 = "Some other property"
 my.image.width = ${q(node).property('foo')} • Werte die Strings darstellen müssen mit Anführungszeichen umschlossen werden (einzelne oder doppelte). Als Werte sind auch Eel-Ausdrücke zugelassen. Technische Details - TypoScript
  • 157. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 157 TypoScript: Syntax
 • Man kann TypoScript auch mittels geschweiften Klammern notieren („ausklammern“) - dies bedeutet, dass der Pfad vor der öffnenden Klammer immer allen Pfaden innerhalb der Klammern vorangestellt wird.
 my {
 image = Image
 image.width = 200
 object {
 myProperty1 = 'some property'
 }
 } • Dies ist identisch mit dem folgenden Code
 my.image = Image
 my.image.width = 200
 my.object.myProperty1 = 'some property' Technische Details - TypoScript
  • 158. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 158 TypoScript: Objekt Instanziierung
 • Es ist zudem möglich, Werte direkt bei der Instanziierung zu vergeben, wie das dritte Beispiel zeigt (alle Beispiele sind in der Wirkung identisch):
 
 someImage = Image
 someImage.foo = 'bar'
 
 someImage = Image
 someImage {
 foo = 'bar'
 }
 
 someImage = Image {
 foo = 'bar'
 } Technische Details - TypoScript
  • 159. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 159 TypoScript Objekte sind frei von Seiteneffekten
 • Obwohl TypoScript Objekte ihren Kontext verändern können, sind sie ohne „Seiteneffekte“. 
 • Dafür wird der Kontext nach der Benutzung eines TypoScript-Objektes wieder „aufgeräumt“, auch wenn dieser vorher verändert wurde • TypoScript Objekte können nur andere TypoScript-Objekte ändern, die verschachtelt sind - aber nicht Objekte welche davor oder danach kommen
 • Das sorgt dafür, dass sich ein TypoScript-Pfad zusammen mit seinem Kontext immer gleich verhält - egal an welcher Stelle dieser aufgerufen wird Technische Details - TypoScript
  • 160. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 160 TypoScript: Prototypen
 • Wenn ein TypoScript Objekt instanziiert wird (weil z.B. jemand someImage = Image schreibt), dann wird der Prototyp für dieses Objekt kopiert und als Basis für dieses neue Objekt (someImage) verwendet. • Ein Prototyp wird wie folgt definiert:
 prototype(MyImage) {
 width = '500px'
 height = '600px'
 } • Nun kann man das Objekt verwenden:
 # Das Objekt someImage hat eine Breite von 500px und eine Höhe von 600 px
 someImage = MyImage
 # Nun ist die Breite 100px (und die Höhe nach wie vor 600px)
 someImage.width = '100px' Technische Details - TypoScript
  • 161. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 161 TypoScript: Prototypen
 • Prototypen sind veränderbar: 
 
 prototype(MyYouTube) {
 width = '100px'
 height = '500px'
 }
 
 # Hiermit wird die Breite für alle Instanzen
 # auf 400px geändert
 prototype(MyYouTube).width = '400px'
 
 # Man kann auch neue Eigenschaften (Properties) definieren
 prototype(MyYouTube).showFullScreen = ${true}
 
 # Man kann einen Prototypen auch „vererben“
 prototype(MyImage) < prototype(TYPO3.Neos:Content) Technische Details - TypoScript
  • 162. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 162 TypoScript: Prototypen
 • Über Verberbung bleiben Prototypen aneinander „gebunden“. Ändert sich eine Eigenschaft in einer Instanz, wird diese auch in der anderen geändert. 
 
 prototype(TYPO3.Neos.Content).fruit = 'apple'
 prototype(TYPO3.Neos.Content).meal = 'dinner'
 
 # MyImage hat nun auch die Eigenschaften "fruit = apple" and "meal = dinner"
 prototype(MyImage) < prototype(TYPO3.Neos:Content)
 
 # Da MyImage das Objekt Template *erweitert*, 
 # hat MyImage.fruit nun ebenfalls den Wert 'Banana'
 prototype(TYPO3.Neos:Content).fruit = 'Banana'
 • # Da die Eigenschaft „meal“ nun in der Kind-Klasse überschrieben wurde, 
 # hat ein Überschreiben in der Eltern-Klasse keine Auswirkung mehr
 prototype(MyImage).meal = 'breakfast'
 prototype(TYPO3.Neos:Content).meal = 'supper' Technische Details - TypoScript
  • 163. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 163 TypoScript: Prototypen
 • Prototypen-Verberbung ist nur auf globaler Ebene möglich
 
 prototype(Foo) < prototype(Bar)
 
 • Nicht möglich wären daher folgende Anweisungen
 
 prototype(Foo) < some.prototype(Bar)
 other.prototype(Foo) < prototype(Bar)
 prototype(Foo).prototype(Bar) < prototype(Baz) Technische Details - TypoScript
  • 164. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 164 TypoScript: Prototypen
 • Hierarchische TypoScript Prototypen
 
 # Setze die Eigenschaft „bar“ (bzw. „some.thing“) für alle Objekte vom Typ „Foo“
 prototype(Foo).bar = 'baz'
 prototype(Foo).some.thing = 'baz2'
 
 # Für alle Objekte vom Typ „Foo“, welche innerhalb des Pfades „some.path“ a
 # auftauchen, setze die Eigenschaft „some“
 some.path.prototype(Foo).some = 'baz2'
 
 # Für alle Objekte vom Typ „Bar“ die innerhalb von Objekten vom Typ „Foo“ 
 # auftauchen, setze die Eigenschaft „some“
 prototype(Foo).prototype(Bar).some = 'baz2'
 
 # Kombination aus allen Möglichkeiten zuvor
 prototype(Foo).left.prototype(Bar).some = 'baz2' Technische Details - TypoScript
  • 165. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 165 TypoScript: Namespaces
 • Namespaces können bei der Deklaration verwendet werden
 
 # Definiert einen Namespace „Acme.Demo“ für den Prototyp „YouTube“
 prototype(Acme.Demo:YouTube) {
 width = '100px'
 height = '500px'
 }
 • Der Namespace ist per Konvention der Package-Key, des Packages wo sich das TypoScript befindet
 • Man kann voll qualifizierte Namespaces verwenden:
 
 prototype(TYPO3.Neos:ContentCollection.Default) < prototype(TYPO3.Neos:Collection) Technische Details - TypoScript
  • 166. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 166 TypoScript: Namespaces
 • Verwendet man keinen Namespace, wird per Default immer TYPO3.Neos verwendet. • Man kann aber auch eine Namespace-Direktive verwenden um einen eigenen Namespace zu verwenden:
 
 namespace Foo = Acme.Demo
 
 # Die folgenden beiden Anweisungen sind identisch
 video = Acme.Demo:YouTube
 video = Foo:YouTube Technische Details - TypoScript
  • 167. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 167 TypoScript: Eigenschaften
 • Auch wenn TypoScript-Objekte direkt auf den Kontext zugreifen können, sollte man dennoch Eigenschaften (Properties) dafür verwenden
 # Wir nehmen an, dass es eine Eigenschaft "foo=bar" 
 # im aktuellen Kontext an dieser Stelle gibt
 myObject = MyObject
 
 # Explizites Zuweisen des Wertes der Variable „foo“ 
 # aus dem aktuellen Kontext und Zuweisen an die
 # „foo“ Eigenschaft des Objektes „myObject“
 myObject.foo = ${foo} • Objekte sollten ausschließlich eigene Eigenschaften verwenden, um den Output zu generieren • Lediglich bei der Prototypen-Definition kann man direkt auf den Kontext zugreifen:
 prototype(MyObject).foo = ${foo} Technische Details - TypoScript
  • 168. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 168 TypoScript: Manipulation des Kontext
 • Der TypoScript-Kontext kann direkt manipuliert werden, indem man die @override Meta-Eigenschaft verwendet:
 
 myObject = MyObject
 myObject.@override.bar = ${foo * 2} 
 • Der obige Code erzeugt nun eine weitere Kontext-Variable mit dem Namen bar und dem doppelten Wert von foo. Technische Details - TypoScript
  • 169. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 169 TypoScript: Prozessoren
 • Prozessoren erlauben es, TypoScript Eigenschaften zu manipulieren:
 
 myObject = MyObject {
 property = 'some value'
 property.@process.1 = ${'before ' + value + ' after'}
 }
 # Das Ergebnis ist nun 'before some value after' • Es können mehrere Prozessoren verwendet werden • Die Reihenfolge ergibt sich aus der numerische Position im TypoScript (nach @process) - ein @process.2 würde demnach nach @process.1 ablaufen Technische Details - TypoScript
  • 170. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 170 TypoScript: Prozessoren
 • Man kann für Prozessoren auf eine erweiterte Syntax verwenden
 
 myObject = MyObject {
 property = 'some value'
 property.@process.someWrap {
 expression = ${'before ' + value + ' after'}
 @position = 'start'
 }
 }
 # Das Ergebnis ist nun 'before some value after' • Damit kann man einen Namen (hier „someWrap“) verwenden • Prozessoren sind Eel Ausdrücke bzw. TypoScript Objekte, die auf Wert des Kontextes angewendet werden. Das aktuelle Objekt erreicht man via this Technische Details - TypoScript
  • 171. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag 171 Neos TypoScript Referenz
  • 172. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 172 TYPO3.TypoScript:Array (Teil 1)
 • Rendert die verschachtelten TypoScript Objekte und verbindet deren Ausgabe • Die Reihenfolge wird über das @position Argument spezifiziert • Für dieses Argument gilt die folgende Reihenfolge • start [priority]
 Je höher die Priorität, desto früher wird das Objekt hinzugefügt. Wenn keine Priorität angegeben wird, wird das Element hinter allen Elementen mit Priorität einsortiert • [numeric ordering] 
 Position (aufsteigend sortiert) • end [priority] 
 Je höher die Priorität, desto später wird das Objekt hinzugefügt. Wenn keine Priorität angegeben wird, wird das Element vor allen Elementen mit Priorität einsortiert Neos TypoScript Referenz
  • 173. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 173 TYPO3.TypoScript:Array (Teil 2)
 • Zusätzlich kann spezifiziert werden, dass ein Element vor oder nach einem anderen Element einsortiert wird:
 • before [namedElement] [optionalPriority]
 Fügt dieses Element vor dem Element „namedElement“ ein. Gibt es mehrere Statements, so entscheidet die Priorität wie weit das Element vor „namedElement“ positioniert wird; es gilt also je höher, desto näher. Statements ohne Priorität werden am weitesten vor dem Element platziert. Wenn „namedElement“ nicht existiert, wird das Element nach allen „start“ Positionen platziert. • after [namedElement] [optionalPriority]
 Analog „before“ nur genau andersherum („nach namendElement“, „vor allen end Positionen“,...) Neos TypoScript Referenz
  • 174. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 174 TYPO3.TypoScript:Array (Teil 3) (o = Kleines Oh / „Order“)
 
 myArray = TYPO3.TypoScript:Array { o1 = TYPO3.Neos.NodeTypes:Text o1.@position = 'start 12' o2 = TYPO3.Neos.NodeTypes:Text o2.@position = 'start 5' o2 = TYPO3.Neos.NodeTypes:Text o2.@position = 'start' o3 = TYPO3.Neos.NodeTypes:Text o3.@position = '10' o4 = TYPO3.Neos.NodeTypes:Text o4.@position = '20' o5 = TYPO3.Neos.NodeTypes:Text o5.@position = 'before o6' o6 = TYPO3.Neos.NodeTypes:Text o6.@position = 'end' o7 = TYPO3.Neos.NodeTypes:Text o7.@position = 'end 20' o8 = TYPO3.Neos.NodeTypes:Text o8.@position = 'end 30' o9 = TYPO3.Neos.NodeTypes:Text o9.@position = 'after o8' } Neos TypoScript Referenz
  • 175. (c) 2015 - Patrick Lobacher | Neos CMS 2.0.0 - das Kompendium | 12.08.2015 | www.pluswerk.ag Neos CMS - das Kompendium 175 TYPO3.TypoScript:Collection (Teil 1)
 • Führt eine Schleife auf einer Array-ähnlichen „collection“ aus und rendert jedes Element mit Hilfe des itemRenderer 
 Neos TypoScript Referenz collection (array/iterable, required) 
 Das Array oder das „iterable“ über welches iteriert wird itemName (string, required) 
 Der Name, unter dem jedes Element verfügbar gemacht wird iterationName (string) 
 Meta-Infos über die Iteration: index (beginnend bei 0), cycle (beginned bei 1), isFirst, isLast. itemRenderer (nested TypoScript object) Dieses TypoScript Objekt wird einmal je Durchlauf aufgerufen und dessen Resultat verbunden.