Migrate JYAML from 4.0 (Joomla 2.5, YAML 3) to 4.5 (Joomla 3.0, YAML 4)

An update should not be made in a production environment. Make a copy of your Joomla! Website and test the the update process on there. Or set the site temporarily offline. It is almost inevitable that errors may occur (especially for larger version increments). This is simply because that the templates can be customized.

The JYAML Upgrade Tool in does convert all old YAML3 CSS classes to the new YAML4 in all template files and in the database for articles, categories and modules.

The migration script can produce code erros or invalid code. Sometimes you must adjust your code manually, but the script does the most things prepare for your.
Here is a YAML4 migration cheat sheet if you need manual adjustments after the upgrade:
You can also use the JYAML support forum: (please post in the Joomla! section)

Migration steps

Do not Update Joomla 2.5 to 3.0 before the following first step is done!
I have also made a short video equal to this steps:


  1. First of all! Update JYAML to latest Version of 4.0.x (minimum required for the migration is 4.0.4). (see:
  2. Then you must update your Joomla!2.5 installation to Joomla!3.0 (How do I upgrade to Joomla! 3.0?)
  3. If Joomla3.0 is working download the latest version of JYAML 4.5.x complete package (
  4. Install the downloaded JYAML complete in the Joomla Extension Manager.
  5. After successfull installation you can see 'Upgrade Buttons' for each installed JYAML template. Click on the upgrade button and a popup will open.
    READ and follow the steps in the upgrade popup.
  6. If the upgrade was successfully, please check and save all your configurations related to an JYAML template (template styles, special module or menu settings, etc.).
  7. Done!

Some optional steps.

Switch to HTML5 Doctype:

Open [template]/index/*.php and [template]/component/*.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

And replace with:

<!DOCTYPE html>

Add the new Header-Image support.

Open [template]/index/*.php
Add the following code on the place you want to show the header image.

<?php if ($_headerImage = $this->getHeaderImage()) : ?>
  <div class="header_image">
    <?php echo JYAML::getImage($this->getUrl('root', $_headerImage))->toHtml(); ?>
<?php endif; ?>