Added details about VARCHAR(2)/CHAR(2) conversion
[Packages/TYPO3.CMS.git] / NEWS.txt
1 ************************************************************************
2 CHANGES & IMPROVEMENTS between TYPO3 4.0 and 4.1
3 (for technical details see ChangeLog)
4 ************************************************************************
6 General
7 ==================
9 * New PHP version requirement: You need to have at least PHP 4.3.0 in order to run TYPO3 4.1
11 Backend
12 ==================
14 * Inline Relational Record Editing (IRRE)
15 -> It's now possible to create and edit child records of a record as subforms inside of the form view in the backend
16 -> Therefore, the new TCA field type "inline" has been introduced
17 -> See for details
19 * Bidirectional MM relations: It's now possible to configure MM relations from both sides of the relation.
20 -> E.g. an employment relation could now be edited from both the "person" as well as the "company" side. ("employers" of "persons" and "employees" of "companies")
22 * BE who-is-online
23 -> The Tools->Useradmin module now displays which BE users are currently online.
25 * UTF-8 for filenames
26 -> You need to set $TYPO3_CONF_VARS['SYS']['UTF8filesystem'] to TRUE to enable this feature.
28 * Improved Extension Manager
29 -> Requires less memory
30 -> The EM now stores the list of extensions from TER in the database,
31 -> see
33 * Two nice usability enhancements
34 -> Using <label> tags in tceforms where appropriate to enhance usability in the Backend forms
35 -> Increase length for titles of be_users, be_groups, and fe_groups
37 * Workspace publishing is improved. Now publishing works with a limited number of records and publishes workspaces in several passes. This prevents PHP timeouts while publishing too many changes
39 Compatibility
40 =============
42 * Changed the default value of $TYPO3_CONF_VARS[SYS][devIPmask]
44 Speed improvements
45 ==================
47 * Many TYPO3 tables (cache_*, index_*, tt_content, pages and others) are modified to use new indexes. This speeds up common queries on these pages a lot
49 * Some tables are changed to use InnoDB engine type for MySQL. Unlike MyISAM, which was default in previous versions, InnoDB does not lock tables for reading when another request tries to write something to table. InnoDB makes possible many reads along with many writes, while MyISAM prevents reads and writes until every single write completes. This gives huge improvement cache_*, sys_stat and index_* tables during peak visiting hours.
50 InnoDB is more stable than MyISAM and prevents database corruption at peaks when there are too many requests come to MySQL.
51 If InnoDB is not configured (not enabled), MySQL will ignore these settings use MyISAM. TYPO3 users need not to change anything if they do not use InnoDB but if InnoDB is available, it will be used by default
53 * TYPO3 now includes several .htaccess files in t3lib/ and typo3/ subdirectories to speed up loading of static (non-changing) images. Prior to version 4.1 all images were reloaded each time when backend user accessed any module, navigation frame, file or page tree. This used a lot of bandwidth and slowed servers down with HTTP requests for static (non-changing) images (for example, imagine how many additional requests will web server get when you use List module in extended mode and how much data it needs to transfer!).
54 Using this feature requires certain Apache configuration. Main Apache configuration file should have "AllowOverride Indexes" directive for typo3-based web site (note that there can be also other values in AllowOverride" but "Indexes" is mandatory). It is safe and usually enabled by default by web server administrator. However if it is disabled and you cannot enable it for any reason (shared hosting, etc), you need to rename or delete several .htaccess files to prevent error messages from web server. Here is a list of these files:
55 typo3/gfx/.htaccess
56 typo3/mod/user/ws/.htaccess
57 typo3/sysext/.htaccess
58 typo3/sysext/t3skin/stylesheets/.htaccess
59 This feature requires mod_expires to be installed for Apache. If mod_expires is not installed, images will not be cached and TYPO3 will work as in previous versions. .htaccess files will detect if mod_expires is installed and use it automatically
61 Development
62 ====================
64 * Better getRecordTitle() function
65 -> It's now possible to define a "label_userFunc"
66 -> This makes it possible to e.g. define the label of a "persons" table as displayed in the list module to be like "Lastname, Firstname". Until now you could only define one field to be the "labelfield".
68 * Inline Relational Record Editing (see "Backend" section above)
70 * It is possible to reuse List module classes in extensions (see record editing in TemplaVoila Page module, for example)
72 Database changes
73 ================
75 * Changed many BLOB fields from int/varchar/whatever to tinyint(1) - this is the field type which is actually intended by MySQL for BLOBs
77 * Changed VARCHAR(2) fields to CHAR(2) to prevent never disappearing prompt to correct those fields (MySQL always silently converts VARCHAR(2) to CHAR(2), TYPO3 tries to make them VARCHAR(2) again, gets CHAR(2) back and complains again)
80 ====
82 * ...
84 Frontend features
85 =================
87 * Autologin for Frontend users is now possible!
88 -> Users can decide on their own whether they want to "Stay logged in" using a checkbox. The latest version of the "newloginbox" extension is required for that.
89 -> Needs to be configured in the Install Tool ("All Configuration" -> "permalogin" and "lifetime")
91 * UTF-8 for log files
92 -> TYPO3 now logs page paths in UTF-8 if config.stat_apache_niceTitle is set to "utf-8" in the TypoScript template Setup.
94 * Enable $TYPO3_CONF_VARS[FE][pageNotFoundOnCHashError] by default
95 -> URLs (especially plugins) can contain the &cHash parameter. It contains a checksum of the whole paramter set and is very useful for caching.
96 -> In the past, a wrong cHash caused the website to be recreated with caching turned off.
97 -> With the new behaviour, a wrong cHash will instead trigger an error message since this usually should never happen!
98 -> Usually, the cHash is only wrong if a) someone has changed the encryptionKey (bad!) or b) someone has manually modified the requested URL
100 Backend skin
101 ============
103 * Stylesheets are cached using mod_expires to speed up access (see "Speed improvements" section)
105 Important bugfixes
106 ==================
108 * ...