TYPO3 CMS 6.2 LTS - Die Neuerungen

51,981 views

Published on

(Aktualisierung vom 01.04.2014): Alle Neuerungen der am 25.03.2014 veröffentlichten Version TYPO3 CMS 6.2 LTS auf über 180 Slides. Viel Spaß damit!

Published in: Technology
12 Comments
22 Likes
Statistics
Notes
  • Klasse Übersicht! Vielen Dank!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Merci vielmals. Kudos.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • @chadslide Autsch - hast völlig Recht - die API wurde am 11.10.2013 per TASK wieder geändert. Danke für den Hinweis! Hab's korrigiert und erneut hoch geladen...
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Vielen Dank für diese Sammlung von Fakten und Einsichten über und in Typo3 6.2 . Unvermeidlich, dass sich kleine Ungenauigkeiten einschleichen. so z.B auf Folie 152: zumindest in meiner Installation(aktueller master) muss es heißen:
    $ctest = \TYPO3\CMS\Core\Utility\GeneralUtility::getApplicationContext();

    164: typo3/sysext/core/ext_tables.php
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • @StefanPadberg Gern! Ich versuche immer alle Zielgruppen mitzunehmen (was manchmal gar nicht so einfach ist *g*)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
51,981
On SlideShare
0
From Embeds
0
Number of Embeds
14,434
Actions
Shares
0
Downloads
485
Comments
12
Likes
22
Embeds 0
No embeds

No notes for slide

TYPO3 CMS 6.2 LTS - Die Neuerungen

  1. 1. TYPO3 CMS 6.2 LTS
 Die Neuerungen
 
 Patrick Lobacher
 25.03.2014
 (Aktualisiert am 01.04.2014) LOBACHER.
  2. 2. Proudly sponsored by
  3. 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. 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. 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. 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. 7. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 7 Install-Tool Rewrite
  8. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 30. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 30 Distribution Management
  31. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 46. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 46 Änderungen im Backend
  47. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 78. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 78 TSconfig & TypoScript
  79. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 102. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 102 Package Management
  103. 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. 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. 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. 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. 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. 108. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 108 Änderungen im System
  109. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 144. (c) 2014 - Patrick Lobacher | TYPO3 CMS 6.2 LTS - Die Neuerungen | www.lobacher.de | 25.03.2014 LOBACHER. 144 Extbase & Fluid
  145. 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. 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. 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. 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. 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. 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. 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. 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();


×