TYPO3 4.5.0 beta2

Released 1.12.2010.

Please note that this version is released as a beta release. It shows a snapshot of our development so far on the road to 4.5.0, which will be released in January 2011. This second beta is meant to stabilize features which were incorporated until beta1. See Feature Freeze.

Upgrading and compatibility

Download the beta2 packages from the download package page at typo3.org.

To upgrade an existing installation of 4.4 to 4.5.0beta2, please consider the following steps:

  • Visit the Install Tool:
    1. Run through "Update wizards" which are new in 4.5
      • enable old modules that are now system extensions (filelist, info, perm, func, versions)
      • activate new modules (workspaces, pagetree)
      • flagsFromSprites
    2. Use the "Database COMPARE" section and apply all database schema changes.

New installations

Try out the introduction package(tar.gz) (zip) which provides a very easy way of installing TYPO3 and having some example setup already in place.

Changes since beta1

We have committed 62 fixes and enhancements between TYPO3 4.5.0beta1 and 4.5.0beta2. For technical details see ChangeLog included in the typo3_src package. For a list of all changes between the current stable 4.4 and 4.5 beta2, please read:

Here is a list of the most notable changes:

File abstraction layer (FAL)

Included in beta2 as sysext "fal" (16641).

FAL will build an abstraction layer between TYPO3 and assets (mostly images, PDFs, ZIPs, basically any kind of file). Instead of copying files for using them in multiple places FAL will store references to these assets, which can be used to get a precise overview of the assets used in your installation.

It replaces the classic filelist with a new ExtJS-based approach and brings new features like a new multi-file uploader working in HTML5, Flash, Silverlight, Google Gears and HTML4.

Using assets in own tables is simple, FAL brings API calls for adding custom fields.

A scheduler task can be used to migrate existing assets into FAL, while leaving the original data untouched.

Standard features in the frontend are fully working, you might want to update your own extensions to use FAL references. The API is pretty straightforward.

Known Issues:
  • File module lacks add folder, add file, edit file, delete recursive folders
  • File module needs styling
  • Upload window needs styling

New Extension Manager

Included as beta2 as new module in Extension Manager (16642).

This module represents the all-in-one Extension Manger based on an ExtJS UI.
The current status is still a preview, as some features are missing. Therefore all old modules are still accessible.

These parts are experimental / incomplete:
  • install with dependencies
  • update/backup/delete extension
  • upload ext to TER
  • import extension from TER

Backend

  • Improvements in the new pagetree (sysext "pagetree"). The API was stabilized and has proper usage now. It's near feature complete. Some known pending issues are updateSignal handling, clipboard actions and drag "into" a page. See a list of open tasks and report new issues in their forge project page
  • Old hard-coded modules (Web>Info, Function, Access) now are no longer added to the module menu when the extension gets uninstalled (15794). Note: remaining problem with this is that the position of these modules is now no longer "hard-coded" as it used to be, and might vary depending on the order of installation. See discussion in 16643.
  • The core is now able to auto-generate sprites from icons if configured to do so (15080). Default setup is to use the available sprites that ship with TYPO3. Using this handler you can advise the SpriteManager to create a sprite out of all custom icons (shipped via extensions, core tables that don't provide sprites, etc), and use this one for displaying custom icons (single request => speeding up the backend). This works transparently: extension developers can continue using "single" icons. Set:
    $TYPO3_CONF_VARS['BE']['spriteIconGenerator_handler'] = 't3lib_spritemanager_SpriteBuildingHandler'

Skin / Backend UI

  • Lots of tiny improvements made possible by the newly formed Skin team.
  • TCEforms now also uses the sprites in a lot more places, providing more consistent icons matching our skin (16218).

Development

  • Plenty of bug fixes for the TCA renderTree feature. This feature is now pretty stable already. For example add this to your typo3conf/extTables.php and see it in action in the "Pages" settings (check the fields Access Usergroups and "General record storage"):
    $GLOBALS['TCA']['pages']['columns']['fe_group']['config']['renderMode'] = 'tree';
    $GLOBALS['TCA']['pages']['columns']['fe_group']['config']['treeConfig'] = array(
        'expandAll' => true,
        'parentField' => 'subgroup'
    );
    
    $GLOBALS['TCA']['pages']['columns']['storage_pid']['config']['type'] = 'select';
    $GLOBALS['TCA']['pages']['columns']['storage_pid']['config']['renderMode'] = 'tree';
    $GLOBALS['TCA']['pages']['columns']['storage_pid']['config']['treeConfig'] = array(
        'parentField' => 'pid'
    );
    $GLOBALS['TCA']['pages']['columns']['storage_pid']['config']['foreign_table'] = 'pages';
    $GLOBALS['TCA']['pages']['columns']['storage_pid']['config']['foreign_table_where'] = ' ORDER BY pages.sorting ASC';
    $GLOBALS['TCA']['pages']['columns']['storage_pid']['config']['size'] = 10;
  • t3lib_div now provides two functions setSingletonInstance and addInstance that will set the objects to be returned by makeInstance (16267). This will allow unit tests to inject mocks into makeInstance. In addition, there now is a function purgeInstances that makes makeInstance return fresh instances (singleton as well as non-singleton).

Administration

  • The new mail API (SwiftMail), which can be configured through the install tool (for example to send mails via SMTP) is now being used directly by t3lib_utility_mail::mail(), which means that all mail sending that uses that API (core and extensions) will use the new settings and start sending RFC conforming mails (16591).
  • This new mail API can now be configured to transport the send e-mails to a file instead of sending them out. The file can be useful on development machines or when you want to debug the mail sending routines (16610): Install tool > All configuration >
    TYPO3_CONF_VARS['MAIL']['transport'] = 'mbox'
  • The Install Tool used to silently fail when there was an error in some statement of the DB "COMPARE". Now these errors are reported in the returned form (15604).

Performance

  • Lots of calls to exec_SELECTgetRows have been replaced by exec_SELECTgetSingleRow (16445)

Bug fixes

  • Plenty of bug fixes in new and old features and also on refactoring we did during the last months. See a list of all issues solved during that period.

Next steps

Please take your time to test a bit our work so far, report any new issues you find in our bug tracker.

We now have a period of three weeks until the release of beta3 according to our Release Plan. Until then we will further refine our features and APIs, fix more bugs. The following extensions are currently in a "evaluation" phase:

  • New EM
  • New Pagetree
  • FAL
  • Linkvalidator

The release team will decide until beta3 which of these we are going to ship with 4.5.0 final in January. Extensions which did not prove mature enough will be removed again so that we can ship a stable 4.5.0 in the end. They can still ship as a regular extension in TER or candidate to be included in 4.6.