Jump to navigation Jump to sub-content

Serviceblock

logo-linked-in twitter fronteers-logo RSS logo 2Value
  • Joomla

Stel: je bouwt een Joomla!-template voor een klant en de klant wil zelf iets aan het template kunnen veranderen. Laten we zeggen dat de klant twee (of veel meer) versies van een logo heeft die apart ingesteld moeten kunnen worden.

(Dit is overigens maar een voorbeeld-toepassing, je zou bijvoorbeeld ook iets anders kunnen laten toevoegen, zoals id's of classes, waarna je met css kunt stylen. Het enige wat dit techniekje doet, is een stukje tekst wegschrijven in je template.)

Om aan het verzoek van je klant te voldoen, zou je dan gewoon twee (of veel meer) templates kunnen bouwen, maar dat is niet handig in verband met een eventuele aanpassing later. Als je meerdere plaatsen in je template moet kunnen aanpassen, wordt het onwerkbaar. Het kan makkelijker:

Parameters instellen via template manager

Joomla! geeft de mogelijk om op een redelijk eenvoudige wijze een select box (drop down) aan de template manager toe te voegen, waarmee jouw klant dan een logo kan kiezen.

Met de template manager bedoel ik: in de back-end van je website (/administrator) via het menu: extensions - template manager - <jouw template>

Het resultaat van deze exercitie is: een select box in de template manager, rechts onder 'Parameters', waarmee je drie keuzes hebt: logo 1, logo 2 en logo 3

Hoe doe je dit:

Ten eerste: maak een back-up van je template folder/map/directory

Ten tweede: controleer of je back-up gelukt is

En dan gaan we beginnen:

Je moet daartoe de volgende bestanden in je template aanpassen:

  • templateDetails.xml (in de root van je template directory)
  • index.php (in de root van je template directory)

Tevens dient er een bestand met de naam params.ini (in de root van je template directory) te bestaan. Dit bestand wordt door Joomla! gebruikt om de gemaakte keuze in weg te schrijven / te bewaren. Daarom dien je te zorgen dat dit bestand de juiste schrijfrechten heeft, zodat het systeem er in mag wegschrijven.

Neem alvast een beginwaarde in params.ini op:

kies_logo=logo1

Het volgende neem je op in de templateDetails.xml:

 
<params>
   <param name="kies_logo" type="list" default="" label="kies logo" description="Kies het logo">
      <option value="logo1">- Kies logo-</option>
      <option value="logo1">logo 1</option>
      <option value="logo2">logo 2</option>
      <option value="logo3">logo 3</option>
   </param>
</params>
 

Zorg ervoor dat dit net boven de </install>-sluit-tag staat.

Vervolgens:

Als het goed is, is het logo middels een image-tag in het template opgenomen:

 
<img src="templates/<?php echo $this->template ?>/images/logo.jpg" alt="Vul hier een tekstueel alternatief voor het logo in" />
 

Vervang dat door:

 
<img src="templates/<?php echo $this->template ?>/images/<?php echo $this->params->get('kies_logo'); ?>.jpg" alt="Vul hier een tekstueel alternatief voor het logo in" />
 

Zorg dat je de logo's in je template directory met de naam 'images' plaatst. De images dienen de volgende namen te hebben:

  • logo1.jpg
  • logo2.jpg
  • logo3.jpg

Samenvattend

Het enige wat je hier doet, is een stukje tekst in je template plaatsen op basis van de teksten die in de select boxes in je de template manager zijn opgenomen. In dit geval bijvoorbeeld

logo1
In index.php plaats je direct na dit stukje tekst het volgende:
.jpg
waardoor er uiteindelijk bijvoorbeeld
logo1.jpg
komt te staan.

Je kan hier natuurlijk helemaal je eigen draai aangeven.

Je zou, zoals aan het begin gezegd, ook een class name kunnen plaatsen. Dan zou je in je template 'class=""' opnemen en tussen de dubbele aanhalingstekens een classname kunnen laten schrijven.

[top]

Sub-content

Meer over mij

Fronteers IRC

Bouw je websites en heb je vragen? Neem een kijkje op Fronteers-IRC. Ook niet-leden zijn welkom.

Omschrijving

Ik ben een front-end web developer, gespecialiseerd in Joomla en specialiserend in de Webrichtlijnen.

Ik ontwerp / design geen websites.

Nieuwe artikelen

T-shirts

Neem eens een kijkje op "The Green Cuckoo, a new clothing label designed to meet today's concerns", een initiatief van een vriend van mij. Mooie T-shirts!

[top]