joomla 25

Joomla 1.5 -> Joomla 2.5

Sinds vrijdag 6 april is het Joomla! gedeelte van onze website www.byte.nl/cms gemigreerd van Joomla! 1.5 naar Joomla! 2.5. Met deze blogpost laten we zien hoe wij de migratie uitgevoerd hebben en welke hobbels en kuilen we op de weg tegenkwamen en hoe we hiemee om zijn gegaan. Mocht je zelf websites moeten migreren naar Joomla 2.5, dan haal je hier vast een heleboel praktische tips uit!

Joomla! update -> van 2.5.0 naar 2.5.1 en verder
Joomla! upgrade -> van 3.0 naar 3.1 naar 3.5
Joomla! migratie -> van 2-reeks naar 3-reeks 

Voor het uitvoeren van een migratie is het goed een stappenplan te hebben. Hierin neem je op welke stappen je onderneemt om te komen tot de nieuwste versie van Joomla. Bij een migratie zijn er namelijk functionaliteiten bij gekomen en er zijn functionaliteiten komen te vervallen.

Extensies inventariseren

Het uitvoeren van een migratie biedt de mogelijkheid om nog eens kritisch naar de extensies te kijken geïnstalleerd op de “oude” website. Zijn deze nog nodig op de nieuwe site? Bestaat er een nieuwe versie van geschikt voor de nieuwe site? Bestaan er betere alternatieven? Voor een aantal extensies geïnstalleerd op onze Joomla! 1.5.x website bestaan geen Joomla! 2.5 versies en dus moest er gezocht worden naar alternatieven. En deze zijn gevonden, getest en toegepast. Daarnaast kende onze “oude” site een aantal zelf gemaakte extensies, die precies deden waarvoor ze destijds gemaakt zijn. Door de jaren heen zijn er wensen bijgekomen en voldeden deze extensies niet meer. Herschrijven naar een Joomla! 2.5 versie hoefde niet, omdat de Joomla! extensie directory mooie alternatieven bood.

Template aanpassen

De wijze waarop templates verwerkt worden is met de komst van Joomla! 2.5 gewijzigd t.o.v. Joomla! 1.5. Net zoals een module kun je in Joomla! 2.5 meerdere versies van de template opslaan. Daarnaast zitten er een aantal andere PHP codes in waardoor het niet mogelijk is om zonder meer de Joomla! 1.5 template te gebruiken in Joomla! 2.5. Herschrijven van de template op de testomgeving was hierdoor noodzakelijk. 

SP_Upgrade is onze favoriet

Er zijn voor Joomla! diverse migratie extensies beschikbaar. En we hebben er een tweetal getest:

  • jUpgrade -> Deze extensie installeer je op je huidige Joomla! 1.5 website. Het component download Joomla! 2.5 en installeert deze in een subdirectory van de huidige Joomla! 1.5 website. Daarna migreert het data van Joomla! 1.5 naar Joomla! 2.5. Na uitvoer heb je een Joomla! 2.5 installatie in een subdirectory van Joomla! 1.5  jUpgrade op Joomla! Extensions Directory
  • SP Upgrade -> Deze extensie installeer je op een kale Joomla! 2.5 website. Het component migreert vervolgens data van Joomla! 1.5 naar Joomla! 2.5. Na uitvoer heb je een Joomla! 2.5 installatie los van Joomla! 1.5  SP Upgrade op Joomla! Extensions Directory (favoriet van Byte Internet)

Middels de extensie SP_Upgrade hebben we de Joomla! 1.5 website gemigreerd naar Joomla! 2.5. Eerst een aantal keren op een testomgeving om te kunnen ervaren hoe de extensie werkt. Tijdens de migratie verschijnt een popup met informatie over de voortgang. In dat overzicht worden ook de punten van aandacht getoond waar je na afronding van het script rekening mee moet houden. Volgens het script zijn er een aantal menuitem aliassen aangepast. 

Menuitems gewijzigd

Bij het aanmaken van menuitem in Joomla! 1.5 is het mogelijk om bij het veld alias in te vullen wat je wil. Er volgt bij het bewaren van de gegevens geen controle op duplicate menuitem alias. Deze controle zit wel ingebouwd in Joomla! 2.5 en je moet er rekening mee houden dat ook een menuitem van het type separator een alias krijgt.

Op onze website had een menuitem van het type separator dezelfde alias als een menuitem van een ander type. Hierdoor zouden in Joomla! 2.5 de submenuitems van de separator een andere weblink krijgen. Het menuitem /producten/trial-hosting zou dus hernoemd worden naar /producten-footer/trial-hosting. Naast het feit dat de vernieuwde weblink niet mooi is klopt hierdoor onze Adwords campagne ook niet meer. Door de menuitems van het type separator te wijzigen in het type alias konden we de wijziging van weblinks voorkomen. Deze wijzigingen voer je uit in je Joomla! 1.5 website en daarna voer je de migratie opnieuw uit op je testomgeving.

Parameters gewijzigd

In Joomla! 2.5 worden de parameters van de extensies op een andere manier in de database opgeslagen. In Joomla! 1.5 staan ze nog onder elkaar zonder extra tekens, in Joomla! 2.5 daarentegen staan de parameters op een JSON wijze genoteerd. 

Joomla! 1.5 show_title=
link_titles=
show_intro=
show_section=0
link_section=0
show_category=0
link_category=0
show_vote=
show_author=
show_create_date=0
show_modify_date=
show_pdf_icon=
show_print_icon=
show_email_icon=
language=
keyref=
readmore=
Joomla! 2.5 {“show_title”:””, “link_titles”:””, “show_intro”:””, “show_category”:””, “link_category”:””, “show_parent_category”:””, “link_parent_category”:””, “show_author”:””, “link_author”:””, “show_create_date”:””, “show_modify_date”:””, “show_publish_date”:””, “show_item_navigation”:””, “show_icons”:””, “show_print_icon”:””, “show_email_icon”:””, “show_vote”:””, “show_hits”:””, “show_noauth”:””, “urls_position”:””, “alternative_readmore”:””, “article_layout”:””, “show_publishing_options”:””, “show_article_options”:””, “show_urls_images_backend”:””, “show_urls_images_frontend”:””}

Door deze gewijzigde manier van het wegschrijven van parameters werden de parameters niet juist gelezen en dus genegeerd. Het gevolg was dat de globale instellingen van de website gebruikt werden voor de weergave van menu- en contentitems. Voor een aantal van onze pagina’s is het niet gewenst om de globale instellingen te gebruiken. Op moment je een contentitem in Joomla! 2.5 opent en opslaat, dan zal Joomla! op juiste wijze de parameters wegschrijven. Met meer dan 500 contentitems kun je je voorstellen dat deze wijze van aanpassen niet gewenst is. Daarom dat we de parameters, welke nu attribs genoemd worden, via PHPMyAdmin per category gewijzigd hebben. 

Neem deze code niet één-op-één over. Hij is namelijk niet compleet.

Meer handmatig werk

De extensie SP_Upgrade is fijn, maar neemt de data van 3th party extensies niet mee. De data van deze extensies hebben we via PHPMyAdmin handmatig overgezet. Dit kan zonder problemen zo lang de maker van de extensie de tabelstructuur voor Joomla! 1.5 versie gelijk houdt aan die van Joomla! 2.5. 

De data van het formulierencomponent konden we via de een backup en restore functie overzetten. Het is alleen jammer te constateren dat het unieke ID van elk formulier wijzigt. Hierdoor moet je in elke module, menuitem en contentitem de verwijzing naar de juiste tabel aanpassen. Ook dit hebben we gedaan via PHPMyAdmin. Het formulier wordt immers elke keer met eenzelfde code opgeroepen.

Het resultaat in PHPMyAdmin is een overzicht van contentitems waar het woordje rsform opgenomen is in de introtekst of de fulltekst. Klik links in de tabel op edit en wijzig in de introtekst of fulltekst het ID genoemd bij het zoekwoord rsform en sla de wijziging op.

De laatste stap

De migratie naar Joomla! 2.5 hebben we uitvoerig getest op een testomgeving. Gedurende de tests hebben we het stappenplan continue aangepast en de liveomgeving dusdanig aangepast, zodat de livegang van de website vlotjes kon verlopen. We hebben het volgende programma doorlopen 

  • stappenplan opstellen
  • stappenplan testen op testomgeving
  • stappenplan aanpassen
  • stappenplan testen op testomgeving
  • stappenplan aanpassen
  • stappenplan uitvoeren op liveomgeving
  • website live
  • alles nog een keer nalopen

De laatste stap “website live” was een eenvoudige. Onze Joomla! 2.5 installatie staat nu op /cms Onze “oude” website stond daarvoor op die plek. De migratie  heeft plaatsgevonden op een andere subdirectory en bij livegang hoefde we alleen de naam van twee directories te hernoemen en de Joomla! configuratie aan te passen.

en klaar is Kees… euh Byte.

Ik zie helemaal geen verandering!
Allard Hoeve

Kijk… dat is pas een mooi compliment voor een migratie.

Scan je eigen Magento shop op veiligheidslekken