Cleanup: Updated NEWS.txt
[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 * It is now possible to disable versioning and workspaces by un-installing the extension
76 "version" which is no longer a required extension. If "version" is not installed all
77 versioning and workspace related controls are removed from the backend user interface.
78 Not installing "version" will improve the backend performance because a lot of database
79 operations are not needed anymore.
80
81 * The elements shown when creating new content elements (like "regular text element" etc.)
82 can be configured, modified and extended by Page TSconfig "mod.wizards.newContentElement".
83
84 * The tables shown when creating new records in the Web>List module are grouped by their scope
85 or extension now. The order can be modified by Page TSconfig "mod.wizards.newRecord.order".
86
87 * Elements on each table in the Web>List module can be collapsed or expanded now.
88 In the view showing a single table with many elements, a pagination helps to
89 get through them.
90
91 * Uploading files is now available with an optional Flash Uploader which shows a
92 nice widget with information on the upload progress. It makes it possible to select
93 multiple files at once. Enable the Flash Uploader by checking the appropriate checkbox
94 in the User Setup, reload the Backend and make sure that your browser has the
95 latest version of Flash (Flash v9+) installed.
96
97 * It is possible now to temporarily lock down the backend for system maintenance. Editors
98 will see an overlay with an message notifying them that the backend is locked. When the
99 lock is removed, editors can continue without having to re-login.
100 The lock is enabled by placing this file:
101 typo3conf/LOCK_BACKEND
102
103 * The backend gateway for manipulating files (uploading, renaming, copying) TCEfile is now
104 separated from the file typo3/tce_file.php and put in a new file and class in
105 typo3/classes/class.typo3_tcefile.php. There is now also a new AJAXid (TYPO3_tcefile::process)
106 to use this functionality in AJAX-based environments as well.
107
108 * The backend login page is now localized. The language for the login page where no
109 user-defined language is available yet is detected by the preferred browser language. If you
110 have previously changed the login labels via $TYPO3_CONF_VARS['BE']['loginLabels'] then
111 these will be used, however it is recommended to overload the XML file with your own XML file
112 and $TYPO3_CONF_VARS['BE']['XLLfile']['EXT:lang/locallang_login.xml']. These will only be used
113 once you remove the altered "loginLabels" configuration option from typo3conf/localconf.php.
114
115 * The extension "gabriel" has been integrated into the TYPO3 core as system extension "scheduler".
116 It provides a centralized way of defining scheduled, recurring tasks, with a convenient
117 interface to manage them (BE module). The aim is to have a single cron job which just launches
118 the Scheduler, which in turn takes care of executing all due tasks.
119 Extension developers are strongly encouraged to turn their existing cron scripts
120 into Scheduler tasks.
121
122 Frontend
123 ========
124
125 * The message log of the admin panel will report failures to set the locale
126
127 * Integrated functionality of extension jb_status_code into core:
128 It is now possible to specify a redirection code (301, 302, 303 or
129 307) together with a domain redirection in a sys_domain record.
130
131 * Added option named "additionalAbsRefPrefixDirectories" for Frontend in the Install tool.
132 This option is useful if the installation uses non-TYPO3 applications and links to
133 them from extensions. Earlier TYPO3 prepended only media/, typo3conf/ext/ and
134 fileadmin/ directories automatically with config.absRefPrefix. Using the new variable
135 administrators can tell TYPO3 to prepend also other directories inside the site root
136 with config.absRefPrefix.
137
138 * Added new Install tool option named "dbClientCompress". This option will
139 enable MySQL compression for network traffic. This is useful if
140 MySQl is not on the same host as the web server. Do not use this option if MySQL
141 is on the same host because it will only slow down the process. However if MySQL
142 is on another host, this option may improve performance significally.
143
144 * CSS styled content was split into separate files for each compatibility versions of TYPO3
145 (3.8, 3.9, 4.2 and current). When including the static template of css_styled_content,
146 a specific version must be chosen (also see Compatibility below).
147
148 * The GIFBUILDER now supports automatic line breaks by defining a maximum width of the
149 element to be rendered. The new TypoScript properties are "breakWidth" and "breakSpace".
150
151 * Image rendering now cuts off the profile data of images by default to reduce file sizes.
152 This behaviour can be modified or disabled by changing [GFX][im_stripProfileCommand] in
153 the install tool or by setting the TypoScript property "stripProfile" on IMAGE objects.
154
155 * cHashes now use the full md5 hash instead of the short hash previously calculated by
156 t3lib_div::shortMD5(). This reduces the risk of duplicate hashes, which could happen
157 in large web sites. However this may cause compatibility issues with some extensions
158 (see Compatibility below).
159
160 Compatibility
161 =============
162
163 * A deprecation log has been introduced to track calls to deprecated/outdated methods
164 in the TYPO3 Core. Developers have to make sure to adjust their code to avoid using
165 this old functionality since deprecated methods will be removed in future TYPO3 releases!
166 The information can be found in /typo3conf/deprecation_[hash-value].log
167 The install tool has a setting "enableDeprecationLog" that allows one to disable the logging of
168 deprecation messages since the file might grow quite fast depending on the extensions installed.
169
170 * If you use the caching framework it is not possible anymore to query the cache tables directly.
171 Any extension that needs the new caching framework has to make sure that it is initialized by
172 calling t3lib_cache::initializeCachingFramework().
173
174 * The simulateStaticDocument functionality (URLs like "MyPage.13.0.html" instead of "index.php?id=13")
175 was extracted and put to a separate system extension "simulatestatic".
176
177 * The frontend editing functionality was extracted into a separate system extension "feedit".
178
179 * The help modules "about" and "cshmanual" were extracted into separate system extensions with the same name.
180
181 * As mentioned in "Frontend" CSS styled content has been split into several files.
182 The update wizard can switch the versions of the static includes by refering to
183 the TYPO3 compatibility version.
184
185 * As mentioned in "Frontend", cHash use full-length md5 now. This has an impact on extensions
186 that make use of the cHash, like RealURL or the Crawler. Make sure to update those extensions
187 to their latest version.
188
189 * As mentioned in "Backend", the extension "version" is no longer "required" and therefore it
190 will not be installed by default anymore if you update an existing site. If you use
191 versioning and workspaces you have to re-enable it after the update by installing it with
192 the extension manager or with the update wizard in install tool.
193
194 Development
195 ===========
196
197 * t3lib_div::makeInstance now supports singletons. To mark a class as a
198 singleton it must implement the t3lib_singleton interface.
199
200 * A new caching framework has been added. It allows extensions to store temporary data
201 transparently to different cache back ends (database, file system or memory).
202 Due to its flexibility the caching framework is a bit slower than the native database
203 caching, therefore it is disabled by default. If you use a multi-machine environment where
204 you can distribute the caches over multiple servers the caching framework can be
205 way faster than the native native database caching.
206
207 * Frontend plugins now can convert themselves from USER to USER_INT on the fly. This
208 is useful for plugins who can disallow caching using a TSConfig option (for example,
209 tt_news). Earlier plugins had to use $GLOBALS['TSFE']->set_no_cache(), which caused
210 huge performance problems. Now plugin simply need to call
211 $this->cObj->convertToUserIntObject() and return immediately without generating any
212 content.
213 Objects can find their current execution mode by calling $this->cObj->getUserObjectType().
214 This function can return either tslib_cObj::OBJECTTYPE_USER (if object runs as USER)
215 or tslib_cObj::OBJECTTYPE_USER_INT (if object is running as USER_INT). Here the code
216 example:
217 function main() {
218 ....
219 if (!$this->conf['allowCaching'] && $this->cObj->getUserObjectType() == tslib_cObj::OBJECTTYPE_USER) {
220 $this->cObj->convertToUserIntObject();
221 return '';
222 }
223
224 * Class tslib_eidtools is enhanced with new methods for eID/AJAX applications:
225 static function initLanguage($language = 'default');
226 Creates $GLOBALS['LANG'] for the given language
227 static function initTCA();
228 Loads 'ctrl' sections for TCA tables from all installed extensions
229 static function initExtensionTCA($extensionKey);
230 Similar to initTCA() but loads the table only for the given extension
231
232 * Class t3lib_extMgm has new methods to enhance palettes:
233 t3lib_extMgm::addFieldsToAllPalettesOfField($table, $field, $addFields, $insertionPosition = '');
234 Adds new fields to all palettes of an existing field.
235 t3lib_extMgm::addFieldsToPalette($table, $palette, $addFields, $insertionPosition = '');
236 Adds new fields to a palette.
237
238 * A random byte generator has been added to t3lib_div::generateRandomBytes() which can
239 be used for cryptographic operations in the TYPO3 Core or in any other extension.
240
241 TypoScript changes
242 ==================
243
244 * Custom sub categories can be used in TypoScript constants like the following:
245 #customsubcategory=limits=LLL:EXT:devlog/locallang.xml:limits
246
247 Database changes
248 ================
249
250 * The database tables cache_hash, cache_pagesections and cache_pages have been
251 changed due to a move to the new caching framework.
252
253 * Reference indexes storing table names have been extended from 40 to 255 chars
254
255 * The database table pages_language_overlay was extended by several fields to
256 support an alternative URL or a shortcut dependent on localization.
257
258 * The field t3ver_label has been extended from 40 to 255 chars in the tables
259 pages, pages_language_overlay, sys_template and tt_content.
260
261 DBAL
262 ====
263
264 * ...
265
266
267 Backend skin
268 ============
269
270 * ...
271
272
273 Speed improvements
274 ==================
275
276 * TYPO3 4.3 is the first TYPO3 version that is faster than it's predecessor. This has
277 achieved by constantly monitoring performance impacts of all changes in the core.
278
279 * PHP classes for frontend plugins are now loaded only if they are used to render
280 content by enabling the "includeLibs" property also for USER objects in TypoScript.
281 In the past, all available class files for frontend plugins were loaded so this new
282 feature increases performance by reducing memory consumption.
283
284 * TYPO3 now enables client caching of JavaScript, CSS and image files by using .htaccess
285 files in various directories. This may cause problems if mod_expires is not enabled
286 in the Apache configuration. See the FAQ section in the INSTALL.txt about disabling
287 these files if necessary.
288
289 * There's a new $EM_CONF parameter called "doNotLoadInFE". When set it will prevent
290 TYPO3 from adding the extension's ext_localconf.php and ext_tables.php to the
291 temp_CACHED files when rendering frontend content. Technically this is done by
292 adding an additional list of extensions to localconf.php ($TYPO3_CONF_VARS['extListFE'])
293 which contains only a subset of all installed extensions. This list is only used
294 when rendering frontend content. Since this list is shorter
295 than the list of all extensions this will result in 2 new temp_CACHED_FE* files which are
296 smaller than the files containing all extensions settings. This can save some
297 precious milliseconds when delivering content.
298
299 * The amount of database queries is reduced using the "treelist cache". Thus, the frontend
300 renders a bit faster due to this optimization.
301
302
303 Important bugfixes
304 ==================
305
306 * ...
307
308 Currently unsupported
309 =====================
310
311 * Missing features concerning the disposal of Inline Relational Record Editing (IRRE)
312 -> Workspaces and Versioning are currently not supported
313 -> FlexForms using the TCA type 'inline' are currently not supported/tested
314 -> Import/Export (sysext tx_impexp) might not work correctly in special cases