68
TYPO3 CMS 6.1 „Improve“ Die Neuerungen Patrick Lobacher CEO typovision GmbH 30.04.2013

TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

TYPO3 CMS 6.1 „Improve“Die Neuerungen

Patrick Lobacher CEO typovision GmbH

30.04.2013

Page 2: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 2

TYPO3 CMS 6.1 „Improve“- Short facts• Veröffentlicht: 30.04.2013

• End of Maintenance: 31.10.2014 (keine LTS - das wird 6.2 sein)

• Release Manager: Benni Mack benni.mack(AT)typo3.org @bennimack

• Hauptziele: Improving communication Improving contribution Improving the product

• Systemvoraussetzungen: PHP 5.3.7 - 5.4.x, MySQL 5.1.x-5.5.x

• Download: http://typo3.org/download/

Bildquelle: snowflake.ch

Einführung - „Improve“

TYPO3 CMS 6.1 - Die Neuerungen

Page 3: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 3

TYPO3Release Agenda

Page 4: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 4

Bildquelle: typo3.org

TYPO3 Release Agenda

TYPO3 CMS 6.1 - Die Neuerungen

TYPO3 Release Agenda

January February March April May June July August September October November December

2013

TYPO3 6.1 alpha1March 12th

TYPO3 6.1 beta1April 3rd

TYPO3 6.1 beta2April 10th

TYPO3 6.1 RC1April 25th

TYPO3 6.1 Final ReleaseApril 30th

TYPO3 6.1 Release

Page 5: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 5

2011 April

TYPO3 Release Agenda

TYPO3 4.5 LTS

Main development 3FHVMBS�CVHmYFT 1SJPSJUZ�CVHmYFT���TFDVSJUZ�CVHmYFT

TYPO3 4.6

TYPO3 4.7

TYPO3 6.0

TYPO3 6.2 LTS

TYPO3 6.1

TYPO3 6.2 + 2

TYPO3 6.2 + 3

TYPO3 6.2 + 1

�����0DUPCFS 2012 April �����0DUPCFS 2013 April �����0DUPCFS 2014 April �����0DUPCFS 2015 April �����0DUPCFS 2016 April �����0DUPCFS

Bildquelle: typo3.org

TYPO3 Release Agenda

TYPO3 CMS 6.1 - Die Neuerungen

Page 6: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 6

Änderungen imBackend

Page 7: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 7

Header im New Content Element Wizard

Backend - Header im New Content Element Wizard

• Das Content-Element „Header Only“ kann nun im „New Content Element Wizard“ ausgewählt werden

TYPO3 CMS 6.1 - Die Neuerungen

TYPO3 < 6.1

TYPO3 >= 6.1

Page 8: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 8

Context-Menü für Template Datensatz

Backend - Context-Menü für Template Datensatz

• Der Template-Datensatz im Modul „Template“ hat nun auf dem Icon ein Kontext-Menü

TYPO3 CMS 6.1 - Die Neuerungen

Page 9: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 9

Delete-Button für Filelist

Backend - Delete-Button für Filelist

• Im Modul „Filelist“ wurde ein „Delete-Button“ integriert

TYPO3 CMS 6.1 - Die Neuerungen

TYPO3 < 6.1

TYPO3 >= 6.1

Page 10: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 10

Confirmation Checkbox für FORM cObjekt

Backend - Confirmation Checkbox für FORM cObjekt

• Während man per TypoScript schon länger angeben konnte, dass das cObject FORM auch eine Confirmation-Page anzeigen soll, wurde dies nun auch im Backendend als Checkbox beim Content-Objekt FORM nachgeholt.

enctype = multipart/form-datamethod = postprefix = tx_formconfirmation = 1postProcessor { 1 = mail ...

TYPO3 CMS 6.1 - Die Neuerungen

Page 11: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 11

Extension Manager wurde leicht überarbeitet

Backend - Extension Manager wurde überarbeitet

• Der Extension Manager wurde erneut überarbeitet und präsentiert sich nun mit besserer Usability.• Visuelles Feedback für Download

und Install wurde hinzugefügt• Functionmenu für Manage/Get• Direktlink für „Show all versions“

TYPO3 CMS 6.1 - Die Neuerungen

TYPO3 < 6.1

TYPO3 >= 6.1

Page 12: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 12

Rewrite der Systemextension „sys_note“

Backend - Rewrite sys_note

• Die Systemextension sys_note wurde mittels Extbase/Fluid neu geschrieben• Funktionell wurde fast nichts geändert (Edit-Button erst bei Hover).• Es ist nun sehr einfach die Extension selbst zu erweitern und insbesondere das Layout

anzupassen:

# constantsmodule.tx_sysnote { view { # cat=Internal Notes/general/1000; type=string; label=Layout Root Path: Path to layouts layoutRootPath = EXT:sys_note/Resources/Private/Layouts/ # cat=Internal Notes/general/1010; type=string; label=Partial Root Path: Path to partials partialRootPath = EXT:sys_note/Resources/Private/Partials/ # cat=Internal Notes/general/1020; type=string; label=Template Root Path: Path to templates templateRootPath = EXT:sys_note/Resources/Private/Templates/ }}# setupmodule.tx_sysnote { view { layoutRootPath = {$module.tx_sysnote.view.layoutRootPath} templateRootPath = {$module.tx_sysnote.view.templateRootPath} partialRootPath = {$module.tx_sysnote.view.partialRootPath} }}

TYPO3 CMS 6.1 - Die Neuerungen

Page 13: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 13

Scheduler

Backend - Scheduler

• Die Scheduler-Übersicht wurde überarbeitet• Man kann nun einen Task aus der Übersicht über ein Icon starten• Ein Task wird zudem ausgewählt, wenn man irgendwo in der Zeile klickt

TYPO3 CMS 6.1 - Die Neuerungen

TYPO3 < 6.1

TYPO3 >= 6.1

Page 14: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 14

Scheduler Emails bei System Status Update

Backend - Scheduler Email

• Im Scheduler Task „System Status Update“ war es bislang lediglich möglich eine Email-Adresse zu hinterlegen

• Dies wurde nun insofern geändert, dass man beliebig viele Adressen hinterlegen kann

TYPO3 CMS 6.1 - Die Neuerungen

TYPO3 < 6.1

TYPO3 >= 6.1

Page 15: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 15

System Environment Check

Backend - System Environment Check

• Die System Checks des Install Tools wurden komplett neu integriert• So wurden alle Checks in ein eigenes Skript ausgelagert, welches als „Standalone Script“ keine

Abhängigkeiten mehr zu TYPO3 hat.• Felix Kopp hat daraus ein Script entwickelt, welches es ermöglicht ein Hosting ohne Installation von

TYPO3 auf dessen Tauglichkeit zu testen: https://github.com/7elix/TYPO3-Probe• Ab der Version TYPO3 6.2 wird im ersten Schritt einer TYPO3 Installation überprüft, ob die

Systemvoraussetzungen optimal sind - bis dahin kann das Skript im Install Tool aufgerufen werden• Zudem kann im Support-Fall darauf verwiesen werden und auch ein Serverumzug lässt sich damit

gut begleiten, da anschließend nachgesehen werden kann, ob die Systemvoraussetzungen auch auf dem neuen Server noch passen

TYPO3 CMS 6.1 - Die Neuerungen

Page 16: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 16

System Environment Check

Backend - System Environment Check

• Im Install Tool gibt es zudem den neuen Abschnitt „System environment“, der die Übersicht über die Systemvoraussetzungen und deren Tests zeigt

• Dabei gelten folgende Zustände:• grün: Alles in Ordnung• gelb: Hier sollte man genau

nachsehen und ggf. Änderungen vornehmen

• rot: Fehler - hier *muss* man Änderungen vornehmen

TYPO3 CMS 6.1 - Die Neuerungen

Page 17: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 17

TSconfig &TypoScript

Page 18: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 18

stdWrap Funktion strPad

TypoScript - stdWrap Funktion strPad

• Analog zur PHP-Funktion str_pad() kann nun auch mittels stdWrap eine Funktion strPad verwendet werden - folgende Parameter stehen dort zur Verfügung:• length (number): Anzahl Zeichen, die es aufzufüllen gilt• padWith (string; default: space): Zeichen, mit dem/denen aufgefüllt wird• type (left, right, both; default: right): Richtung, von wo aufgefüllt wird

page.10 = TEXTpage.10.value = HELLO WORLD!page.10.strPad { length = 15 padWith = . type = left}

Ausgabe:

...HELLO WORLD!

TYPO3 CMS 6.1 - Die Neuerungen

Page 19: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 19

Ausgabe des <body> Tags unterbinden

TypoScript - Ausgabe des <body> Tags unterbinden

• Wenn z.B. TemplaVoilá für die Generierung der Seite verwendet wird, will man manchmal Klassen direkt im <body> Tag innerhalb von TemplaVoilá setzen

• Dafür muss TemplaVoilá das <body> Tag selbst generieren• Da aber TYPO3 selbst auch davon unabhängig ein <body> Tag generiert, hätte man schließlich

zwei davon im resultierenden HTML-Quelltext• Um dieses Problem zu lösen, wurde die Option disableBodyTag eingeführt, welche die

Generierung des <body> Tags unterbindet

config.disableBodyTag = 1

TYPO3 CMS 6.1 - Die Neuerungen

Page 20: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 20

Templates aus cObjects für FLUIDTEMPLATE

TypoScript - Templates aus cObjects für FLUIDTEMPLATE

• Bislang konnte man die Templates für das cObject FUIDTEMPLATE nur als Datei über die Option file angeben

• In TYPO3 CMS 6.1 wurde dies mit der Option template ergänzt, mit der man nun auch cObjects als Quelle für das Template verwenden kann

• Das folgende Beispiel zeigt die Verwendung von TEXT (Beispiel 1)

page.10 = FLUIDTEMPLATEpage.10 { template = TEXT template.value = <h1>{data.title}</h1> partialRootPath = fileadmin/templates/partial/ variables { mylabel = TEXT mylabel.value = Dieses Label kommt aus TypoScript }}

TYPO3 CMS 6.1 - Die Neuerungen

Page 21: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 21

Templates aus cObjects für FLUIDTEMPLATE

TypoScript - Templates aus cObjects für FLUIDTEMPLATE

• Bislang konnte man die Templates für das cObject FUIDTEMPLATE nur als Datei über die Option file angeben

• In TYPO3 CMS 6.1 wurde dies mit der Option template ergänzt, mit der man nun auch cObjects als Quelle für das Template verwenden kann

• Das folgende Beispiel zeigt die Verwendung von FILE (Beispiel 2)

page.10 = FLUIDTEMPLATEpage.10 {

template = FILE template.file = fileadmin/templates/MyTemplate.html partialRootPath = fileadmin/templates/partial/ variables { mylabel = TEXT mylabel.value = Dieses Label kommt aus TypoScript }}

TYPO3 CMS 6.1 - Die Neuerungen

Page 22: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 22

Settings Array für FLUIDTEMPLATE

TypoScript - Settings Array für FLUIDTEMPLATE

• Im TypoScript für eine Extbase-Extension kann man über den Schlüssel settings TypoScript Settings direkt in der Action zur Verfügung stellen

• Dies wurde nun auch für FLUIDTEMPLATE realisiert• Innerhalb des Schlüssels settings funktioniert nun auch die Auflösung von

Konstanten:

lib.globalSettings { foo = value bar = {$bar}}page = PAGEpage.10 = FLUIDTEMPLATEpage.10 { file = fileadmin/templates/MyTemplate.html settings < lib.globalSettings}Zugriff im Template über:{settings.foo} und {settings.bar}

TYPO3 CMS 6.1 - Die Neuerungen

Page 23: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 23

Split-Char für noTrimWrap festlegen

TypoScript - Split-Char für noTrimWrap festlegen

• Verwendet man noTrimWrap innerhalb eines HMENU, so wird dieser immer als optionSplit interpretiert. Abhilfe schafft die neu eingeführte Option splitChar, mit der man die Zeichen angeben kann, die für noTrimWrap verwendet werden sollen. Default für diese Option ist „|“

temp.mainMenu.10 = HMENUtemp.mainMenu.10 { ... 1 = GMENU 1.NO { ... 10 = TEXT 10 { text.field = title # Wird als optionSplit interpretiert - daher nicht möglich # text.noTrimWrap = | -- | | text.noTrimWrap = * -- * * text.noTrimWrap.splitChar = * ...

TYPO3 CMS 6.1 - Die Neuerungen

Page 24: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 24

Export von Daten in List-Modul verhindern

TSconfig - Export von Daten in List-Modul verhindern

• Es gibt nun eine Page TSconfig-Option um den Export der Daten (DB oder CSV) im Modul „List“ zu verhindern

mod.web_list.noExportRecordsLinks = 1

TYPO3 CMS 6.1 - Die Neuerungen

Page 25: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 25

INCLUDE im Datensatz „Backend Layout“

TypoScript - INCLUDE im Datensatz „Backend Layout“

• In Datensätzen vom Typ „Backend Layout“ kann man in das Feld „Config“ eine TypoScript ähnliche Syntax zum Aufbau des Grids eingeben

• Hier kann man ab sofort auch ein INCLUDE_TYPOSCRIPT verwenden - damit ist es möglich, die Konfiguration in eine Datei auszulagern

<INCLUDE_TYPOSCRIPT:source="FILE:fileadmin/layout.ts">

TYPO3 CMS 6.1 - Die Neuerungen

Page 26: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 26

Neue Optionen für TypoScript Listen

TSconfig - Neue Optionen für TypoScript Listen

• Es gibt neue Optionen um TypoScript Listen zu manipulieren

• Bisherige Optionen: prependString(), appendString(), removeString(), replaceString(), addToList(), removeFromList()

• Neue Optionen: uniqueList(), reverseList(), sortList()

page = PAGEpage.10 = TEXTpage.10.value = 11,14,11,7// Ausgabe: 11,14,7 page.10.value := uniqueList()// Ausgabe: 7,14,11page.10.value := reverseList()// Ausgabe: 14,11,7 - mögliche Optionen: numeric, descendingpage.10.value := sortList(numeric,descending)// Ausgabe: 7,11,14page.10.value := sortList(numeric)

TYPO3 CMS 6.1 - Die Neuerungen

Page 27: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 27

Verschiedenes

TypoScript - Verschiedenes

• Entfernen des CSS, welches über _CSS_PAGE_STYLE durch Extensions (wie z.B. css_styled_content) eingebracht wurde:

config.removePageCss = 1

• Die Option config.pageTitleSeparator (eingeführt in 4.7) kann ab sofort nicht nur Zeichen aufnehmen, sondern kann nun auch per stdWrap behandelt werden:

config.pageTitleSeparator = -config.pageTitleSeparator.noTrimWrap = | | |

• Die Default-Values (Option: value) der Formularfelder im FORM-cObject haben nun stdWrap-Properties

TYPO3 CMS 6.1 - Die Neuerungen

Page 28: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 28

Verschiedenes

TypoScript - Verschiedenes

• Ab sofort kann man über die stdWrap Option addPageCacheTags Tags zu Seiten hinzufügen (wird in der Tabelle cache_pages gespeichert):

stdWrap.addPageCacheTags = pagetag1,pagetag2,pagetag3

Diese können nun über das folgende TSconfig wieder gelöscht werden:

TCEMAIN.clearCacheCmd = tag:pagetag1,tag:pagetag2,tag:pagetag3

• Die User TSconfig Option „clearRTECache“ wurde umbenannt:

ALT: options.clearCache.clearRTECache NEU: options.clearCache.clearLangCache (BREAKING Change!)

TYPO3 CMS 6.1 - Die Neuerungen

Page 29: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 29

Änderungen imSystem

Page 30: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 30

TCA-Handling wurde erneuert

System-Änderungen - TCA-Handling angepasst

• Das Handling des TCA wurde teilweise neu geschrieben, um folgendes zu erreichen:• Im Frontend wird das TCA nun immer geladen und nach dem ersten Aufruf gecached

• Die Datei ext_tables.php wiederum wird nicht bei jedem Aufruf ausgeführt

• Im Backend wird das TCA ebenfalls gecached und macht die Option 'dynamicConfigFile ' überflüssig (da der Unterschied zwischen 'ctrl' und 'columns' getilgt wurde)

• Die TCA-Dateien sollten ab sofort an folgender Stelle hinterlegt werdenext:extensionname/Configuration/TCA/tablename.php

und sollten ein Array mit dem TCA für die Tabelle - definiert im Dateinamen - zurückliefern

• Beim ersten Zugriff werden diese Dateien gelesen und gecached

TYPO3 CMS 6.1 - Die Neuerungen

Page 31: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 31

TCA-Handling wurde erneuert

System-Änderungen - TCA-Handling angepasst

• Das Handling des TCA wurde teilweise neu geschrieben, um folgendes zu erreichen:• Die 'ctrl' Abschnitte aus der Datei ext_tables.php können komplett entfernt werden• Die Funktionen TSFE->includeTCA(), TSFE->getCompressedTCarray() und

GeneralUtility:loadTca() sind nun obsolet• Extensions, die das neue TCA-Ladeschema nicht verwenden, haben den Fallback in der Datei

typo3conf/ext_tables.php, um die Option 'dynamicConfigFile' gleich nach den Einstellungen aus der jeweiligen ext_tables.php Datei der Extension zu laden, damit diese über die ExtensionManagementUtility zu manipulieren sind

• Das Verzeichnis t3lib/stddb wurde entfernt - alle Dateien wurden in den Core integriert

• Die Core-Extension halten sich bereits an das Schema. Als Beispiel kann man die Systemextension „sys_note“ ansehen.

TYPO3 CMS 6.1 - Die Neuerungen

Page 32: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 32

Display Condition Erweiterung im TCA

System-Änderungen - Display Condition Erweiterung im TCA

• Mit Hilfe der Option displayCond kann man eine Bedingungsregel definieren, ob das Feld angezeigt wird oder nicht

• Die Option displayCond des TCA ist insofern erweitert worden, dass nun auch mehrere Conditions möglich sind und diese mit AND und/oder OR verknüpft werden können:'link_file' => array ( 'exclude' => 0, 'label' => 'LLL:EXT:filelinks/locallang_db.xml:tx_filelinks.link_file', 'config' => array ( ... ), 'displayCond' => array( 'AND' => array( 'FIELD:testField:>:9', 'FIELD:testField:<:11', ), ),

TYPO3 CMS 6.1 - Die Neuerungen

Page 33: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 33

Integration von require.js

System-Änderungen - require.js Integration

• In den Core wurde „require.js“ integriert (ein JavaScript File- und Module-Loader)• Der Loader ist sowohl über das Frontend, wie auch das Backend über die

PageRenderer-Klasse verfügbar• Zudem können sogenannte Asynchronous Module Definitions (AMD) beim Laden

der Seite geladen werden• jQuery wird bereits über ein AMD (Asynchronous Module Definition) mit dem

Namen „jQuery“ geladen• Alle eigenen AMD-Module sollten wie folgt benannt werden:

TYPO3.CMS.[PackageName].[ModuleName]

Damit wird die Datei automatisch wie folgt aufgelöstEXT:PackageName/Resources/Public/JavaScript/ModuleName.js

• Die Syntax lautet dabei wie folgt:/* $mainModuleName - "TYPO3/CMS/PackageName/ModuleName" e.g. "TYPO3/CMS/Backend/FormEngine" */

public function loadRequireJsModule($mainModuleName)

TYPO3 CMS 6.1 - Die Neuerungen

Page 34: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 34

Integration von MySQLi

System-Änderungen - require.js Integration

• Die Datenbank Konnektivitätsklasse (bisher bekannt als TYPO3_DB) verwendet nun „mysqli“ anstelle der alten „mysql“ Extention

• MySQLi wurde mit PHP 5.0 eingeführt und wird per default mit allen unterstützten PHP-Versionen mitgeliefert

• Die ursprüngliche Extension „mysql“ wird mit der zukünftigen PHP Version 5.5 deprecated und ist zudem lediglich optimiert für MySQL 4.1.3 und früher. Zudem fehlen dort wichtige Features des MySQL-Servers

• Nachdem das TYPO3 CMS MySQL 5+ für einige Versionen benötigt, ist der Wechsel zu MySQLi folgerichtig

• Da die API seit langer Zeit gekapselt war, merkt der Entwickler vom Wechsel auf MySQLi überhaupt nichts.

• Ab sofort ist „mysqli“ ein Modul, welches zwingend geladen sein muss, damit TYPO3 funktioniert

TYPO3 CMS 6.1 - Die Neuerungen

Page 35: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 35

Verschiedene System-Änderungen

System-Änderungen - Verschiedenes

• Der Query zum Abruf der Domain-Records beim Erzeugen von Links mittels typolink wird ab sofort gecached, wenn die Option config.typolinkCheckRootline = 1 gesetzt ist

• Im Caching Framework ist es ab sofort möglich, XCache (ein PHP Opcode Cache ähnlich wie APC) zu verwenden. Dies geht allerdings nicht im CLI-Mode.http://xcache.lighttpd.net/wiki/Introduction

• Es wird im Install Tool nicht mehr nur überprüft, ob „apt“, „xcache“ oder „eaccelerator“ geladen wird, sondern es wurden auch Tests auf „Zend Optimizer“, „Zend OPcache“ und „wincache“ hinzugefügt - also Tests gegen „irgendeinen Optimizer“

• Die Bilder aus dem RTE werden nun statt in /uploads/RTEmagicC_* in /fileadmin/_migrated_/RTE/ gespeichert. Bereits in /uploads vorhande Bilder werden durch den Upgrade-Wizard umkopiert.

• Einführung von „Lazy Database Connection“: Der Bootstrapper setzt zwar die Credentials für die Datenbank - stellt aber die Verbindung nicht mehr her. Dies übernimmt die DB-Klasse bei Bedarf selbst. eID-Skripte müssen nicht mehr connectDB() aufrufen.

TYPO3 CMS 6.1 - Die Neuerungen

Page 36: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 36

Application ProgrammingInterface (API)

Page 37: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 37

searchQuery mit AND oder OR

API - searchQuery

• Bislang konnte die DB-API Funktion „searchQuery“ die Suchworte nur mittels AND verknüpfen• Ab sofort kann nun auch OR dafür verwendet werden - dafür wurde ein 4. Paramter geschaffen• Klasse: \TYPO3\CMS\Core\Database\DatabaseConnection

class DatabaseConnection {

public function searchQuery( $searchWords, $fields, $table, $constraint = self::AND_Constraint) { // oder self::OR_Constraint ... }

}

TYPO3 CMS 6.1 - Die Neuerungen

Page 38: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 38

Pre- und Post SELECT Hooks

Hooks - Pre- und Post SELECT Hook

• Im Core wurde auch die SELECT-Abfrage mit einem Pre- und Post-Process-Hook ausgestattet

• Klasse: \TYPO3\CMS\Core\Database\DatabaseConnection

/* Pre-processor for the SELECTquery method. */public function SELECTquery_preProcessAction(&$select_fields, &$from_table, &$where_clause, &$groupBy, &$orderBy, &$limit, \TYPO3\CMS\Core\Database\Databa

/* Post-processor for the SELECTquery method. */public function exec_SELECTquery_postProcessAction(&$select_fields, &$from_table, &$where_clause, &$groupBy, &$orderBy, &$limit, \TYPO3\CMS\Core\Database\

TYPO3 CMS 6.1 - Die Neuerungen

Page 39: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 39

Custom CE-Rendering Hook

Hooks - Custom CE-Rendering Hook

• Es wurde ein Hook eingeführt, der innerhalb der CSS Styled Content (CSC) in das Rendering eines einzelnen Media-Elements eingreifen kann, um so ein eigenes Rendering zu ermöglichen.

• Sinnvoll kann dies z.B. für FAL-Inhalte wie Video genutzt werden oder Inhalte die per JavaScript eingebettet werden

• Klasse: \TYPO3\CMS\CssStyledContent\Controller\CssStyledContentController

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['css_styled_content']['pi1_hooks']['render_singleMediaElement']

TYPO3 CMS 6.1 - Die Neuerungen

Page 40: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 40

Extbase &Fluid

Page 41: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 41

Class Naming Utility

Extbase & Fluid - Class Naming Utility

• Im Core wurde eine Utility-Klasse (mit statischen Methoden) hinzugefügt, welche Benennungsaufgaben wie z.B. Konvertierung eines Klassennamens eines Models zu dem eines Repositories und ähnliches durchführen kann

• Klasse: \TYPO3\CMS\Core\Utility\ClassNamingUtility

• Methoden:• translateModelNameToRepositoryName($modelName)

z.B. Tx_Extbase_Domain_Model_Foo zu Tx_Extbase_Domain_Repository_FooRepositoryoder \TYPO3\CMS\Extbase\Domain\Model\Foo zu \TYPO3\CMS\Extbase\Domain\Repository\FooRepository

• translateModelNameToValidatorName($modelName) • translateRepositoryNameToModelName($repositoryName)• explodeObjectControllerName($controllerObjectName)

Zerlegt einen controllerObjectName wie \Vendor\Ext\Controller\FooController in seine Einzelteile wie vendorName, extensionName, subpackageKey und controllerName

TYPO3 CMS 6.1 - Die Neuerungen

Page 42: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 42

Extbase: Rekursive Storage PID per TypoScript

Extbase & Fluid - Extbase: Rekursive Storage PID per TypoScript

• Die Storage PID kann nun per TypoScript auch rekursiv gesetzt werden:

plugin { tx_extension { persistence { storagePid = 1,2,3

recursive = 99

} }}

• Lässt man die Eigenschaft recursive weg, so wird ein Wert von 0 (Null) per Default angenommen.

TYPO3 CMS 6.1 - Die Neuerungen

Page 43: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 43

Extbase: Überschreiben des Object Mapping

Extbase & Fluid - Extbase: Überschreiben des Object Mapping

• Über den folgenden Schlüssel kann man das Object Mapping per TypoScript überschreiben:

config.tx_extbase { objects { Tx_Extbase_Persistence_BackendInterface { className = Tx_MyExt_Persistence_Backend } }}

• Dies lässt sich ab sofort auch per Plugin überschreiben:

plugin.tx_foo { objects { Tx_Extbase_Persistence_BackendInterface { className = Tx_MyExt_Persistence_Backend } }}

TYPO3 CMS 6.1 - Die Neuerungen

Page 44: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 44

Extbase: beforeCallActionMethod Signal

Extbase & Fluid - Extbase: beforeCallActionMethod Signal

• Dieses Signal stellt einen Hook dar, der unmittelbar vor dem Aufruf der aktuellen Action (callActionMethod) aufgerufen wird.

• Übergeben werden der Name des Controllers, der Name der Action und die Argumente der Action:$this->signalSlotDispatcher->dispatch( __CLASS__, 'beforeCallActionMethod', array( 'controllerName' => get_class($this), 'actionMethodName' => $this->actionMethodName, 'preparedArguments' => $preparedArguments) );

• Verwendung des Slots:$this->getSignalSlotDispatcher()->connect( '\TYPO3\CMS\Extbase\Mvc\Controller\ActionController', 'beforeCallActionMethod', 'Tx_MyExtension_CallActionSlot', 'beforeCallActionMethode' );

TYPO3 CMS 6.1 - Die Neuerungen

Page 45: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 45

Extbase: Neuer Property Mapper aktiv

Extbase & Fluid - Extbase: Neuer Property Mapper aktiv

• Der überarbeitete Property Mapper (mitgeliefert seit TYPO3 4.6) ist nun auf für produktive Umgebungen geeignet und wird mittels TypoScript per Default aktiviert:

config.tx_extbase.features.rewrittenPropertyMapper = 1

• Da der Property-Mapper ein Downport von TYPO3 Flow ist, kann auch die dort vorhandene Dokumentation als Referenz verwendet werden:

http://docs.typo3.org/flow/TYPO3FlowDocumentation/TheDefinitiveGuide/PartIII/PropertyMapping.html

TYPO3 CMS 6.1 - Die Neuerungen

Page 46: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 46

Extbase: TYPO3_MODE Detection

Extbase & Fluid - Extbase: TYPO3_MODE Detection

• Da jeder eine eigene Methode benutzt hat, um herauszufinden, ob der TYPO3_MODE gerade Backend oder Frontend ist, wurde eine eigene Service-Klasse eingeführt

• Klasse: \TYPO3\CMS\Extbase\Service\EnvironmentService• Methoden:

public function isEnvironmentInFrontendMode() { return (defined('TYPO3_MODE') && TYPO3_MODE === 'FE') ?: FALSE; } public function isEnvironmentInBackendMode() { return (defined('TYPO3_MODE') && TYPO3_MODE === 'BE') ?: FALSE; }

• Verwendung (Dependency Injection des Services):/** * @var \TYPO3\CMS\Extbase\Service\EnvironmentService */ protected $environmentService;/** * @param \TYPO3\CMS\Extbase\Service\EnvironmentService $environmentService * @return void */ public function injectEnvironmentService(\TYPO3\CMS\Extbase\Service\EnvironmentService $environmentService) { $this->environmentService = $environmentService;}... if ($this->environmentService->isEnvironmentInFrontendMode()) { ...

TYPO3 CMS 6.1 - Die Neuerungen

Page 47: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 47

Extbase: Per Plugin FlashMessages-Queue

Extbase & Fluid - Extbase: Per Plugin FlashMessages-Queue

• Bislang konnte man in Extbase FlashMessages nur in einem Container speichern• Dies wurde nun verändert, in dem man FlashMessages in einer sogenannte Queue auch per Plugin

speichern kann• Dafür muss das Handling im TypoScript umgestellt werden

config.tx_extbase.legacy.enableLegacyFlashMessageHandling = 0• Die Messaging-Klasse befindet sich hier:

\TYPO3\CMS\Core\Messaging\FlashMessageQueue.php• Setzen einer FlashMessage im aktuellen Plugin-Context

$this->controllerContext->getFlashMessageQueue()->addMessage(new \TYPO3\CMS\Core\Messaging\FlashMessage($errorFlashMessage, '', \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR));

• Auslesen aller FlashMessages und flushen (leeren) der Queue$this->controllerContext->getFlashMessageQueue()->getAllMessagesAndFlush();

TYPO3 CMS 6.1 - Die Neuerungen

Page 48: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 48

Extbase: Performance

Extbase & Fluid - Extbase: Performance

• Es wurden zudem einige Performance-Fixes eingebracht, die Extbase nun deutlich schneller machen

• Löschen des Page-CachesAnstatt den Cache bei jeder schreibenden Action (create, update und delete) zu löschen, wurde ein Page ID-Stack implementiert, der den Page-Cache am Ende des Requests löscht

• Caching-Layer für getTargetPidByPluginDie Funktion getTargetPidByPlugin benutzt nun einen internen Cache, um die Load auf die Datenbank (Aufrufe von exec_SELECTgetRows) zu reduzieren

• Optimierung der Persistierung eines ObjectStorages sobald dieser verändert wurdeWährend bislang bei der Änderung von Objekten mit m:m-Relation diese komplett entfernt und neu aufgebaut wurden, wurde dies nun wie folgt optimiert:• Einfügen von m:m-Relationen nur noch bei neuen Objekten• Update von m:m- und 1:m-Relationen nur für Relationen, die nach einem Objekt eingefügt

werden oder für die Position an der ein Objekt verschoben wurde

TYPO3 CMS 6.1 - Die Neuerungen

Page 49: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 49

Extbase: Explizites Speichern von mod. Objekten

Extbase & Fluid - Extbase: Explizites Speichern von modifizierten Objekten

• Der alte Property-Mapper hat das übertragene Objekt zunächst rekonstituiert sowie gemappt und dann validiert

• Schlug diese Validierung allerdings fehl, gab es zwei Möglichkeiten:• Sofern man zurück zur „erzeugenden“ Action geleitet wurde (z.B. bei Formularen dorthin zurück

mit einer Fehlermeldung) war alles in Ordnung, da keine Persistierung stattfand• Ist man allerdings an eine Action geraten, die Objekte implizit persistiert (persistAll am Ende

des Requests), so wurde das invalide Objekt abgespeichert• Dies hat man nun insofern geändert, das man modifizierte Objekte nun explizit als solche

kennzeichnen muss• Dafür muss man die update()-Funktion des Repositories auf das Objekt anwenden

{the domain objects repositories}->update({modified domain object})

$this->blogRepository->update($blog);

• Dies sorgt auch für einen Performance-Zuwachs.

TYPO3 CMS 6.1 - Die Neuerungen

Page 50: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 50

Extbase: Verschiedenes

Extbase & Fluid - Extbase: Verschiedenes

• Single Table Inheritance (STI) Konfiguration für User und Groups wurde aus dem Default-TypoScript entfernt.Die tx_extbase_type Einstellung für fe_users und fe_groups wurde eingeführt, um STI in Extbase zu demonstrieren. Allerdings führte dies zu zahlreichen Problemen. Somit wurden die zugehörigen TypoScript-Einstellungen entfernt, aber das TCA und SQL aus Gründen der Abwärtskompatibilität belassen.

• ObjectManager::create ist nun deprecated - es wird nur noch ObjectManager::get verwendet.

TYPO3 CMS 6.1 - Die Neuerungen

Page 51: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 51

Fluid: BE Pagination ViewHelper

Extbase & Fluid - Fluid: BE Paginator (bereits seit 6.0)

• Es gibt (seit TYPO3 CMS 6.0) einen Pagination-ViewHelper für die Verwendung im Backend

• <f:be.widget.paginate objects="{blogs}" as="paginatedBlogs" configuration="{ itemsPerPage: 5, insertAbove: 1, insertBelow: 0, recordsLabel: 'MyRecords' }">

/* Benutzung von {paginatedBlogs} statt {blogs}, z.B. innerhalb von einer <f:for> Schleife */

</f:be.widget.paginate>

TYPO3 CMS 6.1 - Die Neuerungen

Page 52: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 52

Fluid: String-Vergleiche sind nun möglich

Extbase & Fluid - Fluid: String-Vergleiche sind nun möglich

• Es ist nun möglich, String-Vergleiche in boolschen Argumenten (z.B. im Argument condition im if-ViewHelper) direkt zu verwenden:

• Beispiel:

<f:if condition="{foo} == 'bar'">

• Bislang (TYPO3 6.0 und früher) war der Fallback dafür wie folgt:

<f:if condition="{0:foo} == {0:'bar'}">

TYPO3 CMS 6.1 - Die Neuerungen

Page 53: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 53

Fluid: Property Mapping Configuration

Extbase & Fluid - Fluid: Property Mapping Configuration

• Das Property Mapping muss ab sofort auf einer Whitelist basieren• Für Fluid Formulare wird dies per Default vom Framework erledigt, indem alle Formularfelder zu einer

Whitelist von „trusted properties“ hinzugefügt werden - dies gilt aber nur für das aktuelle Level (also keine nested Objects)

• Alles andere wird wie folgt konfiguriert:• Konfiguration vom Typ \TYPO3\CMS\Extbase\Property\PropertyMappingConfiguration

$propertyMappingConfiguration->

• setTypeConverterOptions($typeConverterClassName, array $options)• Angabe der erlaubten Properties

allowProperties($propertyName1, $propertyName2, ...)• Alle Properties (des selben Levels) sind erlaubt

allowAllProperties()• Alle Properties, mit Ausnahme der angegebenen sind erlaubt

allowAllPropertiesExcept($propertyName1, $propertyName2)

TYPO3 CMS 6.1 - Die Neuerungen

Page 54: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 54

Fluid: Arrays nur noch in ViewHelper-Argumenten

Extbase & Fluid - Fluid: Arrays nur noch in ViewHelper-Argumenten

• Fluid-Arrays verwenden eine JavaScript-Syntax, was es extrem schwierig macht, diese in einem gemischten Kontext (HTML/JavaScript) zu verwenden.

• Beispiel (funktioniert nicht wie gewünscht - Ergebnis ist: var uris = Array):var uris = { endPoint1: '{f:uri.action(.)}', endPoint2: '{f:uri.action(.)}',};

• Daher werden Fluid-Arrays nur noch innerhalb von ViewHelper-Argumenten ausgewertet - dies kann ein Breaking-Change sein!

• Hat man z.B. die folgende Syntax vorliegen:<f:debug>{key1: 'value1', key2: 'value2'}</f:debug>

• so muss man diese wie folgt umwandeln:<f:debug value="{key1: 'value1', key2: 'value2'}" />

TYPO3 CMS 6.1 - Die Neuerungen

Page 55: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 55

Fluid: Verschiedenes

Extbase & Fluid - Fluid: Verschiedenes

• Der Currency-ViewHelper erlaubt nun die Angabe der Dezimalstellen:

<f:format.currency currencySign="$" decimalSeparator="." thousandsSeparator="," prependCurrency="TRUE" separateCurrency="FALSE" decimals="2">1234.5678</f:format.currency>

Ausgabe:

$1,234.56

• Zugriff auf FileReferences funktioniert nun „on the fly“ durch Erzeugung eines FAL Resource Objekts

{myEntity.fileProperty.originalResource.title}{myEntity.fileProperty.originalResource.properties.identifier}

TYPO3 CMS 6.1 - Die Neuerungen

Page 56: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 56

Entfernte &veraltete Funktionen

Page 57: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 57

Entfernte und veraltete Funktionen

Entfernte & veraltete Funktionen

• Die Sytem-Extension „statictemplates“ wurde nun komplett entfernt

• Es wurden (zusammen mit „statictemplates“) folgende HMENU-Typen aus dem Core entfernt: HMENU_LAYERS, GMENU_LAYERS und GMENU_FOLDOUT

• Die Flash-Bibliothek „swfupload“ und das Flash Uploader Interface wurden entfernt(Der weitaus stabilere HTML5 File Uploader, der mit TYPO3 CMS 6.0 eingeführt wurde ist nun als stabil gekennzeichnet)

TYPO3 CMS 6.1 - Die Neuerungen

Page 58: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 58

Quellen &Resourcen

Page 59: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 59

Quellen:

Quellen und Resourcen

• NEWShttp://typo3.org/news/article/typo3-cms-61-released/

• Release Notes http://typo3.org/download/release-notes/typo3-61-release-notes/

• Technische Release Noteshttp://wiki.typo3.org/TYPO3_6.1

• TYPO3 GIThttps://git.typo3.org/TYPO3v4/Core.githttps://git.typo3.org/TYPO3v4/CoreProjects/MVC/extbase.githttps://git.typo3.org/TYPO3v4/CoreProjects/MVC/fluid.git

• TYPO3 Bugtrackerhttp://forge.typo3.org/projects/typo3v4-core/issues

• NEWS.txt (im Rootverzeichnis der Sourcen)

TYPO3 CMS 6.1 - Die Neuerungen

Page 60: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 60

Quellen:

Quellen und Resourcen

• RequireJS und AMDhttp://requirejs.orghttps://github.com/amdjs/amdjs-api/wiki/AMD

• Property Mapper Dokumentationhttp://docs.typo3.org/flow/TYPO3FlowDocumentation/TheDefinitiveGuide/PartIII/PropertyMapping.html

• Extbase Performancehttp://forge.typo3.org/projects/typo3v4-mvc/wiki/28091_dirty_objectStorage_improvements

• XCachehttp://xcache.lighttpd.net/wiki/Introduction

• Download TYPO3 CMShttp://typo3.org/download

TYPO3 CMS 6.1 - Die Neuerungen

Page 61: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 61

TYPO3 inspires peopleto share...

Page 62: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 62

TYPO3 inspires people to share...:

TYPO3 inspires people to share...

• Während der Entwicklung am TYPO3 CMS 6.1 wurde die 10.000 te Änderung am Core (Core merge) eingebracht!

•Danke an alle Contributer :-)

TYPO3 CMS 6.1 - Die Neuerungen

Page 63: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 63

Über denAutor

Page 64: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013

Patrick LobacherGeschäftsfüher typovision GmbH

Veröffentlichungen:

64

TYPO3 CMS 6.1 - Die NeuerungenÜber den Autor

• 42 Jahre, glücklich verheiratet, wohnhaft in München• Autor von 9 Fachbüchern und > 40 Fachartikeln zum Thema TYPO3 und

Webentwicklung• Selbständig im Bereich Webentwicklung seit 1994• Certified TYPO3 Integrator seit 2009• Mitglied bis 2012 in den TYPO3 Core-Teams:

Certification, Extbase und Content Editorial• Mitglied bis 2012 im Expert Advisory Board der TYPO3 Association

(EAB)• Organisator des TYPO3camp Munich 2008-2013 und der T3DD12• Speaker auf nationalen und internationalen Kongressen• Dozent für führende Schulungsinstitute und die MVHS

Page 65: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013

• Münchner Fullservice-Agentur für digitale Kommunikation• 33 feste Mitarbeiter vor Ort (+ 10 aus festem Freelancer Pool)• Geschäftsführer: Sebastian Böttger, Patrick Lobacher• Hochspezialisiert auf TYPO3 seit 10 Jahren (Extbase/Fluid seit 2009)• Spezialisiert auf Enterprise Search (Solr, Elastic Search) seit 3 Jahren • Fokus: Premium Webtechnologie und CMS im Open Source Bereich

• Agenturpräsentation unter: www.typovision.de/dieagentur

• Über 600 Projekte jeglicher Größenordnung

• Vision:Wir sind der Partner des Kunden in allen Bereichen seiner digitalen Kommunikation - von der ersten Vision bis hin zur erfolgreichen Umsetzung und darüber hinaus.

typovision GmbH

65

Über die typovision GmbHTYPO3 CMS 6.1 - Die Neuerungen

Page 66: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 66

typovison GmbH ReferenzenTYPO3 CMS 6.1 - Die Neuerungen

Page 67: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

(c) 2013 - typovision GmbH | TYPO3 CMS 6.1 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 30.04.2013 67

Kontakt

typovison GmbH Kontakt

Klassisch:

typovision GmbH

Elsenheimerstr. 780687 München

Fon: +49 89 45 20 59 3 - 0Fax: +49 89 45 20 59 3 - 29

Email: [email protected]: http://www.typovision.de

Twitter: www.twitter.com/typovisionwww.twitter.com/PatrickLobacherwww.twitter.com/crosscontent

Facebook: www.facebook.com/typovision

Blog:typoblog.de

XING: www.xing.com/companies/typovisiongmbhwww.xing.com/profile/Patrick_Lobacherwww.xing.com/profile/Sebastian_Boettger2

LinkedInwww.linkedin.com/company/2038844

Slideshare: www.slideshare.net/plobacherwww.slideshare.net/typovision

Amazon: www.amazon.de/Patrick-Lobacher/e/

TYPO3 CMS 6.1 - Die Neuerungen

Page 68: TYPO3 CMS 6.1 „Improve“ Die Neuerungentypovision.de/fileadmin/slides/TYPO3-CMS-6.1-Die-Neuerungen-typovision.pdf · Header im New Content Element Wizard Backend - Header im New

Besten Dank für Ihre Aufmerksamkeit

Creative Commons BY-NC-SA 3.0