Added feature #11825: Override FE labels with XML files
[Packages/TYPO3.CMS.git] / NEWS.txt
1 ************************************************************************
2 CHANGES & IMPROVEMENTS between TYPO3 4.2 and 4.3
3 (for technical details see ChangeLog)
4 ************************************************************************
5
6 General
7 =======
8
9         * TYPO3 requires PHP 5.2 now
10
11         * Support for OpenID auhentication with a new system extension for both FE and BE.
12           Any user with a valid OpenID identifier may log in when the OpenID authentication
13           is successful.
14
15         * The JavaScript framework ExtJS was integrated as common widget library. This
16           collection offers developers an easy but powerful option to create nice looking
17           user interfaces by reusing predefined objects. For example, ExtJS supports grid
18           views, dialog windows and dynamic panels. It is currently used in the TYPO3 Core
19           for the dialog showing that a session in the backend has expired and for the
20           new recycler.
21
22         * The JavaScript libraries are updated to prototype 1.6.0.3 and script.aculo.us 1.8.2.
23
24         * Integration of RSA Authentication Service: Using a the public-key cryptography allows
25           to transfer sensitive data over a secure channel, even if the website does not support
26           HTTPS. This feature allows to store password data as salted hash value. The RSA
27           authentication service can be used in frontend and backend by enabling the system
28           extension rsaauth.
29           Note: The service requires either the openssl PHP extension, or the openssl binary.
30
31         * Integration of PHP Autoloader:  This feature allows to have only those files in memory
32           that are really required for an accordant application. The performace improves
33           dramatically. The PHP files are looked up using a registry file returns a simple array
34           mapping PHP class names to accordant file names:
35                 + t3lib/core_autoload.php contains all classes in t3lib/tslib or the TYPO3 Core
36                 + [extension_key]/ext_autoload.php contains all classes of that TYPO3 extension
37
38         * Extbase and Fluid integration: Extbase and Fluid are backports from FLOW3 to bring MVC
39           and a very flexible templating engine to TYPO3 4.x. Extbase can be used in TYPO3 4.3 for
40           frontend extensions only. The techniques used by these two packages are the same as in
41           FLOW3/TYPO3 5.0 - thus, it's possible to develop future-proof extensions now and migrate
42           them easily when TYPO3 5.0 is released.
43
44 Backend
45 =======
46
47         * Extension Manager: You can now set a new option "excludeFromUpdates" in every
48           extensions' ext_emconf.php array. This way, it is a) not shown in the
49           list of extensions to update and b) is shown a exclamation mark in order to
50           prevent updates for this extension. This is very useful if you made local changes
51           to an extension and don't want any admin to overwrite them.
52
53         * The TypoScript editor "t3editor" was enhanced with code-completion. Now you get
54           context-sensitive suggestions about possible properties while entering TypoScript.
55
56         * The recycling of deleted records is improved since most elements were not removed
57           physically in TYPO3. The recycler offers the possibilities of cleaning up the garbage
58           collection and to restore data again. Based on an ExtJS interface it's possible to
59           get a quick overview of the accordant elements, filter the resultset and execute the
60           desired actions. This new feature is the modernized and core-specific version of the
61           kj_recycler extension, that has been available in the TER for years now.
62
63         * The permissions on file operations can now be set on a per-group basis. New back-end
64           users now don't have any file permissions by default, since this has moved to back-end
65           user groups and will apply automatically for each new group being created.
66           The default settings for new groups are the following:
67                 + Move, delete, rename and create new directories
68                 + Upload, copy, move, delete and rename files
69                 + Unzip files
70
71         * The popup telling an user that his session has expired was replaced by a dialog window.
72
73         * The workspace selector has been turned to an item in the toolbar menu.
74
75         * The elements shown when creating new content elements (like "regular text element" etc.)
76           can be configured, modified and extended by Page TSconfig "mod.wizards.newContentElement".
77
78         * The tables shown when creating new records in the Web>List module are grouped by their scope
79           or extension now. The order can be modified by Page TSconfig "mod.wizards.newRecord.order".
80
81         * Elements on each table in the Web>List module can be collapsed or expanded now.
82           In the view showing a single table with many elements, a pagination helps to
83           get through them.
84
85         * Uploading files is now available with an optional Flash Uploader which shows a 
86           nice widget with information on the upload progress. It makes it possible to select
87           multiple files at once. Enable the Flash Uploader by checking the appropriate checkbox 
88           in the User Setup, reload the Backend and make sure that your browser has the 
89           latest version of Flash (Flash v9+) installed.
90
91         * It is possible now to temporarily lock down the backend for system maintenance. Editors
92           will see an overlay with an message notifying them that the backend is locked. When the
93           lock is removed, editors can continue without having to re-login.
94           The lock is enabled by placing this file:
95                 typo3conf/LOCK_BACKEND
96
97         * The backend gateway for manipulating files (uploading, renaming, copying) TCEfile is now
98           separated from the file typo3/tce_file.php and put in a new file and class in
99           typo3/classes/class.typo3_tcefile.php. There is now also a new AJAXid (TYPO3_tcefile::process)
100           to use this functionality in AJAX-based environments as well.
101
102         * The backend login page is now localized. The language for the login page where no
103           user-defined language is available yet is detected by the preferred browser language. If you
104           have previously changed the login labels via $TYPO3_CONF_VARS['BE']['loginLabels'] then
105           these will be used, however it is recommended to overload the XML file with your own XML file
106           and $TYPO3_CONF_VARS['BE']['XLLfile']['EXT:lang/locallang_login.xml']. These will only be used
107           once you remove the altered "loginLabels" configuration option from typo3conf/localconf.php.
108
109 Frontend
110 ========
111
112         * The message log of the admin panel will report failures to set the locale
113
114         * Integrated functionality of extension jb_status_code into core:
115           It is now possible to specify a redirection code (301, 302, 303 or
116           307) together with a domain redirection in a sys_domain record.
117
118         * Added option named "additionalAbsRefPrefixDirectories" for Frontend in the Install tool.
119           This option is useful if the installation uses non-TYPO3 applications and links to
120           them from extensions. Earlier TYPO3 prepended only media/, typo3conf/ext/ and
121           fileadmin/ directories automatically with config.absRefPrefix. Using the new variable
122           administrators can tell TYPO3 to prepend also other directories inside the site root
123           with config.absRefPrefix.
124
125         * Added new Install tool option named "dbClientCompress". This option will
126           enable MySQL compression for network traffic. This is useful if
127           MySQl is not on the same host as the web server. Do not use this option if MySQL
128           is on the same host because it will only slow down the process. However if MySQL
129           is on another host, this option may improve performance significally.
130
131         * CSS styled content was split into separate files for each compatibility versions of TYPO3
132           (3.8, 3.9, 4.2 and current). When including the static template of css_styled_content,
133           a specific version must be chosen (also see Compatibility below).
134
135         * The GIFBUILDER now supports automatic line breaks by defining a maximum width of the
136           element to be rendered. The new TypoScript properties are "breakWidth" and "breakSpace".
137
138         * Image rendering now cuts off the profile data of images by default to reduce file sizes.
139           This behaviour can be modified or disabled by changing [GFX][im_stripProfileCommand] in
140           the install tool or by setting the TypoScript property "stripProfile" on IMAGE objects.
141
142 Compatibility
143 =============
144
145         * A deprecation log has been introduced to track calls to deprecated/outdated methods
146           in the TYPO3 Core. Developers have to make sure to adjust their code to avoid using
147           this old functionality since deprecated methods will be removed in future TYPO3 releases!
148           The information can be found in /typo3conf/deprecation_[hash-value].log
149           The install tool has a setting "enableDeprecationLog" that allows one to disable the logging of
150           deprecation messages since the file might grow quite fast depending on the extensions installed.
151
152         * The caching system has been revamped. It is not possible to query the cache tables directly.
153           Any compliant extension has to use the new caching framework.
154
155         * The simulateStaticDocument functionality (URLs like "MyPage.13.0.html" instead of "index.php?id=13")
156           was extracted and put to a separate system extension "simulatestatic".
157
158         * The frontend editing functionality was extracted into a separate system extension "fe_edit".
159
160         * The help modules "about" and "cshmanual" were extracted into separate system extensions with the same name.
161
162         * As mentioned in "Frontend" CSS styled content has been split into several files.
163           The update wizard can switch the versions of the static includes by refering to
164           the TYPO3 compatibility version.
165
166 Development
167 ===========
168
169         * t3lib_div::makeInstance now supports singletons. To mark a class as a
170           singleton it must implement the t3lib_singleton interface.
171
172         * A new caching framework has been added. It allows extensions to store temporary data
173           transparently to different cache back ends (database, file system or memory).
174
175         * Frontend plugins now can convert themselves from USER to USER_INT on the fly. This
176           is useful for plugins who can disallow caching using a TSConfig option (for example,
177           tt_news). Earlier plugins had to use $GLOBALS['TSFE']->set_no_cache(), which caused
178           huge performance problems. Now plugin simply need to call
179           $this->cObj->convertToUserIntObject() and return immediately without generating any
180           content.
181           Objects can find their current execution mode by calling $this->cObj->getUserObjectType().
182           This function can return either tslib_cObj::OBJECTTYPE_USER (if object runs as USER)
183           or tslib_cObj::OBJECTTYPE_USER_INT (if object is running as USER_INT). Here the code
184           example:
185                 function main() {
186                         ....
187                         if (!$this->conf['allowCaching'] && $this->cObj->getUserObjectType() == tslib_cObj::OBJECTTYPE_USER) {
188                                 $this->cObj->convertToUserIntObject();
189                                 return '';
190                         }
191
192         * Class tslib_eidtools is enhanced with new methods for eID/AJAX applications:
193                 static function initLanguage($language = 'default');
194                         Creates $GLOBALS['LANG'] for the given language
195                 static function initTCA();
196                         Loads 'ctrl' sections for TCA tables from all installed extensions
197                 static function initExtensionTCA($extensionKey);
198                         Similar to initTCA() but loads the table only for the given extension
199
200         * Class t3lib_extMgm has new methods to enhance palettes:
201                 t3lib_extMgm::addFieldsToAllPalettesOfField($table, $field, $addFields, $insertionPosition = '');
202                         Adds new fields to all palettes of an existing field.
203                 t3lib_extMgm::addFieldsToPalette($table, $palette, $addFields, $insertionPosition = '');
204                         Adds new fields to a palette.
205
206         * A random byte generator has been added to t3lib_div::generateRandomBytes() which can
207           be used for cryptographic operations in the TYPO3 Core or in any other extension.
208
209 TypoScript changes
210 ==================
211
212         * Custom sub categories can be used in TypoScript constants like the following:
213                 #customsubcategory=limits=LLL:EXT:devlog/locallang.xml:limits
214
215 Database changes
216 ================
217
218         * The database tables cache_hash, cache_pagesections and cache_pages have been
219           changed due to a move to the new caching framework.
220
221         * Reference indexes storing table names have been extended from 40 to 255 chars
222
223         * The database table pages_language_overlay was extended by several fields to
224           support an alternative URL or a shortcut dependent on localization.
225
226         * The field t3ver_label has been extended from 40 to 255 chars in the tables
227           pages, pages_language_overlay, sys_template and tt_content.
228
229 DBAL
230 ====
231
232         * ...
233
234
235 Backend skin
236 ============
237
238         * ...
239
240
241 Speed improvements
242 ==================
243
244         * PHP classes for frontend plugins are now loaded only if they are used to render
245           content by enabling the "includeLibs" property also for USER objects in TypoScript.
246           In the past, all available class files for frontend plugins were loaded so this new
247           feature increases performance by reducing memory consumption.
248
249         * TYPO3 now enables client caching of JavaScript, CSS and image files by using .htaccess
250           files in various directories. This may cause problems if mod_expires is not enabled
251           in the Apache configuration. See the FAQ section in the INSTALL.txt about disabling
252           these files if necessary.
253
254         * There's a new $EM_CONF parameter called "doNotLoadInFE". When set it will prevent
255           TYPO3 from adding the extension's ext_localconf.php and ext_tables.php to the
256           temp_CACHED files when rendering frontend content. Technically this is done by
257           adding an additional list of extensions to localconf.php ($TYPO3_CONF_VARS['extListFE'])
258           which contains only a subset of all installed extensions. This list is only used
259           when rendering frontend content. Since this list is shorter
260           than the list of all extensions this will result in 2 new temp_CACHED_FE* files which are
261           smaller than the files containing all extensions settings. This can save some
262           precious milliseconds when delivering content.
263
264
265 Important bugfixes
266 ==================
267
268         * ...
269
270 Currently unsupported
271 =====================
272
273         * Missing features concerning the disposal of Inline Relational Record Editing (IRRE)
274                 -> Workspaces and Versioning are currently not supported
275                 -> FlexForms using the TCA type 'inline' are currently not supported/tested
276                 -> Import/Export (sysext tx_impexp) might not work correctly in special cases