Follow-up to feature #9633: Added abstract classes to registry and check whether...
[Packages/TYPO3.CMS.git] / NEWS.txt
index 51b5912..a344c40 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
 ************************************************************************
-CHANGES & IMPROVEMENTS between TYPO3 4.0 and 4.1
+CHANGES & IMPROVEMENTS between TYPO3 4.2 and 4.3
 (for technical details see ChangeLog)
 ************************************************************************
 
 General
-==================
-
-       * New PHP version requirement: You need to have at least PHP 4.3.0 in order to run TYPO3 4.1
+=======
 
-Backend
-==================
+       * TYPO3 requires PHP 5.2 now
 
-       * Inline Relational Record Editing (IRRE)
-               -> It's now possible to create and edit child records of a record as subforms inside of the form view in the backend
-               -> Therefore, the new TCA field type "inline" has been introduced
-               -> See http://wiki.typo3.org/index.php/Inline_Relational_Record_Editing for details
+       * Support for OpenID auhentication with a new system extension for both FE and BE.
+         Any user with a valid OpenID identifier may log in when the OpenID authentication
+         is successful.
 
-       * Bidirectional MM relations: It's now possible to configure MM relations from both sides of the relation.
-               -> E.g. an employment relation could now be edited from both the "person" as well as the "company" side. ("employers" of "persons" and "employees" of "companies")
+       * The JavaScript framework ExtJS was integrated as common widget library. This
+         collection offers developers an easy but powerful option to create nice looking
+         user interfaces by reusing predefined objects. For example, ExtJS supports grid
+         views, dialog windows and dynamic panels. It is currently used in the TYPO3 Core
+         for the dialog showing that a session in the backend has expired and for the
+         new recycler.
 
-       * BE who-is-online
-               -> The Tools->Useradmin module now displays which BE users are currently online.
+       * The JavaScript libraries are updated to prototype 1.6.0.3 and script.aculo.us 1.8.2.
 
-       * UTF-8 for filenames
-               -> You need to set $TYPO3_CONF_VARS['SYS']['UTF8filesystem'] to TRUE to enable this feature.
-
-       * Improved Extension Manager
-               -> Requires less memory
-               -> The EM now stores the list of extensions from TER in the database,
-               -> see http://bugs.typo3.org/view.php?id=2615
-
-       * Two nice usability enhancements
-               -> Using <label> tags in tceforms where appropriate to enhance usability in the Backend forms
-               -> Increase length for titles of be_users, be_groups, and fe_groups
+Backend
+=======
+
+       * Extension Manager: You can now set a new option "excludeFromUpdates" in every
+         extensions' ext_emconf.php array. This way, it is a) not shown in the
+         list of extensions to update and b) is shown a exclamation mark in order to
+         prevent updates for this extension. This is very useful if you made local changes
+         to an extension and don't want any admin to overwrite them.
+
+       * The TypoScript editor "t3editor" was enhanced with code-completion. Now you get
+         context-sensitive suggestions about possible properties while entering TypoScript.
+
+       * The recycling of deleted records is improved since most elements were not removed
+         physically in TYPO3. The recycler offers the possibilities of cleaning up the garbage
+         collection and to restore data again. Based on an ExtJS interface it's possible to
+         get a quick overview of the accordant elements, filter the resultset and execute the
+         desired actions. 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.
+
+       * The permissions on file operations can now be set on a per-group basis. New back-end
+         users now don't have any file permissions by default, since this has moved to back-end
+         user groups and will apply automatically for each new group being created.
+         The default settings for new groups are the following:
+               + Move, delete, rename and create new directories
+               + Upload, copy, move, delete and rename files
+               + Unzip files
+
+       * The popup telling an user that his session has expired was replaced by a dialog window.
+
+       * The workspace selector has been turned to an item in the toolbar menu.
+
+       * The elements shown when creating new content elements (like "regular text element" etc.)
+         can be configured, modified and extended by Page TSconfig "mod.wizards.newContentElement".
+
+       * The tables shown when creating new records in the Web>List module are grouped by their scope
+         or extension now. The order can be modified by Page TSconfig "mod.wizards.newRecord.order".
+
+       * Elements on each table in the Web>List module can be collapsed or expanded now.
+         In the view showing a single table with many elements, a pagination helps to
+         get through them.
+
+       * Uploading files is now available with an optional Flash Uploader which shows a 
+         nice widget with information on the upload progress. It makes it possible to select
+         multiple files at once. Enable the Flash Uploader by checking the appropriate checkbox 
+         in the User Setup, reload the Backend and make sure that your browser has the 
+         latest version of Flash (Flash v9+) installed.
+
+       * It is possible now to temporarily lock down the backend for system maintenance. Editors
+         will see an overlay with an message notifying them that the backend is locked. When the
+         lock is removed, editors can continue without having to re-login.
+         The lock is enabled by placing this file:
+               typo3conf/LOCK_BACKEND
+
+       * The backend gateway for manipulating files (uploading, renaming, copying) TCEfile is now
+         separated from the file typo3/tce_file.php and put in a new file and class in
+         typo3/classes/class.typo3_tcefile.php. There is now also a new AJAXid (TYPO3_tcefile::process)
+         to use this functionality in AJAX-based environments as well.
+
+Frontend
+========
+
+       * The message log of the admin panel will report failures to set the locale
+
+       * Integrated functionality of extension jb_status_code into core:
+         It is now possible to specify a redirection code (301, 302, 303 or
+         307) together with a domain redirection in a sys_domain record.
+
+       * Added option named "additionalAbsRefPrefixDirectories" for Frontend in the Install tool.
+         This option is useful if the installation uses non-TYPO3 applications and links to
+         them from extensions. Earlier TYPO3 prepended only media/, typo3conf/ext/ and
+         fileadmin/ directories automatically with config.absRefPrefix. Using the new variable
+         administrators can tell TYPO3 to prepend also other directories inside the site root
+         with config.absRefPrefix.
+
+       * Added new Install tool option named "dbClientCompress". This option will
+         enable MySQL compression for network traffic. This is useful if
+         MySQl is not on the same host as the web server. Do not use this option if MySQL
+         is on the same host because it will only slow down the process. However if MySQL
+         is on another host, this option may improve performance significally.
+
+       * CSS styled content was split into separate files for each compatibility versions of TYPO3
+         (3.8, 3.9, 4.2 and current). When including the static template of css_styled_content,
+         a specific version must be chosen (also see Compatibility below).
 
 Compatibility
 =============
 
-       * Changed the default value of $TYPO3_CONF_VARS[SYS][devIPmask]
+       * A deprecation log has been introduced to track calls to deprecated/outdated methods
+         in the TYPO3 Core. Developers have to make sure to adjust their code to avoid using
+         this old functionality since deprecated methods will be removed in future TYPO3 releases!
+         The information can be found in /typo3conf/deprecation_[hash-value].log
 
-Speed improvements
-==================
+       * The caching system has been revamped. It is not possible to query the cache tables directly.
+         Any compliant extension has to use the new caching framework.
 
-       * Many TYPO3 tables (cache_*, index_*, tt_content, pages and others) are modified to use new indexes. This speeds up common queries on these pages a lot
+       * The simulateStaticDocument functionality (URLs like "MyPage.13.0.html" instead of "index.php?id=13")
+         was extracted and put to a separate system extension "simulatestatic".
 
-       * Some tables are changed to use InnoDB engine type for MySQL. Unlike MyISAM, which was default in previous versions, InnoDB does not lock tables for reading when another request tries to write something to table. InnoDB makes possible many reads along with many writes, while MyISAM prevents reads and writes until every single write completes. This gives huge improvement cache_*, sys_stat and index_* tables during peak visiting hours
+       * The frontend editing functionality was extracted into a separate system extension "fe_edit".
 
-       * TYPO3 now includes several .htaccess files in t3lib/ and typo3/ subdirectories to speed up loading of static (non-changing) images. Prior to version 4.1 all images were reloaded each time when backend user accessed any module, navigation frame, file or page tree. This used a lot of bandwidth and slowed servers down with HTTP requests for static (non-changing) images (for example, imagine how many additional requests will web server get when you use List module in extended mode and how much data it needs to transfer!).
-         Using this feature requires certain Apache configuration. Main Apache configuration file should have "AllowOverride Indexes" directive for typo3-based web site (note that there can be also other values in AllowOverride" but "Indexes" is mandatory). It is safe and usually enabled by default by web server administrator. However if it is disabled and you cannot enable it for any reason (shared hosting, etc), you need to rename or delete several .htaccess files to prevent error messages from web server. Here is a list of these files:
-               typo3/gfx/.htaccess
-               typo3/mod/user/ws/.htaccess
-               typo3/sysext/.htaccess
-               typo3/sysext/t3skin/stylesheets/.htaccess
-         This feature requires mod_expires to be installed for Apache. If mod_expires is not installed, images will not be cahced and TYPO3 will work as in previous versions. .htaccess files will detect if mod_expires is installed and use it automatically
+       * The help modules "about" and "cshmanual" were extracted into separate system extensions with the same name.
 
-Development
-====================
+       * As mentioned in "Frontend" CSS styled content has been split into several files.
+         The update wizard can switch the versions of the static includes by refering to
+         the TYPO3 compatibility version.
 
-       * Better getRecordTitle() function
-               -> It's now possible to define a "label_userFunc"
-               -> This makes it possible to e.g. define the label of a "persons" table as displayed in the list module to be like "Lastname, Firstname". Until now you could only define one field to be the "labelfield".
+Development
+===========
+
+       * t3lib_div::makeInstance now supports singletons. To mark a class as a
+         singleton it must implement the t3lib_singleton interface.
+
+       * A new caching framework has been added. It allows extensions to store temporary data
+         transparently to different cache back ends (database, file system or memory).
+
+       * Frontend plugins now can convert themselves from USER to USER_INT on the fly. This
+         is useful for plugins who can disallow caching using a TSConfig option (for example,
+         tt_news). Earlier plugins had to use $GLOBALS['TSFE']->set_no_cache(), which caused
+         huge performance problems. Now plugin simply need to call
+         $this->cObj->convertToUserIntObject() and return immediately without generating any
+         content.
+         Objects can find their current execution mode by calling $this->cObj->getUserObjectType().
+         This function can return either tslib_cObj::OBJECTTYPE_USER (if object runs as USER)
+         or tslib_cObj::OBJECTTYPE_USER_INT (if object is running as USER_INT). Here the code
+         example:
+               function main() {
+                       ....
+                       if (!$this->conf['allowCaching'] && $this->cObj->getUserObjectType() == tslib_cObj::OBJECTTYPE_USER) {
+                               $this->cObj->convertToUserIntObject();
+                               return '';
+                       }
+
+       * Class tslib_eidtools is enhanced with new methods for eID/AJAX applications:
+               static function initLanguage($language = 'default');
+                       Creates $GLOBALS['LANG'] for the given language
+               static function initTCA();
+                       Loads 'ctrl' sections for TCA tables from all installed extensions
+               static function initExtensionTCA($extensionKey);
+                       Similar to initTCA() but loads the table only for the given extension
+
+       * Class t3lib_extMgm has new methods to enhance palettes:
+               t3lib_extMgm::addFieldsToAllPalettesOfField($table, $field, $addFields, $insertionPosition = '');
+                       Adds new fields to all palettes of an existing field.
+               t3lib_extMgm::addFieldsToPalette($table, $palette, $addFields, $insertionPosition = '');
+                       Adds new fields to a palette.
+
+       * A random byte generator has been added to t3lib_div::generateRandomBytes() which can
+         be used for cryptographic operations in the TYPO3 Core or in any other extension.
+
+TypoScript changes
+==================
 
-       * Inline Relational Record Editing (see "Backend" section above)
+       * Custom sub categories can be used in TypoScript constants like the following:
+               #customsubcategory=limits=LLL:EXT:devlog/locallang.xml:limits
 
 Database changes
 ================
 
-       * Changed many BLOB fields from int/varchar/whatever to tinyint(1) - this is the field type which is actually intended by MySQL for BLOBs
+       * The database tables cache_hash, cache_pagesections and cache_pages have been
+         changed due to a move to the new caching framework.
+
+       * Reference indexes storing table names have been extended from 40 to 255 chars
+
+       * The database table pages_language_overlay was extended by several fields to
+         support an alternative URL or a shortcut dependent on localization.
 
 DBAL
 ====
 
        * ...
 
-Frontend features
-=================
-
-       * Autologin for Frontend users is now possible!
-               -> Users can decide on their own whether they want to "Stay logged in" using a checkbox. The latest version of the "newloginbox" extension is required for that.
-               -> Needs to be configured in the Install Tool ("All Configuration" -> "permalogin" and "lifetime")
-
-       * UTF-8 for log files
-               -> TYPO3 now logs page paths in UTF-8 if config.stat_apache_niceTitle is set to "utf-8" in the TypoScript template Setup.
-
-       * Enable $TYPO3_CONF_VARS[FE][pageNotFoundOnCHashError] by default
-               -> URLs (especially plugins) can contain the &cHash parameter. It contains a checksum of the whole paramter set and is very useful for caching.
-               -> In the past, a wrong cHash caused the website to be recreated with caching turned off.
-               -> With the new behaviour, a wrong cHash will instead trigger an error message since this usually should never happen!
-               -> Usually, the cHash is only wrong if a) someone has changed the encryptionKey (bad!) or b) someone has manually modified the requested URL
 
 Backend skin
 ============
 
        * ...
 
+
+Speed improvements
+==================
+
+       * PHP classes for frontend plugins are now loaded only if they are used to render
+         content by enabling the "includeLibs" property also for USER objects in TypoScript.
+         In the past, all available class files for frontend plugins were loaded so this new
+         feature increases performance by reducing memory consumption.
+
+       * TYPO3 now enables client caching of JavaScript, CSS and image files by using .htaccess
+         files in various directories. This may cause problems if mod_expires is not enabled
+         in the Apache configuration. See the FAQ section in the INSTALL.txt about disabling
+         these files if necessary.
+
 Important bugfixes
 ==================
 
        * ...
+
+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