Added feature #14490: A new skin for the TYPO3 Backend (Thanks to Steffen Gebert...
[Packages/TYPO3.CMS.git] / NEWS.txt
index 7c32d7c..e9e66d3 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,5 +1,5 @@
 ************************************************************************
-CHANGES & IMPROVEMENTS between TYPO3 4.2 and 4.3
+CHANGES & IMPROVEMENTS between TYPO3 4.3 and 4.4
 (for technical details see ChangeLog)
 ************************************************************************
 
@@ -8,216 +8,101 @@ General
 
        * TYPO3 requires PHP 5.2 now
 
-       * 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.
-
-       * 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.
-
-       * The JavaScript libraries are updated to prototype 1.6.0.3 and script.aculo.us 1.8.2.
-
-       * Integration of RSA Authentication Service: Using a the public-key cryptography allows
-         to transfer sensitive data over a secure channel, even if the website does not support
-         HTTPS. This feature allows to store password data as salted hash value. The RSA
-         authentication service can be used in frontend and backend by enabling the system
-         extension rsaauth.
-         Note: The service requires either the openssl PHP extension, or the openssl binary.
-
-       * Integration of PHP Autoloader:  This feature allows to have only those files in memory
-         that are really required for an accordant application. The performace improves
-         dramatically. The PHP files are looked up using a registry file returns a simple array
-         mapping PHP class names to accordant file names:
-               + t3lib/core_autoload.php contains all classes in t3lib/tslib or the TYPO3 Core
-               + [extension_key]/ext_autoload.php contains all classes of that TYPO3 extension
-
-       * Extbase and Fluid integration: Extbase and Fluid are backports from FLOW3 to bring MVC
-         and a very flexible templating engine to TYPO3 4.x. Extbase can be used in TYPO3 4.3 for
-         frontend extensions only. The techniques used by these two packages are the same as in
-         FLOW3/TYPO3 5.0 - thus, it's possible to develop future-proof extensions now and migrate
-         them easily when TYPO3 5.0 is released.
+       * There is now a complete new Backend skin for all 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), the t3skin look and feel from the previous 4.x versions can be obtained by the TER, but is not actively maintained anymore.
 
+       * 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 via the TYPO3 Installer.
+
+       * 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&feel when accessing from outside the TYPO3 Backend and from within to be integrated better in the backend. Also, the 1-2-3 installer process is now cleaned up to be in sync with the new UI elements. There is 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 in the TYPO3 Backend has undergone a complete refactoring, both visually and code-wise.
+
+       * 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. Can be configured to include the timestamp within the the filename (before .ext) or as a parameter to the file (default).
+         If versioning is done inside the filename (by setting $TYPO3_CONF_VARS[BE][versionNumberInFilename] to true) you need this 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.
+
+       * CSS and JS are compressed now. This means that they are concatenated to a single file. This will reduce the count of request drastically, which ends up in faster loading and better performance.
+         If compressionLevel is configured ($TYPO3_CONF_VARS[TYPO3_MODE]['compressionLevel'] = 1 [1-9 for compression level or TRUE for enable]) they will be served with gzip. Be sure to uncomment the needed configuration in your .htaccess, also found in misc/advanced.htaccess.
+         
 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.
+       * 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'].
 
-Frontend
-========
+       * 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 pagetree) in your backend modules. Also you can extend the viewport easily with own code to create e.g. a collapsable module menu. More Informations can be found in the TYPO3 Wiki and the official ExtJS viewport documentation. See these links: http://wiki.typo3.org/index.php/TYPO3Viewport and http://www.extjs.com/deploy/dev/docs/
+       
+       * Inline Records (IRRE Elements) are now loaded on demand, which is only when they are opened. This should speed up the editing process drastically.  
 
-       * The message log of the admin panel will report failures to set the locale
+       * The t3editor code completion DB was updated to reflect the latest additions. Also the syntax highlighting engine was now extracted from the system extension so it can be used in other places of the TYPO3 Core as well.
 
-       * 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.
+       * A donate notice will be shown to admins in the TYPO3 backend after using it for more than three months.
+         This behaviour can be disabled completely - see $TYPO3_CONF_VARS[BE][allowDonateWindow].
 
-       * 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.
+Frontend
+========
 
-       * 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).
+       * 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 GIFBUILDER now supports automatic line breaks by defining a maximum width of the
-         element to be rendered. The new TypoScript properties are "breakWidth" and "breakSpace".
+       * 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 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.
 
-       * Image rendering now cuts off the profile data of images by default to reduce file sizes.
-         This behaviour can be modified or disabled by changing [GFX][im_stripProfileCommand] in
-         the install tool or by setting the TypoScript property "stripProfile" on IMAGE objects.
 
 Compatibility
 =============
 
-       * 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
+       * 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.
 
-       * 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.
 
-       * 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".
+Development
+===========
 
-       * The frontend editing functionality was extracted into a separate system extension "fe_edit".
+       * In t3lib_extMgm there is now a way to retrieve the version of an extension through the method getExtensionVersion($extensionKey).
 
-       * The help modules "about" and "cshmanual" were extracted into separate system extensions with the same name.
+       * t3lib_div now provides the constants LF, CR, CRLF and TAB which can be used to improve code readability.
 
-       * 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.
+       * 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 and http://www.extjs.com/products/js/direct.php
 
-Development
-===========
+       * 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_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() that 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 BE 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.
+       
+       * There is a new API in place to generate HTML <span> 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')".
 
-       * 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
 ==================
 
-       * Custom sub categories can be used in TypoScript constants like the following:
-               #customsubcategory=limits=LLL:EXT:devlog/locallang.xml:limits
+       * It is now possible to configure an alternative "parameter" for filelinks when using jumpURLs
+
 
 Database changes
 ================
 
-       * 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
 ====
 
-       * ...
+       * 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
@@ -229,15 +114,8 @@ 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.
+       * When editing records in the TYPO3 Backend, Inline Records (IRRE Elements) are now loaded on demand, which is only when they are opened. This should speed up the editing process drastically.
 
-       * 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
 ==================