| Upgrading a Joomla! 1.0 template |
| Tuesday, 16 December 2008 19:28 |
|
While upgrading an old Joomla! 1.0 template to the newer Joomla! 1.5 standard it is important to edit the files "index.php" and "templateDetails.xml". The most important change is the migraton of old PHP-code to XML-tags called "jdoc" tags but there are other things to think about as well. In most cases the CSS-definitions don't need to be changed. After following the steps in this tutorial, it is however wise to test the new template thoroughly in different browsers. The general layout of the template will stay the same, but the layout of different Joomla! extensions has probably changed. While you're at it, it is best to straighten out old bugs as well, perhaps make the template fully W3C-compliant. Het begin van de templateOnder Joomla! 1.0 is het verstandig in ieder PHP-script altijd een veiligheidsmaatregel in te bouwen om te voorkomen dat het PHP-script rechtstreeks aan te roepen is. Dit is bij alle extensies aan te raden, dus zowel componenten, modules en plugins als templates. Voorheen zag deze veiligheidscheck er als volgt uit: Onder Joomla! 1.5 is deze PHP-constante _VALID_MOS vervangen met _JEXEC waardoor de check er als volgt uitziet: De XHTML-header In de tags van oude Joomla!-templates worden de automatisch gegenereerde header-definities als volgt geladen: Onder Joomla! 1.5 is dit vervangen met een tag met het type head: Module-posities In Joomla! 1.0 templates wordt een module-positie gedefinieerd door de PHP-functie mosLoadModules() aan te roepen met als eerste parameter de positie en als tweede optionele parameter een numerieke stijl indicatie: In Joomla! 1.5 wordt dit vervangen met een tag van het type modules of (als het gaat om een enkele module op die positie) het type module. De positie-indicatie blijft ongewijzigd, maar de stijl wordt niet meer met een getal aangeduid maar met een woord: Oude numerieke code Joomla! 1.5 Omschrijving -3 rounded Vier tags per module voor het plaatsen van ronde hoeken via CSS -2 xhtml Een enkele per module -1 raw Geen extra HTML 0 table Een enkele tabel per module 1 horz Een tabel met per module een aparte cel Component output De plek waarop een component XHTML-output genereert wordt onder Joomla! 1.0 aangeduid met de functie mosMainBody(): Onder Joomla! 1.5 is dit vervangen met een tag van het type component. Deze tag kent geen verdere parameters. De pathway De pathway - waarmee onder Joomla! 1.0 het pad naar de huidige pagina werd weergegeven - is vervangen met een normale module die wel of niet gepubliceerd kan worden vanuit de Joomla! Administrator. Voorgeen zag de code er zo uit: De nieuwe module wordt doorgaans gepubliceerd op de positie breadcrumbs ook al is dit niet verplicht: Het optellen van modules Het optellen van modules gebeurde voorgeen via mosCountModules(): 0 ) { ?> Deze functie is vervangen met $this->countModules(): countModules() > 0 ) { ?> Overige veranderingen Oude Joomla! 1.0 code Nieuwe Joomla! 1.5 code echo $mosConfig_live_site $url = clone( JURI::getInstance() );echo $url->toString() ; echo $mainframe->getTemplate() echo $this->template echo $mosConfig_sitename echo $mainframe->getCfg( 'sitename' ); De $mosConfig_live_site variabele is niet meer nodig in templates, vanwege de veiligere structuur van Joomla! 1.5. Mocht het toch nodig zijn de URL van de website te vermelden, dan moet er een call naar het Joomla! Framework gemaakt worden. Veranderingen in templateDetails.xml Voorheen begon een templateDetails.xml bestand met de volgende regel: Dit is veranderd in: Zie voor de overige onderdelen van een Joomla! 1.5 templateDetails.xml bestand de aparte bijlage. Module-posities definieren in templateDetails.xmlTerwijl voorheen module-posities door Joomla! zelf werden gedefinieerd, zijn de posities nu door de webdesigner zelf te definiëren. Voor het juiste gebruik van de posities vanuit de Joomla! Administrator is het nodig om de posities op te nemen in het templateDetails.xml bestand. |