2. JUG VLAANDEREN
Hoe een heel eenvoudige plugin maken voor
joomla
We noemen onze plugin plg_content_merka
De naam moet voldoen aan bepaalde afspraken (JED).
In ons geval namelijk
plg (=plugin) content (=type plugin) merka (=unieke naam)
Plugins werken steeds op de achtergrond en worden geactiveerd door een event.
In functie van welk event spreken we over een bepaald type plugin.
Voorbeelden zijn Authentication (bvb login), captcha (bvb recaptcha), content enz..
Het type content wijzigt de inhoud voordat die wordt getoond aan de gebruiker.
Een bekend voorbeeld is {google_map} Potvlietlaan, Antwerpen,… {/google_map}
Waardoor er een Googlemap komt te staan i.p.v. de tekst.
3. Om de bestanden te schrijven gebruik je eender welke editor, zolang die maar UTF-
8 formaat ondersteunt. Zoals bvb. NOTEPAD++
Onze plugin bestaat uit 3 bestanden:
1. index.html
2. merka.xml
3. merka.php
Wat willen we dat onze plugin gaat doen?
De plugin gaat een (korte) tekst NA elke artikel zetten. Die tekst kunnen we
aanpassen in het beheergedeelte van de plugin.
JUG VLAANDEREN
4. JUG VLAANDEREN
Het bestand index.html bevat 1 regel html code, die een leeg wit blad toont bij het
aanroepen.
<html><body bgcolor="#FFFFFF"></body></html>
Dit bestand is voor de plugin niet echt noodzakelijk. Het verhindert enkel dat de
mapstructuur wordt getoond bij het browsen naar de map.
Je kan dit bestand best in ELKE map plaatsen, want wanneer dit bestand er niet
staat kan de gebruiker de ganse mapstructuur en de bestanden zien, wat de deur
openzet voor hackers.
Je kan dit ook opvangen door het .htaccess en of het web.config bestand aan te
passen, maar soms worden die overschreven door de webhoster. Sommige
providers ondersteunen zelfs deze bestanden niet. Meer uitleg over .htaccess vind
je op
http://www.weethet.nl/dutch/html_usinghtaccess.php
5. JUG VLAANDEREN
Het bestand merka.xml
<?xml version="1.0" encoding="utf-8"?>
<extension version="3.0" type="plugin" group="content" method="upgrade">
<name>plg_content_merka</name>
<author>Karel Mertens</author>
<creationDate>11/03/2014</creationDate>
<copyright>Merkasoft</copyright>
<license>GNU General Public License</license>
<authorEmail>karel@merka.be</authorEmail>
<authorUrl>http://lol.merka.be</authorUrl>
<version>1.2.5</version>
<description>Reclametekst toevoegen na elk artikel.</description>
<files>
<filename plugin="merka">merka.php</filename>
<filename>index.html</filename>
</files>
<config>
<fields name="params">
<fieldset name="basic">
<field name="crtext" type="text"
default="2014 (C)"
label="Reclametekst toe te voegen NA elk artikel"
description="PLG_CONTENT_MERKA_FIELD_CRTEXT_LABEL"
/>
</fieldset>
</fields>
</config>
</extension>
6. JUG VLAANDEREN
Het bestand merka.xml
<?xml version="1.0" encoding="utf-8"?> // De xml versie/encoding. Noodzakelijk bij
gebruik van vreemde tekens of talen zoals
arabisch….
<extension version="3.0" type="plugin" group="content" method="upgrade"> // plugin
van het type content, MINIMUM vereiste is Joomla versie 3.0 / de methode upgrade
zorgt er voor dat bij het upgraden van de plugin, de data NIET overschreven worden.
<name>plg_content_merka</name> // De naam van onze plugin (volgens de
normen). Belangrijk als je de plugin wil laten opnemen
in de JED.
<author>Karel Mertens</author> // Naam van de auteur
<creationDate>11/03/2014</creationDate> //De datum van creatie
<copyright>Merkasoft</copyright> // copyright label
<license>GNU General Public License</license> // Licentie voor OpenSource
<authorEmail>karel@merka.be</authorEmail> // e-mail adres van de auteur
<authorUrl>http://lol.merka.be</authorUrl> // URL van de website
<version>1.2.5</version> // de versie nummer (aangepast bij update)
<description>Reclametekst toevoegen na elk artikel.</description> // omschrijving
van de plugin
7. JUG VLAANDEREN
<files> // opsomming van ALLE bestanden gebruikt in de plugin
<filename plugin="merka">merka.php</filename>
<filename>index.html</filename>
</files>
<config> // de velden (variabele parameters) gebruikt in de plugin
<fields name="params">
<fieldset name="basic">
<field name="crtext" type="text" // hierin komt de tekst die we willen laten zien
default="2014 (C)" // de defaultwaarde
label="Reclametekst toe te voegen NA elk artikel" // het label
description="PLG_CONTENT_MERKA_FIELD_CRTEXT_LABEL"
// de beschrijving van de variabele
/>
</fieldset>
</fields>
</config>
</extension>
8. JUG VLAANDEREN
Het bestand merka.php
<?php // begin php code
defined('_JEXEC') or die; // geen directe toegang tot het bestand (enkel vanuit het
systeem)
class plgContentMerka extends Jplugin // maak een classe met als basis Jplugin
{
function onContentAfterDisplay( $context, &$article, &$params, $limitstart )
// functie wordt uitgevoerd NA Display
{
$crtext = $this->params->get('crtext'); // plaats in de variabele
$crtext de inhoud van het veld crtext (crtext = de tekst die we ingeven
als parameter)
return "<p><font color='red'><b>$crtext</b></font></p>";
// de functie geeft de inhoud van $crtext terug (in het rood). Dit wil zeggen dat
er NA het oorspronkelijke artikel onze tekst wordt geplaatst.
}
}
9. JUG VLAANDEREN
Nu we alle bestanden hebben wordt het hoog tijd om de plugin te maken.
Hiervoor zippen we de (3) bestanden en geven het zipbestand de naam van onze plugin.
Namelijk merka.zip (deze naam is vrij te kiezen, maar best toch een naam gebruiken die
duidelijk de plugin benoemt.
Dan kunnen we onze plugin uploaden en zien we ze verschijnen in de lijst extensies.
10. JUG VLAANDEREN
Na het activeren is de plugin actief en zien we de default waarde verschijnen in de front-
end.
Via de plugin instelling (back-end) kunnen we nu deze tekst aanpassen.