Een handige manier om zowel de structuur als de opmaak van je module te wijzigen is het gebruik van een Alternatieve Weergave.

Wil je enkel de opmaak aanpassen kan je ook een "Module class achtervoegsel" gebruiken. Als het niet nodig is om de inhoud (afhankelijk van het type module) aan te passen (maar wil je bv. enkel de titel, de rand of de achtergrond aanpassen) kan je ook een nieuwe "Modulestijl" aanmaken.

We werken in vier stappen:

        1. Maak een module override,
        2. Wijzig de naam van de override,
        3. Breng wijzigingen aan
        4. De alternatieve weergave activeren
1. Maak een module override

De werkwijze hiervoor staat beschreven op "override articleview".

In dit geval gaat het niet over een artikel maar om een module van een bepaald type.

2. Wijzig de naam van de override

Eenmaal je een override hebt gemaakt zal dit ALLE modules van een bepaald type overschrijven. We willen echter maar één module van een bepaald type wijzigen.

Wijzig daarom de naam van de override. Ga naar

Extensies > Templatebeheer > Templates > gegevens en bestanden (van de template) > html > map van je moduleoverride 

Open je override (meestal default.php) en klik op de knop "Hernoem bestand".

Geef het bestand een andere naam (gebruik echter geen underscores in de naam).

3. Breng wijzigingen aan

Open je override en wijzig de code. (Onderaan zijn twee voorbeelden beschikbaar)

4. De alternatieve weergave activeren

Ga naar de module waarvan je de weergave wil wijzigen via 

Extensies > Modulebeheer > Kies je module > Tabblad Geavanceerd

In de keuzelijst van de Alternatieve weergave kan je nu je selectie wijzigen.

 

Twee voorbeelden:

De optie "Registreren" benadrukken in de login module.

Ik merk soms dat bezoekers de optie "Registreren" moeilijk vinden in de login-module. De optie staat een beetje verborgen.

Open de override met de nieuwe naam, bv. mijnlogin.php

Zoek onderstaande regels en verplaats deze naar boven. Zet deze neer na de het einde van de php op regel 18.

<p>
<a href="/<?php echo JRoute::_('index.php?option=com_users&view=registration&Itemid=' . UsersHelperRoute::getRegistrationRoute()); ?>">
<?php echo JText::_('MOD_LOGIN_REGISTER'); ?> <span class="icon-arrow-right"></span></a>
</p>

Je kan eventueel nog wat extra aanbrengen zoals een knop en een verklarende paragraaf. Het geheel ziet er dan zo uit:

<p>
<a class="btn btn-primary" href="/<?php echo JRoute::_('index.php?option=com_users&view=registration&Itemid=' . UsersHelperRoute::getRegistrationRoute()); ?>">
<?php echo JText::_('MOD_LOGIN_REGISTER'); ?> <span class="icon-arrow-right"></span></a>
</p>
<p>
Of indien u al lid bent: voer uw gegevens in.
</p>

Het resultaat:

De module "Laatste nieuws" aanpassen

In dit geval willen we de module "Laatste nieuws" aanpassen. De standaardmodule toont de titels van de nieuwste artikelen. We gaan dit wijzigen zodat de afbeelding van het nieuwe artikel verschijnt (meer bepaald de intro afbeelding). Om de afbeeldingen op te halen maken we gebruik van JSON.

Wijzig de module als volgt:

<div class="latest-img<?php echo $moduleclass_sfx; ?>">
<?php foreach ($list as $item) : ?>
<?php $images = json_decode($item->images);?>

<a href="/<?php echo $item->link; ?>">
<img src="/<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo $item->title; ?>" title="<?php echo $item->title; ?>" class="mod-latest-image"/>
</a>
<?php endforeach; ?>
</div>

Het resultaat: