[TYPO3-english] Advice needed for creating a new version of an existing website
Jigal van Hemert
jigal.van.hemert at typo3.org
Sat Mar 28 13:06:14 CET 2015
On 28/03/2015 10:04, Mattia B wrote:
> Hi, I'm very new with Typo3.
Not a problem, but you'll probably encounter quite a few issues for
which you need some knowledge of the internals of TYPO3. Don't give up,
ask for help and do mention that you're still inexperienced.
> I've been hired to build the new version of a website currently based on
> typo3 4.2.x.
> All functionality currently implemented should also be available in the
> new website.
> My job is to a) add some functionality and b) remake the website graphics.
> I was evaluating the option of:
> - reusing the current codebase
Please don't! 4.2 is old, really old. In the mean time security issues
have been fixed in later releases which were not fixed in those old
versions (because the maintenance period had ended).
> - update typo3 (and extensions) to 6.2
That would be smart. Depending on the extensions that are present it can
be a challenge. In some other cases it's quite easy. More on that later.
> - implement new functionality
> - remake the templates
> I'm encountering a lot of issues in upgrading.
> Particularly the fact that the website is currently depending on old
> extensions (templavoilà, dam, ..).
There are still versions of TemplaVoilà for 6.2 and even for 7.x is a
version available or about to be released.
DAM can't be used in 6.x or later, but there is comparable functionality
in the core called FAL (File Abstraction Layer). There are extensions
available to convert DAM records into FAL records and update the
relations in many fields.
> My questions are:
> - would it be better starting from scratch? (current website has a lot
> of data which should be reimported/remapped somehow)
If you have to convert the data it takes still a lot of time and some
knowledge about the old and new data structures.
> - is 6.2 a good version to go with or is it already getting old?
It's been published about a year ago and it'll will be maintained for
three years in total. You have just over two years of bugfixes and
security fixes left.
Version 7 is released in steps. 7.1 is available and 7.2 will be
published soon. At the end of this year the "final" 7.x release will be
released as "7 LTS" which gets bugfixes for three years after that
moment. The 7.x versions are all considered "stable" but since new
features will be added in each .x version you must run the Upgrade
Wizard between those versions and you might have to make small changes
to the installation/configuration.
6.2 is probably the best version for you.
> - in the case of reusing part of the current codebase is it feasible to
> switch the template engine and what engine would you suggest?
First some extra information and advice about the upgrade path for your
The oldest version you can upgrade from to 6.2 is 4.5. Older upgrade
wizards have been removed. So your steps would be:
4.2.x -> 4.5.latest -> 6.2.latest
1. make sure you have backups of database and files [!!!], make backups
after successful steps.
2. make sure you have (S)FTP access (or a local installation) to get
things working if the backend or Install Tool isn't accessible anymore [!!!]
3. Update the reference index (DB tools in the menu on the left). This
will help some Upgrade Wizards.
4. Update extensions to the latest version that is working with your
core version. This is not always easy because in the past it was not
mandatory to indicate for which core versions an extension can be used.
In the Extension Repository on typo3.org there is an option in the
Filter to show 'outdated' extensions too. This might help you find some
of the older versions.
4.b it might be necessary to run Update scripts for individual
extensions. They can be found in the detail information of each
extension in the Extension Manager in older releases and in 6.2 there is
an icon in the list of installed extensions if such a script is available.
5. Update the core (instructions can be found in the installation
instructions in the core archive)
6. Use the Upgrade Wizard to migrate core data
7. Use the Database Compare tool to make database changes. Be careful
here! This tool is based on the information provided by the core and
extensions. Adding tables, fields and keys; changing fields and keys are
pretty harmless. Removing fields and tables can remove data which might
be needed. There are known cases where you need to do the DB compare
multiple times to have all the additions and changes done. In some cases
changes don't seem to work, these are most likely one of two situations:
small differences in letter case or order in the database definitions
(INT(11) vs int(11)); combined keys. These are not detected properly,
but the changes are applied correctly.
8. Clear caches
9. Check if things are working
10. Database character set update 
11. Use the smoothmigration extension from TER to investigate and help
with potential problems for migrating to 6.2
12. Repeat steps 3-9 for the upgrade from 4.5 -> 6.2
- TemplaVoilà : there are versions which are compatible with 6.2, so you
can keep using this
- DAM: needs to be converted to FAL. There are extensions in TER which
can help you with that. There might be DAM connector extensions in your
installation which make work a bit complex and in some combinations you
need to make some scripts to convert the fields which contain IDs of DAM
records into the IDs of FAL records. The DAM-FAL converting extensions
will help you because they keep track of those ID combinations.
If you use DAM frontend you need to find a replacement for that (it
displays lists of DAM records in the frontend)
- Custom extensions and extensions without newer versions. There is a
chance that these can be used in 6.2 with some minor changes. In most
cases you'll find fatal PHP errors with require(_once) statements. In
many cases the solution is simply to remove the statement (and let the
TYPO3 autoloader do its job). The smoothmigration extension will very
likely give you this information too.
Your templating question:
Fluid is regarded the new standard template engine. You can still use
TemplaVoilà but in case you want to change you need to convert FCEs
(Flexible Content Elements) from TV into something else. An option is to
use the Gridelements extension. There is a migration extension available
for this. You still need to make your Fluid templates for both the pages
and the content elements, but the migration extension will help
converting all the content elements, mappings and so on.
Alternative tool is
http://www.typo3coder.nl/fileadmin/downloads/fixdb.zip ; the php file
needs to be put in /typo3/install/ and can be called from the browser.
To make the process quicker it's advisable to empty the cache_* and
possibly index tables (not the index configurations) because these are
huge and can be rebuild later. This alternative tool automatically
detects possible problems and fixes them for you.
Jigal van Hemert
TYPO3 CMS Active Contributor
TYPO3 .... inspiring people to share!
Get involved: typo3.org
More information about the TYPO3-english