************************************************************************ CHANGES & IMPROVEMENTS between TYPO3 4.3 and 4.4 (for technical details see ChangeLog) ************************************************************************ General ======= * Versioning: "Page" and "Branch" versioning has been disabled for all installations, because it is deprecated since TYPO3 4.2. If you still use one of these versioning types, make sure to set $TYPO3_CONF_VARS['BE']['elementVersioningOnly'] = FALSE in your localconf.php. Please be aware that this option will vanish with TYPO3 4.6 and that "Page" and "Branch" versioning is neither supported nor maintained any longer. * Versioning: The dummy "draft workspace" has been disabled for all installations. If you need it you can enable it again in the extension configuration of the "version" extension. * All CSS and JS files in the TYPO3 Backend are compressed now. This means that they are added up to a single file without unnecessary whitespace. This will reduce the count of requests drastically, which eventually leads to faster loading and better performance. CAUTION: If compressionLevel is configured ($TYPO3_CONF_VARS[TYPO3_MODE]['compressionLevel'] = 1 [1-9 for compression level or TRUE for "enabled"]) the files will be served with gzip compression. Be sure to enable / uncomment the needed configuration in your .htaccess file, also found in misc/advanced.htaccess. AddType "text/javascript" .gzip AddType "text/css" .gzip AddEncoding gzip .gzip IMPORTANT: If you have any trouble accessing the Backend after upgrading to TYPO3 4.4, make sure to clear the typo3temp/ directory manually or through the TYPO3 install tool. * There is now a complete new Backend skin for all backend modules, the login screen and the install tool. It is still called "t3skin", however due to the use of icon sprites and the refactoring of the CSS files, it is not possible anymore to run the TYPO3 Backend with the old backend skin (from 3.x) or with the look and feel from previous 4.x versions. If you have not installed any skins in your system, you will now see a completely unstyled TYPO3 Backend, no unneeded additional styles are loaded. * The static templates for some basic designs, that were part of the TYPO3 Core since TYPO3 3.5 are now moved to a system extension that is not included by default. If you are using one of these templates (GLUECK, GREEN, CANDIDATE etc) or one of the old table-based layouts for rendering content (like content (default) or plaintext rendering), make sure to install the system extension ("statictemplate") via the Install Tool. * The RTE has undergone major changes as UI components have been transformed into ExtJS widgets: 1. The RTE framework becomes an ExtJS Panel comprising the toolbar, the iframe, the textarea and the status bar. All components are ExtJS objects. 2. When BE textareas are resizable, the framework is resizable as a whole. In the FE, the framework is always resizable. 3. The toolbar dropdowns become ExtJS ComboBoxes. 4. The context menu becomes a configurable ExtJS Menu. 5. Color palettes become ExtJS ColorPalettes. 6. All dialogue windows become ExtJS windows. * The install tool is visually refactored and updated. It has now a different look and feel when accessing from outside the TYPO3 Backend and from within to be integrated better in the rest of the Backend. Also, the 1-2-3 installer process is now cleaned up to be in sync with the new UI elements. There is also a new hook in the installing process that allows to add or modify the existing steps in the installer to add more configuration options to a custom TYPO3 installation. * The task center module and all its components like Actions and Notes has undergone a complete refactoring, both visually and code-wise, and now has a clean API to add more elements to it. * Automatic version-numbers of CSS and JS files to avoid caching problems: This feature provides automatic numbering of CSS and JS files using the files modified timestamp. This way the file reference will change when a CSS or JS files is changed, and by this the browser and proxy will re-cache the file. This feature can be configured to include the timestamp within the filename (before .ext) or as a parameter to the file (default). If versioning is done directly inside the filename (by setting $TYPO3_CONF_VARS[BE][versionNumberInFilename] = TRUE) you need the following line as the first rewrite rule in .htaccess: # Rule for versioned static files (see $TYPO3_CONF_VARS[BE][versionNumberInFilename]) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ $1.$3 [L] IMPORTANT: This rule has to be the very first rule to work properly, at least it has to be placed before the "^typo3..." rewrite rule Developers can use this API for versioning of files in their own backend mods, by calling t3lib_div::createVersionNumberedFilename or using the core API for including files in the page renderer class. * Support for GDlib 1.x was completely dropped. Only GDlib 2.x is supported now, which is bundled with most PHP installations. * HTML5 is now officially supported. For the Frontend output simply use these two TypoScript lines in your Setup: config.doctype = html_5 config.xmlprologue = none Backend modules also allow HTML5 configuration, simply choose the doktype: $this->doc->docType = 'html_5'; Backend ======= * The TYPO3 Backend was moved into an ExtJS Viewport. This is one of the first steps in a sequence to ExtJSify the complete Backend. Currently this gives you the possibility to create your own left sidebar, like the page tree, in your backend modules. Also you can extend the viewport easily with own code to create e.g. a collapsable module menu. More information can be found in the TYPO3 Wiki and the official ExtJS viewport documentation. See these links: http://wiki.typo3.org/index.php/TYPO3Viewport http://www.extjs.com/deploy/dev/docs/ * Inline Records (IRRE Elements) are now loaded on demand, meaning only when they are opened. This should speed up the editing process drastically. * The t3editor code completion DB was updated to reflect the latest additions. Also the syntax highlighting engine is now extracted from the system extension so it can be used in other places of the TYPO3 Core as well. * A donation notice will be shown to administrators in the TYPO3 Backend on login after using TYPO3 for more than three months. This behaviour can be disabled completely - see $TYPO3_CONF_VARS[BE][allowDonateWindow]. * Most Icons used in the TYPO3 Backend are now rendered through so-called sprites. Instead of loading many image tags with single icons and therefore many http requests there are now only 6 sprite images (a sprite image is a big image with all icons included) that need to be loaded in the Backend. Image-tags got replaced by spans using the big sprite images with background and offset functionality. This reduces the HTTP and fileheader overhead of about 90% which results in a blasting fast Backend. For details about the new Icon Sprite API, have a look at t3lib/class.t3lib_iconworks.php. * The "bigButtons" (Edit page properties, Move page, ...) in the Page module are now disabled by default to have a cleaner interface. The old behavior can be restored by setting mod.web_layout.disableBigButtons = 0 in UserTSconfig or PageTSconfig. * The interface "backend_old" was completely removed. This was the BE interface from 4.1. As it wasn't maintained and didn't worked correct, all references are removed, so remaining interfaces for login are backend and frontend. * The extension manager option "Enable extensions without review (basic security check)" was completely removed as most extensions in TER weren't reviewed on a regular basis. Thus, when searching for an extension in TER through the Extension Manager, all matching extensions, not regarding the review state, are shown up. Frontend ======== * Indexed search no longer puts a double wrap around search rules in the advanced search form. This may require style changes if a default indexed search is used. * The system extensions "CSS Styled Content" (css_styled_content) and "Frontend User Login" (felogin) now have new manuals that reflect the current state of the extension. * The browser condition in TypoScript now delivers reliable information about the client browser. So now it's possible to make a condition for usage of Firefox, or even a webkit based browser. Compatibility ============= * Extbase: has been updated to support "Single Table Inheritance" which is a breaking change. In TYPO3 4.3, Extbase made a "best guess" for the table name if it was not the lowercased class name (simply by crawling the class hierarchy upwards trying to find a mapping rule or table). This "magic" was removed because It was very hard to understand what was happening; especially if there was an error. This behaviour is now changed and you define the recordType and the tableName through TypoScript now. See the typo3.projecty.typo3v4mvc mailing list for more details on this topic. * Extbase: Template filenames are expected to be UpperCamelCased from now on. Before, they were expected to be all lowercase. For a grace period there is still a fallback mechanism, so that your old template filenames will still work. But you should rename your templates from "myaction.html" to "MyAction.html" to make sure, that it still works in upcoming versions of Fluid! A message to the deprecation log is generated in case an "old" template name is found. * Support for GDlib 1.x was completely dropped, only GDlib 2.x is supported, which is bundled with most PHP installations. * Versioning: "Page" and "Branch" versioning has been disabled for all installations, because it is deprecated since TYPO3 4.2. If you still use one of these versioning types, make sure to set $TYPO3_CONF_VARS['BE']['elementVersioningOnly'] = FALSE in your localconf.php. Please be aware that this option will vanish with TYPO3 4.6 and that "Page" and "Branch" versioning is neither supported nor maintained any longer. Development =========== * In t3lib_extMgm there is now a way to retrieve the version of an extension through the method getExtensionVersion($extensionKey). * t3lib_div now provides the constants LF, CR, CRLF and TAB which can be used to improve code readability. * The ExtDirect specification was implemented in the Backend of TYPO3. You can use it in your own backend modules. Details about the specification can be found in the TYPO3 Wiki and on the ExtJS site. See the links: http://wiki.typo3.org/index.php/ExtDirect http://www.extjs.com/products/js/direct.php * There are new hooks available for you to use: t3lib_page::getRecordOverlay, t3lib_page::getPageOverlay, several new hooks in the impexp extension, alt_doc::makeEditForm() to enable further access-restrictions, in tslib_fe::settingLanguage(), in tslib_content, and in tslib_menu for further filtering of menu items * The newly introduced Flash messages in TYPO3 4.3 are now also available as JavaScript messages done by ExtJS and available in the global TYPO3 backend JS space. * There is now a new API for sending emails. t3lib_utility_Mail::mail() serves as a proxy for the PHP mail() function, and is now the recommended way for sending emails, in order to have a central place to use a different mailing engine. * The debug in the TYPO3 Backend was enhanced. There is a new debug console, which will show each debug in a single tab. The console will pop up as soon a debug statement is present. * t3lib_div::debug(): Removed the feature of passing an integer as $header (second argument) to add multiple br-tags. * There is a new API in place to generate HTML tags with corresponding CSS classes in order to display previously created sprite images in the right background position. Make sure to have a look at "t3lib_iconWorks::getSpriteIconForRecord($table, $row)", "t3lib_iconWorks::getSpriteIconForFile('myimage.png')", and "t3lib_iconWorks::getSpriteIcon('actions-document-open')". TypoScript changes ================== * It is now possible to configure an alternative "parameter" for filelinks when using jumpURLs DBAL ==== * It is now possible to use the 1-2-3 installer process to configure a website running MSSQL, Oracle or PostgreSQL as TYPO3 database. TYPO3 automatically detects available database drivers and presents them in a convenient driver dropdown list. Backend skin ============ * There is now a complete new Backend skin for all backend modules, the login screen and the install tool. It is still called "t3skin", however due to the use of icon sprites and the refactoring of the CSS files, it is not possible anymore to run the TYPO3 Backend with the old backend skin (from 3.x) or with the look and feel from previous 4.x versions. If you have not installed any skins in your system, you will now see a completely unstyled TYPO3 Backend, no unneeded additional styles are loaded. * CSS files in the TYPO3 Backend are now separated in structure CSS statements (definitions for margin, padding, width, height) and visual (like formatting colors, fonts, border and backgrounds). * Skins now have to register themselves by adding an entry $TBE_STYLES['skins'][$_EXTKEY]. By default, all CSS files from subdirectories stylesheets/structure/ and stylesheets/visual/ are included, additional directories can be added by setting $TBE_STYLES['skins'][$_EXTKEY]['stylesheetDirectories']. * Most Icons used in the TYPO3 Backend are now rendered through so-called sprites. Instead of loading many image tags with single icons and therefore many http requests there are now only 6 sprite images (a sprite image is a big image with all icons included) that need to be loaded in the Backend. Image-tags got replaced by spans using the big sprite images with background and offset functionality. This reduces the HTTP and fileheader overhead of about 90% which results in a blasting fast Backend. For details about the new Icon Sprite API, have a look at t3lib/class.t3lib_iconworks.php. Speed improvements ================== * Inline Records (IRRE Elements) are now loaded on demand, meaning only when they are opened. This should speed up the editing process drastically. Currently unsupported ===================== * Missing features concerning the disposal of Inline Relational Record Editing (IRRE) -> Workspaces and Versioning are currently not supported -> FlexForms using the TCA type 'inline' are currently not supported/tested -> Import/Export (sysext tx_impexp) might not work correctly in special cases