Author
pluswerk-ag
View
12.385
Download
23
Embed Size (px)
TYPO3 CMS 7 LTS - Whats NewBackend User Interface
Patrick Lobacher (Vorstand pluswerk AG)http://www.pluswerk.ag
10/November/2015Creative Commons BY-NC-SA 3.0
Introduction
TYPO3 CMS 7 LTS - Whats New
Die folgenden Slides sind auf ein spezielles Thema fokussiert. Abhngig vonder Rolle, knnen die folgenden Themen ebenfalls interessant sein:
BEUserInterface
TypoScript
In-DepthChanges
Extbase/Fluid
Deprecated/Rem
oved
Sys.Administration
Redakteure XIntegratoren X X XEntwickler X X XSysAdmins X
Download aller Whats New Slides unter typo3.org
TYPO3 CMS 7 LTS - Whats New
http://typo3.org/download/release-notes/whats-new/
Backend User Interface
Backend User InterfaceDie grte und auflligste nderung ist sicher das berarbeitete BackendUser Interface. Es basiert nun komplett auf Twitter Bootstrap, verfgt berein modernes und responsives Design und stellt sicher, das Redakteure ihreAufgaben effizient und einfach erledigen knnen.Die neuen Icons sehen nun auf hochauflsenden Screens phantastisch aus,da diese per SVG realisiert wurden. Bilder knnen nun mit Bordmitteln beimHochladen ins Backend direkt beschnitten werden.Agenturen knnen zudem die Login-Seite individualisieren und Redakteurewerden zahlreiche weitere tolle Features vorfinden, die ihre tgliche Arbeiterleichtert.
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Allgemeines
Das Backend User Interface wurde komplett berarbeitet
Als Basis dient Twitter Bootstrap Version 3.2.x
Smtliche Icons wurden erneuert und grafisch im "Tile Style"berarbeitet
Fr Icons wird Font Awesome Version 4.2.x verwendet
Linke Funktionenleiste wurde grafisch angepasst
Icons wurden im Flat-Design, monochrom, farbig und mitabgerundeten Ecken entworfen
Breite der Funktionenleiste kann soweit reduziert werden, dass nurnoch Icos sichtbar sind
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Look & Feel
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Look & Feel
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Look & Feel
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Backend Benutzeranmeldung
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Top Bar (Module Menu)
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Listen Modul und Zwischenablage
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Tabellen
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Suche fr Seite/Liste
Klick auf die Lupe blendet eine Suche fr die aktuelle Seite/Liste ein(diese befand sich frher statisch am Ende der Seite)
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Anzahl offene Dokumente
Anzahl offene Dokumente wird ber ein Bootstrap "Badge" angezeigt(setzt die installierte Extension "Open Documents" voraus)
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Flash Messages
FlashMessage-Boxen im Backend wurden berarbeitetDafr wurde der Kontrast von Text und Box erhht und Links werdenbesser hervorgehoben
TYPO3 CMS < 7.0 TYPO3 CMS >= 7.0
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Video Player in Info Window
Ein Videoplayer ermglicht es, HTML5 Audio- und Video-Dateien im"Info"-Fenster abzuspielen
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Look & Feel: Date/Time Picker
Date/Time Picker im Backend wurde auf Twitter Bootstrap umgestellt
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Look & Feel: Funktionen-Modul
Die Funktionen "Seiten sortieren" und "mehrere Seiten erzeugen" sind jetztunter WEB => Funktionen zu finden(in TYPO3 CMS < 7.1 waren diese unter "WEB => Funktionen => Wizards" zu finden)
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Look & Feel: Access-Modul
Im Modul WEB => Access kann man Benutzer und/oder Gruppenunverndert lassen, wenn man nur die Berechtigungen ndern mchte
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Look & Feel: Icons im List-Modul
Icons ("Action Buttons") im List-Modul sind nun in zwei Gruppen angeordnet(primre Aktionen (lesen, speichern, lschen) zuerst, anschlieend die sekundren Icons)
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Anpassbares Anmeldeformular
In der Systemextension backend kann sowohl ein Hintergrundbild, ein Logound die Signalfarbe fr die Anmeldeformular eingestellt werden:
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Bild-Manipulation (Cropping)
Fr Bilder kann im Backend bei der Verwendung einer Referenz (z.B. inInhalts-Elementen) ein Ausschnitt ausgewhlt werden. Diese Funktion mussallerdings fr den Redakteur explizit erlaubt werden ("Exclude Fields"):
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Benutzergruppen
Die Backend Benutzergruppen knnen im Modul "Backend Users" verwaltetwerden:
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Automatische Installationen unterbinden
In den Einstellungen des Extension-Managers kann die automatischeInstallation von Extensions nach dem Download deaktiviert werden:
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Verbleibende Anzahl von Zeichen
Unterhalb von Textfeldern wird die verbleibende Anzahl der maximalzulssigen Zeichen angezeigt:
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Ungespeicherte nderungen
Redakteure erhalten eine Warnung, wenn in einem Editier-Formular der"Schlieen"-Button geklickt wird, ohne vorher gespeichert zu haben:
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Systeminformationen
Eine Kurzbersicht der Systeminformationen kann per Klick neben demBenutzer-Icon abgerufen werden. Die Informationen in diesem Dialog sinderweitern (siehe Kapitel "nderungen im System"):
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Passwortnderung
Zur nderung des Passwortes mssen Backendbenutzer zuerst ihr aktuelles,altes Passwort eingeben:
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Icon fr "Show Content from Page"
Im Seitenbaum zeigt ein neues Icon an, ob eine Seite Inhalte von eineranderen Seite enthlt ("Show Content from Page"):
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Extension Update
Beim Update einer Extension wird gefragt, auf welche Version aktualisierenwerden soll:
(es wird nicht mehr generell auf die letzte, verfgbare Version aktualisiert)
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Recycler Task
Die Systemextension recycler bringt nun einen Scheduler Task mit, mitdem gelschte Datenstze aus Content-Tabellen vollstndig entfernt werdenknnen (inkl. referenzierte Dateien, sofern vorhanden).(max. Alter, ab wann Content gelscht werden kann, ist konfigurierbar)
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Seitentitel im Page- und List-Modul
Im Page- und List-Modul kann man den Seitentitel entweder perDoppelklick oder mit Klick auf das Bearbeitungssymbol ndern.
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Prozessierte FAL Dateien im Install Tool lschen
Das Install Tool enthlt nun ein neues Tool (unterhalb von "Clean up"), umprozessierte FAL Dateien (wie z.B. Thumbnails) zu lschen. Das istinsbesondere hilfreich, wenn man grafik-relevante Settings ndern oderwenn man GraphicsMagick/ImageMagick aktualisiert hat und alle Dateienneu generieren will.
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Copyright in FAL Meta-Daten
In den zustzlichen FAL Meta-Daten (Extension: filemetadata) gibt esnun ein Feld "Copyright".
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Avatare fr Backend Benutzer
Backend Benutzer knnen nun Avatare festlegen. Diese werden in denBenutzereinstellungen gepflegt und beispielsweise oben neben demAnmeldenamen oder in den Benutzerlisten angezeigt.
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Dateien ersetzen
Es ist nun mglich, Dateien in der FAL Dateiliste zu ersetzen. Hierzu mussdie "Erweiterte Ansicht" aktiviert sein. Je nach Bedarf kann der bisherigeDateinamen beibehalten oder der neue verwendet werden.
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Onlinestatus anzeigen
Im Modul "Backend Benutzer" wird nun angezeigt, ob ein Benutzermomentan online ist.
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Zweite Optionspalette entfernt
Die Checkbox "Show secondary options (palettes)" sowie die TSconfigoptions.enableShowPalettes und die zugehrigen TCA-Einstellungenwurden entfernt. Die "Paletten" sind nun immer sichtbar und knnen nichtmehr ausgeblendet werden.
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Beschreibung fr Backend Benutzer
Backend Benutzer knnen nun auch eine Beschreibung erhalten.
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Beschreibung im Backend anzeigen
ber die TCA-Einstellung [TCA][ctrl][descriptionColumn]kann eine Spalte ausgewhlt werden (meist description), die eineBeschreibung enthlt. Ist diese vorhanden, wird der Inhalt beispielsweiseim Listenmodul angezeigt.
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Beschreibung fr Filemounts
Filemounts knnen ebenfalls eine Beschreibung erhalten.
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
berschreiben Dialog beim Upload
Sofern bei einem Upload Dateien bereits auf dem Server existieren, werdenin einem Dialog mehrere Optionen zur Auswahl angeboten.
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Editieren von Inhaltselementen fr Nicht-Admins einschrnken
Inhaltselemente knnen jetzt fr die Bearbeitung durch Nicht-Adminseingeschrnkt werden (hnliche Funktion die es bereits bei Seiten gibt).
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Statische TSconfig Dateien (1)
In den Seiteneigenschaften knnen nun statische TSconfig Dateieneingebunden werden.
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Statische TSconfig Dateien (2)
Die TSconfig Dateien werden wie folgt registriert:\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
extension_name,Configuration/PageTS/myPageTSconfigFile.txt,My special configuration
);
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Echte Sprachkopien
Es ist nun mglich, "richtige" Kopien von Inhaltselementen inSprachversionen anzulegen (und nicht nur Referenzen).
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Sprachauswahl im Modul "View"
Das Modul WEB->View bietet nun eine komfortable Sprachauswahl.(kann durch mod.SHARED.view.disableLanguageSelector = 1 deaktiviert werden)
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Inhaltselement textmedia
Ein neues Inhaltselement "Text & Media", fasst die bisher bekanntenElemente text, image und textpic zusammen.
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
YouTube- und Vimeo-Dateien
ber das erwhnte Inhaltselement "Text & Media" knnen auch externeYouTube- und Vimeo-Dateien, sowie lokale Dateien eingefgt werden.
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Suche im Filelist Modul
Im Modul "Filelist" gibt es eine Suche, die rekursiv durch alle Ordner sucht
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Benachrichtigungseinstellungen bei Workspaces (1)
Die Benachrichtigungseinstellungen (engl. Notification Settings) innerhalbder Workspaces wurden berarbeitet
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Benachrichtigungseinstellungen bei Workspaces (2)
Man kann nun sogar fr den Stage publish-execute Einstellungenvornehmen
TYPO3 CMS 7 LTS - Whats New
Backend User Interface
Suche im Dateibrowser
Im Popup des Dateibrowser ist nun eine einfache Suche integriert, dierekursiv agiert
TYPO3 CMS 7 LTS - Whats New
Sources and Authors
Quellen und Autoren
TYPO3 CMS 7 LTS - Whats New
Sources and Authors
Quellennachweis
TYPO3 News:http://typo3.org/news
Release Infos:https://wiki.typo3.org/Category:ReleaseNotes/TYPO3_7.xINSTALL.md and ChangeLog
typo3/sysext/core/Documentation/Changelog/*
TYPO3 Bug-/Issuetracker:https://forge.typo3.org/projects/typo3cms-core
TYPO3 Git Repositories:https://git.typo3.org/Packages/TYPO3.CMS.githttps://git.typo3.org/Packages/TYPO3.Fluid.git
TYPO3 CMS 7 LTS - Whats New
http://typo3.org/newshttps://wiki.typo3.org/Category:ReleaseNotes/TYPO3_7.xhttps://github.com/TYPO3/TYPO3.CMS/blob/master/INSTALL.mdhttps://github.com/TYPO3/TYPO3.CMS/blob/master/ChangeLoghttps://forge.typo3.org/projects/typo3cms-corehttps://git.typo3.org/Packages/TYPO3.CMS.githttps://git.typo3.org/Packages/TYPO3.Fluid.git
Sources and Authors
pluswerk
pluswerk ist eine Full Service Agentur fr leidenschaftliche digitaleKommunikation mit 10 Standorten in Deutschland und ber 130 Mitarbeitern
www.pluswerk.ag | +49 89 130 145 20 | facebook.com/pluswerk
TYPO3 CMS 7 LTS - Whats New
TYPO3 CMS 7 LTS - Whats NewTSconfig & TypoScript
Patrick Lobacher (Vorstand pluswerk AG)http://www.pluswerk.ag
10/November/2015Creative Commons BY-NC-SA 3.0
Introduction
TYPO3 CMS 7 LTS - Whats New
Die folgenden Slides sind auf ein spezielles Thema fokussiert. Abhngig vonder Rolle, knnen die folgenden Themen ebenfalls interessant sein:
BEUserInterface
TypoScript
In-DepthChanges
Extbase/Fluid
Deprecated/Rem
oved
Sys.Administration
Redakteure XIntegratoren X X XEntwickler X X XSysAdmins X
Download aller Whats New Slides unter typo3.org
TYPO3 CMS 7 LTS - Whats New
http://typo3.org/download/release-notes/whats-new/
TSconfig & TypoScript
TSconfig & TypoScriptTypoScript wird verwendet, um hierarchische Informationen in einer Strukturzu verwalten um damit die TYPO3 CMS Instanz zu konfigurieren. In TYPO3CMS 7 LTS wurden viele Eigenschaften und Optionen zugefgt, gendert bzw.auch als veraltet markiert oder entfernt.Open Graph Attribute werden nun out-of-the-box untersttzt und dieIntegritt von extern gehosteten JavaScript-Dateien kann nun via SRI-Hashberprft werden, um nur zwei der neuen Features zu nennen.Entfernte TypoScript-Optionen sind in den Slides Deprecated/Removed zufinden.
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
TSconfig fr Linkvalidator inkludieren
TSconfig Konfiguration fr den Linkvalidator wird gelesen...
entweder aus dem aktiven TSconfig des Backends,oder aus der Konfiguration des Scheduler-Tasks
Das folgende TSconfig kann vom Linkchecker ausgelesen werdenmod.linkvalidator.mychecker.myvar = 1
Dort steht das TSconfig dann als $this->tsConfig zur Verfgung
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Links zu deaktivierten Datenstzen im Linkhandler melden
Bisher hat der Linkhandler lediglich gewarnt, wenn es Links zugelschten oder nicht existierenden Datenstzen gab
ber die folgende TSconfig Einstellung kann nun auch eine Warnungaktiviert werden, wenn der Link auf einen deaktivierten Datensatz zeigt:mod.linkvalidator.linkhandler.reportHiddenRecords = 1
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
RTE: mehrere CSS Klassen
Um das Handling mit komplexen CSS Frameworks wie Twitter Bootstrapzu handhaben, muss es mglich sein, mehrere Klassen an ein Elementzu vergeben
Mit diesem neuen Feature muss der Autor nur noch einen Styleauswhlen, um dies zu erreichen, und nicht mehrere
RTE.classes.[ *classname* ] {.requires = list of CSS classes
}
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
RTE: nicht-selektierbare Klassen
Man kann nun Klassen als "nicht-selektierbar" im Style-Selektor desRTE konfigurieren
// der Wert "1" bedeutet, class ist auswaehlbar// der Wert "0" bedeutet, class ist nicht auswaehlbarRTE.classes.[ *classname* ] {
.selectable = 1}
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
RTE: mehrere CSS-Dateien einbinden
Man kann nun mehrere CSS-Dateien in den RTE laden
RTE.default.contentCSS {file1 = fileadmin/rte_stylesheet1.cssfile2 = fileadmin/rte_stylesheet2.css
}
Gibt man keine CSS Datei an, so wird die Default-Datei geladen:typo3/sysext/rtehtmlarea/res/contentcss/default.css
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Exception whrend Rendering erzeugen - Teil 1
Sobald Fehler im Rendering von einzelnen Inhaltselementen (ContentObjects) (z.B. mittels USER) auftreten, wird eine Fehlermeldungerzeugt, die in TYPO3 CMS < 7.0 die gesamte Ausgabe zerstrt
In TYPO3 CMS 7.0 wurde ein Exception-Handling eingefhrt, welcheseine Fehlermeldung in die Ausgabe an der Stelle integriert, an der dasRendering stattgefunden hat
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Exception whrend Rendering erzeugen - Teil 2
# default exception handler (activated in context "production")config.contentObjectExceptionHandler = 1
# configuration of a class for the exception handlingconfig.contentObjectExceptionHandler =
TYPO3\CMS\Frontend\ContentObject\Exception\ProductionExceptionHandler
# customised error message (show random error code)config.contentObjectExceptionHandler.errorMessage = Oops an error occurred. Code: %s
# configuration of exception codes, which are not dealt withtt_content.login.20.exceptionHandler.ignoreCodes.10 = 1414512813
# deactivation of exception handling for a specific plugins or content objectstt_content.login.20.exceptionHandler = 0
# ignoreCodes and errorMessage can be configured globally...config.contentObjectExceptionHandler.errorMessage = Oops an error occurred. Code: %sconfig.contentObjectExceptionHandler.ignoreCodes.10 = 1414512813
# ...or locally for individual content objectstt_content.login.20.exceptionHandler.errorMessage = Oops an error occurred. Code: %stt_content.login.20.exceptionHandler.ignoreCodes.10 = 1414512813
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
StdWrap fr page.headTag
TypoScript Option page.headTag hat nun stdWrap-Funktionalittpage = PAGEpage.headTag = page.headTag.override = page.headTag.override.if {
isInList.field = uidvalue = 24
}
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
JavaScript-Dateien asynchron laden
JavaScript-Dateien knen nun asynchron geladen werden
page {includeJS {
jsFile = /path/to/file.jsjsFile.async = 1
}}
Das gilt fr:
includeJSlibs / includeJSLibsincludeJSFooterlibsincludeJSincludeJSFooter
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
HMENU Eigenschaft mit additionalWhere
TypoScript cObject HMENU erhlt eine neue EigenschaftadditionalWhereJenes erlaubt eine spezifischere DB Abfrage (z.B. Filterung)
Beispiel:
lib.authormenu = HMENUlib.authormenu.1 = TMENUlib.authormenu.1.additionalWhere = AND author!=""
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Zustzliche Eigenschaften fr HMENU Browse-Men
Zwei neue Eigenschaften fr das cObject HMENU (Option"special=browse"), um detaillierter definieren zu knnen, welcheSeiten im Men erscheinen sollen:
excludeNoSearchPagesincludeNotInMenu
Beispiel:
lib.browsemenu = HMENUlib.browsemenu.special = browselib.browsemenu.special.excludeNoSearchPages = 1lib.browsemenu.includeNotInMenu = 1
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Mehrere HTTP-Header
HTTP Header knnen nun mittels config.additionalHeadersals Array gesetzt werden
Das ermglicht es, mehreren Header-Zeilen auf einmal zu konfigurierenconfig.additionalHeaders {
10 {# header stringheader = WWW-Authenticate: Negotiate# (optional) replace previous headers with the same name (default: 1)replace = 0# (optional) force HTTP response codehttpResponseCode = 401
}# set second additional HTTP header20.header = Cache-control: Private
}
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Option "auto" fr config.absRefPrefix
TypoScript Konfiguration config.absRefPrefix kann verwendetwerden, um der URL einen Prefix bei relativen Pfaden zu geben. AlsAlternative zu config.baseURL (um eine bestimmte Domain zuspezifizieren), erkennt absRefPrefix die Site-Root automatisch:config.absRefPrefix = auto
# anstelle von:[ApplicationContext = Production]config.absRefPrefix = /
[ApplicationContext = Testing]config.absRefPrefix = /my_site_root/
Hinweis: diese Option ist "Multi-Domain"-sicher und mehrfaches Caching der selben
Daten wird verhindern.
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Zwei-Zeichen ISO Code fr sys_language (1)
Die Behandlung von Sprachen wird durch Eintrge in DB Tabellesys_language vorgenommen, die durch sys_language_uidreferenziert werden
In TYPO3 CMS 7.1 wurden ISO 639-1 Zwei-Zeichen Codes implementiert:
Neues DB Feld: sys_language.language_isocodeNeue TypoScript-Option: sys_language_isocode
Hinweis: bei ISO 639 handelt es sich um eine Sammlung von Standards der"International Organization for Standardization". Eine List der ISO 639-1Codes ist hier abrufbar:http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
TYPO3 CMS 7 LTS - Whats New
http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
TSconfig & TypoScript
Zwei-Zeichen ISO Code fr sys_language (2)
Beispiel:
# Danish by defaultconfig.sys_language_uid = 0config.sys_language_isocode_default = da
[globalVar = GP:L = 1]# ISO code stored in table sys_language (uid 1)config.sys_language_uid = 1# overwrite ISO code as requiredconfig.sys_language_isocode = fr
[GLOBAL]
page.10 = TEXTpage.10.data = TSFE:sys_language_isocodepage.10.wrap =
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Eigene Conditions im Backend
Eigene Conditions fr das Frontend wurden bereits mit TYPO3 CMS 7.0eingefhrt
Seit TYPO3 CMS 7.1 ist es nun auch mglich, eigene Conditions fr dasBackend zu implementieren
Die Condition muss von AbstractCondition ableiten und dieMethode matchCondition bereitstellenAnwendungsbeispiel in TypoScript:[BigCompanyName\TypoScriptLovePackage\MyCustomTypoScriptCondition]
[BigCompanyName\TypoScriptLovePackage\MyCustomTypoScriptCondition = 7]
[BigCompanyName\TypoScriptLovePackage\MyCustomTypoScriptCondition = 7, != 6]
[BigCompanyName\TypoScriptLovePackage\MyCustomTypoScriptCondition = {$mysite.myconstant}]
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Zufgen von Icons in TCEFORM via PageTSconfig
Eigene Werte und Labels von Select-Feldern knnen bereits mit derPageTSconfig Option addItems vergeben werdenNun knnen auch Icons fr diese Felder definiert werden
Option 1: mittels addItems und der Eigenschaft .iconOption 2: mittels altIcons (generell fr alle Felder)
Beispiel:TCEFORM.pages.doktype.addItems {
10 = My Label10.icon = EXT:t3skin/icons/gfx/i/pages.gif
}TCEFORM.pages.doktype.altIcons {
10 = EXT:myext/icon.gif}
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Element Browser: Mountpoints hinzufgen
Neue UserTSconfig Option .append erlaubt es AdministratorenMountpoints hinzuzufgen, anstatt die Liste der konfigurierten DBMountpoints eines Benutzers neu zu schreiben
Beispiel:
options.pageTree.altElementBrowserMountPoints = 20,31options.pageTree.altElementBrowserMountPoints.append = 1
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
berschreiben der Labels von Radio-Buttons und Checkboxen
Labels von Radio-Buttons und Checkboxen knnen nun berschriebenwerden
Beispiel:// field with a single checkbox (use ".default")TCEFORM.pages.hidden.altLabels.default = new labelTCEFORM.pages.hidden.altLabels.default = LLL:path/to/languagefile.xlf:individualLabel
// field with multiple checkboxes (0, 1, 2, 3...)TCEFORM.pages.l18n_cfg.altLabels.0 = new label of first checkboxTCEFORM.pages.l18n_cfg.altLabels.1 = new label of second checkboxTCEFORM.pages.l18n_cfg.altLabels.2 = new label of third checkbox...
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Diverses (1)
Breite und Hhe des Element-Browsers knnen nun per UserTSconfigfestgelegt werden
options.popupWindowSize = 400x900options.RTE.popupWindowSize = 200x200
PageTSconfig: mit einer neue RTE-Konfiguration kann dasStandard-Ziel von Links beeinflusst werden
buttons.link.[type].properties.target.default
Wobei [type] zum Beispiel page, file, url, mail or spec sein kann(Extensions knnen weitere Typen zur Verfgung stellen)
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Diverses (2)
Standardmig sind Section-Headlines der Indexed-Search Resultateverlinkt. Das kann nun mittels TypoScript deaktiviert werdenplugin.tx_indexedsearch.linkSectionTitles = 0
getData kann jetzt auch field-Daten abfragen (nicht nur Arrays, wiebeispielsweise GPVar und TSFE)10 = TEXT10.data = field:fieldname|level1|level2
TypoScript Konfiguration config.pageTitle hat jetztstdWrap-Funktionalitt# make value of upper casepage = PAGEpage.config.pageTitle.case = upper
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Konfigurierbarer Vorschau-Link (1)
Es ist nun mglich, die URL zur Vorschau einer Seite zu definieren, diedurch den Button "Speichern & Vorschau" aufgerufen wird.
Damit kann man unterschiedliche Links fr Blog- oderNews-Datenstze, aber auch fr Inhaltselemente generieren lassen.TCEMAIN.preview {
{previewPageId = 123useDefaultLanguageRecord = 0fieldToParameterMap {
uid = tx_myext_pi1[showUid]}additionalGetParameters {
tx_myext_pi1[special] = HELLO}
}}
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Konfigurierbarer Vorschau-Link (2)
previewPageId:UID der Seite, die fr den Preview verwendet werden soll
(ohne Angabe wird die aktuelle Seite verwendet)
useDefaultLanguageRecord:definiert, ob bersetzte Datenstze die UID des Default-Datensatzes verwenden
(standardmig ist jenes aktiviert, default: 1)
fieldToParameterMap:Mapping (Key = Value) von Feldern des Datensatzes, die als GET-Parameter an den Link
angehngt werden
additionalGetParameters:wie fieldToParameterMap, aber fr beliebige Paramater
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
RTE Konfiguration: Default-Target
Das Default-Target in der RTE Konfiguration ist nun im PageTSconfigabhngig vom Typ einstellbar
buttons.link.[ type ].properties.target.default = ...
Als "type" sind folgende Werte zulssig:(weitere knnen via Extensions eingebracht werden)
pagefileurlmailspec
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Leere HTML-Tags im HTMLparser lschen
Es ist nun mglich, leere HTML-Tags im HTMLparser zu lschenstdWrap {
// Hier werden alle leeren HTML-Tags entferntHTMLparser.stripEmptyTags = 1// Hier werden nur leere h2 und h3 Tags entferntHTMLparser.stripEmptyTags.tags = h2, h3
}
RTE.default.proc.entryHTMLparser_db {stripEmptyTags = 1stripEmptyTags.tags = pstripEmptyTags.treatNonBreakingSpaceAsEmpty = 1
}
Da der HtmlParser unbekannte Tags grundstzlich entfernt, ist esratsam, diese zunchst zu behalten:HTMLparser.keepNonMatchedTags = 1
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Diverses
Der Button fr "Abkrzung" (engl. abbreviation) im RTE kann nun in derPageTSconfig ausgeblendet werden (da nicht mehr HTML5 konform):
# moegliche Wert sind:# acronym, definedAcronym, abbreviation, definedAbbreviationbuttons.abbreviation.removeFieldsets = acronym,definedAcronym
Die Eigenschaft inlineLanguageLabel des Objekts PAGE kann nunauch mit LLL:-Referenzen umgehen
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
stdWrap Funktion strtotime
Es gibt nun eine stdWrap Funktion strtotime, welche es ermglicht,formatierte Datum-Angaben in einen Timestamp umzuwandeln
date_as_timestamp = TEXTdate_as_timestamp {
value = 2015-04-15strtotime = 1
}
next_weekday = TEXTnext_weekday {
data = GP:selected_datestrtotime = + 2 weekdaysstrftime = %Y-%m-%d
}
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
GPmerged in Conditions
Prft man in Conditions nur mittels GP so wird beim gleichzeitigenVorhandensein von POST- und GET-Variablen (z.B.tx_demo_demo[...]=...), lediglich die POST-Variablezurckgegeben
Mit der neuen Option GPmerged werden beide Variablenzusammengefhrt und dann zurckgegeben
[globalVar = GPmerged:tx_demo|foo = 1]page.90 = TEXTpage.90.value = DEMO
[global]
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Weitere Werte fr die Funktion stdWrap.case
Die stdWrap Funktion case ist um die beiden Werte uppercamelcaseund lowercamelcase ergnzt wordenBeispiel:tt_content = CASEtt_content {
key.field = CTypemy_custom_ctype =< lib.userContentmy_custom_ctype {
file = EXT:site_base/Resources/Private/Templates/SomeOtherTemplate.htmlsettings.extraParam = 1
}default =< lib.userContentdefault {
file = TEXTfile.field = CTypefile.stdWrap.case = uppercamelcasefile.wrap = EXT:site_base/Resources/Private/Templates/|.html
}}
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Eigenschaft integrity fr JavaScript-Dateien (1)
Es wurde die Eigenschaft integrity zugefgt, um einen SRI Hash zumJavaScript-Markup hinzuzufgen, mit dem die Quelle verifiziert werdenkann (SRI: Sub-Resource Integrity)
Dies betrifft die Eigenschaften page.includeJSLibs,page.includeJSFooterlibs, includeJS und includeJSFooterBeispiel:page {
includeJS {jQuery = https://code.jquery.com/jquery-1.11.3.min.jsjquery.external = 1jQuery.disableCompression = 1jQuery.excludeFromConcatenation = 1jQuery.integrity = sha256-7LkWEzqTdpEfELxcZZlS6wAx5Ff13zZ83lYO2/ujj7g=
}}
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Eigenschaft integrity fr JavaScript-Dateien (2)
SRI ist eine Spezifikation des W3C, die es ermglicht zu verifizieren, obextern gehostete Dateien manipuliert worden sind
Erstellen von Integrity Hashes:
Option 1: https://srihash.orgOption 2: durch folgende Kommandos
cat FILENAME.js | openssl dgst -sha256 -binary | openssl enc -base64 -A
Weitere Informationen:
http://www.w3.org/TR/SRI/
TYPO3 CMS 7 LTS - Whats New
https://srihash.orghttp://www.w3.org/TR/SRI/
TSconfig & TypoScript
Data-Provider fr Backend Layouts (1)
Backend-Layouts knnen jetzt per PageTSconfig definiert und damitauch in Dateien ausgelagert werden. Zum Beispiel:mod {
web_layout {BackendLayouts {
exampleKey {title = Exampleconfig {
backend_layout {colCount = 1rowCount = 2rows {
1 {columns {
1 {name = LLL:EXT:frontend/ ... /locallang_ttc.xlf:colPos.I.3colPos = 3colspan = 1
}}
}[...]
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Data-Provider fr Backend Layouts (2)
(Fortsetzung)
[...]2 {
columns {1 {
name = MaincolPos = 0colspan = 1
}}
}}
}}icon = EXT:example_extension/Resources/Public/Images/BackendLayouts/default.gif
}}
}}
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Erweiterung der Option page.meta
Die Option page.meta untersttzt nun auch Open Graph Attributnamenpage {
meta {X-UA-Compatible = IE=edge,chrome=1X-UA-Compatible.attribute = http-equivkeywords = TYPO3# og:site_name = TYPO3og:site_name.attribute = propertydescription = Inspiring people to shareog:description = Inspiring people to shareog:description.attribute = propertyog:locale = en_GBog:locale.attribute = propertyog:locale:alternate {
attribute = propertyvalue.1 = fr_FRvalue.2 = de_DE
}refresh = 5; url=http://example.com/refresh.attribute = http-equiv
}}
TYPO3 CMS 7 LTS - Whats New
http://ogp.me/
TSconfig & TypoScript
languageField wird automatisch gesetzt
In der TypoScript-Option select (die beispielsweise beim cObjectCONTENT verwendet wird) musste man bisher das languageFieldexplizit setzen
Jenes wird nun automatisch gesetzt und kann daher weglassen werdenconfig.sys_language_uid = 2page.10 = CONTENTpage.10 {
table = tt_contentselect.where = colPos=0
# Die nachfolgende Zeile ist nicht notwendig:#select.languageField = sys_language_uid
renderObj = TEXTrenderObj.field = headerrenderObj.htmlSpecialChars = 1
}
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Individuelles Content Caching
Es gibt nun ein individuelles Content Caching, welches im Gegensatz zustdWrap.cache auch mit COA-Objekten funktioniert (hnlich dem"Magento Block Caching")
page = PAGEpage.10 = COApage.10 {
cache.key = coaoutcache.lifetime = 60#stdWrap.cache.key = coastdWrap#stdWrap.cache.lifetime = 6010 = TEXT10 {
cache.key = mycurrenttimestampcache.lifetime = 60data = date : Ustrftime = %H:%M:%SnoTrimWrap = |10: | |
}[...]
[...]20 = TEXT20 {
data = date : Ustrftime = %H:%M:%SnoTrimWrap = |20: | |
}}
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Zhler fr listNum
Es gibt eine neue Eigenschaft returnCount fr die stdWrapEigenschaft splitDamit kann die Anzahl der Elemente in einer kommaseparierten Listeermittelt werden
Das folgende Beispiel gibt 9 zurck:1 = TEXT1 {
value = x,y,z,1,2,3,a,b,csplit.token = ,split.returnCount = 1
}
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Sortierung von Tabellen im Backend
ber die TSconfig Option mod.web_list.tableDisplayOrder kanneingestellt werden, wie die Tabellen im List-Modul sortiert werden
Dafr werden die Schlsselworte before und after verwendetAnwendung:mod.web_list.tableDisplayOrder {
{before = , , ...after = , , ...
}}
Zum Beispiel:mod.web_list.tableDisplayOrder {
be_users.after = be_groupssys_filemounts.after = be_userspages_language_overlay.before = pagesfe_users.after = fe_groupsfe_users.before = pages
}
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Content Language im HTTP Header
Es wird nun standardmig Content-language: XX im HTTPResponse Header an den Client gesendet, wobei "XX" dem ISO-Codeentspricht, der via sys_language_content konfiguriert wurdeDabei kann sys_language_content unterschiedlich zusys_language_uid sein, wenn der Inhalt von der Fallback-Spracheermittelt wird(jenes hngt von der Einstellung sys_language_mode ab)
ber die Einstellung config.disableLanguageHeader = 1 kannder Header bei Bedarf auch deaktiviert werden
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Rekursive Option fr ordner-basierte File Collections
Ordner-basierte File Collections haben nun eine Option um rekursiv alleDateien fr einen gegebenen Ordner zu ermitteln
Die Option ist ebenfalls fr das TypoScript Objekt FILES verfgbarfilecollection = FILESfilecollection {
folders = 1:images/folders.recursive = 1renderObj = IMAGErenderObj {
file.import.data = file:current:uid}
}
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Extension .ts fr Static Templates
Bislang waren fr statische TypoScript Templates nur die folgendenDateinamen zugelassen:
constants.txtsetup.txtinclude_static.txtinclude_static_files.txt
Als Extension kann nun auch .ts verwendet werdenDabei hat .ts Vorrang vor .txt
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
save & view Button
Der "save & view" Button ist nun via TSconfig konfigurierbar
Der folgende Schlssel nimmt eine kommaseparierte Liste an"doktypes" auf: TCEMAIN.preview.disableButtonForDokTypeDer Standardwert ist "254, 255, 199" (Storage Folder, Recycler undMenu Seperator)
In Foldern und Recycler-Seiten ist der "save & view" Button daherstandardmig nicht mehr sichtbar
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
stdWrap fr treatIdAsReference
Fr das Objekt getImgResource existiert die OptiontreatIdAsReference, die ggf. definiert, dass die angegebenen UIDsals UIDs von sys_file_reference, anstatt von sys_file geltenDie Option treatIdAsReference besitzt nun stdWrap Funktionalitt
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Conditions fr TypoScript-Include
Der INCLUDE_TYPOSCRIPT Tag besitzt nun das optionale Attribut"condition", welches es ermglicht, die Datei (oder das Verzeichnis) nurdann zu inkludieren, wenn die Condition erfllt ist:// TypoScript nur laden, wenn Benutzer eingeloggt ist:
// TypoScript nur laden, wenn ApplicationContext gesetzt ist:
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
TCA-Option, um Datum Feldweise auszublenden
Es gibt nun eine TCA-Option disableAgeDisplay, um die Anzeige desDatums auszublendenVoraussetzung hierfr ist, dass der Typ des Feldes input ist, und evalauf date gesetzt ist$GLOBALS[TCA][tt_content][columns][date][config][disableAgeDisplay] = true;
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Inline Sprachlabels mit TypoScript (1)
Man kann nun Sprachdateien mittels TypoScript auslesen und alsInline-Array in den Quelltext schreiben, um z.B. per JavaScript daraufzuzugreifen
Folgende Optionen sind mglich:
selectionPrefix:nur Schlssel, die mit diesem Prefix anfangen, werden ermitteltstripFromSelectionName:String, der von jedem Schlssel entfernt wirderrorMode:Mode, wenn die Sprachdatei nicht gefunden wird(0: Eintrag im Syslog vornehmen, 1: ignorieren, 3: Exception generieren)
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Inline Sprachlabels mit TypoScript (2)
Beispiel:page = PAGEpage.inlineLanguageLabelFiles {
someLabels = EXT:myExt/Resources/Private/Language/locallang.xlfsomeLabels.selectionPrefix = idPrefixsomeLabels.stripFromSelectionName = strip_mesomeLabels.errorMode = 2
}
Ausgabe:
/*var TYPO3 = TYPO3 || {};TYPO3.lang = {"firstLabel":[{"source":"first Label","target":"erstes Label"}],"secondLabel":[{"source":"second Label","target":"zweites Label"}]};
/*]]>*/
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Workspace Preview per TSconfig
Standardmig erzeugt TYPO3 lediglich Vorschau-Links fr die Tabellentt_content, pages und pages_language_overlayDies kann nun per PageTSconfig angepasst werden:# Verwendung der Seite 123 fuer Workspace Preview (fuer alle Tabellen)options.workspaces.previewPageId = 123
# Verwendung des Feldes pid (fuer alle Tabellen)options.workspaces.previewPageId = field:pid
# Verwendung der Seite 123 fuer Workspace Preview (fuer die Tabelle tx_myext_table)options.workspaces.previewPageId.tx_myext_table = 123
# Verwendung des Feldes pid fuer Workspace Preview (fuer die Tabelle tx_myext_table)options.workspaces.previewPageId.tx_myext_table = field:pid
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Bildqualitt kann per SourceCollection gesetzt werden
Die Bildqualitt jeder sourceCollection kann nun konfiguriert werden
Dies berschreibt die Einstellungen, die im Install Tool gemacht wurdenund in der Datei LocalConfiguration.php gespeichert sind# fuer kleine Retina Bildertt_content.image.20.1.sourceCollection.smallRetina.quality = 80
# fuer groessere Retina Bildertt_content.image.20.1.sourceCollection.largeRetina.quality = 65
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Count fr Split hinzugefgt
Es wurde eine neue Eigenschaft returnCount zur stdWrap-Funktionsplit hinzugefgt, die die Anzahl der Elemente nach dem Split enthlt1 = TEXT1 {
value = x,y,z,1,2,3,a,b,csplit.token = ,split.returnCount = 1
}
# result: 9
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Handling von Backend-Layouts vereinfacht (1)
Das Handling, um Backend-Layouts mit Templates fr dieFrontend-Ausgabe zu versehen, wurde vereinfacht, indem die Optionpagelayout eingefhrt wurdeBeispiel:page.10 = FLUIDTEMPLATEpage.10 {
file.stdWrap.cObject = CASEfile.stdWrap.cObject {
key.data = pagelayoutdefault = TEXTdefault.value = EXT:sitepackage/Resources/Private/Templates/Home.html3 = TEXT3.value = EXT:sitepackage/Resources/Private/Templates/1-col.html4 = TEXT4.value = EXT:sitepackage/Resources/Private/Templates/2-col.html
}}
(Fortsetzung auf nchster Seite)
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Handling von Backend-Layouts vereinfacht (2)
pagelayout ersetzt dabei den folgenden Code:field = backend_layoutifEmpty.data = levelfield:-2,backend_layout_next_level,slideifEmpty.ifEmpty = default
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Diverse
Fr die mit TYPO3 CMS 7.4 eingefhrte stdWrap-Funktion bytes kannnun die Basis (z.B. 1000 oder 1024) gesetzt werden:bytes.base = 1000
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Parameter fr indexed_search
Einige Parameter fr indexed_search, die bisher hart-kodiert waren,knnen nun konfiguriert werdentitleCropAfter = 50titleCropSignifier = ...summaryCropAfter = 180summaryCropSignifier =hrefInSummaryCropAfter = 60hrefInSummaryCropSignifier = ...markupSW_summaryMax = 300markupSW_postPreLgd = 60markupSW_postPreLgd_offset = 5markupSW_divider = ...
Dabei knnen folgende Schlssel angesprochen werden:plugin.tx_indexedsearch.results.plugin.tx_indexedsearch.settings.results.
Alle Optionen besitzen auerdem stdWrap-Funktionalitt
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
Konfiguration des Path-Seperators bei indexed_search
Es wurde eine neue TypoScript-Option breadcrumbWrap hinzugefgt,mit dem Path-Seperators bei indexed_search konfiguriert werdenkann
Darber wird der Pfad fr die Breadcrumb bei Suchergebnissenangezeigt
Die Option verfgt ber Option-Split und ist standardmig auf "/"konfiguriertplugin.tx_indexedsearch.settings.breadcrumbWrap = / || /
TYPO3 CMS 7 LTS - Whats New
TSconfig & TypoScript
no_cache Parameter-Konfiguration fr indexed_search
Es wurde eine neuen TypoScript-Option hinzugefgt:forwardSearchWordsInResultLink.no_cacheDamit kann eingestellt werden, ob der no_cache Paramater an dieSeiten-Links innerhalb von indexed_search hinzugefgt wird// Fuer Extbase-Pluginsplugin.tx_indexedsearch.settings.forwardSearchWordsInResultLink.no_cache = 1
// Fuer eingefuegte Pluginsplugin.tx_indexedsearch.forwardSearchWordsInResultLink.no_cache = 1
TYPO3 CMS 7 LTS - Whats New
Sources and Authors
Quellen und Autoren
TYPO3 CMS 7 LTS - Whats New
Sources and Authors
Quellennachweis
TYPO3 News:http://typo3.org/news
Release Infos:https://wiki.typo3.org/Category:ReleaseNotes/TYPO3_7.xINSTALL.md and ChangeLog
typo3/sysext/core/Documentation/Changelog/*
TYPO3 Bug-/Issuetracker:https://forge.typo3.org/projects/typo3cms-core
TYPO3 Git Repositories:https://git.typo3.org/Packages/TYPO3.CMS.githttps://git.typo3.org/Packages/TYPO3.Fluid.git
TYPO3 CMS 7 LTS - Whats New
http://typo3.org/newshttps://wiki.typo3.org/Category:ReleaseNotes/TYPO3_7.xhttps://github.com/TYPO3/TYPO3.CMS/blob/master/INSTALL.mdhttps://github.com/TYPO3/TYPO3.CMS/blob/master/ChangeLoghttps://forge.typo3.org/projects/typo3cms-corehttps://git.typo3.org/Packages/TYPO3.CMS.githttps://git.typo3.org/Packages/TYPO3.Fluid.git
Sources and Authors
pluswerk
pluswerk ist eine Full Service Agentur fr leidenschaftliche digitaleKommunikation mit 10 Standorten in Deutschland und ber 130 Mitarbeitern
www.pluswerk.ag | +49 89 130 145 20 | facebook.com/pluswerk
TYPO3 CMS 7 LTS - Whats New
TYPO3 CMS 7 LTS - Whats NewExtbase & Fluid
Patrick Lobacher (Vorstand pluswerk AG)http://www.pluswerk.ag
10/November/2015Creative Commons BY-NC-SA 3.0
Introduction
TYPO3 CMS 7 LTS - Whats New
Die folgenden Slides sind auf ein spezielles Thema fokussiert. Abhngig vonder Rolle, knnen die folgenden Themen ebenfalls interessant sein:
BEUserInterface
TypoScript
In-DepthChanges
Extbase/Fluid
Deprecated/Rem
oved
Sys.Administration
Redakteure XIntegratoren X X XEntwickler X X XSysAdmins X
Download aller Whats New Slides unter typo3.org
TYPO3 CMS 7 LTS - Whats New
http://typo3.org/download/release-notes/whats-new/
Extbase & Fluid
Extbase & FluidExtbase und Fluid sind der de facto Standard wenn es um moderneTechnologien im TYPO3 Universum geht. Auch wenn Extbase einige wenigeneue Features spendiert bekommen hat, wurden in TYPO3 CMS 7 LTS diemeisten nderungen im Bereich Fluid vorgenommen.Einige ViewHelpers wurden aktualisiert, verbessert oder gar neueeingefhrt. So gibt es zum Beispiel nun einen MediaViewHelper, der dafrverwendet werden kann, um Video, Audio oder andere Media-Dateien imFrontend zu rendern.Zustzlich wurde die System Extension form auf Extbase & Fluid portiert.
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Template Path Fallback
Sowohl Fluid Standalone View wie auch das TypoScript-ObjektFLUIDTEMPLATE untersttzen nun Fallback Pfadepage.10 = FLUIDTEMPLATEpage.10.file = EXT:myextension/Resources/Private/Templates/Main.htmlpage.10.partialRootPaths {
10 = EXT:myextension/Resources/Private/Partials20 = EXT:fallback/Resources/Private/Partials
}
Verwendet man die alten Optionen (z.B. partialRootPath)zusammen mit den neuen, so wird die alte auf die erste Position in derFallback-Liste gestellt (Index = 0)
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Typolink ViewHelper
Es wurde ein Typolink-ViewHelper zugefgt, der beispielsweise Felderauswerten und darstellen kann, die ber einen Link-Wizard im Backenderzeugt wurden
link enthlt beispielsweise:42 _blank - "This is the link title" &foo=bar
Ausgabe:
Lediglich parameter wird bentigt, der Rest ist optional
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Allgemeine data-* Attribut
Alle ViewHelper, die HTML Tags ausgeben, untersttzen nun das HTML5data-* AttributArray, welches als data bergeben wird, wird ausgewertet und dessenSchlssel-/Werte-Paar ergeben das Attribut: data-key="value"
Beispiel:
Ausgabe:
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Class Tag Values via Reflection
Extbase Reflection-Service kann nun Tags bzw. Annotationszurckliefern, die zu einer Klasse zugefgt wurden
Beispiel:/*** @SomeClassAnnotation A value*/
class MyClass {}
Die Annotation kann dann wie folgt ermittelt werden:$service = new \TYPO3\CMS\Extbase\Reflection\ReflectionService();
// Returns all tags and their values the specified class is tagged with$classValues = $service->getClassTagsValues(MyClass);
// Returns the values of the specified class tag$classValue = $service->getClassTagValue(MyClass, SomeClassAnnotation);
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
PaginateViewHelper
Der Paginate-ViewHelper untersttzt nun folgende Input-Werte:
QueryResultInterfaceObjectStorageArrayAccessarray
Beispiel:
{blog.title}
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
ContainerViewHelper ldt RequireJS Module
Der ContainerViewHelper kann RequireJS-Module viaincludeRequireJsModules Attribut ladenBeispiel:
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Methode has() im ObjectAccess
Fr die Benutzung in Fluid, object.property undobject.isProperty untersttzten bereits die folgenden Methoden:
isProperty()getProperty()
Neu in TYPO3 CMS 7.1: hasProperty()Hier wird die Method $object->hasProperty() aufgerufen, wennobject.hasProperty in Fluid benutzt wird
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Hochladen mehrerer Dateien im FormUpload-ViewHelper
Der FormUpload-Viewhelper untersttzt das neue Attribut multiple,welches es ermglicht, mehrere Dateien auf einmal zu bertragen
Hinweis: es ist darauf zu achten, dass fr das Property-Mapping eineigener TypeConverter erstellt werden muss!
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Callouts anstelle von FlashMessages
An einigen Stellen im Backend werden nun Callouts anstelle vonFlashMessages verwendet
Dafr wurde ein neuer Fluid ViewHelper be.infobox eingefhrt:
Inhalt der Nachricht
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
format.case ViewHelper
Es gibt nun einen format.case ViewHelper, der die Schreibweise vonStrings verndert:
upper: Fhrt zu "UPPERCASE" (Grobuchstaben)lower: Fhrt zu "lowercase" (Kleinbuchstaben)capital: Fhrt zu einem groen Anfangsbuchstabenuncapital: Fhrt zu einem kleinen Anfangsbuchstaben
// Fuehrt zu "SOME TEXT WITH MIXED CASE"Some TeXt WiTh miXed cAse
// Fuehrt zu "SomeString"someString
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Diverses
Parameter cHash wird nicht mehr an URLs angehngt, die auf eineAction leiten, welche nicht gecached wird oder wenn der Request nichtgecached wird.
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
ActionMenuItemGroupViewHelper (1)
Mit diesem neuen ViewHelper knnen im Backend Optionen-Gruppenfr Select-Felder verwendet werden
Beispiel:
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
ActionMenuItemGroupViewHelper (2)
Beispiel auf der vorherigen Slide resultiert in folgender Ausgabe:
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Template-Support fr FlashMessagesViewHelper
Der FlashMessagesViewHelper hat nun Template UntersttzungMit dem neuen Attribut as kann man eine Variable festlegen, ber derder Zugriff auf die Messages mglich ist
Beispiel:
{flashMessage.title}{flashMessage.message}
Die Option renderMode ist ab sofort "deprecated"!
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Neue Eigenschaften im cObject FLUIDTEMPLATE (1)
Das cObject FLUIDTEMPLATE wurde um die EigenschaftentemplateRootPaths und templateName ergnztMan kann nun einen Template-Namen setzen, der zusammen mit demFormat im angegebenen Template-Pfad gesucht wird
templateRootPaths hat die selbe Fallback-Logik wielayoutRootPath und partialRootPath
templateName (string/stdWrap)templateRootPaths (Array mit Datei-Pfaden und "EXT:" Untersttzung)
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Neue Eigenschaften im cObject FLUIDTEMPLATE (2)
TypoScript Beispiel:lib.stdContent = FLUIDTEMPLATElib.stdContent {
templateName = TEXTtemplateName.stdWrap {
cObject = TEXTcObject {
data = levelfield:-2,backend_layout_next_level,slideoverride.field = backend_layoutsplit {
token = frontend__1.current = 11.wrap = |
}}ifEmpty = Default
}templateRootPaths {
10 = EXT:frontend/Resources/Private/Templates20 = EXT:sitemodification/Resources/Private/Templates
}}
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Entfernung von xmlns-Attributes und des HTML-Tags (1)
Durch die Einfhrung von xmlns:*-Attributen in Tags ist es einer IDEmglich Fluid direkt zu untersttzen (z.B. Syntax-Highlighting,Autovervollstndigung, usw.).Diese Attribute werden allerdings auch ausgegeben.
Der Workaround, den eigentlichen Inhalt in Sections auszulagern, ist inLayouts nicht mglich und zudem nicht intuitiv
Daher wird ein Namespace, sofern dieser den Aufbauhttp://typo3.org/ns/ hat, automatisch entfernt(alle anderen Namespaces bleiben erhalten)
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Entfernung von xmlns-Attributes und des HTML-Tags (2)
Verwendet man im HTML-Tag das Attributdata-namespace-typo3-fluid="true", wird das gesamteHTML-Tag (ffnendes und schlieendes) nicht gerendert
{newsItem.title}
News-Detail
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Neue Methoden im Fluid-StandaloneView
Der StandaloneView wird mit den MethodensetTemplateRootPaths($templatePaths) undsetTemplate($templateName, $throwException = TRUE)erweitert
Selbe Funktionalitt wie im cObject FLUIDTEMPLATEBeispiel (Rendern eines Email-Templates):$view = GeneralUtility::makeInstance(StandaloneView::class);$view->setLayoutRootPaths(array(GeneralUtility::getFileAbsFileName(
EXT:my_extension/Resources/Private/Layouts)));$view->setPartialRootPaths(array(GeneralUtility::getFileAbsFileName(
EXT:my_extension/Resources/Private/Partials)));$view->setTemplateRootPaths(array(GeneralUtility::getFileAbsFileName(
EXT:my_extension/Resources/Private/Templates)));$view->setTemplate(Email/Notification);$emailBody = $view->render();
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Data Processing fr FLUIDTEMPLATE cObject (1)
Das cObject FLUIDTEMPLATE wird mit der Option dataProcessing(enthlt ein Array aus FQCN) ausgerstet, mit dessen Hilfe man das$data Array manipulieren kann, welches das aktuell zu renderndeObjekt (wie page oder tt_content) enthltDer Prozessor muss das InterfaceFluidTemplateDataProcessorInterface implementieren undfolgende Methode enthalten:
function process(array &$data, array $processorConfiguration,array $configuration, StandaloneView $view) {
[...]}
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Data Processing fr FLUIDTEMPLATE cObject (2)
Beispiel:my_custom_ctype = FLUIDTEMPLATEmy_custom_ctype {
templateRootPaths {10 = EXT:your_extension_key/Resources/Private/Templates
}templateName = CustomNamesettings {
extraParam = 1}dataProcessing {
1 = Vendor\YourExtensionKey\DataProcessing\MyFirstCustomProcessor2 = AnotherVendor\AnotherExtensionKey\DataProcessing\MySecondCustomProcessor2 {
options {myOption = SomeValue
}}
}}
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Section-Anker fr Pagination Widget
Es ist nun mglich einen Section-Anker im Pagination Widget zuverwenden
Dazu gibt es den Schlssel section im Attribut configurationIm folgenden Beispiel wird der Anker #archive an jeden Widget-Linkangehngt:
[...]
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Attribut base fr Date-ViewHelper
Der Date-ViewHelper wurde um das optionale Attribut base ergnztDamit kann man relative Berechnungen durchfhren
Wird das Datum als DateTime angegeben, wird base ignoriertErlaubte Werte: siehe PHP Dokumentation
Das folgende Beispiel gibt "2016" zurck, wenn das Objekt "dateObject"ein beliebiges Datum in 2017 enthlt:
-1 year
TYPO3 CMS 7 LTS - Whats New
http://www.php.net/manual/en/datetime.formats.relative.php
Extbase & Fluid
dataProcessing bei FLUIDTEMPLATE
Mit TYPO3 CMS 7.3 wurde die Option dataProcessing beimContent-Objekt FLUIDTEMPLATE eingefhrtHierfr ndert sich das zu implementierende Interface vonFluidTemplateDataProcessorInterface inDataProcessorInterface und damit auch die Methode process()public function process(
ContentObjectRenderer $cObj,array $contentObjectConfiguration,array $processorConfiguration,array $processedData
);
BREAKING CHANGE!
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Severity-Filter fr FlashMessages
Bislang konnten nur alle FlashMessages auf einmal ermittelt und/odergelscht werden
Nun kann man diese entsprechend der Severity (Gewichtung) filtern
FlashMessageQueue::getAllMessages($severity);FlashMessageQueue::getAllMessagesAndFlush($severity);FlashMessageQueue::removeAllFlashMessagesFromSession($severity);FlashMessageQueue::clear($severity);
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Query-Support fr between hinzugefgt
Es wurde between zum Extbase Query Objekt hinzugefgt, welchesprft, ob sich ein Wert innerhalb einer oberen und unteren Grenze(einschlielich) befindet
Dies wird zu (min between(uid, 3, 5)
);
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Mehrere Message-Queues
Es knnen nun mehrere Message-Queues in Extbase realisiert werden:
$queueIdentifier = myQueue;$this->controllerContext->getFlashMessageQueue($queueIdentifier);
In Fluid kann wie folgt darauf zugegriffen werden:
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Media-ViewHelper (1)
Um Medien komfortabel im Frontend rendern zu knnen (z.B. Video,Audio, registrierte Renderer), wurde ein MediaViewHelper zugefgt
Zuerst versucht der ViewHelper den Renderer aufzurufen; schlgt diesfehl, wird ein Image-Tag gerendert
Beispiel:
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Media-ViewHelper (2)
Beispiel (Fortsetzung):
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
System-Extension form (1)
Die System-Extension form (inkl. Daten-Model, Controller-Logig,Property Validation, Views und Templating) wurde so adaptiert, dassder Extbase/Fluid MVC Stack untersttzt wird
Die Ausgabe basiert nun komplett auf Fluid und kann somitentsprechend angepasst werden. Pro Form-Element gibt es eineigenes Partial, welches nun auch individuell ber dieTypoScript-Option partialPath = ... angepasst werden kannEs wurden drei neue ViewHelper implementiert:
AggregateSelectOptionsViewHelper (fr optgroup Tags)SelectViewHelper (fr von optgroup Tags)PlainMailViewHelper (zum Rendern von Plaintext Mails)
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
System-Extension form (2)
Auerdem gibt drei Views:
show (das Formular selbst)confirmation (die Besttigungsseite)postProcessor/mail (die Email)
Die Template-Pfade und Sichtbarkeiten der Felder knnen fr jedenView individuell angepasst werden
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Annotation @cli
Eine neue Annotation @cli wurde eingefhrt:wird diese beim CommandController verwendet, so kann dieser nur aufder Kommandozeile, aber nicht im Scheduler verwendet werden
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
Relationen zu gleichen Tabellen
Es nun mglich ein Domain Model zu verwenden, in der ein Objekt eineRelation zu einem anderen Objekt der selben Klasse hatnamespace \Vendor\Extension\Domain\Model;class A {
/*** @var \Vendor\Extension\Domain\Model\A*/
protected $parent;}
namespace \Vendor\Extension\Domain\Model;class A {
/*** @var \Vendor\Extension\Domain\Model\B*/
protected $x;
/*** @var \Vendor\Extension\Domain\Model\B*/
protected $y;}
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
absolute Option fr Image-ViewHelper
Der ImageViewhelper und Uri/ImageViewHelper haben nun eine Optionabsolute, mit der eine absolute URL ausgegeben werden kann.Beispiel 1 (ImageViewhelper):
// Ausgabe
Beispiel 2 (Uri/ImageViewHelper):
// Ausgabehttp://www.mydomain.com/fileadmin/_processed_/323223424.png
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
ViewHelper um Whitespaces in HTML zu entfernen
Es wurde ein ViewHelper spaceless eingefhrt, um berflssigeLeerzeichen zwischen HTML-Tages zu entfernen. Beispiel:
text
text
Ausgabe:text
text
TYPO3 CMS 7 LTS - Whats New
Extbase & Fluid
RootLevel Konfiguration
Der RootLevel einer Tabelle kann nun im TCA konfiguriert werden(damit wird festgelegt, wo die zugehrigen Datenstze gesucht werden)
0: Nur im Seitenbaum1: Nur auf der Root-Seite (PID 0)-1: In beiden
Zudem muss das TCA konfiguriert werden:$GLOBALS[TCA][tx_myext_domain_model_record][ctrl][rootLevel] = -1;
TYPO3 CMS 7 LTS - Whats New
Sources and Authors
Quellen und Autoren
TYPO3 CMS 7 LTS - Whats New
Sources and Authors
Quellennachweis
TYPO3 News:http://typo3.org/news
Release Infos:https://wiki.typo3.org/Category:ReleaseNotes/TYPO3_7.xINSTALL.md and ChangeLog
typo3/sysext/core/Documentation/Changelog/*
TYPO3 Bug-/Issuetracker:https://forge.typo3.org/projects/typo3cms-core
TYPO3 Git Repositories:https://git.typo3.org/Packages/TYPO3.CMS.githttps://git.typo3.org/Packages/TYPO3.Fluid.git
TYPO3 CMS 7 LTS - Whats New
http://typo3.org/newshttps://wiki.typo3.org/Category:ReleaseNotes/TYPO3_7.xhttps://github.com/TYPO3/TYPO3.CMS/blob/master/INSTALL.mdhttps://github.com/TYPO3/TYPO3.CMS/blob/master/ChangeLoghttps://forge.typo3.org/projects/typo3cms-corehttps://git.typo3.org/Packages/TYPO3.CMS.githttps://git.typo3.org/Packages/TYPO3.Fluid.git
Sources and Authors
pluswerk
pluswerk ist eine Full Service Agentur fr leidenschaftliche digitaleKommunikation mit 10 Standorten in Deutschland und ber 130 Mitarbeitern
www.pluswerk.ag | +49 89 130 145 20 | facebook.com/pluswerk
TYPO3 CMS 7 LTS - Whats New
TYPO3 CMS 7 LTS - Whats Newnderungen im System
Patrick Lobacher (Vorstand pluswerk AG)http://www.pluswerk.ag
10/November/2015Creative Commons BY-NC-SA 3.0
Introduction
TYPO3 CMS 7 LTS - Whats New
Die folgenden Slides sind auf ein spezielles Thema fokussiert. Abhngig vonder Rolle, knnen die folgenden Themen ebenfalls interessant sein:
BEUserInterface
TypoScript
In-DepthChanges
Extbase/Fluid
Deprecated/Rem
oved
Sys.Administration
Redakteure XIntegratoren X X XEntwickler X X XSysAdmins X
Download aller Whats New Slides unter typo3.org
TYPO3 CMS 7 LTS - Whats New
http://typo3.org/download/release-notes/whats-new/
nderungen im System
nderungen im SystemDurch die berarbeitung aller Komponenten und der Entfernung veralteterTechnologien, ist das Backend von TYPO3 CMS 7 LTS nun deutlich schnellergeworden im Vergleich zu lteren Versionen.Der Performance-Boost ist aber nicht die einizige nderung im Backend -viele weitere nderungen wurden im Core durchgefhrt. PHP Code wurdeaufgerumt, einige Komponenten in Extbase neu geschrieben und vieleneue Features wurden mit Hilfe von aktuallen Technologien undProgrammier-Paradigmen implementiert.
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Integration von jQuery UI 1.11.2
jQuery UI 1.11 untersttzt AMD (Asynchronous Module Definition), mitwelcher JavaScript Dateien erst geladen werden, wenn sie bentigtwerden (Geschwindigkeitsvorteil)
jQuery UI 1.11 ersetzt jQuery UI 1.10 + Scriptaculous in TYPO3 CMS 7.0
Es werden nur der Core und Interaction Components inkludiert, dienotwendig sind, um ExtJS und Scriptaculous zu ersetzen.
Widgets werden nicht inkludiert, sondern ber Bootstrap realisiert(z.B. DatePicker, Spinner, Dialog, Buttons, Tabs, Tooltip)
TYPO3 CMS 7 LTS - Whats New
http://en.wikipedia.org/wiki/Asynchronous_module_definition
nderungen im System
Registry fr die File Rendering Classes
Um verschiedene Dateiformate zu rendern, wird eine Registry bentigt,bei der sich FileRenderer registrieren knnen. Dies geschieht fr"Name" (z.B. Video, MPEG, AVI, WAV, ...) wie folgt:
nderungen im System
Evaluierungsfunktion "email" fr das TCA
Fr das TCA wurde eine neue Evaluierungsfunktion "email" hinzugefgt,welche serverseitig berprft, ob ein eingegebener Wert eine gltigeEmail ist. Im Fehlerfall wird eine Flash-Message ausgegeben
Example:
emailaddress => array(exclude => 1,label => LLL:EXT:myextension/Resources/Private/Language/locallang_db
.xlf:tx_myextensionconfig => array(
type => input,size => 30,eval => email,trim
),)
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Einfhrung einer abstrakten Condition in TypoScript
Es gibt nun eine AbstractCondition, von der eigene Conditions ableitenknnenclass TestCondition
extends \TYPO3\CMS\Core\Configuration\TypoScript\ConditionMatching\AbstractCondition {
public function matchCondition(array $conditionParameters) {if ($conditionParameters[0] === = 7 && $conditionParameters[1] === != 6) {throw new TestConditionException(All Ok, 1411581139);
}}
}
Die Verwendung in TypoScript sieht wie folgt aus:[Vendor\Package\TestCondition][Vendor\Package\TestCondition = 7][Vendor\Package\TestCondition = 7, != 6]
Welche Operatoren in der Condition zur Verfgung stehen, wird in derKlasse selbst festgelegt
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Signal zur Manipulation des HTML-Tags in IconUtility
Signal fr IconUtility zur HTML-Tag Manipulation
dispatch(TYPO3\\CMS\\Backend\\Utility\\IconUtility,buildSpriteHtmlIconTag,array($tagAttributes, $innerHtml, $tagName)
);
Wird aufgerufen in:
TYPO3\CMS\Backend\Utility\IconUtility\buildSpriteHtmlIconTag
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Signal Slots fr SoftReferenceIndex
Zwei neue Signal Slot Dispatch Calls innerhalb von SoftReferenceIndex:protected function emitGetTypoLinkParts(
$linkHandlerFound, $finalTagParts, $linkHandlerKeyword, $linkHandlerValue) {return $this->getSignalSlotDispatcher()->dispatch(
get_class($this),getTypoLinkParts,array($linkHandlerFound, $finalTagParts, $linkHandlerKeyword, $linkHandlerValue)
);}protected function emitSetTypoLinkPartsElement(
$linkHandlerFound, $tLP, $content, $elements, $idx, $tokenID) {return $this->getSignalSlotDispatcher()->dispatch(
get_class($this),setTypoLinkPartsElement,array($linkHandlerFound, $tLP, $content, $elements, $idx, $tokenID, $this)
);}
Wird augerufen in:TYPO3\CMS\Core\Database\SoftReferenceIndex->findRef_typolinkTYPO3\CMS\Core\Database\SoftReferenceIndex->getTypoLinkParts
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Signal Slots fr afterPersistObjects
Bislang gab es nur ein Signal, wenn ein Objekt im Repository (Extbase)aktualisiert wurde: afterUpdateDa aber ein Aggregate Root beispielsweise Subobjekte ebenfallspersistiert, bentigt es ein Signal, welches erst dann emmitiert wird,wenn alle Objekte eines Aggregate Roots persistiert wurden:protected function emitAfterPersistObjectSignal(DomainObjectInterface $object) {
$this->signalSlotDispatcher->dispatch(__CLASS__, afterPersistObject, array($object));}
Wird aufgerufen in:TYPO3\CMS\Extbase\Persistence\Generic\Backend->persistObject
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Signal Slots fr loadBaseTca
Mit diesem Signal kann das gesamte TCA (anstelle von Teilen) gecachtwerden
protected function emitTcaIsBeingBuiltSignal(array $tca) {list($tca) = static::getSignalSlotDispatcher()->dispatch(
__CLASS__,tcaIsBeingBuilt,array($tca)
);$GLOBALS[TCA] = $tca;
}
Wird audgerufen in:
TYPO3\CMS\Core\Utility\ExtensionManagementUtility\Backend->buildBaseTcaFromSingleFiles
TYPO3 CMS 7 LTS - Whats New
nderungen im System
API um gecachte TCA nderungen zuzufgen
PHP Dateien in extkey/Configuration/TCA/Overrides/ werdenausgefhrt, direkt nachdem der TCA-Cache aufgebaut wurde
Die Dateien drfen nur Code enthalten, der das TCA manipuliert,wie beispielsweise: addTCAColumns oder addToAllTCATypesSobald Extensions dieses Features verwenden, ist mit einem deutlichenGeschwindigkeitsschub von Backend Requests zu rechnen
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Nur-lesender Zugriff auf File Mounts
File Mounts knnen (wieder) mit nur-lesenden Zugriff konfiguriertwerden ("read-only")
Jenes war bereits in TYPO3 CMS 4.x mglich, wurde aber inTYPO3 CMS 6.x entfernt
Zum Beispiel: Ordner "test" vom storage UID 3 als Mount mit nurlesenden Zugriff in der Dateiliste und dem Element Browser:
options.folderTree.altElementBrowserMountPoints = 3:/test
Falls kein Storage angegeben wird, geht man davon aus, dass sich derOrdner im Default Storage befindet.
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Sonstiges
jQuery wurde von Version 1.11.0 auf Version 1.11.1 aktualisiert
Datatables wurde von Version 1.9.4 zu Version 1.10.2 aktualisiert
Einige alte, nicht mehr benutzte Variablen wurden von EM_CONFentfernt
Extension Icons knnen nun auch im SVG Bildformat vorliegen(ext_icon.svg)Das Senden eines unbekannten eID Identifikators im Request resultiertnun in eine Exception
TYPO3 CMS 7 LTS - Whats New
nderungen im System
TCA: Maximum chars in text element
TCA-Typ text untersttzt nun das HTML5-Attribut maxlength, um diemaximale Anzahl der einzugebenden Zeichen zu beschrnken (Hinweis:Zeilenumbrche zhlen hierbei als zwei Zeichen)
teaser => array(label => Teaser,config => array(
type => text,cols => 60,rows => 2,max => 30 //
nderungen im System
New SplFileInfo implementation
Neue Klasse: TYPO3\CMS\Core\Type\File\FileInfoDiese erweitert SplFileInfo, die wiederrum Meta-Informationen vonDateien ermittelt
$fileIdentifier = /tmp/foo.html;$fileInfo = GeneralUtility::makeInstance(
\TYPO3\CMS\Core\Type\File\FileInfo::class,$fileIdentifier
);echo $fileInfo->getMimeType(); // output: text/html
Entwickler knnen ber folgenden Hook auf die Funktionalittzugreifen:
$GLOBALS[TYPO3_CONF_VARS][SC_OPTIONS][\TYPO3\CMS\Core\Type\File\FileInfo::class][mimeTypeGuessers]
TYPO3 CMS 7 LTS - Whats New
nderungen im System
UserFunc in TCA Display Condition
userFunc displayCondition ermglicht es auf jeden erdenklichenStatus und jede Condition zu prfen
Sollte irgendeine Situation nicht mit den existierenden Checksabgefangen werden knnen, ist es auch mglich, eigene Funktionen zuschreiben (diese mssen lediglich TRUE/FALSE zurckgeben, um dasentsprechende TCA Field sichtbar zu machen oder zu verbergen)
$GLOBALS[TCA][tt_content][columns][bodytext][displayCond] =USER:Vendor\\Example\\User\\ElementConditionMatcher->
checkHeaderGiven:any:more:information;
TYPO3 CMS 7 LTS - Whats New
nderungen im System
API fr Twitter Bootstrap Modals (1)
Zwei neue API Methoden um Modal Popups zu erzeugen/entfernen:TYPO3.Modal.confirm(title, content, severity, buttons)TYPO3.Modal.dismiss()
Optionen title und content sind mindestens erforderlichOptionen buttons.text und buttons.trigger sind erforderlich,wenn buttons verwendet wirdBeispiel 1:
TYPO3.Modal.confirm(The title of the modal, // titleThis the the body of the modal, // contentTYPO3.Severity.warning // severity
);
TYPO3 CMS 7 LTS - Whats New
nderungen im System
API fr Twitter Bootstrap Modals (2)
Beispiel 2:TYPO3.Modal.confirm(Warning, You may break the internet!,
TYPO3.Severity.warning,[
{text: Break it,active: true,trigger: function() { ... }
},{
text: Abort!,trigger: function() {
TYPO3.Modal.dismiss();}
}]
);
TYPO3 CMS 7 LTS - Whats New
nderungen im System
JavaScript Storage API (1)
Mittels JavaScript kann auf die BE User Konfiguration zugegriffenwerden ($BE_USER->uc, einfache Key-Value Paare)Zustzlich kann nun auch der HTML5 Standard localStorage verwendetwerden, um Daten (Client-seitig) im Browser des Benutzers zuspeichern und auszulesenZwei neue global TYPO3 Objekte:
top.TYPO3.Storage.Clienttop.TYPO3.Storage.Persistent
Jedes Objekt hat folgende API Methoden:get(key): Daten holenset(key,value): Daten schreibenisset(key): Prfen, ob key genutzt wirdclear(): Lschen des Speichers
TYPO3 CMS 7 LTS - Whats New
http://www.w3.org/TR/webstorage/
nderungen im System
JavaScript Storage API (2)
Beispiel:
// get value of key startModulevar value = top.TYPO3.Storage.Persistent.get(startModule);
// write value web_info as key start_moduletop.TYPO3.Storage.Persistent.set(startModule, web_info);
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Inline Rendering von Checkboxes
Die Konfiguration inline sorgt bei "cols" dafr, dass Checkboxennebeneinander dargestellt werden, um Platz im Backend User Interfacezu sparenweekdays => array(
label => Weekdays,config => array(
type => check,items => array(
array(Mo, ),array(Tu, ),array(We, ),array(Th, ),array(Fr, ),array(Sa, ),array(Su, )
),cols => inline
)),...
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Content Object Registration
Es wurde eine neue globale Option eingefhrt, um cObjects wie TEXTzu registrieren bzw. zu erweiternEine Liste aller verfgbaren cObjects ist verfgbar als:$GLOBALS[TYPO3_CONF_VARS][FE][ContentObjects]
Beispiel: ein neues cObject EXAMPLE registrieren$GLOBALS[TYPO3_CONF_VARS][FE][ContentObjects][EXAMPLE] =
Vendor\MyExtension\ContentObject\ExampleContentObject::class;
Die registrierte Klasse muss von der folgenden Klasse ableiten:TYPO3\CMS\Frontend\ContentObject\AbstractContentObjectIdealerweise speichert man seine Datei im Verzeichnistypo3conf/myextension/Classes/ContentObject/um fr zuknftige Autoload-Funktionen vorbereitet zu sein
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Hooks und Signals (1)
Neuer Hook wurde am Ende von PageRepository->init()hinzugefgt, mit dem die Sichtbarkeit von Seiten beeinflusst werdenkann
Der Hook kann wie folgt registriert werden:
$GLOBALS[TYPO3_CONF_VARS][SC_OPTIONS][\TYPO3\CMS\Frontend\Page\PageRepository::class][init]
Die Hook-Klasse muss das folgende Interface implementieren:
\TYPO3\CMS\Frontend\Page\PageRepositoryInitHookInterface
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Hooks und Signals (2)
Neuer Hook wurde zu PageLayoutView hinzugefgt, um das Renderingdes Footers von Inhaltselementen im Backend manipulieren zu knnen
Beispiel:
$GLOBALS[TYPO3_CONF_VARS][SC_OPTIONS][cms/layout/class.tx_cms_layout.php][tt_content_drawFooter];
Die Hook-Klasse muss das folgende Interface implementieren:
\TYPO3\CMS\Backend\View\PageLayoutViewDrawFooterHookInterface
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Hooks und Signals (3)
Es wurde ein Hook als Post-Prozessor zuBackendUtility::countVersionsOfRecordsOnPage hinzugefgt
Dieser wird z.B. verwendet, um Workspace-Zustnde im Seitenbaum zuvisualisieren
Der Hook kann wie folgt registriert werden:
$GLOBALS[TYPO3_CONF_VARS][SC_OPTIONS][t3lib/class.t3lib_befunc.php][countVersionsOfRecordsOnPage][] =My\Package\HookClass->hookMethod;
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Hooks und Signals (4)
Neues Signal wurde am Ende der MethodeDataPreprocessor::fetchRecord() hinzugefgtJenes kann dazu verwendet werden, um das ArrayregTableItems_data zu manipulieren, damit die manipuliertenDaten in TCEForms angezeigt werden knnen
$this->getSignalSlotDispatcher()->dispatch(\TYPO3\CMS\Backend\Form\DataPreprocessor::class,fetchRecordPostProcessing,array($this)
);
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Hooks und Signals (5)
Neues Signal wurde eingefhrt, um zustzlichen Code bei derRegistrierung des Mailer-Objekts auszufhren (z.B. Swift Mailer Plugins)$signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(
\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
$signalSlotDispatcher->connect(\TYPO3\CMS\Core\Mail\Mailer::class,postInitializeMailer,\Vendor\Package\Slots\MailerSlot::class,registerPlugin
);
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Multiple UID in PageRepository::getMenu()
Methode PageRepository::getMenu() kann nun auch ein Arrayaufnehmen, um meherer Root-Seiten zu definieren
$pageRepository = new \TYPO3\CMS\Frontend\Page\PageRepository();$pageRepository->init(FALSE);$rows = $pageRepository->getMenu(array(2, 3));
TYPO3 CMS 7 LTS - Whats New
nderungen im System
SVG Support im Core
Der Core untersttzt nun SVG-Bilder ("Scalable Vector Graphics")
Wenn ein SVG-Bild skaliert wird, wird kein prozessiertes Bild abgelegt,dafr aber die neuen Grenangaben in einem Datensatzsys_file_processedfile gespeichert(auer, das Bild wird - z.B. durch Cropping - weiterverarbeitet).
Zudem wurde ein zustzlicher Fallback eingebaut, fallsImageMagick/GraphicsMagick nicht in der Lage sein sollte, dieDimensionen zu berechnen: in diesem Fall wird das XML ausgelesen.
SVG wurde auerdem zur Liste der zulssigen Bildtypen hinzugefgt:$GLOBALS[TYPO3_CONF_VARS][GFX][imagefile_ext]
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Erweiterung der FAL-Treiber
Um die Performance der Dateiliste bei (Remote-)Storages innerhalbvon FAL zu erhhen, ist es notwendig, die Sortierung und das Ermittelnder Anzahl direkt im Treiber zu erledigen. Dafr wurden zwei neueParameter sort und sortRev eingebracht:public function getFilesInFolder($folderIdentifier, $start = 0, $numberOfItems = 0,
$recursive = FALSE, array $filenameFilterCallbacks = array(), $sort = , $sortRev = FALSE);
public function getFoldersInFolder($folderIdentifier, $start = 0, $numberOfItems = 0,$recursive = FALSE, array $folderNameFilterCallbacks = array(), $sort = , $sortRev = FALSE);
Auerdem wurden zwei neue Methoden eingefhrt:public function getFilesInFolderCount($folderIdentifier, $recursive = FALSE,
array $filenameFilterCallbacks = array());
public function getFoldersInFolderCount($folderIdentifier, $recursive = FALSE,array $folderNameFilterCallbacks = array());
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Backend Routing API (1)
Der Core enthlt nun eine Backend Routing API, welche die Entry Pointsins Backend verwaltet
Die Routing API wurde vom Symfony Routing Framework inspiriert undist weitgehend kompatibel mit dieser(auch wenn fr TYPO3 zur Zeit nur ca. 20% genutzt werden)
Grundstzlich existieren hierfr drei Klassen:class Route: enthlt Angaben zum Pfad und Optionenclass Router: API, um die Route zu matchenclass UrlGenerator: generiert die URL
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Backend Routing API (2)
Routen werden dabei in folgender Datei in der entsprechendenExtension definiert: Configuration/Backend/Routes.php(siehe Systemextension backend als Beispiel)
Weitere Informationen zur Backend Routing API:http://wiki.typo3.org/Blueprints/BackendRouting
TYPO3 CMS 7 LTS - Whats New
http://wiki.typo3.org/Blueprints/BackendRouting
nderungen im System
Neue Systemextension fr Media Inhaltselemente
Neue Systemextension "mediace" enthlt folgende cObjects:MULTIMEDIAMEDIASWFOBJECTFLOWPLAYERQTOBJECT
Die Inhaltselemente media und multimedia wurden ebenfalls in dieSystemextension verschoben, ebenso der "Media Wizard Provider"
Die Extension ist standardmig nicht installiert!
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Fremd-Bibliotheken an neuer Stelle
Smtliche Fremd-Bibliotheken werden nicht mehr inPackages/Libraries, sondern in typo3/contrib/vendorabgelegt
Grundstzlich ist dafr die Installation der Bibliotheken mittelscomposer install notwendigProbleme gibt es beim Upgrade einer Installation, wenn dort phpunitverwendet wurde! Dies kann wie folgt behoben werden:
# cd htdocs/# rm -rf typo3/contrib/vendor/ bin/ Packages/Libraries/ composer.lock# composer install
TYPO3 CMS 7 LTS - Whats New
nderungen im System
API fr JavaScript Notifikationen
Neue API, um JavaScript Notifikationen zu erzeugen:// Bisheriger (veralteter) Weg:top.TYPO3.Flashmessages.display(TYPO3.Severity.notice)
// Neuer Weg:top.TYPO3.Notification.notice(title, message)
Es existieren folgende API-Funktionen:(Parameter duration ist optional und standardmig auf 5s eingestellt)
top.TYPO3.Notification.notice(title, message, duration)top.TYPO3.Notification.info(title, message, duration)top.TYPO3.Notification.success(title, message, duration)top.TYPO3.Notification.warning(title, message, duration)top.TYPO3.Notification.error(title, message, duration)
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Systeminformationen (1)
Das Dropdown mit Systeminformationen kann ber folgenden Sloterweitert werden:$signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(
\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
$signalSlotDispatcher->connect(\TYPO3\CMS\Backend\Backend\ToolbarItems\SystemInformationToolbarItem::class,getSystemInformation,\Vendor\Extension\SystemInformation\Item::class,getItem
);
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Systeminformationen (2)
Zur Ansprache bentigt man die Klasse Item und dazugehrig dieMethode getItem() innerhalb einer ExtensionEXT:extension\Classes\SystemInformation\Item.php:class Item {
public function getItem() {return array(array(
title => The title shown on hover,value => Description shown in the list,status => SystemInformationHookInterface::STATUS_OK,count => 4,icon => \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon(
extensions-example-information-icon)));
}}
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Systeminformationen (3)
Das Icon extensions-example-information-icon wird in derDatei ext_localconf.php registriert:\TYPO3\CMS\Backend\Sprite\SpriteManager::addSingleIcons(
array(information-icon => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath(
$_EXTKEY) . Resources/Public/Images/Icons/information-icon.png),
$_EXTKEY);
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Systeminformationen (4)
Nachrichten werden am unteren Ende des Dropdowns angezeigt
ber den folgenden Slot knnen eigene Nachrichten eingebrachtwerden:$signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(
\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
$signalSlotDispatcher->connect(\TYPO3\CMS\Backend\Backend\ToolbarItems\SystemInformationToolbarItem::class,loadMessages,\Vendor\Extension\SystemInformation\Message::class,getMessage
);
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Systeminformationen (5)
Zur Ansprache bentigt man die Klasse Message und dazugehrig dieMethode getMessage() innerhalb einer ExtensionEXT:extension\Classes\SystemInformation\Message.php:class Message {
public function getMessage() {return array(array(
status => SystemInformationHookInterface::STATUS_OK,text => Something went wrong. Take a look at the reports module.
));}
}
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Einstellungen fr Bild-Manipulation (1)
Folgende Einstellungen knnen ber TypoScript gettigt werden:
# Cropping fuer alle Bilder deaktivierentt_content.image.20.1.file.crop =
# Ueberschreiben/Setzen der Cropping Eigenschaften# offsetX,offsetY,width,heighttt_content.image.20.1.file.crop = 50,50,100,100
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Einstellungen fr Bild-Manipulation (2)
Das Cropping kann auch in Fluid verwendet werden:
# Cropping fuer alle Bilder deaktivieren
# Ueberschreiben/Setzen der Cropping Eigenschaften# offsetX,offsetY,width,height
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Einstellungen fr Bild-Manipulation (3)
Im TCA wird das Image-Cropping wie folgt zur Verfgung gestellt:
Column Type: image_manipulationConfig file_field: string (default: uid_local)Config enableZoom: boolean (default: FALSE)Config allowedExtensions: string(default: $GLOBALS[TYPO3_CONF_VARS][GFX][imagefile_ext])Config ratios: array, default:array(
1.7777777777777777 => 16:9,1.3333333333333333 => 4:3,1 => 1:1,NaN => Free
)
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Zustzliche Parameter fr HTMLparser userFunc
Die userFunc im HTMLparser kann nun zustzliche Parameteraufnehmen:myobj = TEXTmyobj.value = MyTextmyobj.HTMLparser.tags.a.fixAttrib.class {
userFunc = Tx\MyExt\Myclass->htmlUserFuncuserFunc.myparam = test
}
Diese knnen in einer Extension wie folgt abgerufen werden:function htmlUserFunc(array $params, HtmlParser $htmlParser) {
// $params[attributeValue] enthaelt den Wert der// verarbeiteten Eigenschaft - hier also "myclass"// $params[myparam] enthaelt den Wert "test"...
}
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Locking API (1)
Es wurde eine neue Locking-API eingefhrt, welche verschiedeneLocking-Methoden (SimpleFile, Semaphore, ...) zur Verfgung stellt
Eine Locking-Methode muss dabei das LockingStrategyInterfaceimplementieren
$lockFactory = GeneralUtility::makeInstance(LockFactory::class);$locker = $lockFactory->createLocker(someId);$locker->acquire() || die(Could not acquire lock.);...$locker->release();
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Locking API (2)
Man kann auerdem "non-blocking" Locks realisieren:$lockFactory = GeneralUtility::makeInstance(LockFactory::class);$locker = $lockFactory->createLocker(
someId,LockingStrategyInterface::LOCK_CAPABILITY_SHARED |
LockingStrategyInterface::LOCK_CAPABILITY_NOBLOCK);try {
$result = $locker->acquire(LockingStrategyInterface::LOCK_CAPABILITY_SHARED |LockingStrategyInterface::LOCK_CAPABILITY_NOBLOCK);
catch (\RuntimeException $e) {if ($e->getCode() === 1428700748) {
// einige Prozesse haben noch ein Lock// daher sollte etwas in der Zwischenzeit gemacht werden...
}}if ($result) {
$locker->release();}
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Signal nach Installation von Extensions
In der Methode\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::install()wurde ein Signal eingebaut, welches emmitiert wird, sobald eineExtension fertig installiert ist und alle Imports/Updates durchgelaufensind// Aufruf$this->emitAfterExtensionInstallSignal($extensionKey);
// Methodeprotected function emitAfterExtensionInstallSignal($extensionKey) {
$this->signalSlotDispatcher->dispatch(__CLASS__,afterExtensionInstall,array($extensionKey, $this)
);}
TYPO3 CMS 7 LTS - Whats New
nderungen im System
Registry fr Text-Extraktoren
Der Core enth