SlideShare une entreprise Scribd logo
1  sur  11
JUG VLAANDEREN
Plugin_content_merka
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.
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
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
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>
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
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>
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.
}
}
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.
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.
JUG VLAANDEREN

Contenu connexe

Similaire à Presentatie JUG plugin Merka

TU/e - Back to the TYPO3 CMS basics
TU/e - Back to the TYPO3 CMS basicsTU/e - Back to the TYPO3 CMS basics
TU/e - Back to the TYPO3 CMS basicsPatrick Broens
 
Open Computer and Software Inventory
Open Computer and Software InventoryOpen Computer and Software Inventory
Open Computer and Software Inventory247 Invest
 
JD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts
JD19NL - Joomla Template Overrides, Alternate Layouts en JLayoutsJD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts
JD19NL - Joomla Template Overrides, Alternate Layouts en JLayoutsHans Kuijpers
 
Lucius Drupal Development Cursus
Lucius Drupal Development CursusLucius Drupal Development Cursus
Lucius Drupal Development CursusLuciuswebsystems
 
Magento cursus: theme opzetten & beheren
Magento cursus: theme opzetten & beherenMagento cursus: theme opzetten & beheren
Magento cursus: theme opzetten & beherenMichel Doens
 
Flex In De Praktijk
Flex In De PraktijkFlex In De Praktijk
Flex In De Praktijkmarcel panse
 
MediaMosa Installatie & Configuratie
MediaMosa Installatie & ConfiguratieMediaMosa Installatie & Configuratie
MediaMosa Installatie & ConfiguratieMediaMosa
 
Lucius Websystems Drupal Startersdag
Lucius Websystems Drupal StartersdagLucius Websystems Drupal Startersdag
Lucius Websystems Drupal StartersdagLuciuswebsystems
 
Drupal Uitgebreide Starters Training
Drupal Uitgebreide Starters TrainingDrupal Uitgebreide Starters Training
Drupal Uitgebreide Starters TrainingLuciuswebsystems
 
V-ICT-OR SHOPT IT 2014
V-ICT-OR SHOPT IT 2014V-ICT-OR SHOPT IT 2014
V-ICT-OR SHOPT IT 2014V-ICT-OR
 
Kennismaking Met Puppet
Kennismaking Met PuppetKennismaking Met Puppet
Kennismaking Met Puppetwphaver
 
Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...
Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...
Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...Triquanta
 
Presentatie WordPress Theme Frameworks WordCamp NL 2010
Presentatie WordPress Theme Frameworks WordCamp NL 2010Presentatie WordPress Theme Frameworks WordCamp NL 2010
Presentatie WordPress Theme Frameworks WordCamp NL 2010Remkus de Vries
 
XPages Introductie
XPages IntroductieXPages Introductie
XPages IntroductieRob Bontekoe
 
Ict2 trm- werking internet
Ict2 trm- werking internetIct2 trm- werking internet
Ict2 trm- werking internetkaatversele
 
HTML 5, ASP.NET MVC & Windows Azure sessie voor Ivo Brugge
HTML 5, ASP.NET MVC & Windows Azure sessie voor Ivo BruggeHTML 5, ASP.NET MVC & Windows Azure sessie voor Ivo Brugge
HTML 5, ASP.NET MVC & Windows Azure sessie voor Ivo BruggePureplexity
 
XML tekortkomingen en pluspunten
XML   tekortkomingen en pluspuntenXML   tekortkomingen en pluspunten
XML tekortkomingen en pluspuntenMarc de Graauw
 

Similaire à Presentatie JUG plugin Merka (20)

TU/e - Back to the TYPO3 CMS basics
TU/e - Back to the TYPO3 CMS basicsTU/e - Back to the TYPO3 CMS basics
TU/e - Back to the TYPO3 CMS basics
 
Open Computer and Software Inventory
Open Computer and Software InventoryOpen Computer and Software Inventory
Open Computer and Software Inventory
 
JD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts
JD19NL - Joomla Template Overrides, Alternate Layouts en JLayoutsJD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts
JD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts
 
Lucius Drupal Development Cursus
Lucius Drupal Development CursusLucius Drupal Development Cursus
Lucius Drupal Development Cursus
 
Cooking Cake
Cooking CakeCooking Cake
Cooking Cake
 
Html, xhtml en Ftp
Html, xhtml en FtpHtml, xhtml en Ftp
Html, xhtml en Ftp
 
Magento cursus: theme opzetten & beheren
Magento cursus: theme opzetten & beherenMagento cursus: theme opzetten & beheren
Magento cursus: theme opzetten & beheren
 
Flex In De Praktijk
Flex In De PraktijkFlex In De Praktijk
Flex In De Praktijk
 
MediaMosa Installatie & Configuratie
MediaMosa Installatie & ConfiguratieMediaMosa Installatie & Configuratie
MediaMosa Installatie & Configuratie
 
Les01 Htmlen Xhtml2008
Les01 Htmlen Xhtml2008Les01 Htmlen Xhtml2008
Les01 Htmlen Xhtml2008
 
Lucius Websystems Drupal Startersdag
Lucius Websystems Drupal StartersdagLucius Websystems Drupal Startersdag
Lucius Websystems Drupal Startersdag
 
Drupal Uitgebreide Starters Training
Drupal Uitgebreide Starters TrainingDrupal Uitgebreide Starters Training
Drupal Uitgebreide Starters Training
 
V-ICT-OR SHOPT IT 2014
V-ICT-OR SHOPT IT 2014V-ICT-OR SHOPT IT 2014
V-ICT-OR SHOPT IT 2014
 
Kennismaking Met Puppet
Kennismaking Met PuppetKennismaking Met Puppet
Kennismaking Met Puppet
 
Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...
Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...
Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...
 
Presentatie WordPress Theme Frameworks WordCamp NL 2010
Presentatie WordPress Theme Frameworks WordCamp NL 2010Presentatie WordPress Theme Frameworks WordCamp NL 2010
Presentatie WordPress Theme Frameworks WordCamp NL 2010
 
XPages Introductie
XPages IntroductieXPages Introductie
XPages Introductie
 
Ict2 trm- werking internet
Ict2 trm- werking internetIct2 trm- werking internet
Ict2 trm- werking internet
 
HTML 5, ASP.NET MVC & Windows Azure sessie voor Ivo Brugge
HTML 5, ASP.NET MVC & Windows Azure sessie voor Ivo BruggeHTML 5, ASP.NET MVC & Windows Azure sessie voor Ivo Brugge
HTML 5, ASP.NET MVC & Windows Azure sessie voor Ivo Brugge
 
XML tekortkomingen en pluspunten
XML   tekortkomingen en pluspuntenXML   tekortkomingen en pluspunten
XML tekortkomingen en pluspunten
 

Presentatie JUG plugin Merka

  • 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.