TYPO3 4.3 Release Notes
by Oliver Hader, TYPO3 Release Manager 4.3
Integrated TYPO3 Extbase and TYPO3 Fluid
Extbase and Fluid are backports from TYPO3 Flow to bring MVC and a very flexible templating engine to TYPO3 v4. Extbase can be used in TYPO3 4.3 for frontend extensions only, but it's planned to support backend modules in TYPO3 4.4 as well. The techniques used by these two packages are the same as in TYPO3 Flow/TYPO3 Neos. Thus, it's possible to develop future-proof extensions now and easily migrate them to TYPO3 Neos when it is released. Having Extbase and Fluid in TYPO3 v4 is an important milestone in the transition to TYPO3 Neos. The extension blog_example is available as a demonstration of how Extbase and Fluid can be used. Learn more...
Integrated advanced Frontend Editing
TYPO3 has long offered the ability to edit content from the frontend of the website, but over time this functionality has become outdated as TYPO3 and general web technology advanced. Advanced Frontend Editing brings this feature back to the cutting edge by providing a modern look and feel to go along with an AJAX-based editing approach. Advanced Frontend Editing is not a replacement for the TYPO3 Backend, but instead focuses on providing the most intuitive experience for editors with simple page and content editing needs. This includes drag and drop for content elements, lightbox-based content editing, and AJAX updates on each save.
Beneath its simplified interface, Advanced Frontend Editing still relies on the same configuration and permissions that drive editing in the TYPO3 backend. This ensures a consistent experience for editors across the frontend and backend editing interfaces.
While the previous frontend editing capability was only compatible with classic templating (ie. Modern Template Building), Advanced Frontend Editing adds full support for TemplaVoila while still maintaining compatibility with the classic templating.
Advanced Frontend Editing has been published in the TYPO3 Extension Repository (TER) as "feeditadvanced" to allow for a quicker release cycle and more rapid introduction of bugfixes and new features. The extension will still be maintained by the TYPO3 Core Team to ensure its quality and longevity.
In the last few months there have been many initiatives to optimize the overall performance of TYPO3. The frontend's time tracking functionality is no longer loaded when the admin panel is disabled and several caches have been introduced to prevent repeatedly parsing the same XML data or repeatedly walking the same pagetree rootline. In addition, extensions that are only used in the backend are no no longer loaded in the frontend.
Improved security with Salted Passwords, OpenID and RSA Authentication
Passwords in TYPO3 are stored using a regular MD5 hash. With knowledge of that hash value, an attacker may be able to recalculate the original password by using rainbow hash tables. The Salted Passwords extension adds a random value - the salt - to the stored hash which drastically reduces the chance of rainbow attacks. This feature can be used by installing the system extension 'saltedpasswords'. Furthermore, a secure channel must be available to transfer the password data. The HTTPS protocol is one option and if that is not available the RSAAuth extension can be used instead.
A new authentication service implements the OpenID feature which can be used for frontend and backend login. More information about using and registering an OpenID account can be found on the official OpenID website.
Using public-key cryptography allows sensitive data to be transfered over a secure channel, even if the website does not support HTTPS. This feature allows password data to be stored as a salted hash value. The RSA authentication service can be used in the frontend and backend by enabling the system extension rsaauth.
Integrated a mass file uploader
Uploading files to TYPO3 is now easier and more comfortable than ever. Not only is it possible to upload multiple files at once, but you will also get a constantly updated progress report while the upload proceeds. This is done by using a Flash-based upload component which seamlessly integrates into the Filelist module. If users wish to disable this component due to restrictions on Flash usage, this is possible in the User Setup module.
Integrated Conditions for TSconfig
TypoScript conditions have been possible in the frontend for a long time. This release adds support for conditions in PageTSconfig and UserTSconfig so the same functionality is available in both the frontend and backend now.
Improved Localization Handling
The appearance and behavior of localized records in the backend when copying, moving and deleting records has been improved. Actions performed to a record in the default language will now affect the related localization records as well, which leads to more consistency and avoids losing the localization records during the action. Security has also been increased by limiting user access to only the permitted languages during copy, move, or delete actions.
In addition the user interface was simplified to only show useful options for localized records.
Improved recycling of deleted records
In TYPO3 most elements are not removed physically. They remain in the database but are no longer displayed in the user interface.
The recycler offers the possibility of restoring these deleted records. Based on an ExtJS interface, it's possible to get a quick overview of deleted elements, filter the list and execute the desired actions. The recycler also allows deleting and restoring to be performed recursively on nested pages.
This new feature is the modernized and core-specific version of the kj_recycler extension that has been available in the TER for years now.
TypoScript editor "t3editor" improvements
The TypoScript editor called t3editor now comes with an amazing code completion feature, not only helping you to complete the properties you're typing by making sensible suggestions but also by showing the documentation of the properties as well as their data types. This helps beginners learn TypoScript and even helps advanced TYPO3 users to code error-free and faster.
Improved behavior in backend forms
Record selection can now be enhanced by a suggest wizard that searches available records and shows the search results while typing. Regular text areas without the rich text editor are now dynamically resizable.
Replaced "login expired" popup
The popup telling a user that his session has expired was replaced by a dialog based on ExtJS.
Integrated new Media Content Element
A new media content element has been integrated and allows simple, configurable handling of audio and video data. It is also possible to use this element with external sources like YouTube.
The Media Content Element is delivered with default audio and video players but can also be configured to use third-party players.
Cleaned up CSS styled content
CSS styled content was split into separate files for each compatibility versions of TYPO3 (3.8, 3.9, 4.2 and current). Splitting these files improves performance and increases maintainability in the future.
When including the static template of css_styled_content, a specific version must be chosen.
Integrated System Scheduler
Thanks to the Scheduler, the TYPO3 Core now provides a central place to manage tasks that should happen at fixed dates or at regular intervals. Tasks are provided by extensions using the Scheduler's API. By default the Scheduler only provides very simple test tasks. The number of extensions providing tasks will grow in the future and more tasks will certainly appear in future versions of the TYPO3 Core, now that such a tool is available.
The Scheduler manages the queue of all tasks to execute, depending on their schedule. An administrator only needs to set up the Scheduler as a cron job. All registered tasks will be executed as needed, whenever the Scheduler is called up.
The Scheduler provides a BE module where tasks can be managed. It also allows to manually launch any available task.
Integrated a new module for System Reports
For monitoring system events, a reporting module has been added. The reports module is delivered with common tests to check the health of a system. These tests include whether basic system requirements are met and whether installed extensions need to be updated. Extensions can hook into the reporting mechanism and provide their own tests as well.
Any usage of deprecated functions in TYPO3's PHP API or TypoScript is written to a deprecation log in typo3conf. Developers should check the log entries and update their extensions since these deprecated functions will be removed completely by TYPO3 4.5 at the latest.
Integrated Error and Exception Handling
Continuing with the goal of easing the transition between TYPO3 CMS and TYPO3 Neos, the error and exception handling of TYPO3 Flow was backported. This new feature allows one to have custom error and exception messages.
Integrated API to handle rendering of documents
Integrated autoloading for PHP classes
With this feature, only the files that are really needed for an application are loaded into memory what results in a performance improvement. The PHP files are looked up using a registry file that returns a simple array mapping PHP class names to the corresponding file names. The file t3lib/core_autoload.php contains all core related classes of t3lib and tslib. The file ext_autoload.php provides similar data for individual extensions. The extension "extdeveval" helps generate these autoload registry files automatically.
Integrated ExtJS as common library
Improved caching framework
TYPO3 4.3 ships with a new optional caching framework that was backported from TYPO3 Flow. It offers different methods to store data such as in the database, in the filesystem and in memcached environments. This offers more flexibility and allows to cater for the needs of site administrators to handle site specific requirements more adequate.
Cache entries can be tagged, giving new possibilities to developers. Having fine-grained control over cached entries allows for new applications and even better performance tuning.
The caching framework also offers the possibility to develop application-specific caching frontends that are optimized for your application's unique requirements.
You can download the packages here