TYPO3 CMS 7.0 - Die Neuerungen - pluswerk

  • Published on
    12-Jul-2015

  • View
    9.978

  • Download
    0

Embed Size (px)

Transcript

<ul><li><p>TYPO3 CMS 7.0 - What's Newbersicht der neuen Funktionen, nderungen</p><p>und Verbesserungen</p><p>Patrick Lobacher (GF +Pluswerk GmbH)http://www.plus-werk.com</p><p>02/December/2014Creative Commons BY-NC-SA 3.0</p></li><li><p>Einfhrung</p><p>Einfhrung</p><p>(Die Fakten)</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>Einfhrung</p><p>TYPO3 CMS 7.0: Die Fakten</p><p>Verffentlichungsdatum: 2. Dezember 2014Entwicklungs- und Verffentlichungszeitplan:</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>Einfhrung</p><p>TYPO3 CMS Roadmap</p><p>Folgende Roadmap wurde vom TYPO3 CMS Team beschlossen:</p><p>7.0 02.12.2014 Backend Overhaul Vol 1</p><p>7.1 17.02.2015 Core Cleanup Streamlining</p><p>7.2 10.03.2015 Frontend</p><p>7.3 21.04.2015 Composer Ecosystem</p><p>7.4 09.06.2015 Backend Overhaul Vol 2</p><p>7.5 28.07.2015 tbd</p><p>7.6 13.10.2015 pre-LTS inferno</p><p>7.7 xx.xx.2015 LTS!!</p><p>Quelle: https://typo3.org/typo3-cms/roadmap/</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>Einfhrung</p><p>TYPO3 CMS 7.0: Die Fakten</p><p>SystemvoraussetzungenPHP v5.5.x - v5.6.x</p><p>memory_limit &gt;= 128Mmax_execution_time &gt;= 240sBeim Selbstkompilieren darauf achten, dass die Option disable-ipv6nicht verwendet wird</p><p>MySQL v5.5.x - v5.6.x (no strict mode)Disc Space</p><p>200 MB Disk SpaceBackend</p><p>zugnglich fr IE &gt; 9 und normale Browser</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>Einfhrung</p><p>TYPO3 CMS 7.0: Installation</p><p>Ofzieller Installationspfad fr Linux/Mac OS X(Document Root ist z.B./var/www/site/htdocs:$ cd /var/www/site$ wget get.typo3.org/7.0$ tar xzf typo3_src-7.0.x.tar.gz$ cd htdocs$ ln -s ../typo3_src-7.0.x typo3_src$ ln -s typo3_src/index.php index.php</p><p>$ ln -s typo3_src/typo3 typo3</p><p>Benutzer von Windows Vista und 7 verwenden mlink, unter WindowsXP/2000 junction um die symbolischen Links zu erzeugen</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>Einfhrung</p><p>TYPO3 CMS 7.0: Upgrade</p><p>Ein direktes Upgrade ist nur von TYPO3 CMS 6.2 LTS mglich</p><p>Benutzer einer niedrigeren Version als TYPO3 CMS 6.2 LTS, solltenzunchst auf TYPO3 CMS 6.2 LTS upgraden und von dort zurgewnschten Version (TYPO3 CMS 7.x)</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>BackendUI</p><p>Kapitel 1:</p><p>Backend User Interface</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>BackendUI</p><p>Allgemeines</p><p>Das Backend Userinterface wurde komplett berarbeitet</p><p>Als Basis wurde hierfr Twitter Bootstrap (3.2.x) verwendet</p><p>Smtliche Icons wurden erneuert und graphisch im "Tile Style"berarbeitet</p><p>Fr Icons wird Font Awesome verwendet (4.2.x)</p><p>Die Funktionenleiste links wurde hierzu ebenfalls graphisch angepasst</p><p>Die Icons wurden im Flat-Design, monochrom, farbig und mitabgerundeten Ecken entworfen</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>BackendUI</p><p>Look &amp; Feel</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>BackendUI</p><p>Look &amp; Feel</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>BackendUI</p><p>Look &amp; Feel</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>BackendUI</p><p>Login</p><p>Neues Backend Login unter http://www.domain.com/typo3</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>BackendUI</p><p>Obere Leiste</p><p>Die obere Leiste wurde berarbeitet</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>BackendUI</p><p>List Module</p><p>Das List Module wurde graphisch komplett berarbeitetEbenfalls angepasst wurde das Clipboard</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>BackendUI</p><p>Frischer Table-Stil</p><p>Das Tabellen-Layout wurde aufgefrischt</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>BackendUI</p><p>Suche fr Seite und Liste</p><p>Oberhalb der Ansicht "Liste" und "Seite" kann per Klick auf die Lupeeine Suche eingeblendet werden (diese befand sich frher statisch amEnde der Seite):</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>BackendUI</p><p>Badge Anzeige fr offene Dokumente</p><p>Wenn man die Extension "Open Documents" installiert hat, wird dieAnzahl der offenen Dokumente ber die Bootstrap "badge" Funktionangezeigt</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>BackendUI</p><p>Flash-Messages</p><p>Die FlashMessage-Boxen im Backend wurden berarbeitetDafr wurde der Kontrast von Text und Box erhht und die Links besserhervorgehoben</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>BackendUI</p><p>Media-Player in Info-Fenster</p><p>Sobald man die Informationen ber eine Datei aufruft (i-Symbol, z.B. inDateiliste) werden die Meta-Daten hierzu angezeigtAb sofort wird bei HTML5 Audio- und Video-Dateien auch einVideoplayer eingeblendet, ber den die Datei sofort angehrt bzw.angesehen werden kann</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>TScong &amp; TypoScript</p><p>Kapitel 2:</p><p>TScong &amp; TypoScript</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>TScong &amp; TypoScript</p><p>TScong fr Linkvalidator inkludieren</p><p>Die TScong Konguration wird entweder aus dem aktiven TScong desBackends gelesen wenn der Linkvalidator verwendet wird oder auf derKonguration, die ber den Scheduler-Task mitgegeben wird</p><p>Das folgende TScong kann vom Linkchecker ausgelesen werdenmod.linkvalidator.mychecker.myvar = 1</p><p>Dort steht das TScong als $this-&gt;tsConfig zur Verfgung</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>TScong &amp; TypoScript</p><p>Links zu deaktivierten Datenstzen im Linkhandler melden</p><p>Bisher hat der Linkhandler lediglich gewarnt, wenn es Links zugelschten odern nicht existierenden Datenstzen gab.</p><p>ber die folgende TScong Einstellung kann nun auch eine Warnungeingeschaltet werden, wenn der Link auf einen deaktivierten Datensatzzeigt</p><p>Einstellung im TScong:mod.linkvalidator.linkhandler.reportHiddenRecords = 1</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>TScong &amp; TypoScript</p><p>Abhngigkeiten von Klassen im RTE</p><p>Um das Handling mit komplexen CSS Frameworks wie Twitter Bootstrapzu handhaben, muss es mglich sein, mehrere Klassen an ein Elementzu vergeben</p><p>Mit diesem neuen Feature muss der Autor nur noch einen Styleauswhlen um dies zu erreichen und nicht mehrereRTE.classes.[ *classname* ] {</p><p>.requires = liste von klassennamen (die von der Klasse benoetigt</p><p>werden)</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>TScong &amp; TypoScript</p><p>Nicht-selektierbare Klassen im RTE</p><p>Man kann nun Klasses als "nicht-selektierbar" im Style-Selektor desRTE kongurieren</p><p>// Ein Wert von 1 laesst die Klasse selektieren, bei 0 ist sie nicht-selektierbar</p><p>RTE.classes.[ *classname* ] {.selectable = 1</p><p>}</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>TScong &amp; TypoScript</p><p>Mehrere CSS-Dateien im RTE</p><p>Man kann nun mehrere CSS-Dateien in den RTE laden</p><p>RTE.default.contentCSS {file1 = fileadmin/myStylesheet1.cssfile2 = fileadmin/myStylesheet2.css</p><p>}</p><p>Gibt man kein CSS an, so wird das Default-CSS untertypo3/sysext/rtehtmlarea/res/contentcss/default.cssgeladen</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>TScong &amp; TypoScript</p><p>Exception whrend Rendering erzeugen - Teil 1</p><p>Sobald Fehler im Rendering von einzelnen Content Objekten (z.B.mittels USER) auftreten, wird eine Fehlermeldung erzeugt, die diegesamte Ausgabe zerstrt</p><p>Daher wurde ein Exception-Handling eingefhrt, welches eineFehlermeldung in die Ausgabe an der Stelle integriert, in welcher dasRendering stattgefunden hat</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>TScong &amp; TypoScript</p><p>Exception whrend Rendering erzeugen - Teil 2</p><p># Default exception handler (aktiviert im Production Kontext)config.contentObjectExceptionHandler = 1# Angabe einer Klasse fuer einen individuellen Exception Handlerconfig.contentObjectExceptionHandler = TYPO3\CMS\Frontend\ContentObject\Exception\</p><p>ProductionExceptionHandler# Anpassen der Fehlermeldung - Einfuegen eines Zufall-Codesconfig.contentObjectExceptionHandler.errorMessage = Oops an error occurred. Code: %s# Konfiguration von Exception Codes, die nicht behandelt werdentt_content.login.20.exceptionHandler.ignoreCodes.10 = 1414512813# Deaktierung des Exception Handling fuer ein individuelles Plugin/Content Objectstt_content.login.20.exceptionHandler = 0# ignoreCodes und errorMessage koennen global konfiguriert werden...config.contentObjectExceptionHandler.errorMessage = Oops an error occurred. Code: %sconfig.contentObjectExceptionHandler.ignoreCodes.10 = 1414512813# ... oder lokal fuer individuelle Content Objektett_content.login.20.exceptionHandler.errorMessage = Oops an error occurred. Code: %stt_content.login.20.exceptionHandler.ignoreCodes.10 = 1414512813</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>nderungen im System</p><p>Kapitel 3:</p><p>nderungen im System</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>nderungen im System</p><p>Integration von jQuery UI 1.11.2</p><p>jQuery UI 1.11 untersttzt AMD (Asynchronous Module Denition), mitwelcher man nicht mehr die komplett jQuery UI laden muss</p><p>Daher wurde diese Version in TYPO3 integriert und ersetzt nun jQueryUI 1.10 + Scriptaculous.</p><p>Weiterhin werden nur der Core und die Interaction Componentsinkludiert, welche notwendig sind um ExtJS und Scriptaculous zuersetzen.</p><p>Widgets wurden nicht inkludiert, sondern ber Bootstrap realisiert (wieDatePicker, Spinner, Dialog, Buttons, Tabs, Tooltip)</p><p>jQuery UI 1.11 wurde von folgender URL geholt:https://github.com/jquery/jquery-ui/tree/1-11-stable/ui/</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>nderungen im System</p><p>Einfhrung einer Registry fr die File Rendering Classes</p><p>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:</p></li><li><p>nderungen im System</p><p>Evaluierungsfunktion "email" fr das TCA</p><p>Es wurde fr das TCA eine neue Evaluierungsfunktion "email"hinzugefgt, welche serverseitig berprft, ob ein eingegebener Werteine gltige Email ist. Im Fehlerfall wird eine Flash-Messageausgegeben</p><p>email =&gt; array(exclude =&gt; 1,label =&gt; LLL:EXT:wd_products/Resources/Private/Language/</p><p>locallang_db.xlf:tx_wdproducts_domain_model_contactpeconfig =&gt; array(type =&gt; input,size =&gt; 30,eval =&gt; email,trim</p><p>),)</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>nderungen im System</p><p>Einfhrung einer abstrakten Condition im TypoScript</p><p>Es gibt nun eine AbstractCondition, von der von eigene Conditionsableiten kannclass TestCondition extends \TYPO3\CMS\Core\Configuration\TypoScript\ConditionMatching\</p><p>AbstractCondition {public function matchCondition(array $conditionParameters) {</p><p>if ($conditionParameters[0] === = 7 &amp;&amp; $conditionParameters[1] === != 6) {throw new TestConditionException(All Ok, 1411581139);</p><p>}}</p><p>}</p><p>Die Verwendung im TypoScript sieht wie folgt aus:[Vendor\Package\TestCondition]</p><p>[Vendor\Package\TestCondition = 7][Vendor\Package\TestCondition = 7, != 6]</p><p>Welche Operatoren in der Condition zur Verfgung stehen, wird in derKlasse selbst festgelegt</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>nderungen im System</p><p>Signal zur Manipulation des HTML-Tags in IconUtility</p><p>Signal fr IconUtility zur HTML-Tag Manipulation</p><p>dispatch(TYPO3\\CMS\\Backend\\Utility\\IconUtility, buildSpriteHtmlIconTag, array($tagAttributes, $innerHtml, $tagName));</p><p>Wird aufgerufen in:</p><p>TYPO3\CMS\Backend\Utility\IconUtility\buildSpriteHtmlIconTag</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>nderungen im System</p><p>Signal Slots fr SoftReferenceIndex</p><p>Es wurden zwei Signal Slot Dispatch Calls innerhalb vonSoftReferenceIndex in den Methoden getTypoLinkParts() undsetTypoLinkPartsElement() zugefgt:protected function emitGetTypoLinkParts($linkHandlerFound, $finalTagParts, $linkHandlerKeyword,</p><p>$linkHandlerValue) {return $this-&gt;getSignalSlotDispatcher()-&gt;dispatch(get_class($this), getTypoLinkParts, array(</p><p>$linkHandlerFound, $finalTagParts, $linkHandlerKeyword, $linkHandlerValue));}</p><p>protected function emitSetTypoLinkPartsElement($linkHandlerFound, $tLP, $content, $elements, $idx, $tokenID) {</p><p>return $this-&gt;getSignalSlotDispatcher()-&gt;dispatch(get_class($this), setTypoLinkPartsElement,array($linkHandlerFound, $tLP, $content, $elements, $idx, $tokenID, $this));</p><p>}</p><p>Wird aufgerufen inTYPO3\CMS\Core\Database\SoftReferenceIndex-&gt;findRef_typolink undTYPO3\CMS\Core\Database\SoftReferenceIndex-&gt;getTypoLinkParts</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>nderungen im System</p><p>Signal Slots fr afterPersistObjetct</p><p>Bislang gab es nur ein Signal, wenn ein Objekt im Repository (Extbase)aktualisiert wurde - nmlich afterUpdate. Da aber ein AggregateRoot beispielsweise Subobjekte ebenfalls persistiert, bentigt es einSignal, welches erst dann emmitiert wird, wenn alle Objekte einesAggregate Roots persistiert wurden:</p><p>protected function emitAfterPersistObjectSignal(DomainObjectInterface$object) {</p><p>$this-&gt;signalSlotDispatcher-&gt;dispatch(__CLASS__, afterPersistObject,array($object));</p><p>}</p><p>Wird aufgerufen inTYPO3\CMS\Extbase\Persistence\Generic\Backend-&gt;persistObject</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>nderungen im System</p><p>Signal Slots fr loadBaseTca</p><p>Mit diesem Signal kann das gesamte TCA (anstelle von Teilen) gecachtwerden.</p><p>protected function emitTcaIsBeingBuiltSignal(array $tca) {list($tca) = static::getSignalSlotDispatcher()-&gt;dispatch(__CLASS__, </p><p>tcaIsBeingBuilt, array($tca));$GLOBALS[TCA] = $tca;}</p><p>Wird aufgerufen inTYPO3\CMS\Core\Utility\ExtensionManagementUtility\Backend-&gt;buildBaseTcaFromSingleFiles</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>nderungen im System</p><p>API um gecachte TCA nderungen zuzufgen</p><p>PHP-Dateien, die sich im Extension-Verzeichnisextkey/Configuration/TCA/Overrides/ benden, werdenausgefhrt, direkt nachdem der TCA-Cache aufgebaut wurde. DieDateien drfen nur Code enthalten, der das TCA manipuliert, wieaddTCAColumns oder addToAllTCATypes</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>nderungen im System</p><p>MISC</p><p>Man kann nun auch SVG-Icons fr eine Extension verwenden:ext_icon.svgFile Mounts knnen nun auch "read only" sein</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>Extbase &amp; Fluid</p><p>Kapitel 4:</p><p>Extbase &amp; Fluid</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>Extbase &amp; Fluid</p><p>Fallback Pfade fr Fluid Standalone View und FLUIDTEMPLATE</p><p>Sowohl Fluid Standalone View wie auch das TypoScript-ObjektFLUIDTEMPLATE knnen nun mit Fallback-Pfaden ausgerstet werden.Verwendet man die alten Optionen (z.B. partialRootPath)zusammen mit den neuen, so wird die alte auf die erste Position (Index= 0) in der Fallback-Liste gestellt.page.10 = FLUIDTEMPLATEpage.10.file = EXT:sitedesign/Resources/Private/Templates/Main.htmlpage.10.partialRootPaths {</p><p>10 = EXT:sitedesign/Resources/Private/Partials20 = EXT:sitemodification/Resources/Private/Partials</p><p>}</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>Extbase &amp; Fluid</p><p>Typolink ViewHelper</p><p>Es wurde ein Typolink-ViewHelper zugefgt, der beispielsweise Felderauswerten und darstellen kann, die ber einen Link-Wizard im Backenderzeugt wurden:</p><p>link enthlt beispielsweise19 _blank - "testtitle with whitespace" &amp;X=y</p><p>Ergebnis ist</p><p>Lediglich parameter wird bentigt, die anderen Parameter sindoptional</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>Extbase &amp; Fluid</p><p>Data-Attribute in ViewHelpern</p><p>Alle ViewHelper, die Tags ausgeben, haben nun ein Data-Attributbekommen. Dafr wird per data ein Array bergeben. Die Schlsselder Arrays werden dann als Attribut zusammengesetzt:data-$key="$value"</p><p>Dies wird wie folgt gerendert:</p></li><li><p>Extbase &amp; Fluid</p><p>Class tag values via Reection</p><p>Der Extbase Reection-Service kann nun Tags bzw. Annotationzurckliefern, die zu einer Klasse zugefgt wurden</p><p>Nehmen wir an, wir haben folgende Klasse:/*** @SomeClassAnnotation A value*/class Foo {}</p><p>Dann kann die Annotation nun 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-&gt;getClassTagsValues(Foo);// Returns the values of the specified class tag$classValue = $service-&gt;getClassTagValue(Foo, SomeClassAnnotation);</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>Veraltete und entfernte Funktionen</p><p>Kapitel 5:</p><p>Veraltete und entfernte Funktionen</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>Veraltete und entfernte Funktionen</p><p>Extensions mssen Namespaces verwenden</p><p>In TYPO3 7.0 wurde der Legacy-Layer entfernt, mit dem es mglich war,Extensions mit dem alten Namensschema (ohne Namespaces) zuverwenden</p><p>Der Legacy-Layer kann aber als Systemextension compatibility6wieder nachinstalliert werden</p><p>TYPO3 CMS 7.0 - What's New</p></li><li><p>Veraltete und entfernte Funktionen</p><p>Folgende Funktionen wurden als veraltet markiert</p><p>In TYPO3 4.7 wurden zahlreiche JavaS...</p></li></ul>