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