Een eigen Joomla template maken (6) – de body van index.php
Joomla 1.5 TemplatesInmiddels zijn we gestart met een nieuwe serie over joomla templates in Joomla 1.5!
In het vorige artikel heb ik besproken hoe de header van de index.php vormgegeven is. Nu een toelichting op de body (alles wat in de bodytag staat) van de index tot aan de footer. Ik bespreek hierbij de index.php van het basistemplate Madeyourweb en in het bijzonder drie cruciale functies: mosCountModules() en mosLoadModules() en mosMainBody(). Bekijk de phps versie van de index om te zien hoe de hele pagina eruit ziet. (Door van een php-bestand de extensie in phps te wijzigen kan je deze bekijken in een browser.)
De body van de index.php
Wat opvalt als je de index van madeyourweb bekijkt is dat er nergens commentaar in de code staat. Dit maakt het moeilijk om te begrijpen waar wat voor dient. Plaats altijd zelf duidelijk HTML commentaar in je code. Dit helpt bij het opsporen van problemen en het overdragen van je materiaal aan anderen. Ik zal de code niet in zijn geheel behandelen, maar wel de functies die van belang zijn.
mosCountModules()
Een functie die je veel ziet in het template is de functie mosCountModules(). Deze functie gebruik je in Joomla om te kijken of er een module op een bepaalde positie staat. Als dat zo is dan geeft deze functie het getal 1 terug. In het template zie je dat daar steeds op getest wordt, bijvoorbeeld:
if (mosCountModules( "user4" )) {
[module]
}
?>
Hier staat: als op positie user4 een module is ingesteld, doe dan iets.
mosLoadModules()
Op de plek van [module] staat vrijwel altijd een tweede cruciale functie: mosLoadModules(). Deze functie zorgt ervoor dat je een module plaatst.
if (mosCountModules( "user4" )) {
?>
<div id="search">
<?php mosLoadModules ( 'user4',-1); ?>
</div>
<?php } ?>
Hier staat: als op positie user4 een module is ingesteld, plaats (laad) deze module(s) dan op deze plek.
NB Modules in meervoud, want als je hebt opgegeven dat meerdere modules op een positie staan, zullen deze allemaal getoond worden. Hoe je dit kunt beinvloeden heb ik toegelicht in het eerdere tutorial over modules en posities.
Argumenten voor mosLoadModules ()
Aan de functie mosLoadModules () geef je twee gegevens (argumenten) mee:
1) de positie van de module(s) die je wilt tonen
2) een getal dat aangeeft hoe deze module moet worden weergegeven.
a) 0 = standaard weergave (in een tabel)
b) 1 = naast elkaar (met behulp van tabellen)
c) -1 = puur de inhoud (zonder titel en zonder tabellen)
d) -2 = in een div-tag
e) -3 = in geneste div-tags (zodat je er in de opmaak meer mee kunt)
Als je gebruik wilt maken van CSS mogelijkheden zul je voornamelijk -1, -2 of -3 gebruiken. Dit is precies wat het Madeyourweb template doet. Ik adviseer je dit ook te doen, zodat je de opmaak eenvoudiger kunt realiseren (zoals ronde hoeken in het Madeyourweb template).
mosMainBody()
Bijna onderaan de index.php staat de functie mosMainBody(). Die zorgt ervoor dat de basisinhoud van je pagina wordt getoond. Dit is alle informatie die niet via modules wordt getoond. Dus feitelijk je artikelen. Aan deze functie kun je geen argumenten meegeven.
<a name="content"></a>
<?php mosMainBody(); ?>
</div>
mospathway()
Naast deze functies gebruikt Madeyourweb ook de functie mospathway(). Hiermee laat je in je pagina het navigatiepad zien dat mensen hebben afgelegd. Dit wordt ook wel een crumblepath genoemd.

$GLOBALS['cur_template']
Tot slot nog een nieuwe variabele die we voor het eerst tegenkomen: $GLOBALS['cur_template']. Deze variabele kun je gebruiken om de naam van je template dynamisch op te halen. In de code die Joomla genereert komt in dit geval voor Madeyourweb hier het woord 'madeyourweb' te staan. Mocht je dan een keer de naam van je templatefolder veranderen, dan hoef je dit niet overal in je code aan te passen. Handig!
En hoe nu verder?
In het volgende artikel meer over de footer van de pagina.
Meer lezen
- Meer informatie over Joomla functies
Artikelenserie - Een Joomla template maken
- Een eigen Joomla template maken (1) – inleiding
- Een eigen Joomla template maken (2) – templateDetails.xml
- Een eigen Joomla template maken (3) – modules en posities
- Een eigen Joomla template maken (4) – rechten, locaties en volgorde
- Een eigen Joomla template maken (5) – de header van index.php
- Een eigen Joomla template maken (6) – de body van index.php
- Een eigen Joomla template maken (7) – de footer van index.php
- Een eigen Joomla template maken (8) – inleiding in CSS
- Een eigen Joomla template maken (9) – basisstructuur
- Een eigen Joomla template maken (10) – een nieuwe index
- Een eigen Joomla template maken (11) – een nieuwe header
- Een eigen Joomla template maken (12) – een nieuwe body met includes
- Een eigen Joomla template maken (13) – logo, omschrijving en zoekveld
- Een eigen Joomla template maken (14) – de navigatie (dl 1)
- Een eigen Joomla template maken (15) – de navigatie (dl 2)
- Een eigen Joomla template maken (16) – de body aanpassen van de homepage
- Een eigen Joomla template maken (17) – de homepage vullen en vormgeven
- Joomla Template (18) – Artikelen toevoegen aan Joomla (1)
- Joomla Template (19) – Artikelen toevoegen aan Joomla (2)

Een eigen Joomla template maken (7) - de footer van index.php - WHELP!
07.05.07 - 11:00
[...] het vorige artikel heb ik besproken hoe de body van de index.php vormgegeven is. Nu een toelichting op de footer van de indexpagina. Ik bespreek hierbij de [...]
Tom
29.01.08 - 18:12
Hoi Theo,
Ik ben je tutorial aan het volgen! Super goed uitgelegd!
Ik had twee kleine dingetjes ontdekt:
- Als je de code copieert en in een editor plakt, klopt hij vaak niet meer omdat de aanhalingstekens soms niet consequent zijn. Eerst snapte ik er niks van, maar toen ik keek in de originele php file zag ik dat die tekentjes niet altijd goed stonden.
-Vergeet en niet als je klaar bent met de footer ;-)
Het leek me handig dit te melden omdat misschien meer mensen tegen dit probleem oplopen…
Ik ga nu weer snel door met de tutorial!
Groetjes, Tom
Tom
29.01.08 - 18:14
foutje boven, je kan natuurlijk geen html code intypen
Ik bedoelde
-Vergeet en niet schuinestreep body en schuinestreep html als je klaar bent met de footer ;-)
Theo Bakker
04.02.08 - 23:18
Hoi Tom,
dank voor je tips!
Groet, Theo