[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


Hi,

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 
situation.

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 [1]

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

Extensions:
- 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.



[1] http://wiki.typo3.org/UTF-8_support#Possibility_1
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 mailing list