SlideShare ist ein Scribd-Unternehmen logo
1 von 189
Downloaden Sie, um offline zu lesen
TYPO3 CMS 6.2 LTS

Die Neuerungen



Patrick Lobacher

25.03.2014

(Aktualisiert am 01.04.2014)
LOBACHER.
Proudly sponsored by
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
3
TYPO3 CMS 6.2 LTS - Short facts
• Veröffentlicht: 25.03.2014
• End of Maintenance: 31.03.2017

(3 Jahre Support)
• Release Manager: Ernesto Baschny

ernesto.baschny(AT)typo3.org

@baschny
• Hauptziele: Long Term Support
• Systemvoraussetzungen: PHP 5.3.7 - 5.5.x, MySQL 5.1.x-5.5.x
• Download: http://typo3.org/download/

Bildquelle: t3con13de.typo3.org
Einführung
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
4
TYPO3 Release Agenda
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
5
TYPO3 Release Agenda
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
6
Inhaltsverzeichnis
• Install-Tool Rewrite
• Distribution Management
• TYPO3 CMS goes Responsive
• Änderungen im Backend
• TSconfig & TypoScript
• Package Management
• Änderungen im System

• API
• Extbase & Fluid
• Entfernte und veraltete

Funktionen
• Upgrade von TYPO3 CMS 4.5 LTS
• Quellen & Resourcen
• Über den Autor

Inhaltsverzeichnis
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
LOBACHER.
7
Install-Tool
Rewrite
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
8
Install Tool Rewrite
Install Tool Rewrite
• Das Install Tool wurde komplett neu geschrieben - das Templating basiert auf dem Standalone-View von
Fluid
• Wichtigste Änderung im Install-Prozess ist, dass es nur noch ein Paket gibt: 

TYPO3 Source (kein Dummy Package, Blank Package, ...) - Größe ca. 20 MB
• Zum Installieren einfach das zip oder tar.gz herunterladen, entpacken und in das Document Root legen
• Anschließend einfach die URL aufrufen

• Bei der ersten Installation wird eine Datei 

FIRST_INSTALL im Document-Root erwartet, 

die manuell angelegt werden muss
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
9
Dummy Paket ist ab sofort obsolet
Install Tool Rewrite
• Der Installer sorgt nun dafür, dass alle benötigten Dateien an der richtigen Stelle sind
• Insbesondere kann er auch alle Dateien anlegen, die für eine persönliche Instanz notwendig sind
• Damit ist das Dummy Paket komplett obsolet

• Es ist lediglich wichtig, dass folgende Dateien und Verzeichnisse richtig verlinkt sind:



typo3_src (Verzeichnis, dies muss auf die Sourcen zeigen - sofern externe Sourcen verwendet werden)

typo3 (Verzeichnis, zeigt auf typo3_src/typo3)

index.php (Datei, zeigt auf typo3_src/index.php)
!
• Weitere Dateien sind nicht notwendig zur Installation von TYPO3
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
10
Install Tool Rewrite
Install Tool Rewrite
• Im ersten Schritt wird nun die Systemumgebung getestet

• Hier kann man nun die beanstandeten Einstellungen

beheben und erneut testen oder die Tests übergehen

• Hat man den Core nicht als typo3_src Verzeichnis angelegt

und darauf verlinkt, erhält man eine Fehlermeldung

(unten stehende Verlinkung ist optimal)
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
11
Install Tool Rewrite
Install Tool Rewrite
• Im zweiten Schritt kann man die Datenbank-

Parameter eingeben

• Hier ist es möglich als Typ entweder

„TCP/IP based connection“ (empfohlen!) oder

„Socket based connection“ (voreingestellt)

auszuwählen

• Benutzt man kein MySQL, so kann man dies

über den entsprechenden Button ganz unten

angeben und im nächsten Schritt

einen anderen Datenbank-Treiber auswählen

(dafür wird der Database Abstraction Layer

geladen)
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
12
Install Tool Rewrite
Install Tool Rewrite
• Im dritten Schritt kann man 

die Datenbank selektieren
!
• Dazu wählt man entweder eine der 

vorhandenen leeren oder gefüllten 

Datenbanken aus

• Oder man legt eine neue

Datenbank an

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
13
Install Tool Rewrite
Install Tool Rewrite
• Im vierten Schritt legt man den Usernamen

und das Passwort für den Admin-User fest
!
• Hier kann man sich über eine Checkbox

das Passwort zur Kontrolle auch 

anzeigen lassen

• Zusätzlich gibt man den 

Website-Namen an
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
14
Install Tool Rewrite
Install Tool Rewrite
• Nun ist die Installation beendet
!
• Nach Klick auf „Open the Backend“ 

wird man direkt zum Backend 

weitergeleitet.

• Wenn die Checkbox „Yes, download 

the list of distributions.“ angewählt ist

(dies ist der Default Zustand), kommt man

zum Model „Distributions“
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
15
Install Tool Passwort ist gesalzen
Install Tool Rewrite
• Das Install-Tool Password ist nun 

auch „salted“ (also gesalzen und damit 

nicht mehr nur MD5)

• Bestehende MD5-Passwörter werden 

beim ersten Login umgewandelt
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
16
Install Tool Rewrite - Cache löschen
Install Tool Rewrite
• Im Bereich „Important Actions“ wurde die Möglichkeit geschaffen, den Cache komplett zu löschen
• Dies funktioniert auch, wenn im Cache fehlerhafte PHP-Dateien vorhanden sind, die das TYPO3
ansonsten unbenutzbar machen. Hierfür muss man das Install Tool direkt aufrufen:

http://www.domain.de/typo3/install
Zuerst wird das Verzeichnis typo3temp/Cache gelöscht, dann alle
Tabellen cf_* geleert. Nun werden ext_localconf und ext_tables
der Extensions geladen und der übliche flushCaches() ausgeführt.
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
17
Install Tool Rewrite - Laden der Extensions prüfen
Install Tool Rewrite
• Im Bereich „Important Actions“ wurde die Möglichkeit geschaffen, zu überprüfen, ob Extensions ohne
Fehler geladen werden können (Wichtig z.B. für die Migration 4.5 -> 6.2)
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
18
Install Tool Rewrite - BE User mit Salted Password
Install Tool Rewrite
• Wenn ein Backend-User im Install Tool angelegt wird (entweder explizit im „Important actions“ Menü
oder im Verlauf der Installation, geschieht dies nun mit einem Salted Password. Dafür muss die
Extension saltedpasswords installiert sein (per Default) und der Schlüssel [BE]
[loginSecurityLevel] = rsa gesetzt sein (ebenfalls Default). 

Vor TYPO3 CMS 6.2 war md5() die Default Encryption.
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
19
Automatisches Core-Update - 1
Install Tool Rewrite
• Man kann nun

Minor-Core-Updates

(inkl. Security-Versionen)

direkt aus dem Install

Tool ausführen

• Durch die Umgebungsvariable

TYPO3_DISABLE_CORE_UPDATER = 1

kann der Core-Updater

deaktiviert werden

(für Apache beispielsweise

SetEnv TYPO3_DISABLE_CORE_UPDATER 1)
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
20
Automatisches Core-Update - 2
Install Tool Rewrite
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
21
Automatisches Core-Update - 3
Install Tool Rewrite
• Damit das Core Update funktioniert, muss folgendes erfüllt sein:
• Funktioniert nur unter Unix und MacOS (da hier Symlinks vorhanden sind)
• Das Verzeichnis typo3_src muss ein Symlink sein
• Dieser Symlink muss schreibbar (und löschbar) durch den Webserver Benutzer sein
• Das „Document Root“ muss schreibbar sein
• Der Ebene überhalb von „Document root“ ("../") muss schreibbar sein 

(damit neue Verzeichnisse parallel angelegt werden können)
• Das Systemkommando "tar" muss verfügbar sein
• Config für NGINX, damit der Core Updater deaktiviert wird

server {

listen 80;

server_name domain;

location ~ path/to/it {

include fastcgi_params;

fastcgi_pass 127.0.0.1:9000;

fastcgi_param TYPO3_DISABLE_CORE_UPDATER "1";

}

}
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
22
Gruppierung und Sortierung: All Configuration
Install Tool Rewrite
• Der Bereich „All Configuration“

ist nun gruppiert
• Durch Klick auf die Überschrift

klappt der zugehörige Bereich auf

(Toggle All um alle auszuklappen)
• Die Überschriften sind zudem 

alphabetisch aufsteigend sortiert

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
23
Configuration-Presets
Install Tool Rewrite
• Im Install Tool können nun sogenannte Configuration Presets (Voreinstellungen) definiert werden
• Damit kann man beispielsweise die 

Debug-Einstellungen, devIPmask und andere

Einstellungen für bestimmte Szenarien

(wie Production, Development, …)

treffen und schnell zwischen diesen 

umschalten
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
24
Install-Tool Menü scrollt nicht mit
Install Tool Rewrite
• Das Menü auf der linken 

Seite ist nun fixiert und

scrollt daher nicht mit

• So kann immer schnell

auf eine andere Funktion

umgeschaltet werden
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
25
Install-Tool Einträge direkt speichern
Install Tool Rewrite
• Der Button

„Write configuration“

ist permanent sichtbar 

und scrollt nicht mit

• So können getätigte 

Änderungen sofort

und unmittelbar 

gespeichert werden
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
26
Error-Codes als Strings
Install Tool Rewrite
• In den folgenden Install-Tool

Optionen wurden bisher 

lediglich die Fehler-Codes

ausgegeben:

[SYS][errorHandlerErrors]

[SYS][exceptionalErrors]

[SYS][syslogErrorReporting]

[SYS][belogErrorReporting]
!
• Hierfür wurde nun ein 

ViewHelper 

(format.phpErrorCode)

hinzugefügt, um diese Codes

in aussagekräftige Strings

umzuwandeln

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
27
Verzeichnis-Fehler werden angezeigt
Install Tool Rewrite
• Im Install Tool

werden nun 

Fehler in der

Verzeichnis-

Struktur

direkt mit 

einem 

Hinweis

angezeigt
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
28
Install Tool - MISC 1
Install Tool Rewrite
• Alle Install Tool Formulare sind CSRF geschützt
• Das Install Tool arbeitet mit einem vereinfachten Fluid Standalone View
• Der Startpunkt ist nun nicht mehr typo3/install/index.php sondern typo3/sysext/install/
Start/Install.php (es gibt aber eine Weiterleitung)
• Es werden lediglich die minimal wichtigsten TYPO3-Funktionen geladen - kaputte
ext_localconf.php oder ext_tables.php von Extensions führen nicht mehr zum Abbruch des
Install Tools
• Das Install Tool verzichtet komplett auf Caching, somit können Fehler im Cache dem Install Tool nichts
anhaben
• Die PHP-Option xdebug.max_nesting_level wird überprüft, da es mit dem Default-Wert von 100
unter TYPO3 CMS zu Problemen kommen kann. Empfohlen wird ein Wert von 250 oder höher.
• Im Install-Tool kann man nun bestehende (gefüllte) Datenbanken auswählen oder eine leere Datenbank
anlegen bzw. auswählen
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
29
Install Tool - MISC 2
Install Tool Rewrite
• Es wurde ein „Distribution management“ zugefügt (um Distributionen wie „Introduction Package“ oder
„Government Package“ während der Installation zu laden und zu konfigurieren). Nach der Installation
landet man zunächst auf direkt beim „Distribution Management“ um eine der dort vorhandenen
Distributionen zu installieren
• Während normalerweise die Berechtigung für das Root-Verzeichnis der Installation 2770 sein muss und
der Ordner dem Web-User gehören muss, um TYPO3 zu installieren, wurde nun eine Option
„targetPermissionRelaxed“ eingeführt, bei der dieser Check für den Root-Folder außer Kraft gesetzt
wurde, sofern es trotzdem möglich ist, die benötigten Unterverzeichnisse anzulegen
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
LOBACHER.
30
Distribution
Management
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
31
Distribution Management
Distribution Management
• Das Distribution Management Modul ist über den Extension Manager zu erreichen
• Dieser ist für das Laden von Distributionen wie „Introduction Package“ oder „Government Package“
zuständig
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
32
Distribution Management
Distribution Management
• Zum Start kann man verschiedene 

Distributions laden
• So steht das Package „Hello World“ und das 

Introduction-Package zur Verfügung
• Später wird es hier weitere Distributionen, 

wie das Government-Package, geben
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
33
Distribution Management
Distribution Management
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
LOBACHER.
34
TYPO3 CMS goes
Responsive
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
35
Responsive Preview im Backend - 1
TYPO3 CMS goes Responsive
• Die Vorschau-Fläche im Modul „View“ kann nun per Dropdown in der Breite begrenzt werden, um so
responsive Websites besser testen zu können
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
36
Responsive Preview im Backend - 2
TYPO3 CMS goes Responsive
• Die Framegrößen sind zudem konfigurierbar
• Dafür kann man folgenden Code per PageTSconfig verwenden



mod.web_view.previewFrameWidths {

1780.label = <any LLL or string>

1780.height = 145

}
!
• Der Schlüssel (hier 1780) gibt dabei die Breite an
• Die Höhe (height) ist optional
• Die bereits enthaltenen Größen sind in der folgenden Datei definiert:

typo3/sysext/core/Configuration/DefaultConfiguration.php



mod.web_view.previewFrameWidths {

1280.label = LLL:EXT:viewpage/Resources/Private/Language/locallang.xlf:computer

1024.label = LLL:EXT:viewpage/Resources/Private/Language/locallang.xlf:tablet

...

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
37
Neue Attribute für responsive Bildergalerien
TYPO3 CMS goes Responsive
• Um responsive Bildergalerien zu erstellen, kann es helfen, wenn im Rendering von Bildern zusätzliche
Attribute ausgegeben werden.
• Dafür wurde das CSC (CSS styled content) Rendering angepasst
• Im Falle des Doktypes html5 (config.doctype = html5), wird zusätzlich noch die Anzahl der Spalten
und die Anzahl der Bilder ausgegeben

• Frühere Ausgabe:

<div class="csc-textpic-imagewrap">...</div>



Jetzige Ausgabe:

<div class="csc-textpic-imagewrap" data-csc-images="{register:imageCount}" 

data-csc-cols="{field:imagecols}">...</div>
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
38
Responsive Image Rendering - 1
TYPO3 CMS goes Responsive
• Das IMAGE cObject kann nun eine sogenannte sourceCollection rendern, um damit verschiedene
Display-Auflösungen und Bildschirmgrößen zu unterstützen
• Um das Responsive-Rendering für die Content-Objekte „Bild“ und „Text/Bild“ einzuschalten, muss man
zwei Einstellungen im Constant-Editor treffen:



Responsive Rendering verwenden:

styles.content.imgtext.responsive



Rendering-Type:

styles.content.imgtext.layoutKey

Default img-tag = default

img-tag with alternate sources as srcset-attribute = srcset

picture-tag with source-child-tags = picture

img-tag with alternate sources as data-attributes = data

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
39
Responsive Image Rendering - 2
TYPO3 CMS goes Responsive
• Eigenschaft: layoutKey
• Definiert das Render-Layout des IMAGE
• Das Render-Layout ist der HTML-Code, der für das IMAGE verwendet wird
• Mögliche ("out of the box") Werte sind: default, srcset, picture, data
• Jede Möglichkeit repräsentiert eine unterschiedliche Lösung um HTML-Code für das IMAGE zu rendern
• Der Default-Code rendert das <img>-Tag auf herkömmliche Weise mit verschiedenen Attributen
• Wenn man ein Responsive Layout implementiert, benötigt man unterschiedliche Bild-Größen für
unterschiedliche Auflösungen und Bildschirmgrößen
• Abhängig vom verwendeten HTML-Framework, den Fähigkeiten der gewünschten Browser und dem
verwendeten JavaScript für das progressive enhancement, kann man entweder eines der
vordefinierten Layouts verwenden oder ein neues erstellen, indem man einen anderen layoutKey
benutzt
• Wenn man kein Responsive Layout benötigt, sollte man das Default-Layout verwenden
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
40
Responsive Image Rendering - 3
TYPO3 CMS goes Responsive
• Eigenschaft: layout
• layoutKey = {$styles.content.imgtext.layoutKey}

layout {

default {

element = <img src="###SRC###" width="###WIDTH###" height="###HEIGHT###" ###PARAMS###
###ALTPARAMS### ###BORDER######SELFCLOSINGTAGSLASH###>

}

// http://www.w3.org/html/wg/drafts/srcset/w3c-srcset/

srcset {

element = <img src="###SRC###" srcset="###SOURCECOLLECTION###" ###PARAMS###
###ALTPARAMS######SELFCLOSINGTAGSLASH###>

source = |*|###SRC### ###SRCSETCANDIDATE###,|*|###SRC### ###SRCSETCANDIDATE###

}

// http://www.w3.org/TR/html-picture-element/

picture {

element = <picture>###SOURCECOLLECTION###<img src="###SRC###" ###PARAMS###
###ALTPARAMS######SELFCLOSINGTAGSLASH###></picture>

source = <source src="###SRC###" media="###MEDIAQUERY###"###SELFCLOSINGTAGSLASH###>

}

data {

element = <img src="###SRC###" ###SOURCECOLLECTION### ###PARAMS###
###ALTPARAMS######SELFCLOSINGTAGSLASH###>

source = data-###DATAKEY###="###SRC###"

}

}
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
41
Responsive Image Rendering - 4
TYPO3 CMS goes Responsive
• Eigenschaft: layout.[layoutKey].element

• ###SRC### 

URL für das src-Attribut
• ###WIDTH###

Breite des Bildes für das width-Attribut
• ###HEIGHT###

Höhe des Bildes für das height-Attribut
• ###PARAMS###

Zusätzliche Parameter (wie im IMAGE object definiert)
• ###ALTPARAMS###

Zusätzliche alternative Paramater (wie im IMAGE object definiert)
• ###BORDER###

Border-Attribut des <img>-Tags
• ###SELFCLOSINGTAGSLASH###

Rendert das Tag-Abschlußzeichen (anbhängig von config.xhtmlDoctype bzw. config.Doctype)
• ###SOURCECOLLECTION###

Damit werden die zusätzlichen Sourcen des Bildes abhängig von der unterschiedlichen Verwendung im Responsive Web Design
definiert. Die Definition selbst wird im Schlüssel layout.[layoutKey].source vorgenommen.
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
42
Responsive Image Rendering - 5
TYPO3 CMS goes Responsive
• Eigenschaft: sourceCollection.[dataKey]
• Dies ist die Default-SourceCollection (der CSS Styled Content Extension)
• Es ist unbedingt zu empfehlen, eine eigene zu schreiben

• sourceCollection {

small {

width = 200

srcsetCandidate = 600w

mediaQuery = (max-device-width: 600px)

dataKey = small

}

smallRetina {

if.directReturn = 1

width = 200

pixelDensity = 2

srcsetCandidate = 600w 2x

mediaQuery = (max-device-width: 600px) AND (min-resolution: 192dpi)

dataKey = smallRetina

}

}
• Optionen: dataKey, if, pixelDensity, width, height, maxW, maxH, minW, minH, linkWrap,
srcsetCandidate, mediaQuery 

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
43
Responsive Image Rendering - 6a - Beispiel
TYPO3 CMS goes Responsive
page.30 = IMAGE
page.30 {
file = fileadmin/rocky.jpg
file.width = 300
layoutKey = default
layout {
default {
element = <img src="###SRC###" width="###WIDTH###" height="###HEIGHT###" ###PARAMS### ###ALTPARAMS###
###BORDER### ###SELFCLOSINGTAGSLASH###>
source =
}
srcset {
element = <img src="###SRC###" srcset="###SOURCECOLLECTION###" ###PARAMS### ###ALTPARAMS###
###SELFCLOSINGTAGSLASH###>
source = |*|###SRC### ###SRCSETCANDIDATE###,|*|###SRC### ###SRCSETCANDIDATE###
}
picture {
element = <picture>###SOURCECOLLECTION###<img src="###SRC###" ###PARAMS### ###ALTPARAMS###
###SELFCLOSINGTAGSLASH###></picture>
source = <source src="###SRC###" media="###MEDIAQUERY###" ###SELFCLOSINGTAGSLASH###>
}
data {
element = <img src="###SRC###" ###SOURCECOLLECTION### ###PARAMS### ###ALTPARAMS### ###SELFCLOSINGTAGSLASH###>
source.noTrimWrap = | data-###DATAKEY###="###SRC###"|
}
}
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
44
Responsive Image Rendering - 6b - Beispiel
TYPO3 CMS goes Responsive
sourceCollection {
small {
width = 200
srcsetCandidate = 800w
mediaQuery = (min-device-width: 800px)
dataKey = small
}
smallHires {
if.directReturn = 1
width = 300
pixelDensity = 2
srcsetCandidate = 800w 2x
mediaQuery = (min-device-width: 800px) AND (min-resolution: 192dpi)
dataKey = smallHires
pictureFoo = bar
}
}
}
page.40 < page.30
page.40.layoutKey = data
page.50 < page.30
page.50.layoutKey = picture
page.60 < page.30
page.60.layoutKey = srcset

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
45
Responsive Image Rendering - 6b - Beispiel
TYPO3 CMS goes Responsive
HTML-Ausgabe:



<img src="fileadmin/_processed_/csm_rocky_cd724a6e0e.jpg" width="300" height="200" alt="" border="0" >



<img src="fileadmin/_processed_/csm_rocky_cd724a6e0e.jpg" data-small="fileadmin/_processed_/csm_rocky_ccc7ea1d33.jpg"
data-smallHires="fileadmin/_processed_/csm_rocky_29113e55a7.jpg" alt="" >



<picture>
<source src="fileadmin/_processed_/csm_rocky_ccc7ea1d33.jpg" media="(min-device-width: 800px)" >

<source src="fileadmin/_processed_/csm_rocky_29113e55a7.jpg" media="(min-device-width: 800px) AND (min-resolution:
192dpi)" >

<img src="fileadmin/_processed_/csm_rocky_cd724a6e0e.jpg" alt="" >

</picture>



<img src="fileadmin/_processed_/csm_rocky_cd724a6e0e.jpg" srcset="fileadmin/_processed_/csm_rocky_ccc7ea1d33.jpg
800w,fileadmin/_processed_/csm_rocky_29113e55a7.jpg 800w 2x" alt="" >

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
LOBACHER.
46
Änderungen im
Backend
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
47
Mehr Platz im Backend
Änderungen im Backend
• Im Backend wurden viele Bereiche 

vom Platz her aufgelockert, um 

damit für eine bessere Usability zu sorgen
!
• Dafür wurden horizontale und vertikale

Abstände vieler Elemente vergrößert
!
• Basis ist ein 12px Raster, 

welches verdoppelt wurde
TYPO3 < 6.2 TYPO3 >= 6.2
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
48
Neue Anordnung der Module
Änderungen im Backend
• Die Module auf der linken Seite wurden neu angeordnet

• Insbesondere wurde das Modul „SYSTEM“ eingeführt,

welches die meisten „LowLevel-Statustools“

beherbergt, die zudem keinen Seitenbaum benötigen

• Unter „ADMINWERKZEUGE“ wurden nun die Module

„Sprache“ und „Erweiterungsmanager“ einsortiert

• Das Modul „TypoScript-Hilfe“ wurde (da veraltet) 

komplett entfernt
TYPO3 < 6.2 TYPO3 >= 6.2
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
49
Drag&Drop in der Datei-Liste
Änderungen im Backend
• Dateien können nun einfach per Drag & Drop in die Datei-Liste gelegt werden (Frage nach Überschreibung)
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
50
Bessere Usability im Modul Backend Benutzer
Änderungen im Backend
• Einerseits wurde der Benutzername und der Name nun auf der linken Seite gruppiert und andererseits sind
diese nun klickbar (und führen zum Editier-Formular). Zudem gibt es nun einen Delete-Button in der Liste.
TYPO3 < 6.2
TYPO3 >= 6.2
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
51
H1 im CI-Font Share
Änderungen im Backend
• Die H1-Überschriften im rechten Bereich werden nun durchwegs mit dem CI-Font „Share“ dargestellt
TYPO3 < 6.2 TYPO3 >= 6.2
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
52
Neues Symbol für Modul „Reports“
Änderungen im Backend
• Das Modul „Reports“ hat ein eigenes Symbol erhalten
• Bislang wurde dafür das Symbol des Moduls „Log“ verwendet.
TYPO3 < 6.2 TYPO3 >= 6.2
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
53
Verbesserte Suche - UID und PID im Ergebnis
Änderungen im Backend
• Die Live-Suche rechts oben kann nun im Tooltip sowohl UID wie auch PID anzeigen
• Sobald man nach einer Suche das Editierformular wieder schließt, landet man in der Listen-Ansicht der
PID (und nicht wie früher in einer leeren Seite)
TYPO3 < 6.2 TYPO3 >= 6.2
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
54
Verbesserte Suche - Alias kann duchsucht werden
Änderungen im Backend
• Bislang durchsuchte die Suche rechts oben für Seiten nur die Felder title und uid
• Zusätzlich kann man nun das Feld alias durchsuchen, wenn dies per UserTSconfig konfiguriert wurde:



options.pageTree.searchInAlias = 1
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
55
Meta-Informationen im FAL-Element Header
Änderungen im Backend
• Dateiname und Titel werden nun im FAL-Element Header inkl. Überschrift angeben
TYPO3 >= 6.2TYPO3 < 6.2
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
56
Drag&Drop bei der Auswahl von Medien
Änderungen im Backend
• Bei der Auswahl von Medien (z.B. Inhaltselementen) kann nun Drag&Drop verwendet werden
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
57
FAL - erweiterte Meta-Informationen
Änderungen im Backend
• Die Extension „filemetadata“ (im Core, nicht per Default installiert) bringt zusätzliche Meta-Daten ein
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
58
FAL Metadaten können übersetzt werden
Änderungen im Backend
• Die FAL Metadaten können nun in die konfigurierten Frontend-Sprachen übersetzt werden
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
59
Modul „Dokumentation“ hinzugefügt - 1
Änderungen im Backend
• Es wurde ein Modul „Dokumentation“ 

hinzugefügt, mit dem es möglich ist, 

Manuals herunter zu laden und anzusehen

• Das Modul wird bei neuen Installation

per Default geladen - ansonsten kann man

es im Erweiterungsmanager installieren

• Im Modul „Download Documentation“ kann

man Dokumentationen auf das System

herunterladen

• Im Modul „Dokumentation ansehen“ kann 

man diese dann ansehen
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
60
Modul „Dokumentation“ hinzugefügt - 2
Änderungen im Backend
• Im Modul „Dokumentation anzeigen“ kann man die Dokumentationen der Erweiterungen dann ansehen
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
61
Scheduler-Task löschen im Edit-Fenster
Änderungen im Backend
• Bislang konnte man Scheduler-Tasks nur aus der Liste der Tasks heraus löschen
• Nun gibt es auch eine Möglichkeit zum Löschen aus dem Edit-Fenster heraus
TYPO3 < 6.2 TYPO3 >= 6.2
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
• Scheduler Tasks kann man nun mit einer Beschreibung ausstatten (als Subheadline oder Hover)
62
Beschreibung bei Scheduler Tasks
Änderungen im Backend
In der Extension

Konfiguration

kann eingestellt werden, 

ob die Beschreibung als

Hover angezeigtwird
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
63
Scheduler-Task Gruppen
Änderungen im Backend
• Man kann nun Scheduler-Tasks in Gruppen anordnen
• Dafür muss man einen Datensatz vom Typ „Scheduler task group“ auf der Root-Page (UID=0) anlegen
!
• Datensatz
Im Task selbst kann 

man dann die

Task Group zuweisen
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
64
Postprozessor Redirect für Formulare
Änderungen im Backend
• Bislang gab es nur einen Postprozessor Email für mit dem FORM Content Objekt erstellte Formulare
• Ab sofort gibt es noch einen weiteren Postprozessor: Redirect (Weiterleitung nach Abschicken der Mail)
Das Feld wird über typolink

ausgewertet - d.h. man kann 

z.B. eine ID für eine interne Seite

oder einen URL angeben
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
65
UID und PID auswählbar in List-View für User
Änderungen im Backend
• Im Modul List kann nun auch der normale User (Nicht-Admin) die Spalten [uid] und [pid] auswählen
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
66
Fehlende Dateien werden angezeigt
Änderungen im Backend
• Sobald der FAL-Indexer auf eine Datei trifft, die nicht mehr vorhanden ist, wird ein entsprechender Hinweis im
Backend ausgeben. Zusätzlich wird das Flag „missing“ in der Datenbank „sys_file“ gesetzt. Sobald die Datei
wieder vom Indexer gefunden wird, verschwinden Flag und Hinweis. Reports Modul dito.
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
67
Neuer Menü-Typ: categories (1)
Änderungen im Backend
• Man kann nun ein Menü - bestehend aus Elementen aus Kategorien - erstellen.
• Dafür gibt es ein spezielles Menü-Content-Objekt
Kategorien zuweisen
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
68
Neuer Menü-Typ: categories (2)
Änderungen im Backend
• Dies gibt es sowohl für Seiten (Pages for selected categories) wie auch für Inhaltselemente (Content
Elements for selected categories).
• Bei den Inhaltselementen muss man das Kategorie-Feld zuweisen
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
• Das Icon ist nun bei leeren Spalten immer sichtbar (und nicht nur beim Drüberfahren)
69
Icon „Neues Inhaltselement“ immer sichtbar
Änderungen im Backend
TYPO3 < 6.2
TYPO3 >= 6.2
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
• Im Funktionen-Menü kann man 

im „Create multiple pages“ Wizard

nun „Hide new pages in menus“

für alle Seiten anwählen
70
„Hide in Menü“ im Funktionen-Menü
Änderungen im Backend
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
• Im Sub- Menu „Erweiterungen 

hinzufügen“ kann man nun auch 

eine Extension hochladen
71
Upload nun auch in „Erweiterungen hinzufügen“
Änderungen im Backend
TYPO3 < 6.2
TYPO3 >= 6.2
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
• Bislang waren Kategorien stets nach Titel sortiert, nun kann man diese auch manuell sortieren
72
Kategorien nun auch manuell sortierbar
Änderungen im Backend
TYPO3 < 6.2
TYPO3 >= 6.2
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
• Man kann die Einträge im Recycler nun nach dem letzten Zugriff sortieren
73
Recycler nach letztem Zugriff sortierbar
Änderungen im Backend
TYPO3 < 6.2
TYPO3 >= 6.2
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
74
Granulare Rechte für Dateien und Ordner
Änderungen im Backend
• Seit TYPO3 CMS 6.0 ist es möglich, die Rechte für Dateien 

und Ordner sehr granular per UserTSconfig zu setzen
• Dies ist nun auch im BE-User und in der BE-Gruppe 

als Formular möglich

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
75
Einschränkung von Kategorien - BE-User/-Gruppen
Änderungen im Backend
• Bei Backend-Usern und Backend-Gruppen kann nun definiert werden, welche Kategorien diese zu sehen
bekommen
• Dies geschieht im Tab „Freigaben und Arbeitsumgebungen“
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
76
OpenID-Wizard für Backend-Benutzer
Änderungen im Backend
• Bei der Verwaltung von Backend-Benutzern kann man die OpenID per Wizard angeben
• Hierfür muss die Systemextension „openid“ installiert sein
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
77
MISC 1
Änderungen im Backend
• Das Feld username bekommt den Autofokus, sobald man das Backend-Login aufruft (über das HTML5-
Attribut autofocus="autofocus")
!
!
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
LOBACHER.
78
TSconfig &
TypoScript
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
79
TS: INCLUDE_TYPOSCRIPT für alle Dateien
eines Verzeichnisses
TSconfig & TypoScript
• Man kann nun alle Dateien eines Verzeichnisses per INCLUDE_TYPOSCRIPT inkludieren lassen
• Es werden zudem auch Unterverzeichnisse eingelesen
• Gibt man die Option „extensions“ an, so werden nur die Dateien mit dieser Extension inkludiert
• Die Reihenfolge ist: erst Dateien, dann Verzeichnisse - beide alphabetisch



<INCLUDE_TYPOSCRIPT: source="DIR:directorypath" extensions="ts">



oder



<INCLUDE_TYPOSCRIPT: source="DIR:EXT:myext/Typoscript">

• Es können nur Dateien mit den Endungen (ts, t3, t3s, t3c, txt) inkludiert werden. Will man eine andere
Extension verwenden, muss man diese in $TYPO3_CONF_VARS['SYS']['tsfile_ext']
registrieren.
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
80
TS: INCLUDE_TYPOSCRIPT auch mit relativen
Pfaden möglich
TSconfig & TypoScript
• Ab sofort kann man auch relative Pfade beim Include verwenden
• Der erste Include muss dabei absolut erfolgen
• Mit . wird das aktuelle Verzeichnis des letzten Includes angesprochen
• Mit .. wird das Elternverzeichnis des letzten Includes angesprochen
!
• Beispiele



<INCLUDE_TYPOSCRIPT: source="FILE:../filename.ts">



oder



<INCLUDE_TYPOSCRIPT: source="FILE:./filename.ts">

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
81
TS: Neue stdWrap Funktion encodeForJavaScriptValue
TSconfig & TypoScript
• Escaping von Strings, damit diese sicher innerhalb von JavaScript verwendet werden können. Zeichen,
die innerhalb von JavaScript-Zeichenfolgen Probleme bereiten könnten, werden mit ihren enkodierten
Entsprechungen ausgetauscht. Zudem werden Single-Quotes am Anfang und am Ende hinzugefügt
• Intern wird hierzu die Funktion TYPO3CMSCoreUtilityGeneralUtility::quoteJSvalue() verwendet

• Beispiel:



10 = TEXT

10 {

data = GP:sWord

encodeForJavaScriptValue = 1

wrap = setSearchWord('|');

}

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
82
TS: stdWrap für strPad
TSconfig & TypoScript
• Die Optionen length, padWidth und type der stdWrap-Funktion strPad wurden nun ebenfalls mit der
Möglichkeit zum stdWrap versehen:



page = PAGE

page.10 = TEXT

page.10 {

value = Hallo Welt!

strPad {

length = 5 

length {

current = 1

setCurrent.data = TSFE:page|uid

setCurrent.wrap = | + 80

prioriCalc = 1

}

padWith = .

}

}
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
83
TS: stdWrap für _DEFAULT_PI_VARS
TSconfig & TypoScript
• Die sogenannten _DEFAULT_PI_VARS dienen dazu, Default-Werte für piVars (zu einer Extension gehörige
GET/POST-Variablen) zu setzen
• Bislang war es allerdings lediglich möglich, einen Schlüssel und einen dazugehörigen Wert zu setzen.
• Nun kann man auch stdWrap verwenden

• Beispiel vor TYPO3 CMS 6.2

plugin.tt_news._DEFAULT_PI_VARS {

year = 2013

}



Beispiel ab TYPO3 CMS 6.2

plugin.tt_news._DEFAULT_PI_VARS {

year.stdWrap.data = date:Y

}
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
84
TS: Condition userFunc mit CSV
TSconfig & TypoScript
• Die Condition userFunc erlaubte es bisher lediglich einen einzigen Parameter zu übergeben
• Ab sofort kann man eine kommaseparierte Liste übergeben

[userFunc = user_function(argument1, argument2, ...)]



// TypoScript Code

[userFunc = user_match(checkLocalIP, 192.168)]



// PHP Code

function user_match($command, $subnet) {

switch($command) {

case 'checkLocalIP':

if (strstr(getenv('REMOTE_ADDR'), $subnet)) {

return TRUE;

}

...

return FALSE;

}

}
!
!
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
85
TS: Debug Register und Page per TypoScript
TSconfig & TypoScript
• Der Inhalt der Arrays $GLOBALS['TSFE']->register und 

$GLOBALS['TSFE']->page kann nun per debug Option innerhalb 

vom Datentyp getText ausgegeben werden

• Beispiele:



10 = LOAD_REGISTER

10.variable = wert



20 = TEXT

20.data = debug:register



30 = TEXT

30.data = debug:page



(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
86
TS: Zugriff auf Register für Title&AltText in File Links
TSconfig & TypoScript
• Bei Filelinks konnte man früher nur auf die Beschreibung via Register zugreifen
• Dies wurde nun insofern geändert, dass nun auch der Titel-Text (register:titleText) und der Alt-
Text (register:altText) per Register zugänglich sind 

• Beispiele:



# filelinks

tt_content.uploads.20 {

# link description instead of filename

labelStdWrap.data = register:description

# output alternative text

itemRendering.20.data = register:titleText

}




(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
87
TS: OptionSplit für stdWrap Funktion replacement
TSconfig & TypoScript
• Die Option replace in der stdWrap Funktion replacement wurde nun mit optionSplit ausgestattet
• Beispiele:

10 = TEXT

10.value = There_are_a_cat,_a_dog_and_a_tiger_in_da_hood!_Yeah!

10.replacement.10 {

search = _

replace = 1 || 2 || 3

useOptionSplitReplace = 1

}

Ergebnis: There1are2a3cat,3a3dog3and3a3tiger3in3da3hood!3Yeah!



20 = TEXT

20.value = There are a cat, a dog and a tiger in da hood! Yeah!

20.replacement.10 {

search = #(a) (Cat|Dog|Tiger)#i

replace = ${1} tiny ${2} || ${1} midsized ${2} || ${1} big ${2}

useOptionSplitReplace = 1

useRegExp = 1

}

Ergebnis: There are a tiny cat, a midsized dog and a big tiger in da hood! Yeah!

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
88
TS: Register für FILES cObject zugefügt
TSconfig & TypoScript
• Für das Content Objekt FILES wurden die Register FILE_NUM_CURRENT und FILES_COUNT zugefügt



Beispiel (Der Index in FILE_NUM_CURRENT startet bei 0!):



10 = FILES

10 {

references {

table = tt_news

uid.field = uid

fieldName = media

}

renderObj = COA

renderObj {

10 = TEXT

10.value = Rendert die erste Datei zweimal

10.if.isFalse.data = register:FILE_NUM_CURRENT

20 = TEXT

20.value = file {register:FILE_NUM_CURRENT} of {register:FILES_COUNT}

20.insertData = 1

}

}

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
89
TS: Neuer TypoScript Menü-Typ: categories (1)
TSconfig & TypoScript
• Im TypoScript gibt es nun die Möglichkeit, ein Kategorien-Menü zu erstellen



page.20 = HMENU

page.20 {

special = categories

special {

# Kommaseparierte Liste von Kategorien bzw. aus stdWrap

value = 1 

# Feld aus „pages“ nach der sortiert werden soll (stdWrap)

sorting = title 

# Sortierung: „asc“ oder „desc“ (stdWrap)

order = desc 

1 = TMENU

1.NO {

allWrap = <li> | </li>

}

}

}
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
90
TS: Neuer TypoScript Menü-Typ: categories (2)
TSconfig & TypoScript
• Weiteres Beispiel:



categorized_pages < .default

categorized_pages {

special = categories

special.value.field = selected_categories

special.relation.field = category_field

special.sorting = title

special.order = asc

stdWrap {

outerWrap = <ul class="csc-menu csc-menu-categorized-pages">|</ul>

}

}
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
91
TS: cObject RECORDS mit Kategorie-Unterstützung
TSconfig & TypoScript
• Das cObject RECORDS hat nun die Eigenschaft categories, mit Hilfe derer man auf die Kategorien
zugreifen kann



# Menu of categorized content elements

categorized_content = RECORDS

categorized_content {

categories.field = selected_categories

categories.relation.field = category_field

tables = tt_content

conf.tt_content = TEXT

conf.tt_content {

field = header

typolink.parameter = {field:pid}#{field:uid

typolink.parameter.insertData = 1

wrap = <li>|</li>

}

wrap = <ul>|</ul>

}
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
92
TS: splitChar für JS- und CSS-Includes
TSconfig & TypoScript
• Die folgenden TypoScript-Optionen wurden nun mit der Eigenschaft splitChar beim allWrap
ausgestattet (allWrap.splitChar):



includeJSlibs

includeJSFooterlibs

includeJS

includeJSFooter

includeCSS



• Das Default-Zeichen für die Option splitChar ist das Pipe-Symbol

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
93
TS: Conditions für ApplicationContext
TSconfig & TypoScript
• Der ApplicationContext kann nun auch per Condition abgefragt werden
• Wildcards + und * sowie REGEX mit /PREG_PATTERN/ können angegeben werden



[applicationContext = Development/Debugging, Development/Profiling]

# ist gültig für "Development/Debugging" oder "Development/Profiling"

[global]



[applicationContext = Production*]

# Ist gültig für jeden ApplicationContext mit einem RootContext

# "Production",

# wie z.B. "Production/Live" oder "Production/Staging"

[global]



[applicationContext = /^Production/Staging/Serverd+$/]

# Ist gültig für "Production/Staging/Server1", 

# "Production/Staging/Server2"

# u.s.w.

[global]
!


(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
94
TS: CONTENT Datensätze ohne Default Sprache
TSconfig & TypoScript
• Wenn man Datensätze über das TypoScript Objekt „CONTENT“ ermittelt (bzw. über ".select"), kann
man über die Option "languageField" all jene Datensätze in der aktuellen Sprache ermitteln lassen
• Dabei holt ".select" alle Datensätze in der Default-Sprache ("0,-1") und erstellt einen Overlay mit der
aktuellen Sprache
• Damit war es aber nicht möglich, Datensätze zu ermitteln, die keine Entsprechung in der Default-Sprache
hatten (l10n_parent = "")

• Dafür wurde nun eine entsprechende Option innerhalb von .select eingeführt, die es ermöglicht, auch
Datensätze in das Ergebnis zu inkludieren, die keine Entsprechung in der Default-Sprache haben: 



INHALT = CONTENT

INHALT {

table = tt_content

select.includeRecordsWithoutDefaultTranslation = 1

...

}


(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
95
TS: begin, maxItems und direction für FILES cObject
TSconfig & TypoScript
• Das FILES Content Objekt verfügt nun über die (aus HMENU bekannten) Optionen
• begin (Angabe des ersten Elements, welches zurückgegeben wird)
• maxItems (Maximale Anzahl Elemente)
• Zusätzlich wurde die Option direction als Eigenschaft von sorting implementiert (einziger Wert desc)
• Beispiel (5 Bilder aus dem Media-Feld, beginnend vom ersten, werden zurückgegeben):

page.10 = FILES

page.10 {

references {

table = pages

uid.data = page:uid

fieldName = media

}

maxItems = 5

begin = 0

sorting.direction = desc

}

page.10.renderObj = TEXT

page.10.renderObj {

data = file:current:size

wrap = <p>File size:<strong>|</strong></p>

}


(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
96
Developer IP in Condition IP
TSconfig & TypoScript
• In der Condition [IP=...] kann nun die im Install Tool eingetragene Developer IP verwendet werden -
dafür wird die Zeichenkette „devIP“ verwendet
!
• Beispiel:



[IP = devIP]



page.20 = TEXT

page.20.value = Hello Developer!



[end]


(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
97
TSconfig: Doktypes vom Seitenbaum ausschließen
TSconfig & TypoScript
• Über die Einstellung excludeDoktypes in der UserTSconfig (beim Benutzer oder der Gruppe) ist es
möglich, bestimmte Doktypes vom Rendern im Seitenbaum auszuschließen

• Beispiele:



Auschließen von Seiten vom Typ „Ordner“ (Folder)

options.pageTree.excludeDoktypes = 254



Auschließen von Seiten vom Typ „Ordner“ (Folder) und dem Seitentyp „Normal“

options.pageTree.excludeDoktypes = 254,1

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
98
TSconfig: Module im BE ausblenden
TSconfig & TypoScript
• Man kann nun einzelne Module im Backend ausblenden
• Der Zugriff darauf wird aber nicht eingeschränkt - hier muss man nach wie vor mit den ACL für BE-User
bzw. BE-Group arbeiten

• Beispiele:



options.hideModules = file, help



options.hideModules.web := addToList(func,info)



options.hideModules.system = BelogLog

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
99
TSconfig: Preview Domain setzen (PageTS)
TSconfig & TypoScript
• Im PageTSconfig ist es nun möglich eine Preview-Domain zu setzen, die für die Anzeige verwendet wird
• Dies ist insbesondere für Multi-Domain-Installationen nützlich und sinnvoll

• Beispiel:



TCEMAIN.previewDomain = example.com

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
100
Conditions in Backend-Layouts
TSconfig & TypoScript
• Innerhalb von Backend-Layouts können nun auch Conditions verwendet werden, z.B.:



backend_layout {

colCount = 2

rowCount = 1

rows {

1 {

columns {

1 {

name = Main

colPos = 0

}

2 {

name = right

colPos = 1

}

}

}

}

}



[PIDupinRootline = 509]

backend_layout.rows.1.columns.2 >

[GLOBAL]


(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
101
MISC
TSconfig & TypoScript
• Hat man mehrere Login-Formulare über EXT:felogin auf einer Seite, funktioniert die „Passwort
vergessen“ Funktion nicht sauber. Daher kann dies nun gezielt ein- und ausgeschaltet werden über die
TypoScript Option showForgotPassword

• Die Frontend-Ausgabe wird nun immer mit Content-length Header ausgeliefert. Dafür wird die
TypoScipt-Eigenschaft config.enableContentLengthHeader per Default auf TRUE (1) gesetzt.

• Die Resultlist der Extension indexed_search hat nun stdWrap Eigenschaften über die Option

plugin.tx_indexedsearch.resultlist_stdWrap


(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
LOBACHER.
102
Package
Management
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
103
Integration der PackageManager API - 1
Package Management
• Der Package Manager von TYPO3 Flow wurde für TYPO3 CMS portiert
• Das ermöglicht Vendor-Namespaces und vereinheitlicht die Paket-Formate
• Extensions sind damit nur eine spezielle Art von „Packages“
• Folgende Schritte wurden dafür durchgeführt - Teil 1:
• Entfernung des Schlüssels $TYPO3_CONF['EXT']['extListArray'] aus der Datei typo3conf/
LocalConfiguration.php (es wurde aber ein Fallback-Array-Zugriff eingerichtet)
• Der Inhalt der alten LocalConfiguration.php Datei (sofern bereits eine vorhanden war), wird
umkopiert in typo3conf/LocalConfiguration.beforePackageStatesMigration.php
• In der Datei typo3conf/PackageStates.php werden nun der Status (active/inactive) und die
Positionen der Extensions im Filesystem eingetragen
• Ermittelt werden die Extensions in den Verzeichnissen:
• typo3/systext
• typo3/ext
• typo3/contrib
• typo3conf/ext
• Packages (rekursiv)
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
104
Integration der PackageManager API - 2
Package Management
• Folgende Schritte wurden dafür durchgeführt - Teil 2:
• Jede Extension erhält nun eine Datei composer.json im Hauptverzeichnis der Extension(und
optional eine Datei Package.php im Verzeichnis Classes/)
• Damit eine Extension als „required“ markiert wird, muss ein Flag „protected“ in der zugehörigen
Datei composer.json gesetzt werden: 

{"extra": {"typo3/cms": {"Package": {"protected": true}
• Fehlt die Datei typo3conf/PackageStates.php, so wird diese Datei neu erstellt, indem lediglich
Extensions dort eingetragen werden, die das (Composer) Flag auf TRUE gestellt haben
• Der Autoloader bekommt ein eigenes Caching-Backend
!
• Weitere Details finden sich hier:



http://wiki.typo3.org/Blueprints/Packagemanager
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
105
Integration der PackageManager API - 3
Package Management
• Aufbau des Arrays in typo3conf/PackageStates.php

return array (

'packages' => 

array (

'core' => 

array (

'manifestPath' => '',

'composerName' => ‚typo3/cms-core',

'state' => 'active',

'packagePath' => 'typo3/sysext/core/',

'classesPath' => 'Classes/',

),

'workspaces' => 

array (

'manifestPath' => '',

'composerName' => ‚typo3/cms-workspaces',

'state' => 'inactive',

'packagePath' => 'typo3/sysext/workspaces/',

'classesPath' => 'Classes/',

),

...

),

'version' => 4,

)
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
106
Integration der PackageManager API - 4
Package Management
• Aufbau einer composer.json Datei

{ "name": "typo3/cms-cms",

"type": "typo3-cms-framework",

"description": "TYPO3 Core",

"homepage": "http://typo3.org",

"license": ["GPL-2.0+"],

"version": "6.2.0",

"require": {

"typo3/cms-core": "*"

},

"replace": {

"cms": "*"

},

"extra": {

"typo3/cms": {

"Package": {

"protected": true,

"partOfFactoryDefault": true,

"partOfMinimalUsableSystem": true

}

}

}

}

Infos zum Schema: http://getcomposer.org/doc/04-schema.md
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
107
PackageManager: Misc
Package Management
• Packages können nun auch zur Laufzeit aktiviert werden (dies war bisher nicht möglich, da der
zurückportierte Flow Package Manager dies nicht erlaubt hat) - dies wird über den Schlüssel
$GLOBALS['TYPO3_CONF_VARS']['EXT']['runtimeActivatedPackages'] =
array('{packageKey}') gesteuert, der gleich nach der PackageManagement-Initialisierung aktiviert
wird.
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
LOBACHER.
108
Änderungen im
System
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
109
Workspaces Änderungen
Änderungen im System
• Workspaces User können nun selbst entscheiden, wem sie Notifications schicken wollen
• Der Tab „All“ im Workspacemodul ist nun für alle User (nicht nur Admins) sichtbar
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
110
Inkludierung von Normalize.css
Änderungen im System
• Normalize.css sorgt dafür, dass Browser Elemente konsistenter unter Zuhilfename von modernen
Webstandards dargestellt werden

• So wird bei Normalize.css kein kompletter Reset durchgeführt, sondern
• sinnvolle Voreinstellungen behalten
• HTML-Elemente in ihrem Aussehen angeglichen
• Bugs behoben und Browser-Inkompatibilitäten ausgeglichen und
• die Anwendbarkeit von CSS auf einige störrische Elemente verbessert

• Zunächst wurde nur die Datei „normalize.css“ hier zugefügt (wird aber noch nicht verwendet):

typo3/sysext/backend/Resources/Public/Css/structure/normalize.css
!
• Informationen zu „normalize.css“

http://necolas.github.io/normalize.css/
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
111
Neue TCA displayCond-Optionen BIT und !BIT
Änderungen im System
• Damit ist es möglich, in einer Display-

Condition im TCA (displayCond) auch gegen

Multi-Value-Feldern (bitweise) zu testen:



'content' => array(

'label' => '...',

'config' => array(

'type' => 'check',

'items' => array(

array('Content A', ''),

array('Content B', ''),

array('Content C', ''),

),

)

),
Dafür kann man BIT und !BIT (negieren) verwenden



'content_a' => array(
'label' => '...',
'displayCond' => 'FIELD:content:BIT:1',
'config' => array(
'type' => 'text',
)
),
'content_b' => array(
'label' => '...',
'displayCond' => 'FIELD:content:!BIT:2',
'config' => array(
'type' => 'text',
)
),
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
112
Automatisches Update für Sprachen möglich
Änderungen im System
• Es gibt nun einen Extbase Command Controller zum automatischen Update von Sprachen für Extensions
• Die Registrierung ist dabei wie folgt: 



$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['extbase']['commandControllers'][]
= 'TYPO3CMSLangCommandLanguageCommandController';
!
• Ein möglicher Aufruf wäre:



./cli_dispatch.phpsh extbase language:update de,en,fr
!
• Durch die Angabe der locales (kommasepariert) kann die Aktualisierung auf lediglich diese Sprachen
eingeschränkt werden - lässt man die Angabe weg, werden alle Sprachen aktualisiert, die im Modul
„Sprache“ ausgewählt sind
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
113
ReST: reStructuredText Format für alle Manuals - 1
Änderungen im System
• Die Manuals aller Systemextensions sind nun nicht mehr im Open Office SXW Format, sondern im
Format reStructured Text (ReST).
• ReST ist eine vereinfachte Auszeichnungssprache mit dem Ziel, in der reinen Textform besonders lesbar
zu sein. Weiterhin soll reStructuredText leicht in andere Formate umwandelbar sein.

• Eine kurze Einführung zu ReST findet sich bei der Wikipedia: 

http://de.wikipedia.org/wiki/ReStructuredText

• ReST Syntax: 

http://wiki.typo3.org/ReST_Syntax

• Einrichten einer ReST-Umgebung zum Rendern

http://wiki.typo3.org/Rendering_reST
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
114
ReST: reStructuredText Format für alle Manuals - 2
Änderungen im System
• Folgende Manuals wurden als ReST hinterlegt:
• typo3/sysext/css_styled_content/Documentation/*
• typo3/sysext/dbal/Documentation/*
• typo3/sysext/felogin/Documentation/*
• typo3/sysext/form/Documentation/*
• typo3/sysext/indexed_search/Documentation/*
• typo3/sysext/linkvalidator/Documentation/*
• typo3/sysext/openid/Documentation/*
• typo3/sysext/recycler/Documentation/*
• typo3/sysext/rsaauth/Documentation/*
• typo3/sysext/rtehtmlarea/Documentation/*
• typo3/sysext/saltedpasswords/Documentation/*
• typo3/systext/scheduler/Documentation/*
• typo3/sysext/sys_action/Documentation/*
• typo3/sysext/taskcenter/Documentation/*
• typo3/sysext/workspaces/Documentation/*
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
115
Eigene Übersetzungsserver für Extensions
Änderungen im System
• Mit XLIFF und dem kostenfreien Pootle Übersetzungsserver ist es ein leichtes einen eigenen
Übersetzungsserver für Extensions aufzusetzen. Dafür wurde ein Signal/Slot implementiert
• Datei EXT:myext/localconf.php:

/** @var TYPO3CMSExtbaseSignalSlotDispatcher $signalSlotDispatcher */

$signalSlotDispatcher = TYPO3CMSCoreUtilityGeneralUtility::makeInstance('TYPO3CMSExtbase
SignalSlotDispatcher');

$signalSlotDispatcher->connect(

'TYPO3CMSLangServiceUpdateTranslationService', 'postProcessMirrorUrl', 

'CompanyExtensionSlotsCustomMirror', 'postProcessMirrorUrl'

);
• Datei EXT:myext/Classes/Slots/CustomMirror.php:

<?php

namespace CompanyExtensionsSlots;

class CustomMirror {

/** @var string */

protected static $extKey = 'myext';

public function postProcessMirrorUrl($extensionKey, &$mirrorUrl) {

if ($extensionKey === self::$extKey) {

$mirrorUrl = 'http://mycompany.tld/typo3-packages/';

}

}

}
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
116
Automatisierte t3d Importe
Änderungen im System
• Extensions können nun t3d (TYPO3 Data - also Daten für die Extension) Dateien bereitstellen, die
automatisch inkludiert werden

• In einer t3d-Datei kann vieles enthalten sein: Struktur, Daten, Relationen, Dateien

• Dafür muss das t3d-File an der folgenden Stelle platziert werden



<Extension-Verzeichnis>/Initialisation/data.t3d

• Sobald die Extension das erste Mal installiert wird, wird der Inhalt der t3d-Datei eingelesen

• Bei einer erneuten Installation, wird aber die Datei nicht erneut eingelesen
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
117
Automatisierte Datei Importe
Änderungen im System
• Extensions können nun Dateien bereitstellen, die automatisch inkludiert werden

• Dafür müssen die Dateien an der folgenden Stelle platziert werden



<Extension-Verzeichnis>/Initialisation/Files/*

• Sobald die Extension das erste Mal installiert wird, werden die Dateien nach fileadmin/
<extensionname> kopiert

• Bei einer erneuten Installation, werden die Dateien aber nicht erneut eingelesen
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
118
Extensions als Repositories nutzen
Änderungen im System
• Manchmal hängen Extensions von Extensions ab, die verändert und angepasst wurden oder von
Extensions, die nicht im TER veröffentlicht wurden

• Ab sofort kann man einer Extension erlauben, eine Abhängigkeiten mitzubringen, in dem man die
abhängigen Extensions in das folgende Verzeichnis (ungepackt) legt



<Extension-Verzeichnis>/Initialisation/Extensions/

• Die dort enthaltenen Extensions werden dann in das Verzeichnis typo3conf/ext umkopiert, um die
Abhängigkeiten aufzulösen
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
119
Install/Uninstall von Extensions über CLI
Änderungen im System
• Extensions können nun via Command Line Interface (CLI) installiert werden
• Dafür muss ein Backend Benutzer _cli_lowlevel angelegt werden
• Nun kann man Extensions installieren und deinstallieren
• Der Extension-Key wird über [key] angegeben



./typo3/cli_dispatch.phpsh extbase extension:install [key]



./typo3/cli_dispatch.phpsh extbase extension:uninstall [key]

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
120
TCA: Kaskadierendes Löschen von Datensätzen
Änderungen im System
• Im TCA gibt es nun eine Einstellung, die es erlaubt, das kaskadierende Löschen von Kind-Datensätzen
ein- bzw. auszuschalten
• Dafür muss die Relation vom Typ „inline“ sein
• Der Default-Wert ist 1 - d.h. beim Löschen eines Datensatzes werden die Kind-Datensätze automatisch
mitgelöscht.



...

'type' => 'inline',

'foreign_table' => ...,

'behaviour' => array(

'enableCascadingDelete' => 0,

)

...
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
121
Mehrere Kategorien pro Tabelle
Änderungen im System
• Bislang konnte über die Funktion 



TYPO3CMSCoreUtility
ExtensionManagementUtility::makeCategorizable($extensionKey,

$tableName, $fieldName = 'categories', $options = array());



nur ein Kategorie-Feld pro Tabelle definiert werden. Weitere Aufrufe haben die vorhergehenden
überschrieben

• Ab sofort können beliebig viele solcher Felder existieren

• Über den vierten Parameter (options) kann mit dem Key label ein eigenes Label für das Feld
eingebracht werden
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
122
Data Provider für Backend Layouts
Änderungen im System
• Backend Layouts konnten bislang ausschließlich in der Datenbank gespeichert werden
• Damit war es nicht möglich, dass Extensions eigene Backend Layouts mitbringen konnten
• Das ist nun geändert worden - es können sogenannte „Data Provider“ definiert werden
• Dies sind Klassen, die das Interface 

TYPO3CMSBackendViewBackendLayoutDataProviderInterface

implementieren müssen
• Registriert wird die Data Provider Klasse wie folgt:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['BackendLayoutDataProvider']
[$_EXTKEY] = 'Classname';
• Zudem gibt es neue API-Befehle für das Backend Layout Handling, z.B:
• 'itemsProcFunc' => 'TYPO3CMSBackendViewBackendLayoutView->addBackendLayoutItems
• getBackendLayoutView()->getSelectedCombinedIdentifier($id);
• getBackendLayoutView()->getSelectedBackendLayout()
• Neue PageTSconfig Option, um Backend Layouts auszuschließen (von der Zuweisung):

options.backendLayout.exclude = default_1, my_extension__headerLayout

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
123
Filter für Multiselect-Felder
Änderungen im System
• Multiselect-Felder können schnell unübersichtlich werden
• Daher wurde hier ein Filter realisiert, der es ermöglicht, die Einträge per Vorauswahl und/oder per
Suchbegriff einzuschränken
• Dafür muss das TCA entsprechend angepasst werden (z.B. in typo3conf/extTables.php):

$GLOBALS['TCA']['fe_users']['columns']['usergroup']['config']['enableMultiSelectFilterTextfield'] = TRUE;

$GLOBALS['TCA']['fe_users']['columns']['usergroup']['config']['multiSelectFilterItems'] = array(

array('', 'Alle anzeigen'), // Erster Wert: Filter, Zweiter Wert: Label

array('News', 'News'), // LLL: kann ebenfalls verwendet werden

);

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
124
Add Link in IRRE kann nun geändert werden
Änderungen im System
• Über die neue Option newRecordLinkAddTitle kann der Add-Link-Titel in IRRE-Felder angepasst werden
• $TCA["tx_irretutorial_1nff_hotel"] = Array (

"columns" => Array (

"offers" => Array (

"config" => Array (

"type" => "inline",

...

"appearance" => Array (

"newRecordLinkAddTitle" => 1,

"newRecordLinkTitle" => "Neuen Post anlegen!"

"newRecordLinkPosition" => "both",

),

)

),

),


ohne Option mit Option newRecordLinkTitle
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
125
Caching Gruppen
Änderungen im System
• Der aktuelle TYPO3 Core enthält unterschiedliche Arten von Caches: So gibt es System-Caches (class
loading cache, configuration cache, l10n_cache, extbase_object, extbase_reflection u.s.w.) und
Frontend-bezogene Caches (chash cache, page cache, page section cache)
• Bei einem „Clear all caches“ wurden stets alle Caches geleert, auch wenn dies nicht sinnvoll war
• Nun wurden die Caches in zwei Gruppen eingeteilt: „pages“ und „system“, zudem gibt es „all“ für beide
• Über eine Option in der Datei LocalConfiguration.php (DefaultConfiguration.php) wird dies beeinflusst:

'cache_hash' => array(

'frontend' => 'TYPO3CMSCoreCacheFrontendVariableFrontend',

'backend' => 'TYPO3CMSCoreCacheBackendTypo3DatabaseBackend',

'options' => array(),

'groups' => array('pages', 'all')

),

…
• Das Kommando „Flush all cashes“ löscht ab sofort nur noch die Gruppe „pages“ (Breaking!)
• Es gibt eine neue User TSconfig Option: options.clearCache.system = 1 (dies muss sogar für
Admins eingeschaltet werden - ist aber automatisch aktiv im Development Kontext!)
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
126
TCA-Check für Anzahl Checkboxen
Änderungen im System
• Es ist nun möglich, per check zu überprüfen, wieviele Checkboxen aus der selben Tabelle angewählt sind
• Wählt der Backend User weitere Checkboxen aus, so werden diese wieder deaktiviert, bis die Anzahl der
möglichen Checkboxen unterschritten wird
• Möglich sind: maximumRecordsChecked und maximumRecordsCheckedInPid
• maximumRecordsChecked: Limitiert die maximale Anzahl Datensätze von der selben Tabelle
• maximumRecordsCheckedInPid: Limitiert die maximale Anzahl Datensätze auf der selben PID



$tcaFieldConf = array(

'type' => 'check',

'eval' => 'maximumRecordsChecked',

'validation' => array(

'maximumRecordsChecked' => 5

)

);

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
127
Tree-Icons (in Tabellen)
Änderungen im System
• In Tabellen wird eine line-height von 1.5em verwendet - daher wurden größere Tree-Icons benötigt
• Dafür wurde eine neue Sprite-Kategorie treeline eingeführt mit den folgenden Klassen (+t3-icon)



'treeline-blank','treeline-join','treeline-joinbottom','treeline-
jointop','treeline-line','treeline-minus','treeline-minusbottom','treeline-
minusonly','treeline-minustop','treeline-plus','treeline-
plusbottom','treeline-plusonly','treeline-stopper' 

• Beispiel



<tbody>

<tr>

<td><span class="t3-icon t3-icon-treeline t3-icon-treeline-join t3-
icon-join">&nbsp;</span></td>

<td>...</td>

</tr>

</tbody>
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
128
MM_oppositeUsage Eigenschaft im TCA
Änderungen im System
• Wenn man einen sys_category Datensatz kopiert, wird eine neue MM-Referenz angelegt, allerdings
ohne den „fieldname“ zu setzen. Der Wert wird prinzipiell von der Gegenseite mittels
MM_match_field definiert, auf den man allerdings bislang nicht zugreifen konnte
• Hierfür wurde nun die Eigenschaft MM_oppositeUsage für MM-Definitions im TCA eingeführt:



'config' => array(

'allowed' => '*',

'MM' => 'tx_myextension_first_second_mm',

'MM_oppositeUsage' => array(

'tt_content' => array('somefield'),

'tx_myextension_domain_model' => array('some_property'),

),

),
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
129
API zum CSRF Schutz für Backend Ajax-Calls
Änderungen im System
• Es wurde eine API zum CSRF-Schutz von Backend Ajax-Calls zugefügt. Dort werden die Ajax IDs
zusammen mit deren Handler registriert, um eine Ajax URL für eine spezifische AjaxID zu erhalten
• Der Token-Check wurde zum ajax.php Dispatcher hinzugefügt. Um abwärtskompatibel zu bleiben,
wird der Token nur dann überprüft, wenn die registrierte AjaxID nicht die neue API verwendet



TYPO3CMSCoreUtilityExtensionManagementUtility::registerAjaxHandler(

'TxMyExt::process', 

'VendorExtAjaxHandler->process');
!
• Damit einhergehend, wurde eine API zum Erhalt der Ajax URL für eine AjaxId eingeführt. Diese URL
enthält den Token zum CSRF-Schutz, welcher in der ajax.php überprüft wird:
!
• $ajaxUrl = 

TYPO3CMSCoreUtilityBackendUtility::getAjaxUrl('TxMyExt::process');

• Die Registrierung über den alten Weg (Hinzufügen zu TYPO3_CONF_VARS) ist veraltet, wird aber nicht
im Deprecation Log geloggt.
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
130
MISC 1
Änderungen im System
• Eigene Record-List: Es ist nun möglich eine eigene Record-List im Element-Browser zu verwenden,
wenn diese eine Instanz der Klasse TYPO3CMSBackendRecordList
ElementBrowserRecordList ist (über die Eigenschaft $recordList in der Klasse TYPO3CMS
RecordlistBrowserElementBrowser).
• Mehr Untergruppen möglich: Bislang war das Feld zum Speichern von Untergruppen (subgroup) eine
BE-Usergruppe nur 255 Zeichen groß - varchar(255). Ab sofort ist der Typ auf text umgestellt.
• Modul Web > Template nur noch eine Extension: Die Extension „tstemplate“ wurde bislang technisch
durch die folgenden zusätzlichen Extensions realisiert: „tstemplate_ceditor“, „tstemplate_info“,

„tstemplate_objbrowser“, „tstemplate_analyzer“. Diese wurden nun in die Extension „tstemplate“
integriert.
• Support für die TCA-Option label_userFunc_options zur BackendUtility Klasse zugefügt
• Download von Extensions: Sobald man im Erweiterungsmanager eine Extension herunterlädt, wird der
Timestamp an den Dateinamen hinzugefügt: <extensionKey>_<version>_<timestamp>.zip
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
131
MISC 2
Änderungen im System
• Logger ist PSR-3 kompatibel: Der Logger der Logging API ist nun kompatibel mit dem PSR-3 Standard
der PHP Framework Interop Group: http://www.php-fig.org/psr/3/
• Extension saltedpassword ist per Default required und aktiviert für das Backend
• Man kann nun die Argumente, die an einen SignalSlot-Dispatcher übergeben werden, verändern und
diese werden nun auch vom Dispatcher (verändert) wieder zurückgegeben
• Der Workspace-Preview enthält nun alle GET-Parameter (und damit insbesondere die von Extensions)
• Der Sprite-Generator (TYPO3CMSBackendSpriteSpriteGenerator) unterstützt nun Bilder mit
doppelter Auflösung und erzeugt somit zwei Dateien. Die Datei mit der höheren Auflösung erhält den
Suffix @x2.png. Über CSS3 wird nun dafür gesorgt, dass Displays mit hoher Auflösung direkt das höher
aufgelöste Icon laden.
• Unterstützung für Proxy NTLM Authentifizierung (Aktivierung über Install Tool): 

$GLOBALS['TYPO3_CONF_VARS']['SYS']['curlProxyNTLM']
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
132
MISC 3
Änderungen im System
• Die Install-Tool Option cookieHttpOnly wird per Default aktiviert - diese sorgt dafür, dass das
SessionCoockie nicht per JavaScript zugänglich ist. Die Session-Cookies "fe_typo_user" und
"be_typo_user" können nun deutlich schwerer per XSS-Atacke gestohlen werden
• Das Frontend User Cookie wird ab sofort nur gesetzt, wenn es Session-Daten gibt bzw. der User
eingeloggt ist. Dies minimiert den Traffic und erlaubt eine bessere Optimierung von Reverse Proxies
(wie Varnish). Damit wird die Einstellung dontSetCookie im Install Tool überflüssig.
• css_styled_content wird per Default installiert (und aktiviert) - dies ist insbesondere notwendig, da
System-Extensions wie felogin diese benötigen
• Das tt_content Feld „categories“ ist nun ein Exclude-Feld - es kann also für BE-User/Gruppen
ausgeblendet werden
• Das mit TYPO3 4.7 eingeführte TCEForm-Feature „placeholder“ ($GLOBALS['TCA']['pages']
['columns']['nav_title']['config']['placeholder'] = 'Hier ist ein
Placeholder-Text!’;) wird nun auch rekursiv ausgewertet - z.B. __row|uid_foreign|field
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
133
MISC 4
Änderungen im System
• normalize.css liegt nun in der Version 3.0.0 vor
• Swift Mailer liegt nun in der Version 5.0.3 vor
• DBAL verwendet nun die MySQLi PHP API
• RequireJS liegt nun in der Version 2.1.11 vor
• ADOdb liegt nun in der Version 5.18 vor
• Das TYPO3 Projekt typo3/cms hat nun eine Composer-Datei composer.json (im Root-Verzeichznis)
damit es beispielsweise bei packagist veröffentlicht werden kann
• Das Backend hat eine „Clickjacking protection“ (http://de.wikipedia.org/wiki/
Clickjacking) - damit kann das Backend per Default nicht mehr in Remote IFRAMEs verwendet
werden. Um dies wieder zu aktivieren kann man (auf eigenes Risiko) in der Datei
AdditionalConfiguration.php folgenden Code verwenden: unset($TYPO3_CONF_VARS['BE']
['HTTP']['Response']['Headers']['clickJackingProtection']);.
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
LOBACHER.
134
Application Programming
Interface (API)
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
135
Hook für tsfe::checkEnableFields
Application Programming Interface (API)
• Bislang war es nicht möglich, das Feature „Auf Unterseiten ausdehnen“ (extend to subpages) in eigenen
Extensions zu verwenden, um zusätzliche Regeln für die Sichtbarkeit der Seiten bereitzustellen. Dies lag
daran, dass die Liste der zu überprüfenden Felder hartkodiert war (auf hidden, endtime, starttime)
• Mit diesem Hook kann man die Liste beliebig erweitern und damit andere Felder prüfen
!
• Klasse: TYPO3CMSFrontendControllerTypoScriptFrontendController



$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']
['hook_checkEnableFields']
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
136
Hook für checkFlexFormValue im Data-Handler
Application Programming Interface (API)
• Mit diesem Hook kann man vor dem Speichern von FlexForm-Daten die Daten verändern.
• Beim Update der Daten einer Flexform wird normalerweise nicht geprüft, ob der Wert selbst bereits aus
der Datenbank gelöscht wurde.
• Dies ist insbesondere in Extbase der Fall, wenn man SwitchableControllerActions verwenden möchte.
Alte Actions, die es nicht mehr gibt, müssen so manuell aus der Datenbank entfernt werden
!
• Klasse: TYPO3CMSCoreDataHandlingDataHandler



$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']
['checkFlexFormValue']

• Methode: checkFlexFormValue_beforeMerge()
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
137
Hook für den Header im PageLayoutController
Application Programming Interface (API)
• Mit diesem Hook kann man den Header im Modul „Web > Page“ erweitern
• Mögliche Verwendung: Anzeige aller Medien als Template vor dem Seiteninhalt, die in den
Seiteneigenschaften hinterlegt wurden
!
• Klasse: TYPO3CMSBackendControllerPageLayoutController



$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/db_layout.php']
['drawHeaderHook'];


• Methode: callUserFunction
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
138
IRRE: Defaults für erzeugte Werte
Application Programming Interface (API)
• Für IRRE_Datensätze gibt es eine neue TCA-Option für „inline“ Felder
• Über „foreign_record_defaults“ kann man in erzeugten Datensätzen Default-Werte setzen



config => array(

'type' => 'inline',

'foreign_table' => 'tt_content',

'foreign_record_defaults' => array(

'CType' => 'image'

),

)



Beim Anlegen eines Datensatzes ist dieser per Default vom Typ „image“ (kann aber natürlich vom
Redakteur vor dem Speichern geändert werden.
• Folgende Felder können nicht mit Default-Werten versehen werden: uid, pid und t3ver_*, sowie
die TCA-ctrl-Felder crdate, cruser_id, delete, origUid, transOrigDiffSourceField,

transOrigPointerField und tstamp
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
139
API um Workspaces zu erweitern (1)
Application Programming Interface (API)
• Das Workspace Modul kann nun über eine API erweitert werden (um PHP und JavaScript-Komponenten
überschreiben zu können):

ext_localconf.php:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']
['processCmdmapClass']['workspaces_logger'] = '[Vendor]WorkspacesLogger
HookDataHandlerHook';



ext_tables.php:

TYPO3CMSWorkspacesServiceAdditionalColumnService::getInstance()-
>register(

'WorkspacesLogger_StageChange',

'[Vendor]WorkspacesLoggerDataProvider'

);



TYPO3CMSWorkspacesServiceAdditionalResourceService::getInstance()-
>addJavaScriptResource(

'WorkspacesLogger',

'EXT:[extention_key]/Resources/Public/JavaScript/StageChange.js'

);
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
140
API um Workspaces zu erweitern (2)
Application Programming Interface (API)
• Datei: [Vendor]WorkspacesLoggerHookDataHandlerHook

(DEMO: https://github.com/ohader/workspaces_logger)

<?php

namespace [Vendor]WorkspacesLoggerHook;

use TYPO3CMSCoreSingletonInterface;



class DataHandlerHook implements SingletonInterface {

const TABLE_Name = 'tx_workspaceslogger_event';

const EVENT_SetStage = 91;

/**

* hook that is called when no prepared command was found

...

public function processCmdmap($command, $table, $id, $value, &
$commandIsProcessed, TYPO3CMSCoreDataHandlingDataHandler $tcemainObj) {

...

$action = (string) $value['action'];

if ($command === 'version' && $action === 'setStage' &&
$commandIsProcessed) {

...
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
141
FAL Indexer Rewrite & Extractor Registry
Application Programming Interface (API)
• Die ExtractorRegistry erlaubt die Registrierung von Extractor Klassen, die das Extractor Interface
implementieren
• Durch das Interface kann die Priorität, die unterstützten Treiber und die unterstützten Datei-Typen
definiert werden
• Im Interface gibt es die Methoden getFileTypeRestrictions, getDriverRestrictions , getPriority ,
canProcess, extractMetaData
• Extraktoren müssen die extrahierten Daten als Array zurückgeben, in dem der Schlüssel dem
entsprechende Feld in der Tabelle „sys_file_metadata“ entspricht.
• Die Registry erlaubt es aktuell, alle Extraktoren zurück zu liefern und auch solche, die nur einen
speziellen Treiber unterstützen
• Die ExtractorRegistry hat dabei folgende Methoden: registerExtractionService, getExtractors,
getExtractorsWithDriverSupport
• Weitere Informationen hierzu finden sich unter: http://wiki.typo3.org/Blueprints/FAL-IndexerRework
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
142
Neue Registrierung von Wizard Skripten
Application Programming Interface (API)
• Bislang wurden Wizards im TCA wie folgt registriert (am Beispiel eines Wizards mit dem Namen add):

'config' => array( 

…

'wizards' => array(

'…' => array(

'script' => 'wizard_add.php' 

• Dies wird nun wie folgt geändert :

'module' => array(

'name' => 'wizard_add'

)

• Zusätzlich wird eine Registrierung benötigt:

TYPO3CMSCoreUtilityExtensionManagementUtility::addModulePath(

'wizard_add',

TYPO3CMSCoreUtilityExtensionManagementUtility::extPath($_EXTKEY) . 

‚Modules/Wizards/AddWizard/‚

);
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
143
MISC 1
Application Programming Interface (API)
• Analog zu TYPO3CMSCoreUtilityMathUtility::canBeInterpretedAsInteger gibt es
nun TYPO3CMSCoreUtilityMathUtility::canBeInterpretedAsFloat

• Es gibt nun einen eigenen Enumaration-Type: TYPO3CMSCoreTypeEnumeration (verwendet
beispielsweise in TYPO3CMSCoreVersioningVersionState und dann im Code z.B. mittels
new VersionState(VersionState::DEFAULT_STATE))
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
LOBACHER.
144
Extbase &
Fluid
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
145
Extbase: ObjectManager->getScope() zugefügt
Extbase & Fluid
• Wie in TYPO3 Flow kann nun über die Methode getScope() des Objekt Managers überprüft werden, ob
eine Klasse vom Typ Singleton oder Prototype ist:



/**

* @var TYPO3CMSExtbaseObjectObjectManagerInterface

* @inject

*/

protected $objectManager;



$this->objectManager->getScope($propertyTargetClassName) === TYPO3CMS
ExtbaseObjectContainerContainer::SCOPE_PROTOTYPE



$this->objectManager->getScope($propertyTargetClassName) === TYPO3CMS
ExtbaseObjectContainerContainer::SCOPE_SINGLETON
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
146
Extbase: Ermittlung des PageTypes in URLs
Extbase & Fluid
• Wenn man einen Link setzt, hinter dem das Format geändert werden soll, muss gleichzeitig auch der
Parameter pageType gesetzt werden:

<f:link.action arguments="{blog: blog}"
pageType="{settings.plaintextPageType}" format="txt">[plaintext]</
f:link.action>
• Über eine neue TypoScript Option formatToPageTypeMapping, kann nun ein Mapping hinterlegt
werden, welches automatisch zur Erkennung des PageTypes beim Wechsel des Formats sorgt:

plugin.tx_myext {

view.formatToPageTypeMapping {

txt = 99

pdf = 123

}

}

Nun reicht:

<f:link.action arguments="{blog: blog}" format="txt">[plaintext]</
f:link.action>
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
147
Extbase: Object Type Converter (aus Flow) - 1 von 2
Extbase & Fluid
• Der in TYPO3 Flow eingeführte „Object Type Converter“ wurde nach Extbase portiert
• Damit ist es möglich, Arrays in nicht-persistente Objekte zu konvertieren
• Beispiel: Erstellen eines nicht-persistenten Objekts $demand aus einem GET-Request heraus:
• Der GET-Request:

http://master.dev/index.php?
id=299&tx_mapperexample_piexample[action]=list&tx_mapperexample_piexample[controller
]=Entity&tx_mapperexample_piexample[demand]
[title]=foo&tx_mapperexample_piexample[demand][relation]=1
• Die initializeListAction() des Entity-Controllers:

use [Vendor][ExtKey]DomainDtoDemand;

public function initializeListAction() {

/** @var PropertyMappingConfiguration $demandConfiguration */

$demandConfiguration = $this->arguments['demand']-
>getPropertyMappingConfiguration();

$demandConfiguration->allowAllProperties()->forProperty('relation')

->allowAllProperties()->setTypeConverterOption(

'TYPO3CMSExtbasePropertyTypeConverterPersistentObjectConverter',

PersistentObjectConverter::CONFIGURATION_CREATION_ALLOWED,

TRUE);

}
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
148
Extbase: Object Type Converter (aus Flow) - 2 von 2
Extbase & Fluid
• Die listAction() des Entity-Controllers:

use [Vendor][ExtKey]DomainDtoDemand;

/**

* @param Demand $demand

*/

public function listAction(Demand $demand = NULL) {

$entities = $this->entityRepository->findAll();

$this->view->assign('entities', $entities);

}
• Die Model-Datei [Vendor][ExtKey]DomainDtoDemand.php

<?php

namespace [Vendor][ExtKey]DomainDto;

use [Vendor][ExtKey]DomainModelRelation;

class Demand {

protected $relation;

/**

* @param TYPO3FriendsMapperExampleDomainModelRelation $relation

*/

public function setRelation($relation) {

$this->relation = $relation;

}
!
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
149
Extbase: Chaining von QuerySettings
Extbase & Fluid
• Das Chaining (Verketten) von QuerySettings ist nun auch mit den „neuen“ Optionen
setIncludeDeleted und setIgnoreEnableFields (die mit TYPO3 CMS 6.0 eingeführt wurden)
möglich:



$query->getQuerySettings()

->setRespectStoragePage(FALSE)

->setRespectSysLanguage(FALSE)

->setIgnoreEnableFields(TRUE)

->setIncludeDeleted(TRUE);
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
150
Extbase: RawQueryResults per Query
Extbase & Fluid
• Bisher war es möglich, mittels 



$query->getQuerySettings()->setReturnRawQueryResult(TRUE)



dafür zu sorgen, dass keine Objekte vom QueryManager rekonstruiert werden, sondern das Query-
Ergebnis „roh“ zurückgegeben wird.

• Ab sofort gibt es diese Möglichkeit nicht mehr zentral, sondern man gibt dies per Query im execute-
Statement mittels TRUE an:



$query->execute(TRUE);
(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
151
Extbase: Rekursive Validierung und leere Werte
Extbase & Fluid
• Extbase verwendet nun die von Flow portierte sogenannte „Rekursive Validierung“

• Dies bedeutet, dass bei Erzeugung von verschachtelten Objekten (Objekt-Baum) durch den Property-
Mapper auch die inneren Objekte validiert werden und nicht nur das äußere Objekt wie bisher

• Zudem ist es nun möglich, leere (optionale) Werte zu zulassen. Will man daher explizit erreichen, dass
eine Eigenschaft angegeben werden muss, so muss der NotEmptyValidator verwendet werden.

(c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014
TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER.
152
Extbase: Application Context
Extbase & Fluid
• Innerhalb von Extbase kann man nun den von TYPO3 Flow bekannten ApplicationContext verwenden
• Der Kontext wird über die Umgebungs-Variable TYPO3_CONTEXT gesetzt. Als Root-Kontext gibt es:
„Development“, „Testing“ und „Production“. Anschließend kann es einen Sub-Kontext geben - z.B.:
„Production/Staging“
• Ist kein Kontext gesetzt, wird dieser per Default auf „Production“ gesetzt
• Gesetzt werden kann der Kontext beispielsweise wie folgt (z.B. in der Datei .htacess):

# Rules to set ApplicationContext based on hostname

RewriteCond %{HTTP_HOST} ^dev.example.com$

RewriteRule (.*) $1 [E=TYPO3_CONTEXT:Development]

RewriteCond %{HTTP_HOST} ^staging.example.com$

RewriteRule (.*) $1 [E=TYPO3_CONTEXT:Production/Staging]

RewriteCond %{HTTP_HOST} ^www.example.com$

RewriteRule (.*) $1 [E=TYPO3_CONTEXT:Production]

• Abgefragt werden kann der Kontext wie folgt:



TYPO3CMSCoreUtilityGeneralUtility::getApplicationContext();

TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen

Weitere ähnliche Inhalte

Was ist angesagt?

TYPO3 CMS 7.4 - Die Neuerungen - pluswerk
TYPO3 CMS 7.4 - Die Neuerungen - pluswerkTYPO3 CMS 7.4 - Die Neuerungen - pluswerk
TYPO3 CMS 7.4 - Die Neuerungen - pluswerkdie.agilen GmbH
 
TYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenTYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenAlex Kellner
 
TYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerkTYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerkdie.agilen GmbH
 
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerk
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerkTYPO3 CMS 7 LTS - Die Neuerungen - pluswerk
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerkdie.agilen GmbH
 
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 - pluswerkdie.agilen GmbH
 
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)die.agilen GmbH
 
TYPO3 CMS 8.1 - Die Neuerungen - pluswerk
TYPO3 CMS 8.1 - Die Neuerungen - pluswerkTYPO3 CMS 8.1 - Die Neuerungen - pluswerk
TYPO3 CMS 8.1 - Die Neuerungen - pluswerkdie.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 - pluswerkdie.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 - pluswerkdie.agilen GmbH
 
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 2014die.agilen GmbH
 
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 RosenheimAlex 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 Blickdie.agilen GmbH
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanB1 Systems GmbH
 
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-ProjektenAlex Kellner
 
TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)Marcus Schwemer
 
Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenExtbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenSpeedPartner GmbH
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSchlomo Schapiro
 

Was ist angesagt? (20)

TYPO3 CMS 7.4 - Die Neuerungen - pluswerk
TYPO3 CMS 7.4 - Die Neuerungen - pluswerkTYPO3 CMS 7.4 - Die Neuerungen - pluswerk
TYPO3 CMS 7.4 - Die Neuerungen - pluswerk
 
TYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenTYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein Wissen
 
Upgrade auf TYPO3 6.2
Upgrade auf TYPO3 6.2Upgrade auf TYPO3 6.2
Upgrade auf TYPO3 6.2
 
TYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerkTYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerk
 
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerk
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerkTYPO3 CMS 7 LTS - Die Neuerungen - pluswerk
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerk
 
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
 
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)
 
TYPO3 CMS 8.1 - Die Neuerungen - pluswerk
TYPO3 CMS 8.1 - Die Neuerungen - pluswerkTYPO3 CMS 8.1 - Die Neuerungen - pluswerk
TYPO3 CMS 8.1 - 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 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
 
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
 
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
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 
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
 
TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)
 
Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenExtbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobieren
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauen
 
Neuerungen in TYPO3 6.0
Neuerungen in TYPO3 6.0Neuerungen in TYPO3 6.0
Neuerungen in TYPO3 6.0
 
FLOW3-Workshop F3X12
FLOW3-Workshop F3X12FLOW3-Workshop F3X12
FLOW3-Workshop F3X12
 

Andere mochten auch

Andere mochten auch (18)

jQuery in TYPO3 nutzen
jQuery in TYPO3 nutzenjQuery in TYPO3 nutzen
jQuery in TYPO3 nutzen
 
Clipagem tarumã setembro 2010
Clipagem tarumã   setembro 2010Clipagem tarumã   setembro 2010
Clipagem tarumã setembro 2010
 
NASL
NASLNASL
NASL
 
Livestock and Land
Livestock and LandLivestock and Land
Livestock and Land
 
cPanel User Manual
cPanel User ManualcPanel User Manual
cPanel User Manual
 
Xdebug confoo11
Xdebug confoo11Xdebug confoo11
Xdebug confoo11
 
Introduction Php
Introduction PhpIntroduction Php
Introduction Php
 
Developing Your Ultimate Package
Developing Your Ultimate PackageDeveloping Your Ultimate Package
Developing Your Ultimate Package
 
Technote Index Map Help
Technote Index Map HelpTechnote Index Map Help
Technote Index Map Help
 
C lipagem tarumã maio 2010
C lipagem tarumã   maio 2010C lipagem tarumã   maio 2010
C lipagem tarumã maio 2010
 
いちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマいちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマ
 
C lipagem tarumã outubro 2010
C lipagem tarumã   outubro 2010C lipagem tarumã   outubro 2010
C lipagem tarumã outubro 2010
 
The Original Hacker número 11.
The Original Hacker número 11.The Original Hacker número 11.
The Original Hacker número 11.
 
La evolución de los medios de información
La evolución de los medios de informaciónLa evolución de los medios de información
La evolución de los medios de información
 
password (facebook)
password (facebook) password (facebook)
password (facebook)
 
concrete5 5.7でテーマ作ってみよう 超初級編
concrete5 5.7でテーマ作ってみよう超初級編concrete5 5.7でテーマ作ってみよう超初級編
concrete5 5.7でテーマ作ってみよう 超初級編
 
Real Developer Tools for WordPress by Stefan Didak
Real Developer Tools for WordPress by Stefan DidakReal Developer Tools for WordPress by Stefan Didak
Real Developer Tools for WordPress by Stefan Didak
 
A portrait chapter_1
A portrait chapter_1A portrait chapter_1
A portrait chapter_1
 

Ähnlich wie TYPO3 CMS 6.2 LTS - Die Neuerungen

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 cms-6-0-die-neuerungen
Typo3 cms-6-0-die-neuerungenTypo3 cms-6-0-die-neuerungen
Typo3 cms-6-0-die-neuerungenMokhtar Slama
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3Peter Kraume
 
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantDeployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantChristoph Möller
 
TYPO3 Monitoring mit t3monitoring
TYPO3 Monitoring mit t3monitoringTYPO3 Monitoring mit t3monitoring
TYPO3 Monitoring mit t3monitoringPeter Kraume
 
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 2014die.agilen GmbH
 
SLAC 2008 Mit SUSE Linux glücklich werden
SLAC 2008 Mit SUSE Linux glücklich werdenSLAC 2008 Mit SUSE Linux glücklich werden
SLAC 2008 Mit SUSE Linux glücklich werdenSchlomo Schapiro
 
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...OPITZ CONSULTING Deutschland
 
Domino Statistiken verstehen und nutzen (Teil 1) - 41. DNUG Konferenz
Domino Statistiken verstehen und nutzen (Teil 1) - 41. DNUG KonferenzDomino Statistiken verstehen und nutzen (Teil 1) - 41. DNUG Konferenz
Domino Statistiken verstehen und nutzen (Teil 1) - 41. DNUG Konferenzpanagenda
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python DevelopmentMartin Christen
 
Testing TYPO3 Flow Applications with Behat
Testing TYPO3 Flow Applications with BehatTesting TYPO3 Flow Applications with Behat
Testing TYPO3 Flow Applications with BehatMarkus Goldbeck
 
TYPO3 Website Monitoring mit Caretaker
TYPO3 Website Monitoring mit CaretakerTYPO3 Website Monitoring mit Caretaker
TYPO3 Website Monitoring mit CaretakerPeter Kraume
 
Config as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as CodeConfig as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as CodeDevOps Meetup Bern
 
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 2015die.agilen GmbH
 

Ähnlich wie TYPO3 CMS 6.2 LTS - Die Neuerungen (18)

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 cms-6-0-die-neuerungen
Typo3 cms-6-0-die-neuerungenTypo3 cms-6-0-die-neuerungen
Typo3 cms-6-0-die-neuerungen
 
TYPO3 CMS 7
TYPO3 CMS 7TYPO3 CMS 7
TYPO3 CMS 7
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3
 
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantDeployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
 
TYPO3 Monitoring mit t3monitoring
TYPO3 Monitoring mit t3monitoringTYPO3 Monitoring mit t3monitoring
TYPO3 Monitoring mit t3monitoring
 
coshsh
coshshcoshsh
coshsh
 
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
 
SLAC 2008 Mit SUSE Linux glücklich werden
SLAC 2008 Mit SUSE Linux glücklich werdenSLAC 2008 Mit SUSE Linux glücklich werden
SLAC 2008 Mit SUSE Linux glücklich werden
 
Logging mit log4net
Logging mit log4netLogging mit log4net
Logging mit log4net
 
Typo3 security
Typo3 securityTypo3 security
Typo3 security
 
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
 
Domino Statistiken verstehen und nutzen (Teil 1) - 41. DNUG Konferenz
Domino Statistiken verstehen und nutzen (Teil 1) - 41. DNUG KonferenzDomino Statistiken verstehen und nutzen (Teil 1) - 41. DNUG Konferenz
Domino Statistiken verstehen und nutzen (Teil 1) - 41. DNUG Konferenz
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python Development
 
Testing TYPO3 Flow Applications with Behat
Testing TYPO3 Flow Applications with BehatTesting TYPO3 Flow Applications with Behat
Testing TYPO3 Flow Applications with Behat
 
TYPO3 Website Monitoring mit Caretaker
TYPO3 Website Monitoring mit CaretakerTYPO3 Website Monitoring mit Caretaker
TYPO3 Website Monitoring mit Caretaker
 
Config as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as CodeConfig as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as Code
 
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
 

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 2017die.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 OKRdie.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 / Berlindie.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 applicationdie.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 - Pluswerkdie.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 - Pluswerkdie.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 - pluswerkdie.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 Thinkingdie.agilen GmbH
 
Medienhaus pecha-kucha - T3CON 2015
Medienhaus pecha-kucha - T3CON 2015Medienhaus pecha-kucha - T3CON 2015
Medienhaus pecha-kucha - T3CON 2015die.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
 

TYPO3 CMS 6.2 LTS - Die Neuerungen

  • 1. TYPO3 CMS 6.2 LTS
 Die Neuerungen
 
 Patrick Lobacher
 25.03.2014
 (Aktualisiert am 01.04.2014) LOBACHER.
  • 3. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 3 TYPO3 CMS 6.2 LTS - Short facts • Veröffentlicht: 25.03.2014 • End of Maintenance: 31.03.2017
 (3 Jahre Support) • Release Manager: Ernesto Baschny
 ernesto.baschny(AT)typo3.org
 @baschny • Hauptziele: Long Term Support • Systemvoraussetzungen: PHP 5.3.7 - 5.5.x, MySQL 5.1.x-5.5.x • Download: http://typo3.org/download/
 Bildquelle: t3con13de.typo3.org Einführung
  • 4. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 4 TYPO3 Release Agenda
  • 5. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 5 TYPO3 Release Agenda
  • 6. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 6 Inhaltsverzeichnis • Install-Tool Rewrite • Distribution Management • TYPO3 CMS goes Responsive • Änderungen im Backend • TSconfig & TypoScript • Package Management • Änderungen im System
 • API • Extbase & Fluid • Entfernte und veraltete
 Funktionen • Upgrade von TYPO3 CMS 4.5 LTS • Quellen & Resourcen • Über den Autor
 Inhaltsverzeichnis
  • 7. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 7 Install-Tool Rewrite
  • 8. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 8 Install Tool Rewrite Install Tool Rewrite • Das Install Tool wurde komplett neu geschrieben - das Templating basiert auf dem Standalone-View von Fluid • Wichtigste Änderung im Install-Prozess ist, dass es nur noch ein Paket gibt: 
 TYPO3 Source (kein Dummy Package, Blank Package, ...) - Größe ca. 20 MB • Zum Installieren einfach das zip oder tar.gz herunterladen, entpacken und in das Document Root legen • Anschließend einfach die URL aufrufen
 • Bei der ersten Installation wird eine Datei 
 FIRST_INSTALL im Document-Root erwartet, 
 die manuell angelegt werden muss
  • 9. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 9 Dummy Paket ist ab sofort obsolet Install Tool Rewrite • Der Installer sorgt nun dafür, dass alle benötigten Dateien an der richtigen Stelle sind • Insbesondere kann er auch alle Dateien anlegen, die für eine persönliche Instanz notwendig sind • Damit ist das Dummy Paket komplett obsolet
 • Es ist lediglich wichtig, dass folgende Dateien und Verzeichnisse richtig verlinkt sind:
 
 typo3_src (Verzeichnis, dies muss auf die Sourcen zeigen - sofern externe Sourcen verwendet werden)
 typo3 (Verzeichnis, zeigt auf typo3_src/typo3)
 index.php (Datei, zeigt auf typo3_src/index.php) ! • Weitere Dateien sind nicht notwendig zur Installation von TYPO3
  • 10. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 10 Install Tool Rewrite Install Tool Rewrite • Im ersten Schritt wird nun die Systemumgebung getestet
 • Hier kann man nun die beanstandeten Einstellungen
 beheben und erneut testen oder die Tests übergehen
 • Hat man den Core nicht als typo3_src Verzeichnis angelegt
 und darauf verlinkt, erhält man eine Fehlermeldung
 (unten stehende Verlinkung ist optimal)
  • 11. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 11 Install Tool Rewrite Install Tool Rewrite • Im zweiten Schritt kann man die Datenbank-
 Parameter eingeben
 • Hier ist es möglich als Typ entweder
 „TCP/IP based connection“ (empfohlen!) oder
 „Socket based connection“ (voreingestellt)
 auszuwählen
 • Benutzt man kein MySQL, so kann man dies
 über den entsprechenden Button ganz unten
 angeben und im nächsten Schritt
 einen anderen Datenbank-Treiber auswählen
 (dafür wird der Database Abstraction Layer
 geladen)
  • 12. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 12 Install Tool Rewrite Install Tool Rewrite • Im dritten Schritt kann man 
 die Datenbank selektieren ! • Dazu wählt man entweder eine der 
 vorhandenen leeren oder gefüllten 
 Datenbanken aus
 • Oder man legt eine neue
 Datenbank an

  • 13. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 13 Install Tool Rewrite Install Tool Rewrite • Im vierten Schritt legt man den Usernamen
 und das Passwort für den Admin-User fest ! • Hier kann man sich über eine Checkbox
 das Passwort zur Kontrolle auch 
 anzeigen lassen
 • Zusätzlich gibt man den 
 Website-Namen an
  • 14. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 14 Install Tool Rewrite Install Tool Rewrite • Nun ist die Installation beendet ! • Nach Klick auf „Open the Backend“ 
 wird man direkt zum Backend 
 weitergeleitet.
 • Wenn die Checkbox „Yes, download 
 the list of distributions.“ angewählt ist
 (dies ist der Default Zustand), kommt man
 zum Model „Distributions“
  • 15. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 15 Install Tool Passwort ist gesalzen Install Tool Rewrite • Das Install-Tool Password ist nun 
 auch „salted“ (also gesalzen und damit 
 nicht mehr nur MD5)
 • Bestehende MD5-Passwörter werden 
 beim ersten Login umgewandelt
  • 16. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 16 Install Tool Rewrite - Cache löschen Install Tool Rewrite • Im Bereich „Important Actions“ wurde die Möglichkeit geschaffen, den Cache komplett zu löschen • Dies funktioniert auch, wenn im Cache fehlerhafte PHP-Dateien vorhanden sind, die das TYPO3 ansonsten unbenutzbar machen. Hierfür muss man das Install Tool direkt aufrufen:
 http://www.domain.de/typo3/install Zuerst wird das Verzeichnis typo3temp/Cache gelöscht, dann alle Tabellen cf_* geleert. Nun werden ext_localconf und ext_tables der Extensions geladen und der übliche flushCaches() ausgeführt.
  • 17. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 17 Install Tool Rewrite - Laden der Extensions prüfen Install Tool Rewrite • Im Bereich „Important Actions“ wurde die Möglichkeit geschaffen, zu überprüfen, ob Extensions ohne Fehler geladen werden können (Wichtig z.B. für die Migration 4.5 -> 6.2)
  • 18. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 18 Install Tool Rewrite - BE User mit Salted Password Install Tool Rewrite • Wenn ein Backend-User im Install Tool angelegt wird (entweder explizit im „Important actions“ Menü oder im Verlauf der Installation, geschieht dies nun mit einem Salted Password. Dafür muss die Extension saltedpasswords installiert sein (per Default) und der Schlüssel [BE] [loginSecurityLevel] = rsa gesetzt sein (ebenfalls Default). 
 Vor TYPO3 CMS 6.2 war md5() die Default Encryption.
  • 19. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 19 Automatisches Core-Update - 1 Install Tool Rewrite • Man kann nun
 Minor-Core-Updates
 (inkl. Security-Versionen)
 direkt aus dem Install
 Tool ausführen
 • Durch die Umgebungsvariable
 TYPO3_DISABLE_CORE_UPDATER = 1
 kann der Core-Updater
 deaktiviert werden
 (für Apache beispielsweise
 SetEnv TYPO3_DISABLE_CORE_UPDATER 1)
  • 20. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 20 Automatisches Core-Update - 2 Install Tool Rewrite
  • 21. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 21 Automatisches Core-Update - 3 Install Tool Rewrite • Damit das Core Update funktioniert, muss folgendes erfüllt sein: • Funktioniert nur unter Unix und MacOS (da hier Symlinks vorhanden sind) • Das Verzeichnis typo3_src muss ein Symlink sein • Dieser Symlink muss schreibbar (und löschbar) durch den Webserver Benutzer sein • Das „Document Root“ muss schreibbar sein • Der Ebene überhalb von „Document root“ ("../") muss schreibbar sein 
 (damit neue Verzeichnisse parallel angelegt werden können) • Das Systemkommando "tar" muss verfügbar sein • Config für NGINX, damit der Core Updater deaktiviert wird
 server {
 listen 80;
 server_name domain;
 location ~ path/to/it {
 include fastcgi_params;
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_param TYPO3_DISABLE_CORE_UPDATER "1";
 }
 }
  • 22. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 22 Gruppierung und Sortierung: All Configuration Install Tool Rewrite • Der Bereich „All Configuration“
 ist nun gruppiert • Durch Klick auf die Überschrift
 klappt der zugehörige Bereich auf
 (Toggle All um alle auszuklappen) • Die Überschriften sind zudem 
 alphabetisch aufsteigend sortiert

  • 23. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 23 Configuration-Presets Install Tool Rewrite • Im Install Tool können nun sogenannte Configuration Presets (Voreinstellungen) definiert werden • Damit kann man beispielsweise die 
 Debug-Einstellungen, devIPmask und andere
 Einstellungen für bestimmte Szenarien
 (wie Production, Development, …)
 treffen und schnell zwischen diesen 
 umschalten
  • 24. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 24 Install-Tool Menü scrollt nicht mit Install Tool Rewrite • Das Menü auf der linken 
 Seite ist nun fixiert und
 scrollt daher nicht mit
 • So kann immer schnell
 auf eine andere Funktion
 umgeschaltet werden
  • 25. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 25 Install-Tool Einträge direkt speichern Install Tool Rewrite • Der Button
 „Write configuration“
 ist permanent sichtbar 
 und scrollt nicht mit
 • So können getätigte 
 Änderungen sofort
 und unmittelbar 
 gespeichert werden
  • 26. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 26 Error-Codes als Strings Install Tool Rewrite • In den folgenden Install-Tool
 Optionen wurden bisher 
 lediglich die Fehler-Codes
 ausgegeben:
 [SYS][errorHandlerErrors]
 [SYS][exceptionalErrors]
 [SYS][syslogErrorReporting]
 [SYS][belogErrorReporting] ! • Hierfür wurde nun ein 
 ViewHelper 
 (format.phpErrorCode)
 hinzugefügt, um diese Codes
 in aussagekräftige Strings
 umzuwandeln

  • 27. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 27 Verzeichnis-Fehler werden angezeigt Install Tool Rewrite • Im Install Tool
 werden nun 
 Fehler in der
 Verzeichnis-
 Struktur
 direkt mit 
 einem 
 Hinweis
 angezeigt
  • 28. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 28 Install Tool - MISC 1 Install Tool Rewrite • Alle Install Tool Formulare sind CSRF geschützt • Das Install Tool arbeitet mit einem vereinfachten Fluid Standalone View • Der Startpunkt ist nun nicht mehr typo3/install/index.php sondern typo3/sysext/install/ Start/Install.php (es gibt aber eine Weiterleitung) • Es werden lediglich die minimal wichtigsten TYPO3-Funktionen geladen - kaputte ext_localconf.php oder ext_tables.php von Extensions führen nicht mehr zum Abbruch des Install Tools • Das Install Tool verzichtet komplett auf Caching, somit können Fehler im Cache dem Install Tool nichts anhaben • Die PHP-Option xdebug.max_nesting_level wird überprüft, da es mit dem Default-Wert von 100 unter TYPO3 CMS zu Problemen kommen kann. Empfohlen wird ein Wert von 250 oder höher. • Im Install-Tool kann man nun bestehende (gefüllte) Datenbanken auswählen oder eine leere Datenbank anlegen bzw. auswählen
  • 29. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 29 Install Tool - MISC 2 Install Tool Rewrite • Es wurde ein „Distribution management“ zugefügt (um Distributionen wie „Introduction Package“ oder „Government Package“ während der Installation zu laden und zu konfigurieren). Nach der Installation landet man zunächst auf direkt beim „Distribution Management“ um eine der dort vorhandenen Distributionen zu installieren • Während normalerweise die Berechtigung für das Root-Verzeichnis der Installation 2770 sein muss und der Ordner dem Web-User gehören muss, um TYPO3 zu installieren, wurde nun eine Option „targetPermissionRelaxed“ eingeführt, bei der dieser Check für den Root-Folder außer Kraft gesetzt wurde, sofern es trotzdem möglich ist, die benötigten Unterverzeichnisse anzulegen
  • 30. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 30 Distribution Management
  • 31. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 31 Distribution Management Distribution Management • Das Distribution Management Modul ist über den Extension Manager zu erreichen • Dieser ist für das Laden von Distributionen wie „Introduction Package“ oder „Government Package“ zuständig
  • 32. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 32 Distribution Management Distribution Management • Zum Start kann man verschiedene 
 Distributions laden • So steht das Package „Hello World“ und das 
 Introduction-Package zur Verfügung • Später wird es hier weitere Distributionen, 
 wie das Government-Package, geben
  • 33. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 33 Distribution Management Distribution Management
  • 34. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 34 TYPO3 CMS goes Responsive
  • 35. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 35 Responsive Preview im Backend - 1 TYPO3 CMS goes Responsive • Die Vorschau-Fläche im Modul „View“ kann nun per Dropdown in der Breite begrenzt werden, um so responsive Websites besser testen zu können
  • 36. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 36 Responsive Preview im Backend - 2 TYPO3 CMS goes Responsive • Die Framegrößen sind zudem konfigurierbar • Dafür kann man folgenden Code per PageTSconfig verwenden
 
 mod.web_view.previewFrameWidths {
 1780.label = <any LLL or string>
 1780.height = 145
 } ! • Der Schlüssel (hier 1780) gibt dabei die Breite an • Die Höhe (height) ist optional • Die bereits enthaltenen Größen sind in der folgenden Datei definiert:
 typo3/sysext/core/Configuration/DefaultConfiguration.php
 
 mod.web_view.previewFrameWidths {
 1280.label = LLL:EXT:viewpage/Resources/Private/Language/locallang.xlf:computer
 1024.label = LLL:EXT:viewpage/Resources/Private/Language/locallang.xlf:tablet
 ...

  • 37. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 37 Neue Attribute für responsive Bildergalerien TYPO3 CMS goes Responsive • Um responsive Bildergalerien zu erstellen, kann es helfen, wenn im Rendering von Bildern zusätzliche Attribute ausgegeben werden. • Dafür wurde das CSC (CSS styled content) Rendering angepasst • Im Falle des Doktypes html5 (config.doctype = html5), wird zusätzlich noch die Anzahl der Spalten und die Anzahl der Bilder ausgegeben
 • Frühere Ausgabe:
 <div class="csc-textpic-imagewrap">...</div>
 
 Jetzige Ausgabe:
 <div class="csc-textpic-imagewrap" data-csc-images="{register:imageCount}" 
 data-csc-cols="{field:imagecols}">...</div>
  • 38. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 38 Responsive Image Rendering - 1 TYPO3 CMS goes Responsive • Das IMAGE cObject kann nun eine sogenannte sourceCollection rendern, um damit verschiedene Display-Auflösungen und Bildschirmgrößen zu unterstützen • Um das Responsive-Rendering für die Content-Objekte „Bild“ und „Text/Bild“ einzuschalten, muss man zwei Einstellungen im Constant-Editor treffen:
 
 Responsive Rendering verwenden:
 styles.content.imgtext.responsive
 
 Rendering-Type:
 styles.content.imgtext.layoutKey
 Default img-tag = default
 img-tag with alternate sources as srcset-attribute = srcset
 picture-tag with source-child-tags = picture
 img-tag with alternate sources as data-attributes = data

  • 39. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 39 Responsive Image Rendering - 2 TYPO3 CMS goes Responsive • Eigenschaft: layoutKey • Definiert das Render-Layout des IMAGE • Das Render-Layout ist der HTML-Code, der für das IMAGE verwendet wird • Mögliche ("out of the box") Werte sind: default, srcset, picture, data • Jede Möglichkeit repräsentiert eine unterschiedliche Lösung um HTML-Code für das IMAGE zu rendern • Der Default-Code rendert das <img>-Tag auf herkömmliche Weise mit verschiedenen Attributen • Wenn man ein Responsive Layout implementiert, benötigt man unterschiedliche Bild-Größen für unterschiedliche Auflösungen und Bildschirmgrößen • Abhängig vom verwendeten HTML-Framework, den Fähigkeiten der gewünschten Browser und dem verwendeten JavaScript für das progressive enhancement, kann man entweder eines der vordefinierten Layouts verwenden oder ein neues erstellen, indem man einen anderen layoutKey benutzt • Wenn man kein Responsive Layout benötigt, sollte man das Default-Layout verwenden
  • 40. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 40 Responsive Image Rendering - 3 TYPO3 CMS goes Responsive • Eigenschaft: layout • layoutKey = {$styles.content.imgtext.layoutKey}
 layout {
 default {
 element = <img src="###SRC###" width="###WIDTH###" height="###HEIGHT###" ###PARAMS### ###ALTPARAMS### ###BORDER######SELFCLOSINGTAGSLASH###>
 }
 // http://www.w3.org/html/wg/drafts/srcset/w3c-srcset/
 srcset {
 element = <img src="###SRC###" srcset="###SOURCECOLLECTION###" ###PARAMS### ###ALTPARAMS######SELFCLOSINGTAGSLASH###>
 source = |*|###SRC### ###SRCSETCANDIDATE###,|*|###SRC### ###SRCSETCANDIDATE###
 }
 // http://www.w3.org/TR/html-picture-element/
 picture {
 element = <picture>###SOURCECOLLECTION###<img src="###SRC###" ###PARAMS### ###ALTPARAMS######SELFCLOSINGTAGSLASH###></picture>
 source = <source src="###SRC###" media="###MEDIAQUERY###"###SELFCLOSINGTAGSLASH###>
 }
 data {
 element = <img src="###SRC###" ###SOURCECOLLECTION### ###PARAMS### ###ALTPARAMS######SELFCLOSINGTAGSLASH###>
 source = data-###DATAKEY###="###SRC###"
 }
 }
  • 41. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 41 Responsive Image Rendering - 4 TYPO3 CMS goes Responsive • Eigenschaft: layout.[layoutKey].element
 • ###SRC### 
 URL für das src-Attribut • ###WIDTH###
 Breite des Bildes für das width-Attribut • ###HEIGHT###
 Höhe des Bildes für das height-Attribut • ###PARAMS###
 Zusätzliche Parameter (wie im IMAGE object definiert) • ###ALTPARAMS###
 Zusätzliche alternative Paramater (wie im IMAGE object definiert) • ###BORDER###
 Border-Attribut des <img>-Tags • ###SELFCLOSINGTAGSLASH###
 Rendert das Tag-Abschlußzeichen (anbhängig von config.xhtmlDoctype bzw. config.Doctype) • ###SOURCECOLLECTION###
 Damit werden die zusätzlichen Sourcen des Bildes abhängig von der unterschiedlichen Verwendung im Responsive Web Design definiert. Die Definition selbst wird im Schlüssel layout.[layoutKey].source vorgenommen.
  • 42. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 42 Responsive Image Rendering - 5 TYPO3 CMS goes Responsive • Eigenschaft: sourceCollection.[dataKey] • Dies ist die Default-SourceCollection (der CSS Styled Content Extension) • Es ist unbedingt zu empfehlen, eine eigene zu schreiben
 • sourceCollection {
 small {
 width = 200
 srcsetCandidate = 600w
 mediaQuery = (max-device-width: 600px)
 dataKey = small
 }
 smallRetina {
 if.directReturn = 1
 width = 200
 pixelDensity = 2
 srcsetCandidate = 600w 2x
 mediaQuery = (max-device-width: 600px) AND (min-resolution: 192dpi)
 dataKey = smallRetina
 }
 } • Optionen: dataKey, if, pixelDensity, width, height, maxW, maxH, minW, minH, linkWrap, srcsetCandidate, mediaQuery 

  • 43. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 43 Responsive Image Rendering - 6a - Beispiel TYPO3 CMS goes Responsive page.30 = IMAGE page.30 { file = fileadmin/rocky.jpg file.width = 300 layoutKey = default layout { default { element = <img src="###SRC###" width="###WIDTH###" height="###HEIGHT###" ###PARAMS### ###ALTPARAMS### ###BORDER### ###SELFCLOSINGTAGSLASH###> source = } srcset { element = <img src="###SRC###" srcset="###SOURCECOLLECTION###" ###PARAMS### ###ALTPARAMS### ###SELFCLOSINGTAGSLASH###> source = |*|###SRC### ###SRCSETCANDIDATE###,|*|###SRC### ###SRCSETCANDIDATE### } picture { element = <picture>###SOURCECOLLECTION###<img src="###SRC###" ###PARAMS### ###ALTPARAMS### ###SELFCLOSINGTAGSLASH###></picture> source = <source src="###SRC###" media="###MEDIAQUERY###" ###SELFCLOSINGTAGSLASH###> } data { element = <img src="###SRC###" ###SOURCECOLLECTION### ###PARAMS### ###ALTPARAMS### ###SELFCLOSINGTAGSLASH###> source.noTrimWrap = | data-###DATAKEY###="###SRC###"| } }
  • 44. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 44 Responsive Image Rendering - 6b - Beispiel TYPO3 CMS goes Responsive sourceCollection { small { width = 200 srcsetCandidate = 800w mediaQuery = (min-device-width: 800px) dataKey = small } smallHires { if.directReturn = 1 width = 300 pixelDensity = 2 srcsetCandidate = 800w 2x mediaQuery = (min-device-width: 800px) AND (min-resolution: 192dpi) dataKey = smallHires pictureFoo = bar } } } page.40 < page.30 page.40.layoutKey = data page.50 < page.30 page.50.layoutKey = picture page.60 < page.30 page.60.layoutKey = srcset

  • 45. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 45 Responsive Image Rendering - 6b - Beispiel TYPO3 CMS goes Responsive HTML-Ausgabe:
 
 <img src="fileadmin/_processed_/csm_rocky_cd724a6e0e.jpg" width="300" height="200" alt="" border="0" >
 
 <img src="fileadmin/_processed_/csm_rocky_cd724a6e0e.jpg" data-small="fileadmin/_processed_/csm_rocky_ccc7ea1d33.jpg" data-smallHires="fileadmin/_processed_/csm_rocky_29113e55a7.jpg" alt="" >
 
 <picture> <source src="fileadmin/_processed_/csm_rocky_ccc7ea1d33.jpg" media="(min-device-width: 800px)" >
 <source src="fileadmin/_processed_/csm_rocky_29113e55a7.jpg" media="(min-device-width: 800px) AND (min-resolution: 192dpi)" >
 <img src="fileadmin/_processed_/csm_rocky_cd724a6e0e.jpg" alt="" >
 </picture>
 
 <img src="fileadmin/_processed_/csm_rocky_cd724a6e0e.jpg" srcset="fileadmin/_processed_/csm_rocky_ccc7ea1d33.jpg 800w,fileadmin/_processed_/csm_rocky_29113e55a7.jpg 800w 2x" alt="" >

  • 46. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 46 Änderungen im Backend
  • 47. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 47 Mehr Platz im Backend Änderungen im Backend • Im Backend wurden viele Bereiche 
 vom Platz her aufgelockert, um 
 damit für eine bessere Usability zu sorgen ! • Dafür wurden horizontale und vertikale
 Abstände vieler Elemente vergrößert ! • Basis ist ein 12px Raster, 
 welches verdoppelt wurde TYPO3 < 6.2 TYPO3 >= 6.2
  • 48. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 48 Neue Anordnung der Module Änderungen im Backend • Die Module auf der linken Seite wurden neu angeordnet
 • Insbesondere wurde das Modul „SYSTEM“ eingeführt,
 welches die meisten „LowLevel-Statustools“
 beherbergt, die zudem keinen Seitenbaum benötigen
 • Unter „ADMINWERKZEUGE“ wurden nun die Module
 „Sprache“ und „Erweiterungsmanager“ einsortiert
 • Das Modul „TypoScript-Hilfe“ wurde (da veraltet) 
 komplett entfernt TYPO3 < 6.2 TYPO3 >= 6.2
  • 49. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 49 Drag&Drop in der Datei-Liste Änderungen im Backend • Dateien können nun einfach per Drag & Drop in die Datei-Liste gelegt werden (Frage nach Überschreibung)
  • 50. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 50 Bessere Usability im Modul Backend Benutzer Änderungen im Backend • Einerseits wurde der Benutzername und der Name nun auf der linken Seite gruppiert und andererseits sind diese nun klickbar (und führen zum Editier-Formular). Zudem gibt es nun einen Delete-Button in der Liste. TYPO3 < 6.2 TYPO3 >= 6.2
  • 51. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 51 H1 im CI-Font Share Änderungen im Backend • Die H1-Überschriften im rechten Bereich werden nun durchwegs mit dem CI-Font „Share“ dargestellt TYPO3 < 6.2 TYPO3 >= 6.2
  • 52. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 52 Neues Symbol für Modul „Reports“ Änderungen im Backend • Das Modul „Reports“ hat ein eigenes Symbol erhalten • Bislang wurde dafür das Symbol des Moduls „Log“ verwendet. TYPO3 < 6.2 TYPO3 >= 6.2
  • 53. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 53 Verbesserte Suche - UID und PID im Ergebnis Änderungen im Backend • Die Live-Suche rechts oben kann nun im Tooltip sowohl UID wie auch PID anzeigen • Sobald man nach einer Suche das Editierformular wieder schließt, landet man in der Listen-Ansicht der PID (und nicht wie früher in einer leeren Seite) TYPO3 < 6.2 TYPO3 >= 6.2
  • 54. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 54 Verbesserte Suche - Alias kann duchsucht werden Änderungen im Backend • Bislang durchsuchte die Suche rechts oben für Seiten nur die Felder title und uid • Zusätzlich kann man nun das Feld alias durchsuchen, wenn dies per UserTSconfig konfiguriert wurde:
 
 options.pageTree.searchInAlias = 1
  • 55. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 55 Meta-Informationen im FAL-Element Header Änderungen im Backend • Dateiname und Titel werden nun im FAL-Element Header inkl. Überschrift angeben TYPO3 >= 6.2TYPO3 < 6.2
  • 56. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 56 Drag&Drop bei der Auswahl von Medien Änderungen im Backend • Bei der Auswahl von Medien (z.B. Inhaltselementen) kann nun Drag&Drop verwendet werden
  • 57. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 57 FAL - erweiterte Meta-Informationen Änderungen im Backend • Die Extension „filemetadata“ (im Core, nicht per Default installiert) bringt zusätzliche Meta-Daten ein
  • 58. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 58 FAL Metadaten können übersetzt werden Änderungen im Backend • Die FAL Metadaten können nun in die konfigurierten Frontend-Sprachen übersetzt werden
  • 59. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 59 Modul „Dokumentation“ hinzugefügt - 1 Änderungen im Backend • Es wurde ein Modul „Dokumentation“ 
 hinzugefügt, mit dem es möglich ist, 
 Manuals herunter zu laden und anzusehen
 • Das Modul wird bei neuen Installation
 per Default geladen - ansonsten kann man
 es im Erweiterungsmanager installieren
 • Im Modul „Download Documentation“ kann
 man Dokumentationen auf das System
 herunterladen
 • Im Modul „Dokumentation ansehen“ kann 
 man diese dann ansehen
  • 60. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 60 Modul „Dokumentation“ hinzugefügt - 2 Änderungen im Backend • Im Modul „Dokumentation anzeigen“ kann man die Dokumentationen der Erweiterungen dann ansehen
  • 61. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 61 Scheduler-Task löschen im Edit-Fenster Änderungen im Backend • Bislang konnte man Scheduler-Tasks nur aus der Liste der Tasks heraus löschen • Nun gibt es auch eine Möglichkeit zum Löschen aus dem Edit-Fenster heraus TYPO3 < 6.2 TYPO3 >= 6.2
  • 62. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. • Scheduler Tasks kann man nun mit einer Beschreibung ausstatten (als Subheadline oder Hover) 62 Beschreibung bei Scheduler Tasks Änderungen im Backend In der Extension
 Konfiguration
 kann eingestellt werden, 
 ob die Beschreibung als
 Hover angezeigtwird
  • 63. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 63 Scheduler-Task Gruppen Änderungen im Backend • Man kann nun Scheduler-Tasks in Gruppen anordnen • Dafür muss man einen Datensatz vom Typ „Scheduler task group“ auf der Root-Page (UID=0) anlegen ! • Datensatz Im Task selbst kann 
 man dann die
 Task Group zuweisen
  • 64. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 64 Postprozessor Redirect für Formulare Änderungen im Backend • Bislang gab es nur einen Postprozessor Email für mit dem FORM Content Objekt erstellte Formulare • Ab sofort gibt es noch einen weiteren Postprozessor: Redirect (Weiterleitung nach Abschicken der Mail) Das Feld wird über typolink
 ausgewertet - d.h. man kann 
 z.B. eine ID für eine interne Seite
 oder einen URL angeben
  • 65. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 65 UID und PID auswählbar in List-View für User Änderungen im Backend • Im Modul List kann nun auch der normale User (Nicht-Admin) die Spalten [uid] und [pid] auswählen
  • 66. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 66 Fehlende Dateien werden angezeigt Änderungen im Backend • Sobald der FAL-Indexer auf eine Datei trifft, die nicht mehr vorhanden ist, wird ein entsprechender Hinweis im Backend ausgeben. Zusätzlich wird das Flag „missing“ in der Datenbank „sys_file“ gesetzt. Sobald die Datei wieder vom Indexer gefunden wird, verschwinden Flag und Hinweis. Reports Modul dito.
  • 67. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 67 Neuer Menü-Typ: categories (1) Änderungen im Backend • Man kann nun ein Menü - bestehend aus Elementen aus Kategorien - erstellen. • Dafür gibt es ein spezielles Menü-Content-Objekt Kategorien zuweisen
  • 68. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 68 Neuer Menü-Typ: categories (2) Änderungen im Backend • Dies gibt es sowohl für Seiten (Pages for selected categories) wie auch für Inhaltselemente (Content Elements for selected categories). • Bei den Inhaltselementen muss man das Kategorie-Feld zuweisen
  • 69. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. • Das Icon ist nun bei leeren Spalten immer sichtbar (und nicht nur beim Drüberfahren) 69 Icon „Neues Inhaltselement“ immer sichtbar Änderungen im Backend TYPO3 < 6.2 TYPO3 >= 6.2
  • 70. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. • Im Funktionen-Menü kann man 
 im „Create multiple pages“ Wizard
 nun „Hide new pages in menus“
 für alle Seiten anwählen 70 „Hide in Menü“ im Funktionen-Menü Änderungen im Backend
  • 71. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. • Im Sub- Menu „Erweiterungen 
 hinzufügen“ kann man nun auch 
 eine Extension hochladen 71 Upload nun auch in „Erweiterungen hinzufügen“ Änderungen im Backend TYPO3 < 6.2 TYPO3 >= 6.2
  • 72. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. • Bislang waren Kategorien stets nach Titel sortiert, nun kann man diese auch manuell sortieren 72 Kategorien nun auch manuell sortierbar Änderungen im Backend TYPO3 < 6.2 TYPO3 >= 6.2
  • 73. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. • Man kann die Einträge im Recycler nun nach dem letzten Zugriff sortieren 73 Recycler nach letztem Zugriff sortierbar Änderungen im Backend TYPO3 < 6.2 TYPO3 >= 6.2
  • 74. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 74 Granulare Rechte für Dateien und Ordner Änderungen im Backend • Seit TYPO3 CMS 6.0 ist es möglich, die Rechte für Dateien 
 und Ordner sehr granular per UserTSconfig zu setzen • Dies ist nun auch im BE-User und in der BE-Gruppe 
 als Formular möglich

  • 75. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 75 Einschränkung von Kategorien - BE-User/-Gruppen Änderungen im Backend • Bei Backend-Usern und Backend-Gruppen kann nun definiert werden, welche Kategorien diese zu sehen bekommen • Dies geschieht im Tab „Freigaben und Arbeitsumgebungen“
  • 76. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 76 OpenID-Wizard für Backend-Benutzer Änderungen im Backend • Bei der Verwaltung von Backend-Benutzern kann man die OpenID per Wizard angeben • Hierfür muss die Systemextension „openid“ installiert sein
  • 77. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 77 MISC 1 Änderungen im Backend • Das Feld username bekommt den Autofokus, sobald man das Backend-Login aufruft (über das HTML5- Attribut autofocus="autofocus") ! !
  • 78. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 78 TSconfig & TypoScript
  • 79. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 79 TS: INCLUDE_TYPOSCRIPT für alle Dateien eines Verzeichnisses TSconfig & TypoScript • Man kann nun alle Dateien eines Verzeichnisses per INCLUDE_TYPOSCRIPT inkludieren lassen • Es werden zudem auch Unterverzeichnisse eingelesen • Gibt man die Option „extensions“ an, so werden nur die Dateien mit dieser Extension inkludiert • Die Reihenfolge ist: erst Dateien, dann Verzeichnisse - beide alphabetisch
 
 <INCLUDE_TYPOSCRIPT: source="DIR:directorypath" extensions="ts">
 
 oder
 
 <INCLUDE_TYPOSCRIPT: source="DIR:EXT:myext/Typoscript">
 • Es können nur Dateien mit den Endungen (ts, t3, t3s, t3c, txt) inkludiert werden. Will man eine andere Extension verwenden, muss man diese in $TYPO3_CONF_VARS['SYS']['tsfile_ext'] registrieren.
  • 80. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 80 TS: INCLUDE_TYPOSCRIPT auch mit relativen Pfaden möglich TSconfig & TypoScript • Ab sofort kann man auch relative Pfade beim Include verwenden • Der erste Include muss dabei absolut erfolgen • Mit . wird das aktuelle Verzeichnis des letzten Includes angesprochen • Mit .. wird das Elternverzeichnis des letzten Includes angesprochen ! • Beispiele
 
 <INCLUDE_TYPOSCRIPT: source="FILE:../filename.ts">
 
 oder
 
 <INCLUDE_TYPOSCRIPT: source="FILE:./filename.ts">

  • 81. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 81 TS: Neue stdWrap Funktion encodeForJavaScriptValue TSconfig & TypoScript • Escaping von Strings, damit diese sicher innerhalb von JavaScript verwendet werden können. Zeichen, die innerhalb von JavaScript-Zeichenfolgen Probleme bereiten könnten, werden mit ihren enkodierten Entsprechungen ausgetauscht. Zudem werden Single-Quotes am Anfang und am Ende hinzugefügt • Intern wird hierzu die Funktion TYPO3CMSCoreUtilityGeneralUtility::quoteJSvalue() verwendet
 • Beispiel:
 
 10 = TEXT
 10 {
 data = GP:sWord
 encodeForJavaScriptValue = 1
 wrap = setSearchWord('|');
 }

  • 82. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 82 TS: stdWrap für strPad TSconfig & TypoScript • Die Optionen length, padWidth und type der stdWrap-Funktion strPad wurden nun ebenfalls mit der Möglichkeit zum stdWrap versehen:
 
 page = PAGE
 page.10 = TEXT
 page.10 {
 value = Hallo Welt!
 strPad {
 length = 5 
 length {
 current = 1
 setCurrent.data = TSFE:page|uid
 setCurrent.wrap = | + 80
 prioriCalc = 1
 }
 padWith = .
 }
 }
  • 83. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 83 TS: stdWrap für _DEFAULT_PI_VARS TSconfig & TypoScript • Die sogenannten _DEFAULT_PI_VARS dienen dazu, Default-Werte für piVars (zu einer Extension gehörige GET/POST-Variablen) zu setzen • Bislang war es allerdings lediglich möglich, einen Schlüssel und einen dazugehörigen Wert zu setzen. • Nun kann man auch stdWrap verwenden
 • Beispiel vor TYPO3 CMS 6.2
 plugin.tt_news._DEFAULT_PI_VARS {
 year = 2013
 }
 
 Beispiel ab TYPO3 CMS 6.2
 plugin.tt_news._DEFAULT_PI_VARS {
 year.stdWrap.data = date:Y
 }
  • 84. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 84 TS: Condition userFunc mit CSV TSconfig & TypoScript • Die Condition userFunc erlaubte es bisher lediglich einen einzigen Parameter zu übergeben • Ab sofort kann man eine kommaseparierte Liste übergeben
 [userFunc = user_function(argument1, argument2, ...)]
 
 // TypoScript Code
 [userFunc = user_match(checkLocalIP, 192.168)]
 
 // PHP Code
 function user_match($command, $subnet) {
 switch($command) {
 case 'checkLocalIP':
 if (strstr(getenv('REMOTE_ADDR'), $subnet)) {
 return TRUE;
 }
 ...
 return FALSE;
 }
 } ! !
  • 85. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 85 TS: Debug Register und Page per TypoScript TSconfig & TypoScript • Der Inhalt der Arrays $GLOBALS['TSFE']->register und 
 $GLOBALS['TSFE']->page kann nun per debug Option innerhalb 
 vom Datentyp getText ausgegeben werden
 • Beispiele:
 
 10 = LOAD_REGISTER
 10.variable = wert
 
 20 = TEXT
 20.data = debug:register
 
 30 = TEXT
 30.data = debug:page
 

  • 86. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 86 TS: Zugriff auf Register für Title&AltText in File Links TSconfig & TypoScript • Bei Filelinks konnte man früher nur auf die Beschreibung via Register zugreifen • Dies wurde nun insofern geändert, dass nun auch der Titel-Text (register:titleText) und der Alt- Text (register:altText) per Register zugänglich sind 
 • Beispiele:
 
 # filelinks
 tt_content.uploads.20 {
 # link description instead of filename
 labelStdWrap.data = register:description
 # output alternative text
 itemRendering.20.data = register:titleText
 } 
 

  • 87. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 87 TS: OptionSplit für stdWrap Funktion replacement TSconfig & TypoScript • Die Option replace in der stdWrap Funktion replacement wurde nun mit optionSplit ausgestattet • Beispiele:
 10 = TEXT
 10.value = There_are_a_cat,_a_dog_and_a_tiger_in_da_hood!_Yeah!
 10.replacement.10 {
 search = _
 replace = 1 || 2 || 3
 useOptionSplitReplace = 1
 }
 Ergebnis: There1are2a3cat,3a3dog3and3a3tiger3in3da3hood!3Yeah!
 
 20 = TEXT
 20.value = There are a cat, a dog and a tiger in da hood! Yeah!
 20.replacement.10 {
 search = #(a) (Cat|Dog|Tiger)#i
 replace = ${1} tiny ${2} || ${1} midsized ${2} || ${1} big ${2}
 useOptionSplitReplace = 1
 useRegExp = 1
 }
 Ergebnis: There are a tiny cat, a midsized dog and a big tiger in da hood! Yeah!

  • 88. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 88 TS: Register für FILES cObject zugefügt TSconfig & TypoScript • Für das Content Objekt FILES wurden die Register FILE_NUM_CURRENT und FILES_COUNT zugefügt
 
 Beispiel (Der Index in FILE_NUM_CURRENT startet bei 0!):
 
 10 = FILES
 10 {
 references {
 table = tt_news
 uid.field = uid
 fieldName = media
 }
 renderObj = COA
 renderObj {
 10 = TEXT
 10.value = Rendert die erste Datei zweimal
 10.if.isFalse.data = register:FILE_NUM_CURRENT
 20 = TEXT
 20.value = file {register:FILE_NUM_CURRENT} of {register:FILES_COUNT}
 20.insertData = 1
 }
 }

  • 89. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 89 TS: Neuer TypoScript Menü-Typ: categories (1) TSconfig & TypoScript • Im TypoScript gibt es nun die Möglichkeit, ein Kategorien-Menü zu erstellen
 
 page.20 = HMENU
 page.20 {
 special = categories
 special {
 # Kommaseparierte Liste von Kategorien bzw. aus stdWrap
 value = 1 
 # Feld aus „pages“ nach der sortiert werden soll (stdWrap)
 sorting = title 
 # Sortierung: „asc“ oder „desc“ (stdWrap)
 order = desc 
 1 = TMENU
 1.NO {
 allWrap = <li> | </li>
 }
 }
 }
  • 90. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 90 TS: Neuer TypoScript Menü-Typ: categories (2) TSconfig & TypoScript • Weiteres Beispiel:
 
 categorized_pages < .default
 categorized_pages {
 special = categories
 special.value.field = selected_categories
 special.relation.field = category_field
 special.sorting = title
 special.order = asc
 stdWrap {
 outerWrap = <ul class="csc-menu csc-menu-categorized-pages">|</ul>
 }
 }
  • 91. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 91 TS: cObject RECORDS mit Kategorie-Unterstützung TSconfig & TypoScript • Das cObject RECORDS hat nun die Eigenschaft categories, mit Hilfe derer man auf die Kategorien zugreifen kann
 
 # Menu of categorized content elements
 categorized_content = RECORDS
 categorized_content {
 categories.field = selected_categories
 categories.relation.field = category_field
 tables = tt_content
 conf.tt_content = TEXT
 conf.tt_content {
 field = header
 typolink.parameter = {field:pid}#{field:uid
 typolink.parameter.insertData = 1
 wrap = <li>|</li>
 }
 wrap = <ul>|</ul>
 }
  • 92. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 92 TS: splitChar für JS- und CSS-Includes TSconfig & TypoScript • Die folgenden TypoScript-Optionen wurden nun mit der Eigenschaft splitChar beim allWrap ausgestattet (allWrap.splitChar):
 
 includeJSlibs
 includeJSFooterlibs
 includeJS
 includeJSFooter
 includeCSS
 
 • Das Default-Zeichen für die Option splitChar ist das Pipe-Symbol

  • 93. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 93 TS: Conditions für ApplicationContext TSconfig & TypoScript • Der ApplicationContext kann nun auch per Condition abgefragt werden • Wildcards + und * sowie REGEX mit /PREG_PATTERN/ können angegeben werden
 
 [applicationContext = Development/Debugging, Development/Profiling]
 # ist gültig für "Development/Debugging" oder "Development/Profiling"
 [global]
 
 [applicationContext = Production*]
 # Ist gültig für jeden ApplicationContext mit einem RootContext
 # "Production",
 # wie z.B. "Production/Live" oder "Production/Staging"
 [global]
 
 [applicationContext = /^Production/Staging/Serverd+$/]
 # Ist gültig für "Production/Staging/Server1", 
 # "Production/Staging/Server2"
 # u.s.w.
 [global] ! 

  • 94. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 94 TS: CONTENT Datensätze ohne Default Sprache TSconfig & TypoScript • Wenn man Datensätze über das TypoScript Objekt „CONTENT“ ermittelt (bzw. über ".select"), kann man über die Option "languageField" all jene Datensätze in der aktuellen Sprache ermitteln lassen • Dabei holt ".select" alle Datensätze in der Default-Sprache ("0,-1") und erstellt einen Overlay mit der aktuellen Sprache • Damit war es aber nicht möglich, Datensätze zu ermitteln, die keine Entsprechung in der Default-Sprache hatten (l10n_parent = "")
 • Dafür wurde nun eine entsprechende Option innerhalb von .select eingeführt, die es ermöglicht, auch Datensätze in das Ergebnis zu inkludieren, die keine Entsprechung in der Default-Sprache haben: 
 
 INHALT = CONTENT
 INHALT {
 table = tt_content
 select.includeRecordsWithoutDefaultTranslation = 1
 ...
 } 

  • 95. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 95 TS: begin, maxItems und direction für FILES cObject TSconfig & TypoScript • Das FILES Content Objekt verfügt nun über die (aus HMENU bekannten) Optionen • begin (Angabe des ersten Elements, welches zurückgegeben wird) • maxItems (Maximale Anzahl Elemente) • Zusätzlich wurde die Option direction als Eigenschaft von sorting implementiert (einziger Wert desc) • Beispiel (5 Bilder aus dem Media-Feld, beginnend vom ersten, werden zurückgegeben):
 page.10 = FILES
 page.10 {
 references {
 table = pages
 uid.data = page:uid
 fieldName = media
 }
 maxItems = 5
 begin = 0
 sorting.direction = desc
 }
 page.10.renderObj = TEXT
 page.10.renderObj {
 data = file:current:size
 wrap = <p>File size:<strong>|</strong></p>
 } 

  • 96. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 96 Developer IP in Condition IP TSconfig & TypoScript • In der Condition [IP=...] kann nun die im Install Tool eingetragene Developer IP verwendet werden - dafür wird die Zeichenkette „devIP“ verwendet ! • Beispiel:
 
 [IP = devIP]
 
 page.20 = TEXT
 page.20.value = Hello Developer!
 
 [end] 

  • 97. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 97 TSconfig: Doktypes vom Seitenbaum ausschließen TSconfig & TypoScript • Über die Einstellung excludeDoktypes in der UserTSconfig (beim Benutzer oder der Gruppe) ist es möglich, bestimmte Doktypes vom Rendern im Seitenbaum auszuschließen
 • Beispiele:
 
 Auschließen von Seiten vom Typ „Ordner“ (Folder)
 options.pageTree.excludeDoktypes = 254
 
 Auschließen von Seiten vom Typ „Ordner“ (Folder) und dem Seitentyp „Normal“
 options.pageTree.excludeDoktypes = 254,1

  • 98. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 98 TSconfig: Module im BE ausblenden TSconfig & TypoScript • Man kann nun einzelne Module im Backend ausblenden • Der Zugriff darauf wird aber nicht eingeschränkt - hier muss man nach wie vor mit den ACL für BE-User bzw. BE-Group arbeiten
 • Beispiele:
 
 options.hideModules = file, help
 
 options.hideModules.web := addToList(func,info)
 
 options.hideModules.system = BelogLog

  • 99. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 99 TSconfig: Preview Domain setzen (PageTS) TSconfig & TypoScript • Im PageTSconfig ist es nun möglich eine Preview-Domain zu setzen, die für die Anzeige verwendet wird • Dies ist insbesondere für Multi-Domain-Installationen nützlich und sinnvoll
 • Beispiel:
 
 TCEMAIN.previewDomain = example.com

  • 100. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 100 Conditions in Backend-Layouts TSconfig & TypoScript • Innerhalb von Backend-Layouts können nun auch Conditions verwendet werden, z.B.:
 
 backend_layout {
 colCount = 2
 rowCount = 1
 rows {
 1 {
 columns {
 1 {
 name = Main
 colPos = 0
 }
 2 {
 name = right
 colPos = 1
 }
 }
 }
 }
 }
 
 [PIDupinRootline = 509]
 backend_layout.rows.1.columns.2 >
 [GLOBAL] 

  • 101. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 101 MISC TSconfig & TypoScript • Hat man mehrere Login-Formulare über EXT:felogin auf einer Seite, funktioniert die „Passwort vergessen“ Funktion nicht sauber. Daher kann dies nun gezielt ein- und ausgeschaltet werden über die TypoScript Option showForgotPassword
 • Die Frontend-Ausgabe wird nun immer mit Content-length Header ausgeliefert. Dafür wird die TypoScipt-Eigenschaft config.enableContentLengthHeader per Default auf TRUE (1) gesetzt.
 • Die Resultlist der Extension indexed_search hat nun stdWrap Eigenschaften über die Option
 plugin.tx_indexedsearch.resultlist_stdWrap 

  • 102. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 102 Package Management
  • 103. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 103 Integration der PackageManager API - 1 Package Management • Der Package Manager von TYPO3 Flow wurde für TYPO3 CMS portiert • Das ermöglicht Vendor-Namespaces und vereinheitlicht die Paket-Formate • Extensions sind damit nur eine spezielle Art von „Packages“ • Folgende Schritte wurden dafür durchgeführt - Teil 1: • Entfernung des Schlüssels $TYPO3_CONF['EXT']['extListArray'] aus der Datei typo3conf/ LocalConfiguration.php (es wurde aber ein Fallback-Array-Zugriff eingerichtet) • Der Inhalt der alten LocalConfiguration.php Datei (sofern bereits eine vorhanden war), wird umkopiert in typo3conf/LocalConfiguration.beforePackageStatesMigration.php • In der Datei typo3conf/PackageStates.php werden nun der Status (active/inactive) und die Positionen der Extensions im Filesystem eingetragen • Ermittelt werden die Extensions in den Verzeichnissen: • typo3/systext • typo3/ext • typo3/contrib • typo3conf/ext • Packages (rekursiv)
  • 104. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 104 Integration der PackageManager API - 2 Package Management • Folgende Schritte wurden dafür durchgeführt - Teil 2: • Jede Extension erhält nun eine Datei composer.json im Hauptverzeichnis der Extension(und optional eine Datei Package.php im Verzeichnis Classes/) • Damit eine Extension als „required“ markiert wird, muss ein Flag „protected“ in der zugehörigen Datei composer.json gesetzt werden: 
 {"extra": {"typo3/cms": {"Package": {"protected": true} • Fehlt die Datei typo3conf/PackageStates.php, so wird diese Datei neu erstellt, indem lediglich Extensions dort eingetragen werden, die das (Composer) Flag auf TRUE gestellt haben • Der Autoloader bekommt ein eigenes Caching-Backend ! • Weitere Details finden sich hier:
 
 http://wiki.typo3.org/Blueprints/Packagemanager
  • 105. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 105 Integration der PackageManager API - 3 Package Management • Aufbau des Arrays in typo3conf/PackageStates.php
 return array (
 'packages' => 
 array (
 'core' => 
 array (
 'manifestPath' => '',
 'composerName' => ‚typo3/cms-core',
 'state' => 'active',
 'packagePath' => 'typo3/sysext/core/',
 'classesPath' => 'Classes/',
 ),
 'workspaces' => 
 array (
 'manifestPath' => '',
 'composerName' => ‚typo3/cms-workspaces',
 'state' => 'inactive',
 'packagePath' => 'typo3/sysext/workspaces/',
 'classesPath' => 'Classes/',
 ),
 ...
 ),
 'version' => 4,
 )
  • 106. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 106 Integration der PackageManager API - 4 Package Management • Aufbau einer composer.json Datei
 { "name": "typo3/cms-cms",
 "type": "typo3-cms-framework",
 "description": "TYPO3 Core",
 "homepage": "http://typo3.org",
 "license": ["GPL-2.0+"],
 "version": "6.2.0",
 "require": {
 "typo3/cms-core": "*"
 },
 "replace": {
 "cms": "*"
 },
 "extra": {
 "typo3/cms": {
 "Package": {
 "protected": true,
 "partOfFactoryDefault": true,
 "partOfMinimalUsableSystem": true
 }
 }
 }
 }
 Infos zum Schema: http://getcomposer.org/doc/04-schema.md
  • 107. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 107 PackageManager: Misc Package Management • Packages können nun auch zur Laufzeit aktiviert werden (dies war bisher nicht möglich, da der zurückportierte Flow Package Manager dies nicht erlaubt hat) - dies wird über den Schlüssel $GLOBALS['TYPO3_CONF_VARS']['EXT']['runtimeActivatedPackages'] = array('{packageKey}') gesteuert, der gleich nach der PackageManagement-Initialisierung aktiviert wird.
  • 108. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 108 Änderungen im System
  • 109. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 109 Workspaces Änderungen Änderungen im System • Workspaces User können nun selbst entscheiden, wem sie Notifications schicken wollen • Der Tab „All“ im Workspacemodul ist nun für alle User (nicht nur Admins) sichtbar
  • 110. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 110 Inkludierung von Normalize.css Änderungen im System • Normalize.css sorgt dafür, dass Browser Elemente konsistenter unter Zuhilfename von modernen Webstandards dargestellt werden
 • So wird bei Normalize.css kein kompletter Reset durchgeführt, sondern • sinnvolle Voreinstellungen behalten • HTML-Elemente in ihrem Aussehen angeglichen • Bugs behoben und Browser-Inkompatibilitäten ausgeglichen und • die Anwendbarkeit von CSS auf einige störrische Elemente verbessert
 • Zunächst wurde nur die Datei „normalize.css“ hier zugefügt (wird aber noch nicht verwendet):
 typo3/sysext/backend/Resources/Public/Css/structure/normalize.css ! • Informationen zu „normalize.css“
 http://necolas.github.io/normalize.css/
  • 111. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 111 Neue TCA displayCond-Optionen BIT und !BIT Änderungen im System • Damit ist es möglich, in einer Display-
 Condition im TCA (displayCond) auch gegen
 Multi-Value-Feldern (bitweise) zu testen:
 
 'content' => array(
 'label' => '...',
 'config' => array(
 'type' => 'check',
 'items' => array(
 array('Content A', ''),
 array('Content B', ''),
 array('Content C', ''),
 ),
 )
 ), Dafür kann man BIT und !BIT (negieren) verwenden
 
 'content_a' => array( 'label' => '...', 'displayCond' => 'FIELD:content:BIT:1', 'config' => array( 'type' => 'text', ) ), 'content_b' => array( 'label' => '...', 'displayCond' => 'FIELD:content:!BIT:2', 'config' => array( 'type' => 'text', ) ),
  • 112. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 112 Automatisches Update für Sprachen möglich Änderungen im System • Es gibt nun einen Extbase Command Controller zum automatischen Update von Sprachen für Extensions • Die Registrierung ist dabei wie folgt: 
 
 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['extbase']['commandControllers'][] = 'TYPO3CMSLangCommandLanguageCommandController'; ! • Ein möglicher Aufruf wäre:
 
 ./cli_dispatch.phpsh extbase language:update de,en,fr ! • Durch die Angabe der locales (kommasepariert) kann die Aktualisierung auf lediglich diese Sprachen eingeschränkt werden - lässt man die Angabe weg, werden alle Sprachen aktualisiert, die im Modul „Sprache“ ausgewählt sind
  • 113. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 113 ReST: reStructuredText Format für alle Manuals - 1 Änderungen im System • Die Manuals aller Systemextensions sind nun nicht mehr im Open Office SXW Format, sondern im Format reStructured Text (ReST). • ReST ist eine vereinfachte Auszeichnungssprache mit dem Ziel, in der reinen Textform besonders lesbar zu sein. Weiterhin soll reStructuredText leicht in andere Formate umwandelbar sein.
 • Eine kurze Einführung zu ReST findet sich bei der Wikipedia: 
 http://de.wikipedia.org/wiki/ReStructuredText
 • ReST Syntax: 
 http://wiki.typo3.org/ReST_Syntax
 • Einrichten einer ReST-Umgebung zum Rendern
 http://wiki.typo3.org/Rendering_reST
  • 114. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 114 ReST: reStructuredText Format für alle Manuals - 2 Änderungen im System • Folgende Manuals wurden als ReST hinterlegt: • typo3/sysext/css_styled_content/Documentation/* • typo3/sysext/dbal/Documentation/* • typo3/sysext/felogin/Documentation/* • typo3/sysext/form/Documentation/* • typo3/sysext/indexed_search/Documentation/* • typo3/sysext/linkvalidator/Documentation/* • typo3/sysext/openid/Documentation/* • typo3/sysext/recycler/Documentation/* • typo3/sysext/rsaauth/Documentation/* • typo3/sysext/rtehtmlarea/Documentation/* • typo3/sysext/saltedpasswords/Documentation/* • typo3/systext/scheduler/Documentation/* • typo3/sysext/sys_action/Documentation/* • typo3/sysext/taskcenter/Documentation/* • typo3/sysext/workspaces/Documentation/*
  • 115. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 115 Eigene Übersetzungsserver für Extensions Änderungen im System • Mit XLIFF und dem kostenfreien Pootle Übersetzungsserver ist es ein leichtes einen eigenen Übersetzungsserver für Extensions aufzusetzen. Dafür wurde ein Signal/Slot implementiert • Datei EXT:myext/localconf.php:
 /** @var TYPO3CMSExtbaseSignalSlotDispatcher $signalSlotDispatcher */
 $signalSlotDispatcher = TYPO3CMSCoreUtilityGeneralUtility::makeInstance('TYPO3CMSExtbase SignalSlotDispatcher');
 $signalSlotDispatcher->connect(
 'TYPO3CMSLangServiceUpdateTranslationService', 'postProcessMirrorUrl', 
 'CompanyExtensionSlotsCustomMirror', 'postProcessMirrorUrl'
 ); • Datei EXT:myext/Classes/Slots/CustomMirror.php:
 <?php
 namespace CompanyExtensionsSlots;
 class CustomMirror {
 /** @var string */
 protected static $extKey = 'myext';
 public function postProcessMirrorUrl($extensionKey, &$mirrorUrl) {
 if ($extensionKey === self::$extKey) {
 $mirrorUrl = 'http://mycompany.tld/typo3-packages/';
 }
 }
 }
  • 116. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 116 Automatisierte t3d Importe Änderungen im System • Extensions können nun t3d (TYPO3 Data - also Daten für die Extension) Dateien bereitstellen, die automatisch inkludiert werden
 • In einer t3d-Datei kann vieles enthalten sein: Struktur, Daten, Relationen, Dateien
 • Dafür muss das t3d-File an der folgenden Stelle platziert werden
 
 <Extension-Verzeichnis>/Initialisation/data.t3d
 • Sobald die Extension das erste Mal installiert wird, wird der Inhalt der t3d-Datei eingelesen
 • Bei einer erneuten Installation, wird aber die Datei nicht erneut eingelesen
  • 117. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 117 Automatisierte Datei Importe Änderungen im System • Extensions können nun Dateien bereitstellen, die automatisch inkludiert werden
 • Dafür müssen die Dateien an der folgenden Stelle platziert werden
 
 <Extension-Verzeichnis>/Initialisation/Files/*
 • Sobald die Extension das erste Mal installiert wird, werden die Dateien nach fileadmin/ <extensionname> kopiert
 • Bei einer erneuten Installation, werden die Dateien aber nicht erneut eingelesen
  • 118. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 118 Extensions als Repositories nutzen Änderungen im System • Manchmal hängen Extensions von Extensions ab, die verändert und angepasst wurden oder von Extensions, die nicht im TER veröffentlicht wurden
 • Ab sofort kann man einer Extension erlauben, eine Abhängigkeiten mitzubringen, in dem man die abhängigen Extensions in das folgende Verzeichnis (ungepackt) legt
 
 <Extension-Verzeichnis>/Initialisation/Extensions/
 • Die dort enthaltenen Extensions werden dann in das Verzeichnis typo3conf/ext umkopiert, um die Abhängigkeiten aufzulösen
  • 119. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 119 Install/Uninstall von Extensions über CLI Änderungen im System • Extensions können nun via Command Line Interface (CLI) installiert werden • Dafür muss ein Backend Benutzer _cli_lowlevel angelegt werden • Nun kann man Extensions installieren und deinstallieren • Der Extension-Key wird über [key] angegeben
 
 ./typo3/cli_dispatch.phpsh extbase extension:install [key]
 
 ./typo3/cli_dispatch.phpsh extbase extension:uninstall [key]

  • 120. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 120 TCA: Kaskadierendes Löschen von Datensätzen Änderungen im System • Im TCA gibt es nun eine Einstellung, die es erlaubt, das kaskadierende Löschen von Kind-Datensätzen ein- bzw. auszuschalten • Dafür muss die Relation vom Typ „inline“ sein • Der Default-Wert ist 1 - d.h. beim Löschen eines Datensatzes werden die Kind-Datensätze automatisch mitgelöscht.
 
 ...
 'type' => 'inline',
 'foreign_table' => ...,
 'behaviour' => array(
 'enableCascadingDelete' => 0,
 )
 ...
  • 121. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 121 Mehrere Kategorien pro Tabelle Änderungen im System • Bislang konnte über die Funktion 
 
 TYPO3CMSCoreUtility ExtensionManagementUtility::makeCategorizable($extensionKey,
 $tableName, $fieldName = 'categories', $options = array());
 
 nur ein Kategorie-Feld pro Tabelle definiert werden. Weitere Aufrufe haben die vorhergehenden überschrieben
 • Ab sofort können beliebig viele solcher Felder existieren
 • Über den vierten Parameter (options) kann mit dem Key label ein eigenes Label für das Feld eingebracht werden
  • 122. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 122 Data Provider für Backend Layouts Änderungen im System • Backend Layouts konnten bislang ausschließlich in der Datenbank gespeichert werden • Damit war es nicht möglich, dass Extensions eigene Backend Layouts mitbringen konnten • Das ist nun geändert worden - es können sogenannte „Data Provider“ definiert werden • Dies sind Klassen, die das Interface 
 TYPO3CMSBackendViewBackendLayoutDataProviderInterface
 implementieren müssen • Registriert wird die Data Provider Klasse wie folgt:
 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['BackendLayoutDataProvider'] [$_EXTKEY] = 'Classname'; • Zudem gibt es neue API-Befehle für das Backend Layout Handling, z.B: • 'itemsProcFunc' => 'TYPO3CMSBackendViewBackendLayoutView->addBackendLayoutItems • getBackendLayoutView()->getSelectedCombinedIdentifier($id); • getBackendLayoutView()->getSelectedBackendLayout() • Neue PageTSconfig Option, um Backend Layouts auszuschließen (von der Zuweisung):
 options.backendLayout.exclude = default_1, my_extension__headerLayout

  • 123. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 123 Filter für Multiselect-Felder Änderungen im System • Multiselect-Felder können schnell unübersichtlich werden • Daher wurde hier ein Filter realisiert, der es ermöglicht, die Einträge per Vorauswahl und/oder per Suchbegriff einzuschränken • Dafür muss das TCA entsprechend angepasst werden (z.B. in typo3conf/extTables.php):
 $GLOBALS['TCA']['fe_users']['columns']['usergroup']['config']['enableMultiSelectFilterTextfield'] = TRUE;
 $GLOBALS['TCA']['fe_users']['columns']['usergroup']['config']['multiSelectFilterItems'] = array(
 array('', 'Alle anzeigen'), // Erster Wert: Filter, Zweiter Wert: Label
 array('News', 'News'), // LLL: kann ebenfalls verwendet werden
 );

  • 124. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 124 Add Link in IRRE kann nun geändert werden Änderungen im System • Über die neue Option newRecordLinkAddTitle kann der Add-Link-Titel in IRRE-Felder angepasst werden • $TCA["tx_irretutorial_1nff_hotel"] = Array (
 "columns" => Array (
 "offers" => Array (
 "config" => Array (
 "type" => "inline",
 ...
 "appearance" => Array (
 "newRecordLinkAddTitle" => 1,
 "newRecordLinkTitle" => "Neuen Post anlegen!"
 "newRecordLinkPosition" => "both",
 ),
 )
 ),
 ), 
 ohne Option mit Option newRecordLinkTitle
  • 125. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 125 Caching Gruppen Änderungen im System • Der aktuelle TYPO3 Core enthält unterschiedliche Arten von Caches: So gibt es System-Caches (class loading cache, configuration cache, l10n_cache, extbase_object, extbase_reflection u.s.w.) und Frontend-bezogene Caches (chash cache, page cache, page section cache) • Bei einem „Clear all caches“ wurden stets alle Caches geleert, auch wenn dies nicht sinnvoll war • Nun wurden die Caches in zwei Gruppen eingeteilt: „pages“ und „system“, zudem gibt es „all“ für beide • Über eine Option in der Datei LocalConfiguration.php (DefaultConfiguration.php) wird dies beeinflusst:
 'cache_hash' => array(
 'frontend' => 'TYPO3CMSCoreCacheFrontendVariableFrontend',
 'backend' => 'TYPO3CMSCoreCacheBackendTypo3DatabaseBackend',
 'options' => array(),
 'groups' => array('pages', 'all')
 ),
 … • Das Kommando „Flush all cashes“ löscht ab sofort nur noch die Gruppe „pages“ (Breaking!) • Es gibt eine neue User TSconfig Option: options.clearCache.system = 1 (dies muss sogar für Admins eingeschaltet werden - ist aber automatisch aktiv im Development Kontext!)
  • 126. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 126 TCA-Check für Anzahl Checkboxen Änderungen im System • Es ist nun möglich, per check zu überprüfen, wieviele Checkboxen aus der selben Tabelle angewählt sind • Wählt der Backend User weitere Checkboxen aus, so werden diese wieder deaktiviert, bis die Anzahl der möglichen Checkboxen unterschritten wird • Möglich sind: maximumRecordsChecked und maximumRecordsCheckedInPid • maximumRecordsChecked: Limitiert die maximale Anzahl Datensätze von der selben Tabelle • maximumRecordsCheckedInPid: Limitiert die maximale Anzahl Datensätze auf der selben PID
 
 $tcaFieldConf = array(
 'type' => 'check',
 'eval' => 'maximumRecordsChecked',
 'validation' => array(
 'maximumRecordsChecked' => 5
 )
 );

  • 127. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 127 Tree-Icons (in Tabellen) Änderungen im System • In Tabellen wird eine line-height von 1.5em verwendet - daher wurden größere Tree-Icons benötigt • Dafür wurde eine neue Sprite-Kategorie treeline eingeführt mit den folgenden Klassen (+t3-icon)
 
 'treeline-blank','treeline-join','treeline-joinbottom','treeline- jointop','treeline-line','treeline-minus','treeline-minusbottom','treeline- minusonly','treeline-minustop','treeline-plus','treeline- plusbottom','treeline-plusonly','treeline-stopper' 
 • Beispiel
 
 <tbody>
 <tr>
 <td><span class="t3-icon t3-icon-treeline t3-icon-treeline-join t3- icon-join">&nbsp;</span></td>
 <td>...</td>
 </tr>
 </tbody>
  • 128. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 128 MM_oppositeUsage Eigenschaft im TCA Änderungen im System • Wenn man einen sys_category Datensatz kopiert, wird eine neue MM-Referenz angelegt, allerdings ohne den „fieldname“ zu setzen. Der Wert wird prinzipiell von der Gegenseite mittels MM_match_field definiert, auf den man allerdings bislang nicht zugreifen konnte • Hierfür wurde nun die Eigenschaft MM_oppositeUsage für MM-Definitions im TCA eingeführt:
 
 'config' => array(
 'allowed' => '*',
 'MM' => 'tx_myextension_first_second_mm',
 'MM_oppositeUsage' => array(
 'tt_content' => array('somefield'),
 'tx_myextension_domain_model' => array('some_property'),
 ),
 ),
  • 129. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 129 API zum CSRF Schutz für Backend Ajax-Calls Änderungen im System • Es wurde eine API zum CSRF-Schutz von Backend Ajax-Calls zugefügt. Dort werden die Ajax IDs zusammen mit deren Handler registriert, um eine Ajax URL für eine spezifische AjaxID zu erhalten • Der Token-Check wurde zum ajax.php Dispatcher hinzugefügt. Um abwärtskompatibel zu bleiben, wird der Token nur dann überprüft, wenn die registrierte AjaxID nicht die neue API verwendet
 
 TYPO3CMSCoreUtilityExtensionManagementUtility::registerAjaxHandler(
 'TxMyExt::process', 
 'VendorExtAjaxHandler->process'); ! • Damit einhergehend, wurde eine API zum Erhalt der Ajax URL für eine AjaxId eingeführt. Diese URL enthält den Token zum CSRF-Schutz, welcher in der ajax.php überprüft wird: ! • $ajaxUrl = 
 TYPO3CMSCoreUtilityBackendUtility::getAjaxUrl('TxMyExt::process');
 • Die Registrierung über den alten Weg (Hinzufügen zu TYPO3_CONF_VARS) ist veraltet, wird aber nicht im Deprecation Log geloggt.
  • 130. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 130 MISC 1 Änderungen im System • Eigene Record-List: Es ist nun möglich eine eigene Record-List im Element-Browser zu verwenden, wenn diese eine Instanz der Klasse TYPO3CMSBackendRecordList ElementBrowserRecordList ist (über die Eigenschaft $recordList in der Klasse TYPO3CMS RecordlistBrowserElementBrowser). • Mehr Untergruppen möglich: Bislang war das Feld zum Speichern von Untergruppen (subgroup) eine BE-Usergruppe nur 255 Zeichen groß - varchar(255). Ab sofort ist der Typ auf text umgestellt. • Modul Web > Template nur noch eine Extension: Die Extension „tstemplate“ wurde bislang technisch durch die folgenden zusätzlichen Extensions realisiert: „tstemplate_ceditor“, „tstemplate_info“,
 „tstemplate_objbrowser“, „tstemplate_analyzer“. Diese wurden nun in die Extension „tstemplate“ integriert. • Support für die TCA-Option label_userFunc_options zur BackendUtility Klasse zugefügt • Download von Extensions: Sobald man im Erweiterungsmanager eine Extension herunterlädt, wird der Timestamp an den Dateinamen hinzugefügt: <extensionKey>_<version>_<timestamp>.zip
  • 131. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 131 MISC 2 Änderungen im System • Logger ist PSR-3 kompatibel: Der Logger der Logging API ist nun kompatibel mit dem PSR-3 Standard der PHP Framework Interop Group: http://www.php-fig.org/psr/3/ • Extension saltedpassword ist per Default required und aktiviert für das Backend • Man kann nun die Argumente, die an einen SignalSlot-Dispatcher übergeben werden, verändern und diese werden nun auch vom Dispatcher (verändert) wieder zurückgegeben • Der Workspace-Preview enthält nun alle GET-Parameter (und damit insbesondere die von Extensions) • Der Sprite-Generator (TYPO3CMSBackendSpriteSpriteGenerator) unterstützt nun Bilder mit doppelter Auflösung und erzeugt somit zwei Dateien. Die Datei mit der höheren Auflösung erhält den Suffix @x2.png. Über CSS3 wird nun dafür gesorgt, dass Displays mit hoher Auflösung direkt das höher aufgelöste Icon laden. • Unterstützung für Proxy NTLM Authentifizierung (Aktivierung über Install Tool): 
 $GLOBALS['TYPO3_CONF_VARS']['SYS']['curlProxyNTLM']
  • 132. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 132 MISC 3 Änderungen im System • Die Install-Tool Option cookieHttpOnly wird per Default aktiviert - diese sorgt dafür, dass das SessionCoockie nicht per JavaScript zugänglich ist. Die Session-Cookies "fe_typo_user" und "be_typo_user" können nun deutlich schwerer per XSS-Atacke gestohlen werden • Das Frontend User Cookie wird ab sofort nur gesetzt, wenn es Session-Daten gibt bzw. der User eingeloggt ist. Dies minimiert den Traffic und erlaubt eine bessere Optimierung von Reverse Proxies (wie Varnish). Damit wird die Einstellung dontSetCookie im Install Tool überflüssig. • css_styled_content wird per Default installiert (und aktiviert) - dies ist insbesondere notwendig, da System-Extensions wie felogin diese benötigen • Das tt_content Feld „categories“ ist nun ein Exclude-Feld - es kann also für BE-User/Gruppen ausgeblendet werden • Das mit TYPO3 4.7 eingeführte TCEForm-Feature „placeholder“ ($GLOBALS['TCA']['pages'] ['columns']['nav_title']['config']['placeholder'] = 'Hier ist ein Placeholder-Text!’;) wird nun auch rekursiv ausgewertet - z.B. __row|uid_foreign|field
  • 133. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 133 MISC 4 Änderungen im System • normalize.css liegt nun in der Version 3.0.0 vor • Swift Mailer liegt nun in der Version 5.0.3 vor • DBAL verwendet nun die MySQLi PHP API • RequireJS liegt nun in der Version 2.1.11 vor • ADOdb liegt nun in der Version 5.18 vor • Das TYPO3 Projekt typo3/cms hat nun eine Composer-Datei composer.json (im Root-Verzeichznis) damit es beispielsweise bei packagist veröffentlicht werden kann • Das Backend hat eine „Clickjacking protection“ (http://de.wikipedia.org/wiki/ Clickjacking) - damit kann das Backend per Default nicht mehr in Remote IFRAMEs verwendet werden. Um dies wieder zu aktivieren kann man (auf eigenes Risiko) in der Datei AdditionalConfiguration.php folgenden Code verwenden: unset($TYPO3_CONF_VARS['BE'] ['HTTP']['Response']['Headers']['clickJackingProtection']);.
  • 134. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 134 Application Programming Interface (API)
  • 135. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 135 Hook für tsfe::checkEnableFields Application Programming Interface (API) • Bislang war es nicht möglich, das Feature „Auf Unterseiten ausdehnen“ (extend to subpages) in eigenen Extensions zu verwenden, um zusätzliche Regeln für die Sichtbarkeit der Seiten bereitzustellen. Dies lag daran, dass die Liste der zu überprüfenden Felder hartkodiert war (auf hidden, endtime, starttime) • Mit diesem Hook kann man die Liste beliebig erweitern und damit andere Felder prüfen ! • Klasse: TYPO3CMSFrontendControllerTypoScriptFrontendController
 
 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php'] ['hook_checkEnableFields']
  • 136. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 136 Hook für checkFlexFormValue im Data-Handler Application Programming Interface (API) • Mit diesem Hook kann man vor dem Speichern von FlexForm-Daten die Daten verändern. • Beim Update der Daten einer Flexform wird normalerweise nicht geprüft, ob der Wert selbst bereits aus der Datenbank gelöscht wurde. • Dies ist insbesondere in Extbase der Fall, wenn man SwitchableControllerActions verwenden möchte. Alte Actions, die es nicht mehr gibt, müssen so manuell aus der Datenbank entfernt werden ! • Klasse: TYPO3CMSCoreDataHandlingDataHandler
 
 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php'] ['checkFlexFormValue']
 • Methode: checkFlexFormValue_beforeMerge()
  • 137. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 137 Hook für den Header im PageLayoutController Application Programming Interface (API) • Mit diesem Hook kann man den Header im Modul „Web > Page“ erweitern • Mögliche Verwendung: Anzeige aller Medien als Template vor dem Seiteninhalt, die in den Seiteneigenschaften hinterlegt wurden ! • Klasse: TYPO3CMSBackendControllerPageLayoutController
 
 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/db_layout.php'] ['drawHeaderHook']; 
 • Methode: callUserFunction
  • 138. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 138 IRRE: Defaults für erzeugte Werte Application Programming Interface (API) • Für IRRE_Datensätze gibt es eine neue TCA-Option für „inline“ Felder • Über „foreign_record_defaults“ kann man in erzeugten Datensätzen Default-Werte setzen
 
 config => array(
 'type' => 'inline',
 'foreign_table' => 'tt_content',
 'foreign_record_defaults' => array(
 'CType' => 'image'
 ),
 )
 
 Beim Anlegen eines Datensatzes ist dieser per Default vom Typ „image“ (kann aber natürlich vom Redakteur vor dem Speichern geändert werden. • Folgende Felder können nicht mit Default-Werten versehen werden: uid, pid und t3ver_*, sowie die TCA-ctrl-Felder crdate, cruser_id, delete, origUid, transOrigDiffSourceField,
 transOrigPointerField und tstamp
  • 139. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 139 API um Workspaces zu erweitern (1) Application Programming Interface (API) • Das Workspace Modul kann nun über eine API erweitert werden (um PHP und JavaScript-Komponenten überschreiben zu können):
 ext_localconf.php:
 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php'] ['processCmdmapClass']['workspaces_logger'] = '[Vendor]WorkspacesLogger HookDataHandlerHook';
 
 ext_tables.php:
 TYPO3CMSWorkspacesServiceAdditionalColumnService::getInstance()- >register(
 'WorkspacesLogger_StageChange',
 '[Vendor]WorkspacesLoggerDataProvider'
 );
 
 TYPO3CMSWorkspacesServiceAdditionalResourceService::getInstance()- >addJavaScriptResource(
 'WorkspacesLogger',
 'EXT:[extention_key]/Resources/Public/JavaScript/StageChange.js'
 );
  • 140. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 140 API um Workspaces zu erweitern (2) Application Programming Interface (API) • Datei: [Vendor]WorkspacesLoggerHookDataHandlerHook
 (DEMO: https://github.com/ohader/workspaces_logger)
 <?php
 namespace [Vendor]WorkspacesLoggerHook;
 use TYPO3CMSCoreSingletonInterface;
 
 class DataHandlerHook implements SingletonInterface {
 const TABLE_Name = 'tx_workspaceslogger_event';
 const EVENT_SetStage = 91;
 /**
 * hook that is called when no prepared command was found
 ...
 public function processCmdmap($command, $table, $id, $value, & $commandIsProcessed, TYPO3CMSCoreDataHandlingDataHandler $tcemainObj) {
 ...
 $action = (string) $value['action'];
 if ($command === 'version' && $action === 'setStage' && $commandIsProcessed) {
 ...
  • 141. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 141 FAL Indexer Rewrite & Extractor Registry Application Programming Interface (API) • Die ExtractorRegistry erlaubt die Registrierung von Extractor Klassen, die das Extractor Interface implementieren • Durch das Interface kann die Priorität, die unterstützten Treiber und die unterstützten Datei-Typen definiert werden • Im Interface gibt es die Methoden getFileTypeRestrictions, getDriverRestrictions , getPriority , canProcess, extractMetaData • Extraktoren müssen die extrahierten Daten als Array zurückgeben, in dem der Schlüssel dem entsprechende Feld in der Tabelle „sys_file_metadata“ entspricht. • Die Registry erlaubt es aktuell, alle Extraktoren zurück zu liefern und auch solche, die nur einen speziellen Treiber unterstützen • Die ExtractorRegistry hat dabei folgende Methoden: registerExtractionService, getExtractors, getExtractorsWithDriverSupport • Weitere Informationen hierzu finden sich unter: http://wiki.typo3.org/Blueprints/FAL-IndexerRework
  • 142. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 142 Neue Registrierung von Wizard Skripten Application Programming Interface (API) • Bislang wurden Wizards im TCA wie folgt registriert (am Beispiel eines Wizards mit dem Namen add):
 'config' => array( 
 …
 'wizards' => array(
 '…' => array(
 'script' => 'wizard_add.php' 
 • Dies wird nun wie folgt geändert :
 'module' => array(
 'name' => 'wizard_add'
 )
 • Zusätzlich wird eine Registrierung benötigt:
 TYPO3CMSCoreUtilityExtensionManagementUtility::addModulePath(
 'wizard_add',
 TYPO3CMSCoreUtilityExtensionManagementUtility::extPath($_EXTKEY) . 
 ‚Modules/Wizards/AddWizard/‚
 );
  • 143. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 143 MISC 1 Application Programming Interface (API) • Analog zu TYPO3CMSCoreUtilityMathUtility::canBeInterpretedAsInteger gibt es nun TYPO3CMSCoreUtilityMathUtility::canBeInterpretedAsFloat
 • Es gibt nun einen eigenen Enumaration-Type: TYPO3CMSCoreTypeEnumeration (verwendet beispielsweise in TYPO3CMSCoreVersioningVersionState und dann im Code z.B. mittels new VersionState(VersionState::DEFAULT_STATE))
  • 144. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 144 Extbase & Fluid
  • 145. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 145 Extbase: ObjectManager->getScope() zugefügt Extbase & Fluid • Wie in TYPO3 Flow kann nun über die Methode getScope() des Objekt Managers überprüft werden, ob eine Klasse vom Typ Singleton oder Prototype ist:
 
 /**
 * @var TYPO3CMSExtbaseObjectObjectManagerInterface
 * @inject
 */
 protected $objectManager;
 
 $this->objectManager->getScope($propertyTargetClassName) === TYPO3CMS ExtbaseObjectContainerContainer::SCOPE_PROTOTYPE
 
 $this->objectManager->getScope($propertyTargetClassName) === TYPO3CMS ExtbaseObjectContainerContainer::SCOPE_SINGLETON
  • 146. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 146 Extbase: Ermittlung des PageTypes in URLs Extbase & Fluid • Wenn man einen Link setzt, hinter dem das Format geändert werden soll, muss gleichzeitig auch der Parameter pageType gesetzt werden:
 <f:link.action arguments="{blog: blog}" pageType="{settings.plaintextPageType}" format="txt">[plaintext]</ f:link.action> • Über eine neue TypoScript Option formatToPageTypeMapping, kann nun ein Mapping hinterlegt werden, welches automatisch zur Erkennung des PageTypes beim Wechsel des Formats sorgt:
 plugin.tx_myext {
 view.formatToPageTypeMapping {
 txt = 99
 pdf = 123
 }
 }
 Nun reicht:
 <f:link.action arguments="{blog: blog}" format="txt">[plaintext]</ f:link.action>
  • 147. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 147 Extbase: Object Type Converter (aus Flow) - 1 von 2 Extbase & Fluid • Der in TYPO3 Flow eingeführte „Object Type Converter“ wurde nach Extbase portiert • Damit ist es möglich, Arrays in nicht-persistente Objekte zu konvertieren • Beispiel: Erstellen eines nicht-persistenten Objekts $demand aus einem GET-Request heraus: • Der GET-Request:
 http://master.dev/index.php? id=299&tx_mapperexample_piexample[action]=list&tx_mapperexample_piexample[controller ]=Entity&tx_mapperexample_piexample[demand] [title]=foo&tx_mapperexample_piexample[demand][relation]=1 • Die initializeListAction() des Entity-Controllers:
 use [Vendor][ExtKey]DomainDtoDemand;
 public function initializeListAction() {
 /** @var PropertyMappingConfiguration $demandConfiguration */
 $demandConfiguration = $this->arguments['demand']- >getPropertyMappingConfiguration();
 $demandConfiguration->allowAllProperties()->forProperty('relation')
 ->allowAllProperties()->setTypeConverterOption(
 'TYPO3CMSExtbasePropertyTypeConverterPersistentObjectConverter',
 PersistentObjectConverter::CONFIGURATION_CREATION_ALLOWED,
 TRUE);
 }
  • 148. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 148 Extbase: Object Type Converter (aus Flow) - 2 von 2 Extbase & Fluid • Die listAction() des Entity-Controllers:
 use [Vendor][ExtKey]DomainDtoDemand;
 /**
 * @param Demand $demand
 */
 public function listAction(Demand $demand = NULL) {
 $entities = $this->entityRepository->findAll();
 $this->view->assign('entities', $entities);
 } • Die Model-Datei [Vendor][ExtKey]DomainDtoDemand.php
 <?php
 namespace [Vendor][ExtKey]DomainDto;
 use [Vendor][ExtKey]DomainModelRelation;
 class Demand {
 protected $relation;
 /**
 * @param TYPO3FriendsMapperExampleDomainModelRelation $relation
 */
 public function setRelation($relation) {
 $this->relation = $relation;
 } !
  • 149. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 149 Extbase: Chaining von QuerySettings Extbase & Fluid • Das Chaining (Verketten) von QuerySettings ist nun auch mit den „neuen“ Optionen setIncludeDeleted und setIgnoreEnableFields (die mit TYPO3 CMS 6.0 eingeführt wurden) möglich:
 
 $query->getQuerySettings()
 ->setRespectStoragePage(FALSE)
 ->setRespectSysLanguage(FALSE)
 ->setIgnoreEnableFields(TRUE)
 ->setIncludeDeleted(TRUE);
  • 150. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 150 Extbase: RawQueryResults per Query Extbase & Fluid • Bisher war es möglich, mittels 
 
 $query->getQuerySettings()->setReturnRawQueryResult(TRUE)
 
 dafür zu sorgen, dass keine Objekte vom QueryManager rekonstruiert werden, sondern das Query- Ergebnis „roh“ zurückgegeben wird.
 • Ab sofort gibt es diese Möglichkeit nicht mehr zentral, sondern man gibt dies per Query im execute- Statement mittels TRUE an:
 
 $query->execute(TRUE);
  • 151. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 151 Extbase: Rekursive Validierung und leere Werte Extbase & Fluid • Extbase verwendet nun die von Flow portierte sogenannte „Rekursive Validierung“
 • Dies bedeutet, dass bei Erzeugung von verschachtelten Objekten (Objekt-Baum) durch den Property- Mapper auch die inneren Objekte validiert werden und nicht nur das äußere Objekt wie bisher
 • Zudem ist es nun möglich, leere (optionale) Werte zu zulassen. Will man daher explizit erreichen, dass eine Eigenschaft angegeben werden muss, so muss der NotEmptyValidator verwendet werden.

  • 152. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 TYPO3 CMS 6.2 LTS - Die Neuerungen LOBACHER. 152 Extbase: Application Context Extbase & Fluid • Innerhalb von Extbase kann man nun den von TYPO3 Flow bekannten ApplicationContext verwenden • Der Kontext wird über die Umgebungs-Variable TYPO3_CONTEXT gesetzt. Als Root-Kontext gibt es: „Development“, „Testing“ und „Production“. Anschließend kann es einen Sub-Kontext geben - z.B.: „Production/Staging“ • Ist kein Kontext gesetzt, wird dieser per Default auf „Production“ gesetzt • Gesetzt werden kann der Kontext beispielsweise wie folgt (z.B. in der Datei .htacess):
 # Rules to set ApplicationContext based on hostname
 RewriteCond %{HTTP_HOST} ^dev.example.com$
 RewriteRule (.*) $1 [E=TYPO3_CONTEXT:Development]
 RewriteCond %{HTTP_HOST} ^staging.example.com$
 RewriteRule (.*) $1 [E=TYPO3_CONTEXT:Production/Staging]
 RewriteCond %{HTTP_HOST} ^www.example.com$
 RewriteRule (.*) $1 [E=TYPO3_CONTEXT:Production]
 • Abgefragt werden kann der Kontext wie folgt:
 
 TYPO3CMSCoreUtilityGeneralUtility::getApplicationContext();