TYPO3 Version 4.3: Unterschied zwischen den Versionen
| Zeile 3: | Zeile 3: | ||
== Typo3 4.3 Die Neuerungen im Überblick == | == Typo3 4.3 Die Neuerungen im Überblick == | ||
| + | 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 === | |
* 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 | ||
* AlternativerInhalt kann ebenfalls angegeben werden | * AlternativerInhalt kann ebenfalls angegeben werden | ||
| − | + | === 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 139: | Zeile 162: | ||
mod.wizards.newContentElement.wizardItems.myGroup.show := addToList(customText | mod.wizards.newContentElement.wizardItems.myGroup.show := addToList(customText | ||
| − | 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 | ||
| Zeile 172: | Zeile 195: | ||
* 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 205: | ||
* 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 (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 41 - Die Neuerungen | Patrick Lobacher | 27.11.2009 4.3 | ||
* OpenID wurde als Login-Mechanismus eingebaut (Extension: openid) | * OpenID wurde als Login-Mechanismus eingebaut (Extension: openid) | ||
| Zeile 188: | Zeile 211: | ||
* 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 220: | ||
$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 228: | ||
(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 238: | ||
$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 262: | ||
#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 274: | ||
10 = TEXT | 10 = TEXT | ||
10 { | 10 { | ||
| − | text. eld = title | + | text. eld = title |
| − | + | } | |
| − | CSS STYLED CONTENT | + | } |
| − | + | ACT < .NO | |
| − | EXTENSION-ENTWICKLUNG Neuerungen und Änderungen | + | ACT = 1 |
| − | EXTBASE UND FLUID | + | ACT.allWrap > |
| − | AUTOLOADER | + | ACT.wrapItemAndSub = <li>|</li> |
| − | NEUER STATE FÜR EXTENSIONS | + | } |
| − | EXTJS | + | 2 < .1 |
| − | EID OPTIONEN | + | } |
| − | JS IM BE LADEN | + | |
| − | DEPRECATION LOG | + | TS: JUMPURL AUCH MIT 301 |
| − | ENABLE CONTROLS | + | * 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 Neuerungen an der TYPO3 API | + | * Bislang immer Status-Code 302 (Moved temporarily) |
| − | API: CURRENT HOST | + | * Nun auch 301 (Moved permanently) o.a. möglich |
| − | API: COUNT ROWS | + | * TSFE.jumpURL_HTTPStatusCode = 302 |
| − | API: PALETTES | + | |
| − | API: NEUE REDIRECTS | + | CSS STYLED CONTENT |
| − | 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 | + | * Die CSS Styled Content TypoScript Templates wurden überarbeitet und dabei insbesondere verschlankt |
| + | * Ältere Versionen können nun direkt als Static Template eingebunden werden | ||
| + | |||
| + | TS: INCLUDES | ||
| + | * Die Möglichkeiten der Includes von JS und CSS wurden stark erweitert | ||
| + | |||
| + | EXTENSION-ENTWICKLUNG | ||
| + | * Neuerungen und Änderungen | ||
| + | |||
| + | 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 | ||
| + | |||
| + | 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 | ||
| + | '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 | ||
| + | |||
| + | 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 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 | ||
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 | 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 | ||
HOOKS Neue Hooks in TYPO3 4.3 (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 72 - Die Neuerungen | Patrick Lobacher | 27.11.2009 4.3 | HOOKS Neue Hooks in TYPO3 4.3 (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 72 - Die Neuerungen | Patrick Lobacher | 27.11.2009 4.3 | ||
Version vom 20. Juli 2011, 10:59 Uhr
http://www.slideshare.net/plobacher/typo3-43-die-neuerungen-im-berblick
Typo3 4.3 Die Neuerungen im Überblick
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
- Neue Funktionen und Kosmetik
LOGIN SCREEN IM BE
- 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
- Overlay statt PopUp
- Nur noch Eingabe von Passwort nötig
- Bei Klick auf „Logout“ erfolgt Weiterleitung auf Login-Screen
KOSMETIK IM BE
- Flash Messages im BE
- Buttons mit 3D-Effekt
- date2cal ist nun im Core integriert
CONTENT ELEMENT MEDIA
- Ü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
MASS FILE UPLOADER
- Upload von mehreren Dateien gleichzeitig möglich
SUGGESTS BEI BE-FORMS
- Bei manchen Formularelementen wird AJAX verwendet um Ergebnisse anzuzeigen
EXTENSION MANAGER
- select/deselect all beim Installieren von Extensions
BENUTZERGRUPPE
- Dateirechte nun auch per (Backend-)Benutzergruppe einstellbar (und nicht nur per User wie früher)
SAVEDOCNEW
- saveDocNew per Default für alle Tabellen aktiv
- früher (Abschalten mit 0): options { saveDocNew.pages = 1 bzw. 0 }
CACHING FRAMEWORK
- 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)
- „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
- Tables können im ListView zugeklappt werden
LIST VIEW LIMITS
- 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
- Beim Anlegen eines Domain-Records kann nun auch der HTTP-Statuscode eingestellt werden
SYS ACTIONS
- Wenn SysActions installiert sind und Actions definiert wurden, werden diese in der Taskleiste oben rechts angezeigt.
SPRACHEN DEAKTIVIEREN
- 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
- Das Backend kann zu Maintanance-Zwecken komplett abgesperrt werden
- Datei anlegen: typo3conf/LOCK_BACKEND oder CLI script lowlevel_admin
KEEP ITEMS
TCEFORM.
.< eld>.keepItems- Angegebene (Select-)Felder werden behalten, alle anderen werden entfernt
SERVICES IN CONFIGURATION
- Im Modul „Configuration“ sind nun auch die Services zu finden
CONTENT ELEMENT WIZARD
- 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 ( Section Header
Lorem ipsum dolor sit amet, consectetur, sadipisci velit ...
)
header = Section Header header_layout = 100
}
}
}
mod.wizards.newContentElement.wizardItems.myGroup.show := addToList(customText
SYSTEM-EXTENSIONS
* 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
* Der TypoScript-Editor (t3editor) kann nun auch Code- Completion und nicht nur Syntax-Highlighting
* Zudem kann man mittels CMD+S (STRG+S) speichern
RECYCLER
* Recycler (muss aktiviert werden)
* auf ExtJS Basis
REPORTS
* System-Extension: Reports (muss installiert werden)
SCHEDULER
* 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
* 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
* Erhöhung der Sicherheit in FE und BE (c) 2009 - typofaktum unternehmenskommunikation | TYPO3 41 - Die Neuerungen | Patrick Lobacher | 27.11.2009 4.3
* 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
* 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
* 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
* Neue und geänderte Optionen
TS: ABS REF PREFIX
* 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
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
* Einfaches Setzen des Target für Links zu internen Files (nicht Seiten!)
config.fileTarget = _blank
TS: DEFAULT GET-VARS
* 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
* Über eine TS-Option kann die Reihenfolge der Menüeinträge umgedreht werden
HMENU.special.reverseOrder =1
TS: CONDITIONS
* 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
* wrapItemAndSub nun auch für GMENU verfügbar
lib.graphMenu {
1 = GMENU
1 {
wrap = - |