[TASK] Update NEWS.txt with information from reviewed Release Notes
[Packages/TYPO3.CMS.git] / NEWS.txt
1 This document is a part of the TYPO3 project. TYPO3 is an open source web
2 content management system released under the GNU GPL. TYPO3 is copyright
3 (c) 1999-2011 by Kasper Skaarhoj.
4
5 This document contains information about TYPO3 version 4.6 which was released
6 on October, 25th 2011.
7
8 An up-to-date version of this document also containing links to further in
9 depth information can be found here:
10
11 http://wiki.typo3.org/TYPO3_4.6
12
13 ===============================================================================
14 Compatibility
15 ===============================================================================
16
17 * PHP 5.3
18
19 This version requires at least PHP 5.3, older versions of PHP are not supported
20 anymore with TYPO3 4.6.
21
22         * safe_mode is not supported anymore
23         * magic_quotes_gpc is deprecated. You are encouraged to turn this option
24           off as it still defaults to "On".
25
26 * ImageMagick
27
28 If you are using ImageMagick, only versions 6.0 and above are supported.
29
30 * Internet Explorer 6
31
32 Support for Internet Explorer 6 has been dropped in the Backend. Extended
33 support for MS Windows XP (and thus Internet Explorer 6) is still available
34 through TYPO3 4.5 LTS until its end of life in April 2014.
35
36 * PHP __constructor() methods
37
38 The old PHP 4 style class constructors, which have been the same as the class
39 name have been changed to use the PHP 5 __constructor() syntax. This is
40 considered as breaking change, if extension called the old constructor of an
41 object directly.
42
43 * Deprecated methods
44
45 Deprecated methods that were initially targeted to be removed in TYPO3 4.5 have
46 finally been removed. Starting from TYPO3 4.6, removal of deprecated methods
47 will follow as announced in the deprecation log.
48
49 Removed Functionality
50 -------------------------------------------------------------------------------
51
52 * Static Published Pages
53
54 The feature to statically publish a page from the Admin Panel has been dropped.
55 There are better ways to achieve such a functionality, like e.g.
56 EXT:nc_staticfilecache.
57
58 * Removed extCache=2 option
59
60 The cache files in typo3conf/temp_CACHED_* were by default set to a hash that
61 was based on the extensionlist, but this is quite unnecessary, so the extCache
62 option was removed to be only used once in the typo3conf/ directory in order
63 to prevent hundreds of temp_CACHED_* files that don't get cleaned up automati-
64 cally. From now on the option $TYPO3_CONF_VARS['EXT']['extCache'] can only be
65 set to 0 or 1.
66
67 ===============================================================================
68 Changes and Improvements
69 ===============================================================================
70
71 This will list all changes and improvements between TYPO3 4.5 and 4.6. For
72 technical details see ChangeLog included in the typo3_src package.
73
74 -------------------------------------------------------------------------------
75 General
76 -------------------------------------------------------------------------------
77
78 XLIFF Support
79 -------------------------------------------------------------------------------
80
81 XLIFF language files (*.xlf) are now the official format for localization
82 files. These files are generated from our Translation Server
83 (http://translation.typo3.org). You are encouraged to use your typo3.org user
84 account to log into the Translation Server and suggest corrections. This
85 server generates automatically the old ll-XML localization files to be used
86 with previous versions of TYPO3.
87
88 * Hierarchy of languages
89
90 User-defined hierarchy of languages may now be specified. By default, locales
91 composed of a language code and a country code (e.g. fr_CA) now fall back to
92 the main language (fr) before using English (default). This means that if
93 fr_CA is being used (French Canada), a missing label will be searched within
94 French localization files before being searched within the default (English)
95 localization files. This behavior may be changed by specifying arbitrary
96 dependencies:
97
98  $TYPO3_CONF_VARS['SYS']['localization']['locales']['dependencies'] = array(
99      'de_CH' => array('de_AT', 'de'),
100  );
101
102 Swiss German (de_CH) will first use Austrian German (de_AT), then German
103 (de) and only using English as a final option (as usual).
104
105 * Upgrade notes for JavaScript within user extensions
106
107 JavaScript files using TYPO3.lang to retrieve localization labels should be
108 updated to use the new TYPO3.l10n API instead:
109
110  TYPO3.lang.KEY => TYPO3.l10n.localize('KEY')
111  TYPO3.lang['KEY.SUBKEY'] => TYPO3.l10n.localize('KEY.SUBKEY')
112
113 Form
114 -------------------------------------------------------------------------------
115
116 The new Form content element, available as a system extension, makes it easy to
117 generate forms to be used as content elements. It provides a Form wizard based
118 on ExtJS to allow editors to construct forms very efficiently with intuitive
119 drag & drop functionality and sorting methods to add and replace form elements.
120 While working in the wizard, the editor sees the form exactly as it will be
121 displayed in the website.
122
123 This is a complete rewrite and enhancement of the Form content element you may
124 have used in the past. It is a great step forward and also paves the way for
125 future enhancements such as storing data in the database instead of sending an
126 email or having AJAX validation to show an error immediately after filling in a
127 single field without submitting the whole form.
128
129 NOTE: If you upgrade from a previous version of TYPO3, you have to manually
130 load the new Form content element using the Extension Manager. For new TYPO3
131 installations based on the Introduction Package or the Blank Package, the new
132 Form content element is loaded by default.
133
134 BEWARE: Loading the new Form system extension deactivates the old Form content
135 element and no upgrade wizard is available so you have to manually upgrade your
136 old form definitions to use the new feature set of this extension.
137
138 Other General Improvements
139 -------------------------------------------------------------------------------
140
141 * Precise publishing dates
142
143 Editors can now set the publishing date for pages and elements using both date
144 and time values, all the way down to the minute. This was previously not
145 possible due to caching issues and required work-arounds.
146
147 * New Scheduler task to delete old data from tables
148
149 The Scheduler task 'Table garbage collection' can be used to delete old data
150 from ever-growing tables like log tables on a regular basis. Additional tables
151 that can be cleaned up must be registered in $TYPO3_CONF_VARS['SC_OPTIONS']
152 ['scheduler']['tasks']['tx_scheduler_TableGarbageCollection']['options']
153 ['tables'] with its table name and a field. After that they can
154 be selected in the Scheduler task.
155
156 * New Scheduler task to delete old files from fileadmin trash directories
157
158 The Scheduler task 'Fileadmin recycler garbage collection' can be used to
159 definitely delete old files from _recycler_ directories. When a _recycler_
160 directory exists within the path of a file to delete via the File module, the
161 file is not actually deleted, but stored in the _recycler_ folder.
162 This new task now deletes all files insider _recycler_ folders that have been
163 moved there for longer than a given number of days.
164
165 * New option to customize the cookie names used by TYPO3
166
167 It is now possible to customize the cookie names used by TYPO3 to avoid clashes
168 when running more installations on the same domain. The names used can be con-
169 figured with:
170  $TYPO3_CONF_VARS['FE']['cookieName'] and
171  $TYPO3_CONF_VARS['BE']['cookieName'].
172
173 * Moved t3d exports to fileadmin/_temp_ directory
174
175 Packages in a .t3d format exported by the import/export extension are now stored
176 in fileadmin/_temp_ by default. Access to this directory is automatically
177 restricted by default .htaccess rules.
178
179 * Added "IDNA Convert" libray for Internationalized Domain Names (IDN)
180
181 The new library can be found in typo3/contrib/idna/ and is used to encode and
182 decode internationalized domain names (containing special characters like
183 umlauts) to and from punycode.
184
185 -------------------------------------------------------------------------------
186 Security
187 -------------------------------------------------------------------------------
188
189 For new installations, extensions saltedpasswords and rsaauth are now
190 automatically activated and used if the necessary server requirements are met.
191 This includes a non-broken OpenSSL configuration.
192
193 Users upgrading to TYPO3 4.6 are strongly advised to manually enable these
194 extensions in order to strengthen the security of their website.
195
196 If extension rsaauth is enabled, the password transmission when saving the user
197 settings is now encrypted.
198
199 -------------------------------------------------------------------------------
200 Backend
201 -------------------------------------------------------------------------------
202
203 Live Search
204 -------------------------------------------------------------------------------
205
206 In previous TYPO3 versions, there were several problems with Backend search:
207
208 * it searched far more fields than necessary (for example, TSConfig)
209 * it searched "uid" and other numeric fields even if the value was not numeric
210 * it used LIKE x search on numeric fields
211 * it searched all tables even if they did not make sense to be searched
212 * it was too slow
213 * it searched only first four levels deep in the page tree
214
215 All these problems came from the (wrong) idea that TYPO3 could detect where it
216 could search. With the new backend search, tables needs to be marked as
217 "searchable" and provide a list of fields that make sense to search for. In
218 addition, some fields are searched without case sensitivity.
219
220 Basically, the 'ctrl' section of TCA is extended with a new option:
221
222  'searchFields' => 'username,email,realName'
223
224 Extension Manager
225 -------------------------------------------------------------------------------
226
227 The old Extension Manager has now been officially declared obsolete and the
228 ExtJS-based one will be used regardless of your previous preferences.
229
230 Other Improvements to the Backend
231 -------------------------------------------------------------------------------
232
233 * Backend speed-up with merged JavaScript files
234
235 All jsLibs, jsFiles and jsFooterFiles are now concatenated by default into
236 single files depending on type and section (header / footer). This reduces
237 the webserver requests approximately by one third.
238
239 * On-the-fly minification of inline JavaScript code disabled
240
241 The use of the JSmin library, which previously minified the inline JavaScript
242 code in the Backend was dropped. Due to its immense performance impact, editors
243 benefit from faster response times, while the increase of the output is only of
244 negligible order.
245
246 -------------------------------------------------------------------------------
247 Administration / Customization
248 -------------------------------------------------------------------------------
249
250 User-defined Languages
251 -------------------------------------------------------------------------------
252
253 The Backend now supports user-defined languages. This allows dialects to be
254 added or new languages to be prepared before official inclusion within TYPO3.
255
256 New languages can be added by declaring them within typo3conf/localconf.php:
257
258  $TYPO3_CONF_VARS['SYS']['localization']['locales']['user'] = array(
259      'de_CH' => 'Swiss German',
260      ...
261      '<language_key>' => '<English Name>',
262  );
263
264 Localization files should then be prepared as usual within
265 typo3conf/l10n/<language_key>/ just as with localization files retrieved from
266 TER.
267
268 -------------------------------------------------------------------------------
269 Development
270 -------------------------------------------------------------------------------
271
272 Extbase / Fluid
273 -------------------------------------------------------------------------------
274
275 Extbase, the MVC bridge between TYPO3 Phoenix' framework FLOW3 and TYPO3 v4 as
276 well as the new templating engine Fluid are steadily improved with every new
277 version of TYPO3 4.x.
278
279 * New Property Mapper
280
281 The Property Mapper has been completely rewritten in FLOW3, and this has also
282 been backported to Extbase. The new property mapper is very configurable and
283 extensible. Furthermore, the MVC stack has been adjusted to be in sync with
284 FLOW3 again. However, the new behavior is ONLY ACTIVATED MANUALLY. We suggest
285 that you activate it for your new extensions by inserting:
286
287  plugin.tx_[yourExtensionName].features.rewrittenPropertyMapper = 1
288
289 The documentation for the new property mapper can be found at
290 http://flow3.typo3.org/documentation/guide/partiii/propertymapping.html
291
292 * Validation API
293
294 The Validation API has changed, but this is only a breaking change if you do
295 NOT subclass AbstractValidator, but implement ValidatorInterface yourself. In
296 this case, you need to adjust your custom validator to support the new API.
297
298 * Dependency Injection
299
300 Dependency Injection is now also possible for reconstituted Domain Objects.
301
302 * Signal / Slot: The "Signal / Slot" feature has been backported from FLOW3,
303 implementing a future-proof alternative to hooks.
304
305 * Compiled Fluid templates
306
307 Fluid templates are now compiled to PHP files. This drastically speeds up the
308 rendering process by factor 2-5 and reduces memory consumption as well.
309
310 * $this->arguments->hasArgument() removed
311
312 AbstractViewHelper::$arguments are no longer an object but an array. If you
313 used $this->arguments->hasArgument() in your custom ViewHelpers, you'll have to
314 replace this with $this->hasArgument().
315
316 * Introduction of {_all} Variable
317
318 You can now use {_all} inside your template to access all variables available
319 right now. This is especially helpful for debugging:
320
321  {_all -> f:debug()}
322
323 or for passing all currently available variables to a partial:
324
325  <f:render partial="..." arguments="{_all}" />
326
327 This is a breaking change if you used a variable _all inside your own
328 templates.
329
330 * Widgets & templateRootPath
331
332 It is now possible to override the widget template root path via the framework
333 configuration, for example:
334
335  plugin.tx_extension.view {
336      widget.<WidgetViewHelperClassName>.templateRootPath = ...
337  }
338
339 Please read the ChangeLog for further details.
340
341 Although we do our best to make adjustments in a backwards-compatible manner,
342 we needed to break backwards compatibility at a few places. In order to see if
343 you are affected and how the issues can be solved, please read our notes on
344 breaking changes:
345
346 http://forge.typo3.org/projects/typo3v4-mvc/wiki/Breaking_Changes
347
348 Backend Development
349 -------------------------------------------------------------------------------
350
351 * Language files
352
353 Localization parsing is now cached within typo3temp/Cache/Data/t3lib_l10n. This
354 speeds up TYPO3 but may lead to weird behaviour when you add a new language
355 label in an XLIFF file and it seems not to "exist" at all. Instead of
356 clearing the aforementioned cache directory, you may add an item in the clear
357 cache menu by adding enabling it in localconf.php:
358
359  $GLOBALS['TYPO3_CONF_VARS']['SYS']['lang']['cache']['clear_menu'] = TRUE;
360
361 Generally, you may disable caches by using a NULL backend as described in:
362
363 http://wiki.typo3.org/Caching_framework#How_to_disable_specific_caches
364
365 * xtype:modulepanel
366
367 This new ExtJS panel type allows creation of pure ExtJS modules which fit the
368 TYPO3 look 'n' feel.
369
370 * Marker-based templates
371
372 A new method substituteMarkerAndSubpartArrayRecursive() has been added to
373 t3lib_parsehtml. A wrapper for this method is present in tslib_cObj as well.
374 Instead of manually looping over nested subparts in a template, developers can
375 now prepare a nested array of markers and subparts and let TYPO3 do the nested
376 replacements in a single operation.
377
378 TypoScript / TCA / Frontend
379 -------------------------------------------------------------------------------
380
381 * New TypoScript features
382
383 stdWrap has new properties:
384
385         * .round: Round floating numbers
386         * .hash: Hash content with md5, sha1, and generally all algorithms
387           available by PHP function hash()
388         * .capitalize: Make first character of each word uppercase
389         * .replacement: Replace part of the content
390         * .expandList: Expand a comma-separated list of integers
391         * listNum = rand: Random item out of the list
392         * select.where now supports stdWrap
393
394 IMAGE and IMG_RESOURCE now support stdWrap on file.params.
395
396 * TCA
397
398         * parameters for userFunc: When using a userFunc as field type, additional
399           parameters may be provided.
400         * slider: New wizard for select fields as well as input fields for times,
401           integers and doubles.
402         * groupName (section [ctrl]): New option that can be used to group records
403           in the new record wizard.
404
405 -------------------------------------------------------------------------------
406 Performance
407 -------------------------------------------------------------------------------
408
409 * Caching Framework now mandatory
410
411 The Caching Framework is enabled by default and the old database-only driven
412 caching was removed. This opens a lot of options for administrators to optimize
413 cache deployment and performance. Details about configuration options and usage
414 in own extensions can be found at http://wiki.typo3.org/Caching_framework.
415
416 * Caching Framework: DB Backend uses own table namespace
417
418 The Database Backend must not define own tables and table definitions anymore.
419 Cache tables and table layout of the database backend will created by the
420 Caching Framework when needed.
421
422 * Compression and concatenation of CSS and JavaScript files
423
424 Built-in minification routines can now be used with config.compressCss to
425 reduce the size of all files configured in page.includeCSS.
426 With compressCss and/or compressJs enabled, CSS files and JavaScript files
427 (included using page.includeJS) can be saved and delivered with GZIP
428 compression in the Frontend, assuming $TYPO3_CONF_VARS['FE']
429 ['compressionLevel'] is set.
430 Similar to $TYPO3_CONF_VARS['BE']['compressionLevel'] (available since TYPO3
431 4.4), the following options must be set in .htaccess:
432
433  <FilesMatch "\.js\.gzip$">
434      AddType "text/javascript" .gzip
435  </FilesMatch>
436  <FilesMatch "\.css\.gzip$">
437      AddType "text/css" .gzip
438  </FilesMatch>
439  AddEncoding gzip .gzip
440
441 Single files can be excluded from compression using the new option
442 disableCompression. Additionally, files can be concatenated into a single file
443 using config.concatenateCss and config.concatenateJs. Please note that there is
444 only limited support for @charset, @import and @namespace statements in
445 concatenated CSS files.
446
447 Together with
448
449  config.removeDefaultJS = external
450
451 these routines will significantly increase your website speed!
452
453 You may disable compression and/or concatenation for CSS and JavaScript included
454 with the PAGE object. Example:
455
456  page.includeJSlibs {
457    jquery = http://code.jquery.com/jquery-1.6.1.min.js
458    jquery.external = 1
459    jquery.disableCompression = 1
460    jquery.excludeFromConcatenation = 1
461  }
462
463 The same options apply for includeCSS.
464
465 Please note that compression and concatenation apply for external resources as
466 well. If activated, external resources will be dynamically retrieved, processed,
467 and served locally.