WHELP! geeft advies over ontwerp, bouw en zoekmachine optimalisatie van je website. Ben je hier voor de eerste keer? Start dan bij het 4-stappenplan voor een eigen website.

Een eigen Joomla template maken (6) – de body van index.php

Joomla 1.5 Templates
Inmiddels 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:

<?php
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.

<?php
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.

<div class="content">
        <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.

mospathway

$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

Stem / Bookmark [?]Plaatsen/stemmen op NUjijPlaatsen/stemmen op eKudosPlaatsen/stemmen op MSN ReporterPlaatsen/stemmen op DiggVoeg dit artikel toe aan Del.icio.usVoeg toe aan je favorieten op TechnoratiVoeg toe aan je Google bladwijzers

  1. Een eigen Joomla template maken (7) - de footer van index.php - WHELP!
    07.05.07 - 11:00
    1

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


  2. Tom
    29.01.08 - 18:12
    2

    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


  3. Tom
    29.01.08 - 18:14
    3

    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 ;-)


  4. Theo Bakker
    04.02.08 - 23:18
    4

    Hoi Tom,

    dank voor je tips!

    Groet, Theo

Jouw reactie

Spelregels voor commentaar

XHTML: Je kunt de volgende HTML code gebruiken: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Domeinnaam vrij?

  • Test via Byte op .nl, .eu, .be, .com, .net, .org, .biz, .info, .de, .co.uk, .tv, .nu, .cn en .name