TYPO3 Version 4.3: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 3: Zeile 3:
  
 
== Typo3 4.3 Die Neuerungen im Überblick ==
 
== Typo3 4.3 Die Neuerungen im Überblick ==
 +
Presentation Transcript
  
=== Presentation Transcript ===
+
TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 2
 +
 
 +
ÜBER TYPOFAKTUM
 +
 
 +
• GF Patrick Lobacher hat zahlreiche Bücher und Artikel über alle Aspekte von TYPO3 veröffentlicht - weitere sind in Vorbereitung
 +
 
 +
• Geschäftsbereiche
 +
 
 +
• TYPO3 Konzeption, Entwicklung, Programmierung, Integration (inkl. Extbase / Fluid / FLOW3)
 +
 
 +
• Consulting, Projektmanagement & Coaching
 +
 
 +
• Schulung (inkl. komplettes TYPO3-Curriculum von Anfäger bis Fortgeschrittene und Spezialschulungen sowie Firmen- und Individualschulungen)
 +
 
 +
• Print (Konzeption, Produktion)
 +
 
 +
Adresse: typofaktum unternehmenskommunikationfibelfortstr. 8 81667 münchen
 +
 
 +
tel 089 46 13 38 67
  
TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 2
+
fax 089 46 13 38 68
 +
 
 +
email info@typofaktum.de
 +
 
 +
web
  
ÜBER TYPOFAKTUM • GF Patrick Lobacher hat zahlreiche Bücher und Artikel über alle Aspekte von TYPO3 veröffentlicht - weitere sind in Vorbereitung • Geschäftsbereiche • TYPO3 Konzeption, Entwicklung, Programmierung, Integration (inkl. Extbase / Fluid / FLOW3) • Consulting, Projektmanagement & Coaching • Schulung (inkl. komplettes TYPO3-Curriculum von Anfäger bis Fortgeschrittene und Spezialschulungen sowie Firmen- und Individualschulungen) • Print (Konzeption, Produktion) Adresse: typofaktum unternehmenskommunikation belfortstr. 8 81667 münchen tel 089 46 13 38 67 fax 089 46 13 38 68 email info@typofaktum.de web http://www.typofaktum.de (c) 2009 - typofaktum unternehmenskommunikation
+
http://www.typofaktum.de (c) 2009 - typofaktum unternehmenskommunikation
  
==== BACKEND ====  
+
=== BACKEND ===  
 
* Neue Funktionen und Kosmetik
 
* Neue Funktionen und Kosmetik
  
LOGIN SCREEN IM BE  
+
==== LOGIN SCREEN IM BE====
 
* Login ist Skinable  
 
* Login ist Skinable  
 
* Datei: typo3/sysext/t3skin/ templates/login.html
 
* Datei: typo3/sysext/t3skin/ templates/login.html
Zeile 24: Zeile 47:
 
  $GLOBALS['TBE_STYLES']['htmlTemplates']['templates/ login.html'] = 'EXT:extKey/res/login.html';
 
  $GLOBALS['TBE_STYLES']['htmlTemplates']['templates/ login.html'] = 'EXT:extKey/res/login.html';
  
RELOGIN IM BE  
+
==== RELOGIN IM BE ====
 
* Overlay statt PopUp  
 
* Overlay statt PopUp  
 
* Nur noch Eingabe von Passwort nötig  
 
* Nur noch Eingabe von Passwort nötig  
 
* Bei Klick auf „Logout“ erfolgt Weiterleitung auf Login-Screen
 
* Bei Klick auf „Logout“ erfolgt Weiterleitung auf Login-Screen
  
KOSMETIK IM BE  
+
==== KOSMETIK IM BE ====
 
* Flash Messages im BE  
 
* Flash Messages im BE  
 
* Buttons mit 3D-Effekt
 
* Buttons mit 3D-Effekt
 
* date2cal ist nun im Core integriert
 
* date2cal ist nun im Core integriert
 
      
 
      
CONTENT ELEMENT MEDIA  
+
==== CONTENT ELEMENT MEDIA ====
 
* Über das neue Content Element „Media“ können nun einfach Videos, Audio-Files oder Flash eingebunden werden  
 
* Über das neue Content Element „Media“ können nun einfach Videos, Audio-Files oder Flash eingebunden werden  
 
* Es können zusätzliche Paramater übergeben werden  
 
* Es können zusätzliche Paramater übergeben werden  
Zeile 41: Zeile 64:
 
==== FILELIST-MODUL ====  
 
==== FILELIST-MODUL ====  
  
MASS FILE UPLOADER  
+
=====MASS FILE UPLOADER=====
 
* Upload von mehreren Dateien gleichzeitig möglich
 
* Upload von mehreren Dateien gleichzeitig möglich
 
      
 
      
SUGGESTS BEI BE-FORMS  
+
====SUGGESTS BEI BE-FORMS ====
 
* Bei manchen Formularelementen wird AJAX verwendet um Ergebnisse anzuzeigen
 
* Bei manchen Formularelementen wird AJAX verwendet um Ergebnisse anzuzeigen
 
      
 
      
EXTENSION MANAGER  
+
====EXTENSION MANAGER====
 
* select/deselect all beim Installieren von Extensions
 
* select/deselect all beim Installieren von Extensions
 
      
 
      
BENUTZERGRUPPE  
+
====BENUTZERGRUPPE ====
 
* Dateirechte nun auch per (Backend-)Benutzergruppe einstellbar (und nicht nur per User wie früher)
 
* Dateirechte nun auch per (Backend-)Benutzergruppe einstellbar (und nicht nur per User wie früher)
 
      
 
      
SAVEDOCNEW  
+
====SAVEDOCNEW ====
 
* saveDocNew per Default für alle Tabellen aktiv  
 
* saveDocNew per Default für alle Tabellen aktiv  
 
* früher (Abschalten mit 0): options { saveDocNew.pages = 1 bzw. 0 }
 
* früher (Abschalten mit 0): options { saveDocNew.pages = 1 bzw. 0 }
 
      
 
      
CACHING FRAMEWORK  
+
===CACHING FRAMEWORK===
 
* Caching Framework für individuelle Speicherung  
 
* Caching Framework für individuelle Speicherung  
  
Zeile 66: Zeile 89:
 
* legt 6 neue Tabellen an => beim Update beachten
 
* legt 6 neue Tabellen an => beim Update beachten
 
      
 
      
CE UPLOADS (FILELIST)  
+
===CE UPLOADS (FILELIST) ===
 
* „Read from path“ wurde bislang nicht per TS ausgewertet  
 
* „Read from path“ wurde bislang nicht per TS ausgewertet  
 
* fileadmin/users/{TSFE:fe_user|user|username}/  
 
* fileadmin/users/{TSFE:fe_user|user|username}/  
Zeile 77: Zeile 100:
 
  tt_content.uploads.20.filesize.labels = Bytes | KB | MB | GB
 
  tt_content.uploads.20.filesize.labels = Bytes | KB | MB | GB
 
      
 
      
LIST VIEW COLLAPSE  
+
===LIST VIEW COLLAPSE ===
 
* Tables können im ListView zugeklappt werden
 
* Tables können im ListView zugeklappt werden
 
      
 
      
LIST VIEW LIMITS  
+
===LIST VIEW LIMITS ===
 
* Im Modul „List“ wurden bisher die Limits hartkodiert  
 
* Im Modul „List“ wurden bisher die Limits hartkodiert  
 
* Zugriff nun über UserTS möglich  
 
* Zugriff nun über UserTS möglich  
Zeile 86: Zeile 109:
 
  mod.web_list.itemsLimitPerTable = 10  
 
  mod.web_list.itemsLimitPerTable = 10  
  
REDIRECTION STATUS CODE  
+
===REDIRECTION STATUS CODE===
 
* Beim Anlegen eines Domain-Records kann nun auch der HTTP-Statuscode eingestellt werden
 
* Beim Anlegen eines Domain-Records kann nun auch der HTTP-Statuscode eingestellt werden
  
SYS ACTIONS  
+
===SYS ACTIONS ===
 
* Wenn SysActions installiert sind und Actions definiert wurden, werden diese in der Taskleiste oben rechts angezeigt.
 
* Wenn SysActions installiert sind und Actions definiert wurden, werden diese in der Taskleiste oben rechts angezeigt.
 
      
 
      
SPRACHEN DEAKTIVIEREN  
+
===SPRACHEN DEAKTIVIEREN===
 
* Im PageTS kann nun festgelegt werden, welche Sprachen im Seitenbaum nicht mehr als Übersetzung angelegt werden können  
 
* Im PageTS kann nun festgelegt werden, welche Sprachen im Seitenbaum nicht mehr als Übersetzung angelegt werden können  
 
* Dadurch Steuerung, welche Sprachen wo angelegt werden  
 
* Dadurch Steuerung, welche Sprachen wo angelegt werden  
 
* mod.SHARED.disableLanguages = ID1,ID2,ID3  
 
* mod.SHARED.disableLanguages = ID1,ID2,ID3  
 
      
 
      
BE LOCKDOWN  
+
===BE LOCKDOWN===
 
* Das Backend kann zu Maintanance-Zwecken komplett abgesperrt werden  
 
* Das Backend kann zu Maintanance-Zwecken komplett abgesperrt werden  
 
* Datei anlegen: typo3conf/LOCK_BACKEND oder CLI script lowlevel_admin  
 
* Datei anlegen: typo3conf/LOCK_BACKEND oder CLI script lowlevel_admin  
 
      
 
      
KEEP ITEMS  
+
===KEEP ITEMS ===
  
 
  TCEFORM.<table>.< eld>.keepItems  
 
  TCEFORM.<table>.< eld>.keepItems  
Zeile 109: Zeile 132:
 
  TCEFORM.pages.doktype { keepItems = 1,2,255 }
 
  TCEFORM.pages.doktype { keepItems = 1,2,255 }
 
      
 
      
SERVICES IN CONFIGURATION  
+
===SERVICES IN CONFIGURATION ===
 
* Im Modul „Configuration“ sind nun auch die Services zu finden
 
* Im Modul „Configuration“ sind nun auch die Services zu finden
 
      
 
      
CONTENT ELEMENT WIZARD  
+
===CONTENT ELEMENT WIZARD===
 
* Der „New Content Element Wizard“ ist nun komplett durch PageTSconfig konfigurierbar  
 
* Der „New Content Element Wizard“ ist nun komplett durch PageTSconfig konfigurierbar  
 
* Tabs (statt Liste) durch  
 
* Tabs (statt Liste) durch  
Zeile 138: Zeile 161:
 
  }  
 
  }  
 
  mod.wizards.newContentElement.wizardItems.myGroup.show := addToList(customText  
 
  mod.wizards.newContentElement.wizardItems.myGroup.show := addToList(customText  
 
+
</pre>
SYSTEM-EXTENSIONS
+
===SYSTEM-EXTENSIONS===
 
* Durch Auslagerung von Core-Funktionalitäten in System- Extension wird die Performance gesteigert  
 
* Durch Auslagerung von Core-Funktionalitäten in System- Extension wird die Performance gesteigert  
 
* Simulate Static Documents  
 
* Simulate Static Documents  
Zeile 146: Zeile 169:
 
  options.contextMenu.pageTree.disableItems = versioning
 
  options.contextMenu.pageTree.disableItems = versioning
  
T3EDITOR  
+
===T3EDITOR ===
 
* Der TypoScript-Editor (t3editor) kann nun auch Code- Completion und nicht nur Syntax-Highlighting  
 
* Der TypoScript-Editor (t3editor) kann nun auch Code- Completion und nicht nur Syntax-Highlighting  
 
* Zudem kann man mittels CMD+S (STRG+S) speichern
 
* Zudem kann man mittels CMD+S (STRG+S) speichern
  
RECYCLER  
+
===RECYCLER ===
 
* Recycler (muss aktiviert werden)  
 
* Recycler (muss aktiviert werden)  
 
* auf ExtJS Basis
 
* auf ExtJS Basis
 
      
 
      
REPORTS
+
===REPORTS===
 
* System-Extension: Reports (muss installiert werden)
 
* System-Extension: Reports (muss installiert werden)
 
      
 
      
SCHEDULER  
+
===SCHEDULER ===
 
* System-Extension: scheduler  
 
* System-Extension: scheduler  
 
* Zeitgesteuerte Ausführung von Tasks möglich  
 
* Zeitgesteuerte Ausführung von Tasks möglich  
  
  */15 * * * * /usr/local/bin/php /home/www/typo3/cli_dispatch.phpsh scheduler
+
  /15 * * * * /usr/local/bin/php /home/www/typo3/cli_dispatch.phpsh scheduler
  
 
* Neuen Task definieren:  
 
* Neuen Task definieren:  
Zeile 170: Zeile 193:
 
   }  
 
   }  
 
}  
 
}  
 +
</pre>
 
* Task zufügen
 
* Task zufügen
 
      
 
      
FRONTEND EDITING  
+
===FRONTEND EDITING ===
 
* feeditadvanced (normale Extension)  
 
* feeditadvanced (normale Extension)  
 
* Installation reicht zur Aktivierung  
 
* Installation reicht zur Aktivierung  
Zeile 182: Zeile 206:
 
* Neues Content-Element durch Drag&Drop möglich
 
* Neues Content-Element durch Drag&Drop möglich
 
      
 
      
SICHERHEIT  
+
===SICHERHEIT ===
* Erhöhung der Sicherheit in FE und BE (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 41 - Die Neuerungen | Patrick Lobacher | 27.11.2009 4.3
+
* Erhöhung der Sicherheit in FE und BE  
 
* OpenID wurde als Login-Mechanismus eingebaut (Extension: openid)  
 
* OpenID wurde als Login-Mechanismus eingebaut (Extension: openid)  
 
* Salted Passwords gegen Rainbow-Table-Attacken (über die Extension: Salted user password hashes saltedpasswords)  
 
* Salted Passwords gegen Rainbow-Table-Attacken (über die Extension: Salted user password hashes saltedpasswords)  
 
* Möglichkeit Cookies gegen XSS zu schützen
 
* Möglichkeit Cookies gegen XSS zu schützen
 
      
 
      
RSA AUTHENTIFICATION  
+
====RSA AUTHENTIFICATION ====
 
* Systemextension rsaauth (muss installiert werden)  
 
* Systemextension rsaauth (muss installiert werden)  
 
* Verschlüsselung von FE- und BE-Login auch ohne SSL  
 
* Verschlüsselung von FE- und BE-Login auch ohne SSL  
Zeile 197: Zeile 221:
 
  $TYPO3_CONF_VARS[BE][loginSecurityLevel] = rsa
 
  $TYPO3_CONF_VARS[BE][loginSecurityLevel] = rsa
  
FE/BE-SESSION-COOKIES  
+
====FE/BE-SESSION-COOKIES ====
 
* Es kann eingestellt werden, dass FE/BE-Session-Cookies ausschließlich per HTTP angesprochen werden können und nicht mehr auch durch JavaScript  
 
* Es kann eingestellt werden, dass FE/BE-Session-Cookies ausschließlich per HTTP angesprochen werden können und nicht mehr auch durch JavaScript  
 
  $TYPO3_CONF_VARS['SYS']['cookieHttpOnly'] = true;  
 
  $TYPO3_CONF_VARS['SYS']['cookieHttpOnly'] = true;  
Zeile 205: Zeile 229:
 
  (0 = unverändert / 1 = Übertragung des Cookies nur bei SSL)
 
  (0 = unverändert / 1 = Übertragung des Cookies nur bei SSL)
 
      
 
      
TYPOSCRIPT  
+
===TYPOSCRIPT ===
 
* Neue und geänderte Optionen
 
* Neue und geänderte Optionen
 
      
 
      
TS: ABS REF PREFIX  
+
====TS: ABS REF PREFIX ====
 
* Beispielsweise bei RealURL sollte man config.baseURL einsetzen um korrekte Links zu erhalten  
 
* Beispielsweise bei RealURL sollte man config.baseURL einsetzen um korrekte Links zu erhalten  
 
* Manche Clients werten das <base>-Tag nicht aus  
 
* Manche Clients werten das <base>-Tag nicht aus  
Zeile 215: Zeile 239:
 
  $TYPO3_CONF_VARS['FE']['additionalAbsRefPre xDirectories']  
 
  $TYPO3_CONF_VARS['FE']['additionalAbsRefPre xDirectories']  
  
TS: MAX  
+
====TS: MAX ====
 
  XY = [10.w]+[20.w], max([10.h], [20.h])  
 
  XY = [10.w]+[20.w], max([10.h], [20.h])  
 
* max-Funktion gibt das Maximum zweier Werte zurück  
 
* max-Funktion gibt das Maximum zweier Werte zurück  
 
* sinnvoll, beispielsweise im GIFBUILDER, da die Ausmaße des Bildes ja von dynamischen Größen abhängen können
 
* sinnvoll, beispielsweise im GIFBUILDER, da die Ausmaße des Bildes ja von dynamischen Größen abhängen können
 
      
 
      
TS: TARGET FÜR LINKS  
+
====TS: TARGET FÜR LINKS ====
 
* Einfaches Setzen des Target für Links zu internen Files (nicht Seiten!)  
 
* Einfaches Setzen des Target für Links zu internen Files (nicht Seiten!)  
 
  config.fileTarget = _blank
 
  config.fileTarget = _blank
 
      
 
      
TS: DEFAULT GET-VARS  
+
====TS: DEFAULT GET-VARS ====
 
* Es ist nun möglich, Default-Werte für GET-Parameter festzulegen  
 
* Es ist nun möglich, Default-Werte für GET-Parameter festzulegen  
 
  config.linkVars = L  
 
  config.linkVars = L  
 
  config.defaultGetVars { tx_extension_pi1.variable = 2 L=1 }
 
  config.defaultGetVars { tx_extension_pi1.variable = 2 L=1 }
 
      
 
      
TS: HMENU  
+
====TS: HMENU ====
 
* Über eine TS-Option kann die Reihenfolge der Menüeinträge umgedreht werden  
 
* Über eine TS-Option kann die Reihenfolge der Menüeinträge umgedreht werden  
 
  HMENU.special.reverseOrder =1
 
  HMENU.special.reverseOrder =1
 
      
 
      
TS: CONDITIONS  
+
====TS: CONDITIONS ====
 
* Nun auch Conditions in TSconfig möglich  
 
* Nun auch Conditions in TSconfig möglich  
 
* Neue Vergleiche: # Jetzt schon möglich  
 
* Neue Vergleiche: # Jetzt schon möglich  
Zeile 239: Zeile 263:
 
  #Neu [globalVar = GP:test <= 1] [globalVar = GP:test >= 1] [globalVar = GP:test == 1] [globalVar = GP:test != 1]  
 
  #Neu [globalVar = GP:test <= 1] [globalVar = GP:test >= 1] [globalVar = GP:test == 1] [globalVar = GP:test != 1]  
 
      
 
      
TS: GMENU  
+
====TS: GMENU ====
 
* wrapItemAndSub nun auch für GMENU verfügbar  
 
* wrapItemAndSub nun auch für GMENU verfügbar  
 
<pre>
 
<pre>
Zeile 251: Zeile 275:
 
           10 = TEXT
 
           10 = TEXT
 
           10 {
 
           10 {
             text. eld = title         }      }      ACT < .NO   ACT = 1       ACT.allWrap >       ACT.wrapItemAndSub = <li>|</li>   }   2 < .1 } (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 52
+
             text. eld = title
    TS: JUMPURL AUCH MIT 301 jumpURL sorgt dafür, dass eine Datei nicht direkt verlinkt wird, sondern durch das Framework ausgeliefert wird (dadurch können beispielsweise die Klicks gezählt werden) Bislang immer Status-Code 302 (Moved temporarily) Nun auch 301 (Moved permanently) o.a. möglich TSFE.jumpURL_HTTPStatusCode = 302 (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 53
+
          }  
    CSS STYLED CONTENT • Die CSS Styled Content TypoScript Templates wurden überarbeitet und dabei insbesondere verschlankt Ältere Versionen können nun direkt als Static Template eingebunden werden (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 54
+
       }
     TS: INCLUDES • Die Möglichkeiten der Includes von JS und CSS wurden stark erweitert (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 55
+
       ACT < .NO
    EXTENSION-ENTWICKLUNG Neuerungen und Änderungen (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 56 - Die Neuerungen | Patrick Lobacher | 27.11.2009 4.3
+
      ACT = 1
    EXTBASE UND FLUID • Extbase und Fluid als Backport zu FLOW3 • Extbase: Framework um Extensions (Plugins und Module) zu programmieren - MVC (Model View Controller) bzw. DDD (Domain Driven Design) • Fluid:Templating Engine (ersetzt bisherigen Marker/ Subparts-Mechanismus) Beide sind unabhängig voneinander einsetzbar (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 57
+
      ACT.allWrap >
    AUTOLOADER Autoloader für PHP Klassen im Core und Extensions Neue Datei: ext_autoload.php im Rootverzeichnis einer Extension $extensionClassesPath = t3lib_extMgm::extPath('blog_example') . 'Classes/'; return array( 'tx_blogexample_viewhelpers_abstractbackendviewhelper' => $extensionClassesPath . 'ViewHelpers/AbstractBackendViewHelper.php', ); (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 58
+
      ACT.wrapItemAndSub = <li>|</li>
     NEUER STATE FÜR EXTENSIONS Neben den States „alpha“ „beta“, „stable“, „experimental“ und „deprecated“ gibt es nun einen neuen „excludeFromUpdates“ => Schreibschutz für diese Extension Eintrag in ext_emconf.php $EM_CONF[$_EXTKEY] = array( ... 'state' => 'excludeFromUpdates', ... ); (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 59
+
    }
     EXTJS Integration von Ext JS als Widget Library Ext JS is a cross-browser JavaScript library for building rich internet applications Damit ist es möglich, Interface-Elemente schnell und unkompliziert zu erstellen (wie Grids, Dialoge, Panels, …) Momentan Einsatz im Logout-Dialog, Recycler, ... typo3/contrib/extjs/ BE von TYPO3 5.0 basiert komplett auf Ext JS (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 60
+
    2 < .1
     EID OPTIONEN Beim Erstellen von EID-Scripts (beispielsweise für AJAX-Calls) gibt es nun weitere Funktionen tslib_eidtools::initLanguage() Initialisiert die Spracheverwaltung und deren Methoden tslib_eidtools::initTCA() lädt das TCA tslib_eidtools::getTSFE() Initialisiert das TSFE (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 61
+
}
     JS IM BE LADEN $this->doc->getPageRenderer()->loadPrototype(); $this->doc->getPageRenderer()->loadScriptaculous(); $this->doc->getPageRenderer()->loadScriptaculous ('effects,dragdrop'); $this->doc->getPageRenderer()->loadExtJS(); $this->doc->extJsCode[] =… (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 62
+
</pre>
     DEPRECATION LOG Aufzeichnung für veraltete Funktionen (deprecation log) typo3conf/deprecation_xxxxx.log 30-07-09 19:37: t3lib_div:: xed_lgd() - since TYPO3 4.1 - Works ONLY for single-byte charsets! Use t3lib_div:: xed_lgd_cs() instead - tx_t3quixplorer_module1->main#355 // tx_t3quixplorer_module1- >moduleContent#210 // t3quixplorer_listdir->main#328 // t3lib_div:: xed_lgd#494 // t3lib_div::logDeprecatedFunction#567 (t3lib/class.t3lib_div.php#566) (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 63
+
 
     ENABLE CONTROLS Für den TCA-Typ „inline“ gibt es eine neue Section „enableControls“ mit der die Controls de niert werden können 'con g' => array(  'type' => 'inline', ...  'appearance' => array(   'enabledControls' => array(   'new' => false,   'hide' => true,   'info' => false,   'new' => true, 'dragdrop' => false,   'sort' => true,   'hide' => false,   'delete' => true,   'localize' => false,   ), ), ), (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 64
+
====TS: JUMPURL AUCH MIT 301====
    API Neuerungen an der TYPO3 API (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 65 - Die Neuerungen | Patrick Lobacher | 27.11.2009 4.3
+
* jumpURL sorgt dafür, dass eine Datei nicht direkt verlinkt wird, sondern durch das Framework ausgeliefert wird (dadurch können beispielsweise die Klicks gezählt werden)  
     API: CURRENT HOST if (t3lib_div::isOnCurrentHost($url)) { // Mache irgendwas } Überprüft ob eine gegebene URL in der TYPO3-Host liegt (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 66
+
* Bislang immer Status-Code 302 (Moved temporarily)  
     API: COUNT ROWS Neuer API-Befehl in der t3lib_db um schnell die Anzahl zu ermitteln $countPages = $GLOBALS[‘TYPO3_DB’]->exec_SELECTcountRows(‘*’, ‘pages’, ‘deleted = 0’); (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 67
+
* Nun auch 301 (Moved permanently) o.a. möglich  
     API: PALETTES Schnelle Möglichkeit, Felder zu Paletten hinzuzufügen t3lib_extMgm::addNewFieldsToAllPalettesOfField($table, $ eld, $addFields, $insertionPosition = ''); t3lib_extMgm::addNewFieldsToPalette($table, $palette, $addFields, $insertionPosition = ''); (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 68
+
* TSFE.jumpURL_HTTPStatusCode = 302  
     API: NEUE REDIRECTS t3lib_utility_Http::redirect($url, t3lib_div::HTTP_STATUS_303); Möglich sind die Konstanten (Pre x: t3lib_utility_Http::) HTTP_STATUS_100, HTTP_STATUS_101 HTTP_STATUS_200, HTTP_STATUS_201, ..., HTTP_STATUS_206 HTTP_STATUS_300, HTTP_STATUS_301, ..., HTTP_STATUS_307 HTTP_STATUS_400, HTTP_STATUS_401, ..., HTTP_STATUS_417 HTTP_STATUS_500, HTTP_STATUS_501, ..., HTTP_STATUS_505 (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 69
+
   
    API: USER / USER_INT Dynamische Umwandlung zwischen USER und USER_INT mittels convertToUSER:INT() möglich • if ($this->cObj->getUserObjType() == tslib_cObj::OT_USER) {   $content = 'Ich bin ein USER Objekt.';   if (!$this->conf['allowCaching']) {     $this->cObj->convertToUSER_INT();     return '';  } } else {   $content .= 'Nun bin ich ein USER_INT Objekt'; } (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 70
+
====TS: INCLUDES ====
    SINGLETON t3lib_div::makeInstance($class) liefert Singleton zurück, wenn die Klasse das Interface t3lib_singleton implementiert (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 71
+
* Die Möglichkeiten der Includes von JS und CSS wurden stark erweitert
     HOOKS Neue Hooks in TYPO3 4.3 (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 72 - Die Neuerungen | Patrick Lobacher | 27.11.2009 4.3
+
   
     API: NEUE HOOKS getSingleField_beforeRender In der Funktion getSingleField_SW, wird aufgerufen, bevor ein Feld gerendert wird. Die Klasse wird zufügt zum $TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/ class.t3lib_tceforms.php']['getSingleFieldClass'] array und die zugehörige Funktion lautet getSingleField_beforeRender(). Kann benutzt werden, um eigenes TCA-Prozessing vor dem Rendern des Feldes durchzuführen (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 73
+
===CSS STYLED CONTENT ===
    API: NEUE HOOKS • tt_content_drawItem Die Funktion tt_content_drawItem() bei tx_cms_layout kann verwendet werden um den Preview eigener Content-Types (CTypes) zu realisieren. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/ layout/class.tx_cms_layout.php'] ['tt_content_drawItem_default'] (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 74
+
* Die CSS Styled Content TypoScript Templates wurden überarbeitet und dabei insbesondere verschlankt  
    API: NEUE HOOKS • ClearCacheMenu • Man kann über diesen Hook eigene Einträge in das „Clear-Cache-Menü“ einbringen, indem man das backend_cacheActionsHook Interface implementiert. Der Hool wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] ['additionalBackendItems']['cacheActions'] (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 75
+
* Ältere Versionen können nun direkt als Static Template eingebunden werden  
    API: NEUE HOOKS • preprocessRequest • Dieser Hook wird in der Datei index_ts.php deklariert und kann verwendet werden um eine eigene Processing- Strategie festzulegen. So ist es beispielsweise damit möglich, statische Seiten dann auszuliefern, wenn kein User eingeloggt ist und im Falle eines Logins den Request wie gewohnt an TYPO3 zur weiteren Verarbeitung zu leiten. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/ index_ts.php']['preprocessRequest'] (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 76
+
 
    API: NEUE HOOKS • makeQueryArray • Hook in der Funktion makeQueryArray() der Klasse class.db_list.inc. Damit können die Query-Parts modi ziert werden. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS'] ['SC_OPTIONS'] ['typo3/class.db_list.inc']['makeQueryArray'] (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 77
+
===EXTENSION-ENTWICKLUNG===
    API: NEUE HOOKS • Docheader buttons Mit diesem Hook können zusätzliche Buttons zum Doc- Header (obere Zeile im TCEFORMS) zugefügt werden - damit werden bisherige XCLASS-Ansätze hinfällig. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] ['typo3/template.php']['docHeaderButtonsHook'] (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 78
+
* Neuerungen und Änderungen
    API: NEUE HOOKS • wrapTitle • Dieser Hook wurde zur wrapTitle Funktion der Klasse class.webPageTree.php zugefügt. Dies kann verwendet werden um den Seitentitel im Seitenbaum während des Renderings anzupassen. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] ['typo3/class.webpagetree.php']['pageTitleOverlay'] (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 79
+
      
    API: NEUE HOOKS • debug_typo3PrintError • Über diesen Hook können die Fehlermeldung modi ziert werden, bevor diese zum User gesendet werden. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] ['t3lib/class.t3lib_timetrack.php']['debug_typo3PrintError'] (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 80
+
====EXTBASE UND FLUID ====
    API: NEUE HOOKS • getPage • Der Hook in der Funktion getPage() der Klasse t3lib_page erlaubt die Manipulation der Page UID bevor die Datenbank-Zeile der Seite geholt wird. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] ['t3lib/class.t3lib_page.php']['getPage'] (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 81
+
* Extbase und Fluid als Backport zu FLOW3
    API: NEUE HOOKS • getImgResource • Über diesen Hook können generierte Bilder vor verarbeitet werden - beispielsweise durch externe Tool oder Optionen die in TYPO3 nicht zur Verfügung stehen Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/ class.tslib_content.php']['getImgResource'] und die zugehörige Klasse muss das Interface tslib_cObj_getImgResourceHook implementieren (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 82
+
* Extbase: Framework um Extensions (Plugins und Module) zu programmieren - MVC (Model View Controller) bzw. DDD (Domain Driven Design)  
    QUELLEN Quellen für diese Präsentation (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 83 - Die Neuerungen | Patrick Lobacher | 27.11.2009 4.3
+
* Fluid:Templating Engine (ersetzt bisherigen Marker/ Subparts-Mechanismus)  
    QUELLEN • Dan‘s Blog http://danosipov.com/blog/ TYPO3 Bug-Tracker http://bugs.typo3.org TYPO3 Changelog http://forge.typo3.org/repositories/entry/typo3v4-core/ trunk/ChangeLog • The Internet itself (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 84
+
* Beide sind unabhängig voneinander einsetzbar
 +
   
 +
====AUTOLOADER ====
 +
* Autoloader für PHP Klassen im Core und Extensions  
 +
* Neue Datei: ''ext_autoload.php'' im Rootverzeichnis einer Extension  
 +
$extensionClassesPath = t3lib_extMgm::extPath('blog_example') . 'Classes/';
 +
return array( 'tx_blogexample_viewhelpers_abstractbackendviewhelper' => $extensionClassesPath . 'ViewHelpers/AbstractBackendViewHelper.php', );
 +
      
 +
====NEUER STATE FÜR EXTENSIONS ====
 +
* Neben den States „alpha“ „beta“, „stable“, „experimental“ und „deprecated“ gibt es nun einen neuen „excludeFromUpdates“ => Schreibschutz für diese Extension  
 +
* Eintrag in ext_emconf.php  
 +
$EM_CONF[$_EXTKEY] = array( ... 'state' => 'excludeFromUpdates', ... );
 +
      
 +
====EXTJS ====
 +
* Integration von Ext JS als Widget Library  
 +
* Ext JS is a cross-browser JavaScript library for building rich internet applications  
 +
* Damit ist es möglich, Interface-Elemente schnell und unkompliziert zu erstellen (wie Grids, Dialoge, Panels, …)  
 +
* Momentan Einsatz im Logout-Dialog, Recycler, ...  
 +
* typo3/contrib/extjs/  
 +
* BE von TYPO3 5.0 basiert komplett auf Ext JS  
 +
      
 +
====EID OPTIONEN ====
 +
* Beim Erstellen von EID-Scripts (beispielsweise für AJAX-Calls) gibt es nun weitere Funktionen  
 +
tslib_eidtools::initLanguage()  
 +
* Initialisiert die Spracheverwaltung und deren Methoden  
 +
tslib_eidtools::initTCA()  
 +
* lädt das TCA  
 +
tslib_eidtools::getTSFE()  
 +
* Initialisiert das TSFE  
 +
      
 +
====JS IM BE LADEN ====
 +
$this->doc->getPageRenderer()->loadPrototype();
 +
$this->doc->getPageRenderer()->loadScriptaculous();
 +
$this->doc->getPageRenderer()->loadScriptaculous ('effects,dragdrop');
 +
$this->doc->getPageRenderer()->loadExtJS();
 +
$this->doc->extJsCode[] =…
 +
      
 +
====DEPRECATION LOG ====
 +
* Aufzeichnung für veraltete Funktionen (deprecation log)  
 +
* typo3conf/deprecation_xxxxx.log  
 +
30-07-09 19:37: t3lib_div:: xed_lgd() - since TYPO3 4.1 - Works ONLY for single-byte charsets! Use t3lib_div:: xed_lgd_cs() instead - tx_t3quixplorer_module1->main#355 // tx_t3quixplorer_module1- >moduleContent#210 // t3quixplorer_listdir->main#328 // t3lib_div:: xed_lgd#494 // t3lib_div::logDeprecatedFunction#567 (t3lib/class.t3lib_div.php#566)
 +
      
 +
====ENABLE CONTROLS ====
 +
* Für den TCA-Typ „inline“ gibt es eine neue Section „enableControls“ mit der die Controls de niert werden können  
 +
<pre>
 +
'config' => array(   
 +
  'type' => 'inline',
 +
  ...  'appearance' => array(
 +
    'enabledControls' => array(
 +
    'new' => false,
 +
    'hide' => true,
 +
    'info' => false,
 +
    'new' => true,
 +
    'dragdrop' => false,
 +
    'sort' => true,
 +
    'hide' => false,
 +
    'delete' => true,
 +
    'localize' => false,
 +
), ), ),
 +
</pre>
 +
 
 +
===API Neuerungen an der TYPO3 API===
 +
      
 +
====API: CURRENT HOST ====
 +
* if (t3lib_div::isOnCurrentHost($url)) { // Mache irgendwas }  
 +
* Überprüft ob eine gegebene URL in der TYPO3-Host liegt
 +
      
 +
====API: COUNT ROWS ====
 +
* Neuer API-Befehl in der t3lib_db um schnell die Anzahl zu ermitteln  
 +
* $countPages = $GLOBALS[‘TYPO3_DB’]->exec_SELECTcountRows(‘*’, ‘pages’, ‘deleted = 0’);
 +
      
 +
====API: PALETTES ====
 +
* Schnelle Möglichkeit, Felder zu Paletten hinzuzufügen  
 +
* t3lib_extMgm::addNewFieldsToAllPalettesOfField($table, $ eld, $addFields, $insertionPosition = '');  
 +
* t3lib_extMgm::addNewFieldsToPalette($table, $palette, $addFields, $insertionPosition = '');  
 +
      
 +
====API: NEUE REDIRECTS ====
 +
* t3lib_utility_Http::redirect($url, t3lib_div::HTTP_STATUS_303);  
 +
* Möglich sind die Konstanten (Pre x: t3lib_utility_Http::)  
 +
* HTTP_STATUS_100, HTTP_STATUS_101  
 +
* HTTP_STATUS_200, HTTP_STATUS_201, ..., HTTP_STATUS_206  
 +
* HTTP_STATUS_300, HTTP_STATUS_301, ..., HTTP_STATUS_307  
 +
* HTTP_STATUS_400, HTTP_STATUS_401, ..., HTTP_STATUS_417  
 +
* HTTP_STATUS_500, HTTP_STATUS_501, ..., HTTP_STATUS_505  
 +
   
 +
====API: USER / USER_INT ====
 +
 
 +
* Dynamische Umwandlung zwischen USER und USER_INT möglich mittels:
 +
<pre>
 +
convertToUSER:INT()
 +
if ($this->cObj->getUserObjType() == tslib_cObj::OT_USER) {
 +
  $content = 'Ich bin ein USER Objekt.';
 +
  if (!$this->conf['allowCaching']) {
 +
    $this->cObj->convertToUSER_INT();
 +
    return '';   
 +
  }  
 +
} else {
 +
  $content .= 'Nun bin ich ein USER_INT Objekt';  
 +
}  
 +
</pre>
 +
 
 +
===SINGLETON===
 +
t3lib_div::makeInstance($class)  
 +
liefert Singleton zurück, wenn die Klasse das Interface t3lib_singleton implementiert
 +
      
 +
===HOOKS Neue Hooks in TYPO3 4.3===
 +
      
 +
==== API: NEUE HOOKS ====
 +
getSingleField_beforeRender  
 +
* In der Funktion getSingleField_SW, wird aufgerufen, bevor ein Feld gerendert wird. Die Klasse wird zufügt zum $TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/ class.t3lib_tceforms.php']['getSingleFieldClass'] array und die zugehörige Funktion lautet getSingleField_beforeRender(). Kann benutzt werden, um eigenes TCA-Prozessing vor dem Rendern des Feldes durchzuführen  
 +
 
 +
tt_content_drawItem  
 +
* Die Funktion tt_content_drawItem() bei tx_cms_layout kann verwendet werden um den Preview eigener Content-Types (CTypes) zu realisieren. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/ layout/class.tx_cms_layout.php'] ['tt_content_drawItem_default']
 +
 
 +
ClearCacheMenu
 +
* Man kann über diesen Hook eigene Einträge in das „Clear-Cache-Menü“ einbringen, indem man das backend_cacheActionsHook Interface implementiert. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] ['additionalBackendItems']['cacheActions']  
 +
 
 +
preprocessRequest
 +
* Dieser Hook wird in der Datei index_ts.php deklariert und kann verwendet werden um eine eigene Processing- Strategie festzulegen. So ist es beispielsweise damit möglich, statische Seiten dann auszuliefern, wenn kein User eingeloggt ist und im Falle eines Logins den Request wie gewohnt an TYPO3 zur weiteren Verarbeitung zu leiten. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/ index_ts.php']['preprocessRequest']
 +
 
 +
makeQueryArray
 +
* Hook in der Funktion makeQueryArray() der Klasse class.db_list.inc. Damit können die Query-Parts modi ziert werden. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS'] ['SC_OPTIONS'] ['typo3/class.db_list.inc']['makeQueryArray']  
 +
 
 +
Docheader buttons  
 +
* Mit diesem Hook können zusätzliche Buttons zum Doc- Header (obere Zeile im TCEFORMS) zugefügt werden - damit werden bisherige XCLASS-Ansätze hinfällig. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] ['typo3/template.php']['docHeaderButtonsHook']  
 +
 
 +
wrapTitle
 +
* Dieser Hook wurde zur wrapTitle Funktion der Klasse class.webPageTree.php zugefügt. Dies kann verwendet werden um den Seitentitel im Seitenbaum während des Renderings anzupassen. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] ['typo3/class.webpagetree.php']['pageTitleOverlay']
 +
 
 +
debug_typo3PrintError
 +
* Über diesen Hook können die Fehlermeldung modi ziert werden, bevor diese zum User gesendet werden. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] ['t3lib/class.t3lib_timetrack.php']['debug_typo3PrintError']  
 +
 
 +
getPage
 +
* Der Hook in der Funktion getPage() der Klasse t3lib_page erlaubt die Manipulation der Page UID bevor die Datenbank-Zeile der Seite geholt wird. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] ['t3lib/class.t3lib_page.php']['getPage']  
 +
 
 +
getImgResource
 +
* Über diesen Hook können generierte Bilder vor verarbeitet werden - beispielsweise durch externe Tool oder Optionen die in TYPO3 nicht zur Verfügung stehen Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/ class.tslib_content.php']['getImgResource'] und die zugehörige Klasse muss das Interface tslib_cObj_getImgResourceHook implementieren  
 +
 
 +
===QUELLEN Quellen für diese Präsentation===
 +
* Dan‘s Blog http://danosipov.com/blog/  
 +
* TYPO3 Bug-Tracker http://bugs.typo3.org  
 +
* TYPO3 Changelog http://forge.typo3.org/repositories/entry/typo3v4-core/ trunk/ChangeLog
 +
* The Internet itself

Aktuelle Version vom 20. Juli 2011, 16:03 Uhr

http://www.slideshare.net/plobacher/typo3-43-die-neuerungen-im-berblick


Typo3 4.3 Die Neuerungen im Überblick[Bearbeiten]

Presentation Transcript

TYPO3 4.3 - Die Neuerungen | Patrick Lobacher | 27.11.2009 2

ÜBER TYPOFAKTUM

• GF Patrick Lobacher hat zahlreiche Bücher und Artikel über alle Aspekte von TYPO3 veröffentlicht - weitere sind in Vorbereitung

• Geschäftsbereiche

• TYPO3 Konzeption, Entwicklung, Programmierung, Integration (inkl. Extbase / Fluid / FLOW3)

• Consulting, Projektmanagement & Coaching

• Schulung (inkl. komplettes TYPO3-Curriculum von Anfäger bis Fortgeschrittene und Spezialschulungen sowie Firmen- und Individualschulungen)

• Print (Konzeption, Produktion)

Adresse: typofaktum unternehmenskommunikationfibelfortstr. 8 81667 münchen

tel 089 46 13 38 67

fax 089 46 13 38 68

email info@typofaktum.de

web

http://www.typofaktum.de (c) 2009 - typofaktum unternehmenskommunikation

BACKEND[Bearbeiten]

  • Neue Funktionen und Kosmetik

LOGIN SCREEN IM BE[Bearbeiten]

  • Login ist Skinable
  • Datei: typo3/sysext/t3skin/ templates/login.html
  • Eigener Skin wie folgt möglich
    • Neue Extension anlegen
    • Dort Datei anlegen: ext_tables.php
    • Datei anlegen (und default kopieren): res/login.html
    • Folgende Zeile hinzufügen (extKey anpassen)
$GLOBALS['TBE_STYLES']['htmlTemplates']['templates/ login.html'] = 'EXT:extKey/res/login.html';

RELOGIN IM BE[Bearbeiten]

  • Overlay statt PopUp
  • Nur noch Eingabe von Passwort nötig
  • Bei Klick auf „Logout“ erfolgt Weiterleitung auf Login-Screen

KOSMETIK IM BE[Bearbeiten]

  • Flash Messages im BE
  • Buttons mit 3D-Effekt
  • date2cal ist nun im Core integriert

CONTENT ELEMENT MEDIA[Bearbeiten]

  • Über das neue Content Element „Media“ können nun einfach Videos, Audio-Files oder Flash eingebunden werden
  • Es können zusätzliche Paramater übergeben werden
  • AlternativerInhalt kann ebenfalls angegeben werden

FILELIST-MODUL[Bearbeiten]

MASS FILE UPLOADER[Bearbeiten]
  • Upload von mehreren Dateien gleichzeitig möglich

SUGGESTS BEI BE-FORMS[Bearbeiten]

  • Bei manchen Formularelementen wird AJAX verwendet um Ergebnisse anzuzeigen

EXTENSION MANAGER[Bearbeiten]

  • select/deselect all beim Installieren von Extensions

BENUTZERGRUPPE[Bearbeiten]

  • Dateirechte nun auch per (Backend-)Benutzergruppe einstellbar (und nicht nur per User wie früher)

SAVEDOCNEW[Bearbeiten]

  • saveDocNew per Default für alle Tabellen aktiv
  • früher (Abschalten mit 0): options { saveDocNew.pages = 1 bzw. 0 }

CACHING FRAMEWORK[Bearbeiten]

  • Caching Framework für individuelle Speicherung
$TYPO3_CONF_VARS['SYS']['useCachingFramework'] = '1'; 
  • Nutzung von „memcached“ möglich => schnellerer Cache
  • memcached ist ein unter der BSD-Lizenz veröffentlichter Cache- Server zum allgemeinen Hinterlegen und Abholen von Daten aus dem Arbeitsspeicher
  • legt 6 neue Tabellen an => beim Update beachten

CE UPLOADS (FILELIST)[Bearbeiten]

  • „Read from path“ wurde bislang nicht per TS ausgewertet
  • fileadmin/users/{TSFE:fe_user|user|username}/
  • tt_content.uploads.20. lePath. eld = select_key tt_content.uploads.20. lePath.insertData = 1
  • Labels der Größenbezeichnung ändern durch
#constants 
styles.content.uploads.filesize.labels = Bytes | KB | MB | GB 
#setup 
tt_content.uploads.20.filesize.labels = Bytes | KB | MB | GB
   

LIST VIEW COLLAPSE[Bearbeiten]

  • Tables können im ListView zugeklappt werden

LIST VIEW LIMITS[Bearbeiten]

  • Im Modul „List“ wurden bisher die Limits hartkodiert
  • Zugriff nun über UserTS möglich
mod.web_list.itemsLimitSingleTable = 50 
mod.web_list.itemsLimitPerTable = 10 

REDIRECTION STATUS CODE[Bearbeiten]

  • Beim Anlegen eines Domain-Records kann nun auch der HTTP-Statuscode eingestellt werden

SYS ACTIONS[Bearbeiten]

  • Wenn SysActions installiert sind und Actions definiert wurden, werden diese in der Taskleiste oben rechts angezeigt.

SPRACHEN DEAKTIVIEREN[Bearbeiten]

  • Im PageTS kann nun festgelegt werden, welche Sprachen im Seitenbaum nicht mehr als Übersetzung angelegt werden können
  • Dadurch Steuerung, welche Sprachen wo angelegt werden
  • mod.SHARED.disableLanguages = ID1,ID2,ID3

BE LOCKDOWN[Bearbeiten]

  • Das Backend kann zu Maintanance-Zwecken komplett abgesperrt werden
  • Datei anlegen: typo3conf/LOCK_BACKEND oder CLI script lowlevel_admin

KEEP ITEMS[Bearbeiten]

TCEFORM.

.< eld>.keepItems
  • Angegebene (Select-)Felder werden behalten, alle anderen werden entfernt
TCEFORM.pages.doktype { keepItems = 1,2,255 }

SERVICES IN CONFIGURATION[Bearbeiten]

  • Im Modul „Configuration“ sind nun auch die Services zu finden

CONTENT ELEMENT WIZARD[Bearbeiten]

  • Der „New Content Element Wizard“ ist nun komplett durch PageTSconfig konfigurierbar
  • Tabs (statt Liste) durch
 mod.wizards.newContentElement.renderMode = tabs
 mod.wizards.newContentElement.wizardItems.common.elements { 
   header { icon = gfx/c_wiz/regular_text.gif title = Header description = Fügt einen Header hinzu tt_content_defValues { 
     CType = header } 
   } 
 }  
 mod.wizards.newContentElement.wizardItems.common.show := addToList(header)
  • Es sind ebenso neue Gruppen (Tabs) möglich - ebenso Vorbelegungen
 mod.wizards.newContentElement.wizardItems.myGroup { 
   header = typofaktum Contentelemente elements.customText { 
     icon = gfx/c_wiz/regular_text.gif 
     title = Erstes Element (Text) 
     description = Dieses Element sollte immer zuerst auf einer Seite beendet werden 
     tt_content_defValues { 
       CType = text bodytext ( <h2>Section Header</h2> <p class="bodytext">Lorem ipsum dolor sit amet, consectetur, sadipisci velit ...</p> ) 
       header = Section Header header_layout = 100 
     } 
   } 
 } 
 mod.wizards.newContentElement.wizardItems.myGroup.show := addToList(customText 

SYSTEM-EXTENSIONS[Bearbeiten]

  • Durch Auslagerung von Core-Funktionalitäten in System- Extension wird die Performance gesteigert
  • Simulate Static Documents
  • Frontend Editing
  • Versionierung & Workspaces als System-Extension (version) Versionierung im Kontext-Menü abschaltbar durch TSconfig:
options.contextMenu.pageTree.disableItems = versioning

T3EDITOR[Bearbeiten]

  • Der TypoScript-Editor (t3editor) kann nun auch Code- Completion und nicht nur Syntax-Highlighting
  • Zudem kann man mittels CMD+S (STRG+S) speichern

RECYCLER[Bearbeiten]

  • Recycler (muss aktiviert werden)
  • auf ExtJS Basis

REPORTS[Bearbeiten]

  • System-Extension: Reports (muss installiert werden)

SCHEDULER[Bearbeiten]

  • System-Extension: scheduler
  • Zeitgesteuerte Ausführung von Tasks möglich
/15 * * * * /usr/local/bin/php /home/www/typo3/cli_dispatch.phpsh scheduler
  • Neuen Task definieren:
class tx_myext_mytask extends tx_scheduler_Task { 
  public function execute() {
     ... 
  } 
} 
  • Task zufügen

FRONTEND EDITING[Bearbeiten]

  • feeditadvanced (normale Extension)
  • Installation reicht zur Aktivierung
  • Overlay-Menü bei RollOver mit Editieren, Neu, Verstecken, Löschen und Position ändern
  • Über „Angreifer“ Drag&Drop an andere Position möglich
  • Menüleiste für FE-Editing oben am Bildschirmrand
  • Ausschalten des FE-Editing oben rechts
  • Seiteneigenschaften und neue Seite anlegen oben links
  • Neues Content-Element durch Drag&Drop möglich

SICHERHEIT[Bearbeiten]

  • Erhöhung der Sicherheit in FE und BE
  • OpenID wurde als Login-Mechanismus eingebaut (Extension: openid)
  • Salted Passwords gegen Rainbow-Table-Attacken (über die Extension: Salted user password hashes saltedpasswords)
  • Möglichkeit Cookies gegen XSS zu schützen

RSA AUTHENTIFICATION[Bearbeiten]

  • Systemextension rsaauth (muss installiert werden)
  • Verschlüsselung von FE- und BE-Login auch ohne SSL
  • TYPO3 generiert ein KeyPair (Public, Private) und sendet den Public-Key an den Browser, der damit das Passwort verschlüsselt
  • TYPO3 entschlüsselt das Passwort mit dem Private-Key
  • Damit ist das Login auch in unsicheren Umgebungen sicher
$TYPO3_CONF_VARS[BE][loginSecurityLevel] = rsa

FE/BE-SESSION-COOKIES[Bearbeiten]

  • Es kann eingestellt werden, dass FE/BE-Session-Cookies ausschließlich per HTTP angesprochen werden können und nicht mehr auch durch JavaScript
$TYPO3_CONF_VARS['SYS']['cookieHttpOnly'] = true; 
  • Damit ist die Gefahr von XSS an dieser Stelle minimiert
  • Transfer des Cookies einschränken durch:
$TYPO3_CONF_VARS['SYS']['cookieSecure'] = 0 / 1 / 2 
(0 = unverändert / 1 = Übertragung des Cookies nur bei SSL)
   

TYPOSCRIPT[Bearbeiten]

  • Neue und geänderte Optionen

TS: ABS REF PREFIX[Bearbeiten]

  • Beispielsweise bei RealURL sollte man config.baseURL einsetzen um korrekte Links zu erhalten
  • Manche Clients werten das <base>-Tag nicht aus
  • Daher config.absRefPre x als Lösung (arbeitet für die Verzeichnisse typo3conf/ext/, media/ und / leadmin)
  • Erweiterung der Verzeichnisse durch:
$TYPO3_CONF_VARS['FE']['additionalAbsRefPre xDirectories'] 

TS: MAX[Bearbeiten]

XY = [10.w]+[20.w], max([10.h], [20.h]) 
  • max-Funktion gibt das Maximum zweier Werte zurück
  • sinnvoll, beispielsweise im GIFBUILDER, da die Ausmaße des Bildes ja von dynamischen Größen abhängen können

TS: TARGET FÜR LINKS[Bearbeiten]

  • Einfaches Setzen des Target für Links zu internen Files (nicht Seiten!)
config.fileTarget = _blank
   

TS: DEFAULT GET-VARS[Bearbeiten]

  • Es ist nun möglich, Default-Werte für GET-Parameter festzulegen
config.linkVars = L 
config.defaultGetVars { tx_extension_pi1.variable = 2 L=1 }
   

TS: HMENU[Bearbeiten]

  • Über eine TS-Option kann die Reihenfolge der Menüeinträge umgedreht werden
HMENU.special.reverseOrder =1
   

TS: CONDITIONS[Bearbeiten]

  • Nun auch Conditions in TSconfig möglich
  • Neue Vergleiche: # Jetzt schon möglich
[globalVar = GP:test = 1] [globalVar = GP:test < 1] [globalVar = GP:test > 1] 
#Neu [globalVar = GP:test <= 1] [globalVar = GP:test >= 1] [globalVar = GP:test == 1] [globalVar = GP:test != 1] 
   

TS: GMENU[Bearbeiten]

  • wrapItemAndSub nun auch für GMENU verfügbar
lib.graphMenu {
    1 = GMENU
    1 {
       wrap = <ul>|</ul>
       NO {
          allWrap = <li>|</li>
          XY = [10.w]+5,18
          10 = TEXT
          10 {
             text. eld = title
          } 
      }
      ACT < .NO
      ACT = 1
       ACT.allWrap >
       ACT.wrapItemAndSub = <li>|</li>
    }
    2 < .1
 }

TS: JUMPURL AUCH MIT 301[Bearbeiten]

  • jumpURL sorgt dafür, dass eine Datei nicht direkt verlinkt wird, sondern durch das Framework ausgeliefert wird (dadurch können beispielsweise die Klicks gezählt werden)
  • Bislang immer Status-Code 302 (Moved temporarily)
  • Nun auch 301 (Moved permanently) o.a. möglich
  • TSFE.jumpURL_HTTPStatusCode = 302

TS: INCLUDES[Bearbeiten]

  • Die Möglichkeiten der Includes von JS und CSS wurden stark erweitert

CSS STYLED CONTENT[Bearbeiten]

  • Die CSS Styled Content TypoScript Templates wurden überarbeitet und dabei insbesondere verschlankt
  • Ältere Versionen können nun direkt als Static Template eingebunden werden

EXTENSION-ENTWICKLUNG[Bearbeiten]

  • Neuerungen und Änderungen

EXTBASE UND FLUID[Bearbeiten]

  • Extbase und Fluid als Backport zu FLOW3
  • Extbase: Framework um Extensions (Plugins und Module) zu programmieren - MVC (Model View Controller) bzw. DDD (Domain Driven Design)
  • Fluid:Templating Engine (ersetzt bisherigen Marker/ Subparts-Mechanismus)
  • Beide sind unabhängig voneinander einsetzbar

AUTOLOADER[Bearbeiten]

  • Autoloader für PHP Klassen im Core und Extensions
  • Neue Datei: ext_autoload.php im Rootverzeichnis einer Extension
$extensionClassesPath = t3lib_extMgm::extPath('blog_example') . 'Classes/';
return array( 'tx_blogexample_viewhelpers_abstractbackendviewhelper' => $extensionClassesPath . 'ViewHelpers/AbstractBackendViewHelper.php', );
   

NEUER STATE FÜR EXTENSIONS[Bearbeiten]

  • Neben den States „alpha“ „beta“, „stable“, „experimental“ und „deprecated“ gibt es nun einen neuen „excludeFromUpdates“ => Schreibschutz für diese Extension
  • Eintrag in ext_emconf.php
$EM_CONF[$_EXTKEY] = array( ... 'state' => 'excludeFromUpdates', ... );
   

EXTJS[Bearbeiten]

  • Integration von Ext JS als Widget Library
  • Ext JS is a cross-browser JavaScript library for building rich internet applications
  • Damit ist es möglich, Interface-Elemente schnell und unkompliziert zu erstellen (wie Grids, Dialoge, Panels, …)
  • Momentan Einsatz im Logout-Dialog, Recycler, ...
  • typo3/contrib/extjs/
  • BE von TYPO3 5.0 basiert komplett auf Ext JS

EID OPTIONEN[Bearbeiten]

  • Beim Erstellen von EID-Scripts (beispielsweise für AJAX-Calls) gibt es nun weitere Funktionen
tslib_eidtools::initLanguage() 
  • Initialisiert die Spracheverwaltung und deren Methoden
tslib_eidtools::initTCA() 
  • lädt das TCA
tslib_eidtools::getTSFE() 
  • Initialisiert das TSFE

JS IM BE LADEN[Bearbeiten]

$this->doc->getPageRenderer()->loadPrototype();
$this->doc->getPageRenderer()->loadScriptaculous();
$this->doc->getPageRenderer()->loadScriptaculous ('effects,dragdrop');
$this->doc->getPageRenderer()->loadExtJS();
$this->doc->extJsCode[] =…
   

DEPRECATION LOG[Bearbeiten]

  • Aufzeichnung für veraltete Funktionen (deprecation log)
  • typo3conf/deprecation_xxxxx.log
30-07-09 19:37: t3lib_div:: xed_lgd() - since TYPO3 4.1 - Works ONLY for single-byte charsets! Use t3lib_div:: xed_lgd_cs() instead - tx_t3quixplorer_module1->main#355 // tx_t3quixplorer_module1- >moduleContent#210 // t3quixplorer_listdir->main#328 // t3lib_div:: xed_lgd#494 // t3lib_div::logDeprecatedFunction#567 (t3lib/class.t3lib_div.php#566)
   

ENABLE CONTROLS[Bearbeiten]

  • Für den TCA-Typ „inline“ gibt es eine neue Section „enableControls“ mit der die Controls de niert werden können
'config' => array(  
  'type' => 'inline',
  ...  'appearance' => array(
    'enabledControls' => array(
    'new' => false,
    'hide' => true,
    'info' => false,
    'new' => true,
    'dragdrop' => false,
    'sort' => true,
    'hide' => false,
    'delete' => true,
    'localize' => false,
 ), ), ),

API Neuerungen an der TYPO3 API[Bearbeiten]

API: CURRENT HOST[Bearbeiten]

  • if (t3lib_div::isOnCurrentHost($url)) { // Mache irgendwas }
  • Überprüft ob eine gegebene URL in der TYPO3-Host liegt

API: COUNT ROWS[Bearbeiten]

  • Neuer API-Befehl in der t3lib_db um schnell die Anzahl zu ermitteln
  • $countPages = $GLOBALS[‘TYPO3_DB’]->exec_SELECTcountRows(‘*’, ‘pages’, ‘deleted = 0’);

API: PALETTES[Bearbeiten]

  • Schnelle Möglichkeit, Felder zu Paletten hinzuzufügen
  • t3lib_extMgm::addNewFieldsToAllPalettesOfField($table, $ eld, $addFields, $insertionPosition = );
  • t3lib_extMgm::addNewFieldsToPalette($table, $palette, $addFields, $insertionPosition = );

API: NEUE REDIRECTS[Bearbeiten]

  • t3lib_utility_Http::redirect($url, t3lib_div::HTTP_STATUS_303);
  • Möglich sind die Konstanten (Pre x: t3lib_utility_Http::)
  • HTTP_STATUS_100, HTTP_STATUS_101
  • HTTP_STATUS_200, HTTP_STATUS_201, ..., HTTP_STATUS_206
  • HTTP_STATUS_300, HTTP_STATUS_301, ..., HTTP_STATUS_307
  • HTTP_STATUS_400, HTTP_STATUS_401, ..., HTTP_STATUS_417
  • HTTP_STATUS_500, HTTP_STATUS_501, ..., HTTP_STATUS_505

API: USER / USER_INT[Bearbeiten]

  • Dynamische Umwandlung zwischen USER und USER_INT möglich mittels:
convertToUSER:INT()
if ($this->cObj->getUserObjType() == tslib_cObj::OT_USER) {
   $content = 'Ich bin ein USER Objekt.';
   if (!$this->conf['allowCaching']) {
     $this->cObj->convertToUSER_INT();
     return '';   
   } 
} else {
   $content .= 'Nun bin ich ein USER_INT Objekt'; 
} 

SINGLETON[Bearbeiten]

t3lib_div::makeInstance($class) 

liefert Singleton zurück, wenn die Klasse das Interface t3lib_singleton implementiert

HOOKS Neue Hooks in TYPO3 4.3[Bearbeiten]

API: NEUE HOOKS[Bearbeiten]

getSingleField_beforeRender 
  • In der Funktion getSingleField_SW, wird aufgerufen, bevor ein Feld gerendert wird. Die Klasse wird zufügt zum $TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/ class.t3lib_tceforms.php']['getSingleFieldClass'] array und die zugehörige Funktion lautet getSingleField_beforeRender(). Kann benutzt werden, um eigenes TCA-Prozessing vor dem Rendern des Feldes durchzuführen
tt_content_drawItem 
  • Die Funktion tt_content_drawItem() bei tx_cms_layout kann verwendet werden um den Preview eigener Content-Types (CTypes) zu realisieren. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/ layout/class.tx_cms_layout.php'] ['tt_content_drawItem_default']
ClearCacheMenu 
  • Man kann über diesen Hook eigene Einträge in das „Clear-Cache-Menü“ einbringen, indem man das backend_cacheActionsHook Interface implementiert. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] ['additionalBackendItems']['cacheActions']
preprocessRequest 
  • Dieser Hook wird in der Datei index_ts.php deklariert und kann verwendet werden um eine eigene Processing- Strategie festzulegen. So ist es beispielsweise damit möglich, statische Seiten dann auszuliefern, wenn kein User eingeloggt ist und im Falle eines Logins den Request wie gewohnt an TYPO3 zur weiteren Verarbeitung zu leiten. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/ index_ts.php']['preprocessRequest']
makeQueryArray 
  • Hook in der Funktion makeQueryArray() der Klasse class.db_list.inc. Damit können die Query-Parts modi ziert werden. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS'] ['SC_OPTIONS'] ['typo3/class.db_list.inc']['makeQueryArray']
Docheader buttons 
  • Mit diesem Hook können zusätzliche Buttons zum Doc- Header (obere Zeile im TCEFORMS) zugefügt werden - damit werden bisherige XCLASS-Ansätze hinfällig. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] ['typo3/template.php']['docHeaderButtonsHook']
wrapTitle 
  • Dieser Hook wurde zur wrapTitle Funktion der Klasse class.webPageTree.php zugefügt. Dies kann verwendet werden um den Seitentitel im Seitenbaum während des Renderings anzupassen. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] ['typo3/class.webpagetree.php']['pageTitleOverlay']
debug_typo3PrintError 
  • Über diesen Hook können die Fehlermeldung modi ziert werden, bevor diese zum User gesendet werden. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] ['t3lib/class.t3lib_timetrack.php']['debug_typo3PrintError']
getPage 
  • Der Hook in der Funktion getPage() der Klasse t3lib_page erlaubt die Manipulation der Page UID bevor die Datenbank-Zeile der Seite geholt wird. Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] ['t3lib/class.t3lib_page.php']['getPage']
getImgResource 
  • Über diesen Hook können generierte Bilder vor verarbeitet werden - beispielsweise durch externe Tool oder Optionen die in TYPO3 nicht zur Verfügung stehen Der Hook wird deklariert in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/ class.tslib_content.php']['getImgResource'] und die zugehörige Klasse muss das Interface tslib_cObj_getImgResourceHook implementieren

QUELLEN Quellen für diese Präsentation[Bearbeiten]