[TASK] Backport Flow JsonView
[Packages/TYPO3.CMS.git] / NEWS.md
1 TYPO3 CMS 6.2 - WHAT'S NEW
2 ==========================
3
4 TYPO3 is an open source PHP based web content management system released
5 under the GNU GPL. TYPO3 is copyright (c) 1999-2013 by Kasper Skaarhoj.
6
7 This document provides information about what is new in the 6.2 release
8 of TYPO3. An up-to-date version of this document also containing links to
9 further in depth information can be found here:
10
11 http://wiki.typo3.org/TYPO3_6.2
12
13 System requirement changes
14 --------------------------
15
16 Minimum PHP version requirement raised to PHP 5.3.7. Please upgrade PHP first,
17 if you plan to update from an older TYPO3 installation to 6.2!
18
19 PHP 5.4 or later is recommended for improved performance.
20
21 Consult INSTALL.md for complete system requirements.
22
23 Changes and Improvements
24 ------------------------
25
26 ### Removed and moved components
27
28 * Removed PHP constant PATH_t3lib
29 * Moved ExtJS- & JavaScript files from t3lib to typo3
30
31 ### General
32
33 * SpriteGenerator now supports high density sprites
34
35 * New default value for cookieHttpOnly setting
36
37 The session cookies "fe_typo_user" and "be_typo_user" now have set the
38 HttpOnly attribute by default.  This will make it harder to steal the cookie
39 by XSS attacks.
40
41 ### Logging
42
43 * Logging API PSR-3 compliance
44
45 The logger of the Logging API now complies with the PSR-3 standard of the
46 PHP Framework Interop Group: http://www.php-fig.org/psr/3/
47
48 ### Backend
49
50 * Categorization API improvements
51
52 \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::makeCategorizable() can now
53 be used multiple times on the same table to add more than one category field.
54 The options array (the fourth parameter) now can contain a 'label' to set a
55 custom label for each category field.
56
57
58 * Ajax API addition
59
60 New API has been added to register an Ajax handler for the backend.
61 \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerAjaxHandler('TxMyExt::process', '\Vendor\Ext\AjaxHandler->process');
62
63 Along with that, new API has been added to get the Ajax URL for a given AjaxId.
64 This URL will contain a CSRF protection token that will be checked
65 in the ajax.php dispatcher:
66 $ajaxUrl = \TYPO3\CMS\Core\Utility\BackendUtility::getAjaxUrl('TxMyExt::process');
67
68 Registering an Ajax script the "old" way by just adding it to TYPO3_CONF_VARS has been deprecated,
69 but no deprecation log is been written and the handler still work in a backwards compatible way.
70
71 #### CSS Styled Content
72
73 * Removed deprecated DB fields
74
75 There are 5 DB fields in tt_content that haven't been used in TYPO3 since
76 version 4.0, and were disabled by default when using CSS Styled Content.
77
78 The DB fields are
79   - text_align
80   - text_face
81   - text_size
82   - text_color
83   - text_properties
84
85 The fields have been removed from the code and are removed by the
86 DB Compare after upgrading.
87
88
89 #### Caching
90
91 * Caching behaviour by newly introduced grouping parameter
92
93 Most caches used in TYPO3 CMS are now based on the FLOW caching framework. The
94 caching framework is now used for class loading, Extbase-internals, most page-
95 related caches, and for the configuration cache. Some caches are system-related
96 caches that only need to be flushed and rebuilt when the core is updated or
97 an extension is (un-)installed. **The functionality of "Clear all caches" thus
98 does not include the system-related caches anymore** - these can be cleared by
99 "Clear configuration cache" or DataHandler->clear_cacheCmd('system') if the
100 user has the according permissions. Each cache can be configured to be in one or
101 multiple groups in its configuration parameters. Custom groups can be defined
102 and cleared manually.
103 All extension maintainers are encouraged to switch their own caching mechanisms
104 to the caching framework and use the API instead of using hooks within TCEmain,
105 as the clearing via TCEmain would only be triggered if going through
106 the TCEmain calls (not via Extbase e.g.).
107
108 * Re-ordered backend menu items
109 With grouped caching (see above) items in the menu bar of the TYPO3 Backend
110 have been re-arranged and renamed to reflect the impact of the icons.
111
112  - "Flush frontend caches" clears all caches marked with the group "pages".
113  This includes clearing the previous "cache_hash", "cache_pages" and
114  "cache_pagesection", which affects links, TypoScript, fully-cached pages and
115  cached page elements.
116
117  - "Flush all caches" clears all caches inside the groups "all" and "pages"
118  as well as additional database tables registered via hooks in TCEmain. However
119  the system-related caches are NOT flushed.
120
121  - "Flush system caches" clears all system-related caches, which is the class
122  loading cache, configuration cache (previously known as temp_CACHED_* files)
123  and some other extbase-related class caches. The symbol is now disabled
124  by default, even for admins, and can be enabled by setting the userTSconfig
125  option "options.clearCache.system=1", and is also always enabled using
126  the Application Context / TYPO3_CONTEXT Environment Option "Development".
127  Additionally, clearing system caches can be done via the Install Tool, they
128  are automatically flushed when an extension is being activated/uninstalled.
129
130 All hooks within TCEmain still work as expected. However, the use of
131 clear_cacheCmd with the parameter "temp_cached" is discouraged with
132 the introduction of the group "system".
133
134
135 ### Frontend
136
137 * Typoscript compatibility
138
139 For new installations TYPO3 CMS 6.2 now uses the new format of tt_content and page
140 records. If you're upgrading from a previous version the FrontendContentAdapter is
141 activated, which converts those records back to the old format for you on the fly.
142
143 If you manage to change your Typoscript to use the new format you should consider
144 deactivating the Adapter with the Install Tool option [FE][activateContentAdapter]
145 as the Adapter really slows down the system.
146
147 * Minor API change in \TYPO3\CMS\Frontend\ContentObjectRenderer->getTreeList()
148
149 getTreeList() got some cleanup and slightly changed its return result. Former
150 versions sometimes returned a trailing comma which is not the case anymore.
151
152 Before:
153 getTreeList(42, 4) // get pids for pageId 42, 4 levels deep
154 result: '0, 22, 11, 4,'
155
156 After:
157 getTreeList(42, 4)
158 result: '0, 22, 11, 4'
159
160 * Removal of HTML Tidy and its options
161
162 The possibility to use the external tool HTML Tidy that is used to clean up
163 incomplete HTML when a frontend page is rendered was removed from the TYPO3
164 Core. Its functionality is now provided by the TER extension "Tidy".
165 The extension works with the same options as before.
166
167 * Change in Hook TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_fe.php']['pageLoadedFromCache']
168
169 Previously $row['cache_data'] was a serialized array. To avoid double serializing and unserializing,
170 from now on $row['cache_data'] is just reconstituted as array when fetching from cache.
171
172 * Frontend Cookie now only set when needed, not set by default anymore
173
174 The cookie "fe_typo_user" set in the frontend by each request, is now only
175 being set if the session data is used via $TSFE->fe_user->setKey('ses')
176 so it can be used for shopping baskets for non-logged-in users
177 out-of-the-box without hacking the default behaviour of setting the
178 cookie.
179 The previous behaviour always set the "fe_typo_user" cookie, but changed
180 the session ID on each request, until it was fixated by a user login.
181 The superfluous option "dontSetCookie" is now ineffective as the cookie
182 is not set anymore by default.
183
184 * No backward compatibility for classes inheriting localPageTree or localFolderTree
185
186 Backwards compatibility for extensions that inherit from one of the classes
187 localPageTree, localFolderTree, rtefoldertree, rtepagetree, tbe_foldertree or tbe_pagetree
188 is dropped.
189
190
191 ### Administration / Customization
192
193 * Content-length header (TypoScript setting config.enableContentLengthHeader)
194   is now enabled by default
195
196 ### Extbase
197
198 * Recursive object validation
199
200 Validation of object structures in extbase is now done recursively. If a tree
201 of objects is created by the new property mapper, not only the top level object
202 is validated, but all objects.
203
204 * Allow empty validation
205
206 In order to make a property required you now need to add the NotEmptyValidator
207 to your property. The return value of validators is now optional.
208
209 ### Fluid
210
211 * Image view helper does not render title tag by default
212
213 In previous versions of fluid the image view helper always rendered the
214 title attribute. If not set, the value of the required alt attribute was set as
215 title.
216 This fallback was removed with version 6.2. If not specifically set, title
217 is not rendered anymore.
218
219 Example:
220   Fluid Tag
221     <f:image src="{file}" alt="Alt-Attribute" />
222   will render
223     <img src="fileadmin/xxxx.jpg" alt="Alt-Attribute" />
224   and not
225     <img src="fileadmin/xxxx.jpg" alt="Alt-Attribute" title="Alt-Attribute" />
226
227 * Date view helper uses configured default format
228
229 The fluid date view helper now uses $GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy']
230 as fallback format instead of hardcoded Y-m-d if no explicit format is given as
231 argument. This may change the output of dates from Y-m-d to d-m-y.
232
233 ### System categories
234
235 * Activated by default
236
237 Pages and content elements are now categorizable by default.
238
239 * New menu types
240
241 The "Special Menus" content element type now offers the possibility to display
242 a list of categorized pages or content elements.
243
244 * Category fields are excluded by default
245
246 Category fields are created as exclude field (TCA) by default.
247 If you're upgrading don't forget to add the permission for users.