SlideShare a Scribd company logo
1 of 44
class volgHetJoomladagenProgramma extends volgEenSeminar()
{
// ...
public function onDeBelGaat()
{
$tijd = $this->kijkHoeLaatHetIs();
$zaal = $this->kijkNaarWelkeZaalIkMoet($tijd, $programmaboekje);
$verplaatsing = $this->gaNaarZaal($zaal);
}
private function kijkHoeLaatHetIs()
{
// ...
return $tijd;
}
// ...
}
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Mijn eerste Joomla! plugin
Frits Jongbloets, JoomlaDagen.nl 2017
Versie: definitief
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Mijn eerste Joomla! plugin
“Je gaat het pas zien als je het doorhebt”
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Mijn ervaringen
Introductie
• Joomla! sites voor klanten
• Sinds 2008
• Custom extensies voor eigen projecten:
• Extra functionaliteit
• Pagina layout / vormgeving
• Gebruiksgemak beheerders / eindgebruikers
• … en omdat ik het interessant vind
• Beperkte vooropleiding programmeren
• Zelfstudie en Joomla! community
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Mijn ervaringen met plugins maken
Introductie
• Plugins sinds + een jaar
• Vond plugins moeilijk te begrijpen
• Wanneer komen ze in actie?
• Waar blijft hun output?
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Jullie ervaringen?
Introductie
• Al eens een plugin gemaakt?
• Een andere Joomla! extensie?
• Template override?
• Überhaupt programmeerervaring?
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Toen het Boek in mijn leven kwam…
Introductie
• Boek Jisse Reitsma
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
… en wat extra uitleg…
Introductie
• Boek Jisse Reitsma
• Presentatie Jisse
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
.. en nog wat meer uitleg …
Introductie
• Boek Jisse Reitsma
• Presentatie Jisse
• Workshop Jisse
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
… zag ook ik het opeens
Introductie
• Boek Jisse Reitsma
• Presentatie Jisse
• Workshop Jisse
• Sindsdien één custom plugin per project
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Inhoudsopgave
 Introductie
• Demo plugin IntroMarker - werking
• Hoe werken plugins?
• Hoe maak je een plugin?
• Demo plugin IntroMarker - code
• Voor- en nadelen plugins
• Andere demo’s
• Bronnen
• Met dank aan
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Demo plugin IntroMarker
Demo
Probleem:
• Joomla! core artikel
• Introtekst vrij zetten van vervolgtekst en stylen
• Zonder auteurs tekst te laten opmaken
• Maar:
Introtekst en ‘vervolgtekst’ zijn één doorlopend tekstblok
in standaard Joomla! artikel output
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Demo plugin IntroMarker
Demo
Boosdoener:
$item->text = $item->introtext . ' ' . $item->fulltext;
In:
components/com_content/views/article/view.html.php
+ regel 144
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Demo plugin IntroMarker
Demo
Wat ik wil:
$item->text = '<div class="intro">' . $item->introtext .
'</div>' . $item->fulltext;
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Demo plugin IntroMarker
Demo
Wat ik wil:
$item->text = '<div class="intro">' . $item->introtext .
'</div>' . $item->fulltext;
… zonder iets te wijzigen in het bestand
components/com_content/views/article/view.html.php
of ander template bestand
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Demo plugin IntroMarker
Demo
Bekijk front end en back end demo plugin.
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Inhoudsopgave
 Introductie
 Demo plugin IntroMarker - werking
• Hoe werken plugins?
• Hoe maak je een plugin?
• Demo plugin IntroMarker - code
• Voor- en nadelen plugins
• Andere demo’s
• Bronnen
• Met dank aan
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Joomla! plugins in de back end
Introductie
• Extensies > Plugins
• Ingedeeld in types
• Authentication
• Content
• User
• System
• …
• Soms met instelbare parameters; soms alleen aan/uit
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Voorbeelden van Joomla! plugins
Introductie
• E-mailadres cloaker - Joomla! core
• Editors
• Tiny MCE
• JCE
• RegularLabs extensies, o.a.
• Articles Anywhere
• Sourcerer
• ReReplacer
• Yireo extensies, o.a.
• Language domain plugin
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Kenmerken van Joomla! plugins
Introductie
Vaak:
• Utility / ondersteunend
• Geen eigen content type
• Beheer vergemakkelijken
• Of (kleine ) correcties in output
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Basisprincipe (design pattern)
Hoe werken plugins?
• Componenten en modules: mvc
• Plugins: observer design pattern
• Plugins reageren op ‘events’
“Als de bel gaat, kom naar de zaal”
• Events komen van Joomla! en/of extensies
• Interne signalen als een taak start of is afgerond
• Niet verwarren met events als content type,
zoals bij RS Events Pro of JEvents
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Een event wordt getriggered
Hoe werken plugins?
De Joomla! core geeft event “onContentPrepare” af in:
components/com_content/views/article/view.html.php
+ regel 161
$dispatcher->trigger('onContentPrepare', array
('com_content.article', &$item, &$item->params, $offset));
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Een event wordt afgevangen
Hoe werken plugins?
Demo plugin reageert op event “onContentPrepare” in:
plugins/content/intromarker/intromarker.php
+ regel 66
public function onContentPrepare($context, &$row, $params, $page=0)
{
…
}
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Veel events in vele soorten
Hoe werken plugins?
• Joomla! framework events bij elke pageload
• onAfterInitialise, onBeforeRender, onBeforeCompileHead, …
• Joomla! events afhankelijk van context of actie
• onContentPrepare, onContentPrepareForm, onUserLogin, …
• Events specifiek voor een 3rd party extensie
Uitgebreide opsomming:
https://docs.joomla.org/Plugin/Events
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Soorten plugins
Hoe werken plugins?
• Plugin types in de Joomla! back end
• Aansluitend bij event type (user, content, …)
• In werkelijkheid is relatie event – plugin type flexibeler
• … en type ‘system’ fits all
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Plugin volgorde
Hoe werken plugins?
• Instelbaar per type plugin
• Kan problemen veroorzaken of oplossen
• Hier kan een strikte indeling qua type helpen
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Inhoudsopgave
 Introductie
 Demo plugin IntroMarker - werking
 Hoe werken plugins?
• Hoe maak je een plugin?
• Demo plugin IntroMarker - code
• Voor- en nadelen plugins
• Andere demo’s
• Bronnen
• Met dank aan
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Objectgeörienteerd programmeren
Hoe maak je een plugin?
• Notatie met pijltje:
$style = $this->createCss();
• Class en object
• Overerving / extenden van andere class
• Code structureren
• Code hergebruiken i.p.v. herhalen (functies/methods)
• Code leesbaar maken:
$this->zoekVolgendePresentatie($tijd, $programmaboekje);
• Presentatie Niels van der Veer op 2-4-2017 om 14:30
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Minimaal benodigd
Hoe maak je een plugin?
Twee php bestanden:
intromarker.xml (manifest en parameters)
intromarker.php (class)
Map:
/plugins/content/intromarker/
Opbouw pad / mapnaam:
/plugins/plugin_type/naam_van_mijn_plugin/
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Class
Hoe maak je een plugin?
class PlgContentIntromarker extends Jplugin
{
}
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Class
Hoe maak je een plugin?
class PlgContentIntromarker extends Jplugin
{
// main functionality
public function onContentPrepare() {...}
public function onBeforeCompileHead(){...}
}
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Demo plugin IntroMarker
Demo
Bekijk code van demo plugin.
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Optie: taalbestanden
Hoe maak je een plugin?
Taalbestanden:
en-GB.plg_content_intromarker.ini (taalbestand Engels)
nl-NL.plg_content_intromarker.ini (taalbestand Nederlands)
Mappen:
/plugins/content/intromarker/language/en-GB
/plugins/content/intromarker/language/nl-NL
Of:
/administrator/language/en-GB
/administrator/language/nl-NL
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Optie: andere bestanden
Hoe maak je een plugin?
Bijvoorbeeld:
• php-bestanden met helper functies, bijv. Ajax calls
• Afbeeldingen
• Fonts
• JavaScripts
Mappen, bijvoorbeeld:
/plugins/content/intromarker/helpers/
/plugins/content/intromarker/assets/
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Inhoudsopgave
 Introductie
 Demo plugin IntroMarker - werking
 Hoe werken plugins?
 Hoe maak je een plugin?
 Demo plugin IntroMarker - code
• Voor- en nadelen plugins
• Andere demo’s
• Bronnen
• Met dank aan
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
De sterke kanten van plugins
Voor- en nadelen plugins
• Joomla! of extensie aanvullen / aanpassen
• Originele code blijft ongewijzigd, zelfs geen override
• Minder ‘update-gevoelig’ dan override
• Niet gebonden aan fysieke lay-out
• Wanneer plugin niets doet (filter) blijft de html ‘schoon’
• Andere mogelijkheden door ander design pattern
• Veel effect met weinig code
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Eventuele bedenkingen
Voor- en nadelen plugins
• Vereist meer inzicht in Joomla!
• Event types
• Wanneer worden events (niet) getriggerd
• Waar input ophalen
• Waar output heen sturen
• Minder geschikt voor eigen content type
• Efficiënt met server resources?
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Inhoudsopgave
 Introductie
 Demo plugin IntroMarker - werking
 Hoe werken plugins?
 Hoe maak je een plugin?
 Demo plugin IntroMarker - code
 Voor- en nadelen plugins
• Andere demo’s
• Bronnen
• Met dank aan
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Meer demo’s
Demo
Ander eigen werk
• TextColsBoot (system)
• OutsideTheBox (system)
• Bieb (content)
• EasyProfile (system; EasyProfile, jQuery)
• Submissions dashboard (system; RSForms, jQuery)
• Postcode lookup (idem plus eigen database tabel en Ajax)
• Petitie afbeelding (system; RSForms, php image bewerking)
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Inhoudsopgave
 Introductie
 Demo plugin IntroMarker - werking
 Hoe werken plugins?
 Hoe maak je een plugin?
 Demo plugin IntroMarker - code
 Voor- en nadelen plugins
 Andere demo’s
• Bronnen
• Met dank aan
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Instructie en voorbeelden
Bronnen
Demo plugin IntroMarker
http://www.oorzaak.nl/jd17nl
Boek Programming Joomla! plugins / Jisse Reitsma (Engelstalig)
https://www.yireo.com/books/programming-joomla-plugins-book
Code bij boek Jisse Reitsma
https://github.com/yireo/JoomlaPluginsBook
Instructievideo ‘My First Plugin’ (Engelstalig)
https://www.joomlashack.com/blog/tutorials/hello-world-joomla-plugins/
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Online Joomla! documentatie
Bronnen
Plugins
https://docs.joomla.org/Plugins
https://docs.joomla.org/Plugin/Events
https://docs.joomla.org/Application_execution_order
https://docs.joomla.org/J3.x:Creating_a_Plugin_for_Joomla
Veldtypes voor parameters in xml bestand en voor custom formuliervelden
https://docs.joomla.org/Standard_form_field_types
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Inhoudsopgave
 Introductie
 Demo plugin IntroMarker - werking
 Hoe werken plugins?
 Hoe maak je een plugin?
 Demo plugin IntroMarker - code
 Voor- en nadelen plugins
 Andere demo’s
 Bronnen
• Met dank aan
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
Met dank aan
Jisse Reitsma – Joomla! plugins
Herman Peeren – programmeren Joomla! algemeen
René Kreijveld – voorbeeldcode postcode plugin
JUG030 – feedback op deze presentatie
Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017
Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl

More Related Content

What's hot

Joomladagen 2015 Joomla Performance
Joomladagen 2015 Joomla PerformanceJoomladagen 2015 Joomla Performance
Joomladagen 2015 Joomla PerformanceSimon Kloostra
 
Joomla componenten bouwen met Component Creator
Joomla componenten bouwen met Component CreatorJoomla componenten bouwen met Component Creator
Joomla componenten bouwen met Component CreatorRené Kreijveld
 
Keynote presentatie Expert review online rendement op Magento Ecommerce seminar
Keynote presentatie Expert review online rendement op Magento Ecommerce seminarKeynote presentatie Expert review online rendement op Magento Ecommerce seminar
Keynote presentatie Expert review online rendement op Magento Ecommerce seminarOrangeValley
 
Presentatie extra velden custom fields bij jug030
Presentatie extra velden custom fields bij jug030Presentatie extra velden custom fields bij jug030
Presentatie extra velden custom fields bij jug030StudioDeOorzaak
 
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)Sander Potjer
 
Sitemaps uit de doeken gedaan - Nico Bouwman - #jd15nl
Sitemaps uit de doeken gedaan - Nico Bouwman - #jd15nlSitemaps uit de doeken gedaan - Nico Bouwman - #jd15nl
Sitemaps uit de doeken gedaan - Nico Bouwman - #jd15nlJoomla!Days Netherlands
 
Best Practice: Joomla! templating
Best Practice: Joomla! templatingBest Practice: Joomla! templating
Best Practice: Joomla! templatingHans Kuijpers
 
Een autodealer website bouwen met Form2Content
Een autodealer website bouwen met Form2ContentEen autodealer website bouwen met Form2Content
Een autodealer website bouwen met Form2ContentRené Kreijveld
 
Versimpel beheer met Joomla modules
Versimpel beheer met Joomla modulesVersimpel beheer met Joomla modules
Versimpel beheer met Joomla modulesEmiel Kwakkel
 

What's hot (10)

Presentatie jd15nl
Presentatie jd15nlPresentatie jd15nl
Presentatie jd15nl
 
Joomladagen 2015 Joomla Performance
Joomladagen 2015 Joomla PerformanceJoomladagen 2015 Joomla Performance
Joomladagen 2015 Joomla Performance
 
Joomla componenten bouwen met Component Creator
Joomla componenten bouwen met Component CreatorJoomla componenten bouwen met Component Creator
Joomla componenten bouwen met Component Creator
 
Keynote presentatie Expert review online rendement op Magento Ecommerce seminar
Keynote presentatie Expert review online rendement op Magento Ecommerce seminarKeynote presentatie Expert review online rendement op Magento Ecommerce seminar
Keynote presentatie Expert review online rendement op Magento Ecommerce seminar
 
Presentatie extra velden custom fields bij jug030
Presentatie extra velden custom fields bij jug030Presentatie extra velden custom fields bij jug030
Presentatie extra velden custom fields bij jug030
 
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
 
Sitemaps uit de doeken gedaan - Nico Bouwman - #jd15nl
Sitemaps uit de doeken gedaan - Nico Bouwman - #jd15nlSitemaps uit de doeken gedaan - Nico Bouwman - #jd15nl
Sitemaps uit de doeken gedaan - Nico Bouwman - #jd15nl
 
Best Practice: Joomla! templating
Best Practice: Joomla! templatingBest Practice: Joomla! templating
Best Practice: Joomla! templating
 
Een autodealer website bouwen met Form2Content
Een autodealer website bouwen met Form2ContentEen autodealer website bouwen met Form2Content
Een autodealer website bouwen met Form2Content
 
Versimpel beheer met Joomla modules
Versimpel beheer met Joomla modulesVersimpel beheer met Joomla modules
Versimpel beheer met Joomla modules
 

Similar to Mijn eerste Joomla! plugin

Facebook Open Graph meta tags
Facebook Open Graph meta tagsFacebook Open Graph meta tags
Facebook Open Graph meta tagsStudioDeOorzaak
 
Presentatie open graph bij jug071
Presentatie open graph bij jug071Presentatie open graph bij jug071
Presentatie open graph bij jug071StudioDeOorzaak
 
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
 
Templates maken met helix framework Joomla User Group Utrecht 10 november 2014
Templates maken met helix framework  Joomla User Group Utrecht 10 november 2014Templates maken met helix framework  Joomla User Group Utrecht 10 november 2014
Templates maken met helix framework Joomla User Group Utrecht 10 november 2014Eric Tiggeler
 
Zelf je Joomla! template bouwen voor beginners
Zelf je Joomla! template bouwen voor beginnersZelf je Joomla! template bouwen voor beginners
Zelf je Joomla! template bouwen voor beginnersRachel Walraven
 
Daarom Joomla! - Inspiratie uit de praktijk
Daarom Joomla! - Inspiratie uit de praktijkDaarom Joomla! - Inspiratie uit de praktijk
Daarom Joomla! - Inspiratie uit de praktijkSander Potjer
 
Daarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publicerenDaarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publicerenSander Potjer
 
XPages Introductie
XPages IntroductieXPages Introductie
XPages IntroductieRob Bontekoe
 
#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensies#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensiesHerman Peeren
 
Webwinkel event - starten met je webwinkel
Webwinkel event - starten met je webwinkelWebwinkel event - starten met je webwinkel
Webwinkel event - starten met je webwinkelEduvision Opleidingen
 
Jug010 120320-templates
Jug010 120320-templatesJug010 120320-templates
Jug010 120320-templatesHerman Peeren
 
Reputatiemanagement verbeteren met SEO
Reputatiemanagement verbeteren met SEOReputatiemanagement verbeteren met SEO
Reputatiemanagement verbeteren met SEORamon Gulikers
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Developmentroelofr
 
Social Media & SEO - Joomla SEO Expert Sessie
Social Media & SEO - Joomla SEO Expert SessieSocial Media & SEO - Joomla SEO Expert Sessie
Social Media & SEO - Joomla SEO Expert SessieSander Potjer
 
Expert Sessie: Joomla Usability: Plugins
Expert Sessie: Joomla Usability: PluginsExpert Sessie: Joomla Usability: Plugins
Expert Sessie: Joomla Usability: PluginsYireo
 
Wordpress voor beginners
Wordpress voor beginnersWordpress voor beginners
Wordpress voor beginnersLaundrylicious
 
Plone add-on packages uit Nederland - Fred van Dijk
Plone add-on packages uit Nederland - Fred van DijkPlone add-on packages uit Nederland - Fred van Dijk
Plone add-on packages uit Nederland - Fred van DijkZest Software
 

Similar to Mijn eerste Joomla! plugin (20)

Facebook Open Graph meta tags
Facebook Open Graph meta tagsFacebook Open Graph meta tags
Facebook Open Graph meta tags
 
Presentatie open graph bij jug071
Presentatie open graph bij jug071Presentatie open graph bij jug071
Presentatie open graph bij jug071
 
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
 
Templates maken met helix framework Joomla User Group Utrecht 10 november 2014
Templates maken met helix framework  Joomla User Group Utrecht 10 november 2014Templates maken met helix framework  Joomla User Group Utrecht 10 november 2014
Templates maken met helix framework Joomla User Group Utrecht 10 november 2014
 
Zelf je Joomla! template bouwen voor beginners
Zelf je Joomla! template bouwen voor beginnersZelf je Joomla! template bouwen voor beginners
Zelf je Joomla! template bouwen voor beginners
 
Daarom Joomla! - Inspiratie uit de praktijk
Daarom Joomla! - Inspiratie uit de praktijkDaarom Joomla! - Inspiratie uit de praktijk
Daarom Joomla! - Inspiratie uit de praktijk
 
Daarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publicerenDaarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publiceren
 
XPages Introductie
XPages IntroductieXPages Introductie
XPages Introductie
 
#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensies#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensies
 
Webwinkel event - starten met je webwinkel
Webwinkel event - starten met je webwinkelWebwinkel event - starten met je webwinkel
Webwinkel event - starten met je webwinkel
 
Eduvision - Proefles Cursus Joomla
Eduvision - Proefles Cursus JoomlaEduvision - Proefles Cursus Joomla
Eduvision - Proefles Cursus Joomla
 
Jug010 120320-templates
Jug010 120320-templatesJug010 120320-templates
Jug010 120320-templates
 
Reputatiemanagement verbeteren met SEO
Reputatiemanagement verbeteren met SEOReputatiemanagement verbeteren met SEO
Reputatiemanagement verbeteren met SEO
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Social Media & SEO - Joomla SEO Expert Sessie
Social Media & SEO - Joomla SEO Expert SessieSocial Media & SEO - Joomla SEO Expert Sessie
Social Media & SEO - Joomla SEO Expert Sessie
 
Joomla als corporate cms - Ebo Eppenga
Joomla als corporate cms - Ebo EppengaJoomla als corporate cms - Ebo Eppenga
Joomla als corporate cms - Ebo Eppenga
 
Expert Sessie: Joomla Usability: Plugins
Expert Sessie: Joomla Usability: PluginsExpert Sessie: Joomla Usability: Plugins
Expert Sessie: Joomla Usability: Plugins
 
Wordpress voor beginners
Wordpress voor beginnersWordpress voor beginners
Wordpress voor beginners
 
Plone add-on packages uit Nederland - Fred van Dijk
Plone add-on packages uit Nederland - Fred van DijkPlone add-on packages uit Nederland - Fred van Dijk
Plone add-on packages uit Nederland - Fred van Dijk
 
Html5 App
Html5 AppHtml5 App
Html5 App
 

Mijn eerste Joomla! plugin

  • 1. class volgHetJoomladagenProgramma extends volgEenSeminar() { // ... public function onDeBelGaat() { $tijd = $this->kijkHoeLaatHetIs(); $zaal = $this->kijkNaarWelkeZaalIkMoet($tijd, $programmaboekje); $verplaatsing = $this->gaNaarZaal($zaal); } private function kijkHoeLaatHetIs() { // ... return $tijd; } // ... } Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 2. Mijn eerste Joomla! plugin Frits Jongbloets, JoomlaDagen.nl 2017 Versie: definitief Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 3. Mijn eerste Joomla! plugin “Je gaat het pas zien als je het doorhebt” Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 4. Mijn ervaringen Introductie • Joomla! sites voor klanten • Sinds 2008 • Custom extensies voor eigen projecten: • Extra functionaliteit • Pagina layout / vormgeving • Gebruiksgemak beheerders / eindgebruikers • … en omdat ik het interessant vind • Beperkte vooropleiding programmeren • Zelfstudie en Joomla! community Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 5. Mijn ervaringen met plugins maken Introductie • Plugins sinds + een jaar • Vond plugins moeilijk te begrijpen • Wanneer komen ze in actie? • Waar blijft hun output? Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 6. Jullie ervaringen? Introductie • Al eens een plugin gemaakt? • Een andere Joomla! extensie? • Template override? • Überhaupt programmeerervaring? Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 7. Toen het Boek in mijn leven kwam… Introductie • Boek Jisse Reitsma Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 8. … en wat extra uitleg… Introductie • Boek Jisse Reitsma • Presentatie Jisse Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 9. .. en nog wat meer uitleg … Introductie • Boek Jisse Reitsma • Presentatie Jisse • Workshop Jisse Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 10. … zag ook ik het opeens Introductie • Boek Jisse Reitsma • Presentatie Jisse • Workshop Jisse • Sindsdien één custom plugin per project Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 11. Inhoudsopgave  Introductie • Demo plugin IntroMarker - werking • Hoe werken plugins? • Hoe maak je een plugin? • Demo plugin IntroMarker - code • Voor- en nadelen plugins • Andere demo’s • Bronnen • Met dank aan Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 12. Demo plugin IntroMarker Demo Probleem: • Joomla! core artikel • Introtekst vrij zetten van vervolgtekst en stylen • Zonder auteurs tekst te laten opmaken • Maar: Introtekst en ‘vervolgtekst’ zijn één doorlopend tekstblok in standaard Joomla! artikel output Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 13. Demo plugin IntroMarker Demo Boosdoener: $item->text = $item->introtext . ' ' . $item->fulltext; In: components/com_content/views/article/view.html.php + regel 144 Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 14. Demo plugin IntroMarker Demo Wat ik wil: $item->text = '<div class="intro">' . $item->introtext . '</div>' . $item->fulltext; Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 15. Demo plugin IntroMarker Demo Wat ik wil: $item->text = '<div class="intro">' . $item->introtext . '</div>' . $item->fulltext; … zonder iets te wijzigen in het bestand components/com_content/views/article/view.html.php of ander template bestand Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 16. Demo plugin IntroMarker Demo Bekijk front end en back end demo plugin. Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 17. Inhoudsopgave  Introductie  Demo plugin IntroMarker - werking • Hoe werken plugins? • Hoe maak je een plugin? • Demo plugin IntroMarker - code • Voor- en nadelen plugins • Andere demo’s • Bronnen • Met dank aan Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 18. Joomla! plugins in de back end Introductie • Extensies > Plugins • Ingedeeld in types • Authentication • Content • User • System • … • Soms met instelbare parameters; soms alleen aan/uit Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 19. Voorbeelden van Joomla! plugins Introductie • E-mailadres cloaker - Joomla! core • Editors • Tiny MCE • JCE • RegularLabs extensies, o.a. • Articles Anywhere • Sourcerer • ReReplacer • Yireo extensies, o.a. • Language domain plugin Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 20. Kenmerken van Joomla! plugins Introductie Vaak: • Utility / ondersteunend • Geen eigen content type • Beheer vergemakkelijken • Of (kleine ) correcties in output Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 21. Basisprincipe (design pattern) Hoe werken plugins? • Componenten en modules: mvc • Plugins: observer design pattern • Plugins reageren op ‘events’ “Als de bel gaat, kom naar de zaal” • Events komen van Joomla! en/of extensies • Interne signalen als een taak start of is afgerond • Niet verwarren met events als content type, zoals bij RS Events Pro of JEvents Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 22. Een event wordt getriggered Hoe werken plugins? De Joomla! core geeft event “onContentPrepare” af in: components/com_content/views/article/view.html.php + regel 161 $dispatcher->trigger('onContentPrepare', array ('com_content.article', &$item, &$item->params, $offset)); Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 23. Een event wordt afgevangen Hoe werken plugins? Demo plugin reageert op event “onContentPrepare” in: plugins/content/intromarker/intromarker.php + regel 66 public function onContentPrepare($context, &$row, $params, $page=0) { … } Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 24. Veel events in vele soorten Hoe werken plugins? • Joomla! framework events bij elke pageload • onAfterInitialise, onBeforeRender, onBeforeCompileHead, … • Joomla! events afhankelijk van context of actie • onContentPrepare, onContentPrepareForm, onUserLogin, … • Events specifiek voor een 3rd party extensie Uitgebreide opsomming: https://docs.joomla.org/Plugin/Events Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 25. Soorten plugins Hoe werken plugins? • Plugin types in de Joomla! back end • Aansluitend bij event type (user, content, …) • In werkelijkheid is relatie event – plugin type flexibeler • … en type ‘system’ fits all Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 26. Plugin volgorde Hoe werken plugins? • Instelbaar per type plugin • Kan problemen veroorzaken of oplossen • Hier kan een strikte indeling qua type helpen Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 27. Inhoudsopgave  Introductie  Demo plugin IntroMarker - werking  Hoe werken plugins? • Hoe maak je een plugin? • Demo plugin IntroMarker - code • Voor- en nadelen plugins • Andere demo’s • Bronnen • Met dank aan Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 28. Objectgeörienteerd programmeren Hoe maak je een plugin? • Notatie met pijltje: $style = $this->createCss(); • Class en object • Overerving / extenden van andere class • Code structureren • Code hergebruiken i.p.v. herhalen (functies/methods) • Code leesbaar maken: $this->zoekVolgendePresentatie($tijd, $programmaboekje); • Presentatie Niels van der Veer op 2-4-2017 om 14:30 Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 29. Minimaal benodigd Hoe maak je een plugin? Twee php bestanden: intromarker.xml (manifest en parameters) intromarker.php (class) Map: /plugins/content/intromarker/ Opbouw pad / mapnaam: /plugins/plugin_type/naam_van_mijn_plugin/ Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 30. Class Hoe maak je een plugin? class PlgContentIntromarker extends Jplugin { } Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 31. Class Hoe maak je een plugin? class PlgContentIntromarker extends Jplugin { // main functionality public function onContentPrepare() {...} public function onBeforeCompileHead(){...} } Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 32. Demo plugin IntroMarker Demo Bekijk code van demo plugin. Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 33. Optie: taalbestanden Hoe maak je een plugin? Taalbestanden: en-GB.plg_content_intromarker.ini (taalbestand Engels) nl-NL.plg_content_intromarker.ini (taalbestand Nederlands) Mappen: /plugins/content/intromarker/language/en-GB /plugins/content/intromarker/language/nl-NL Of: /administrator/language/en-GB /administrator/language/nl-NL Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 34. Optie: andere bestanden Hoe maak je een plugin? Bijvoorbeeld: • php-bestanden met helper functies, bijv. Ajax calls • Afbeeldingen • Fonts • JavaScripts Mappen, bijvoorbeeld: /plugins/content/intromarker/helpers/ /plugins/content/intromarker/assets/ Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 35. Inhoudsopgave  Introductie  Demo plugin IntroMarker - werking  Hoe werken plugins?  Hoe maak je een plugin?  Demo plugin IntroMarker - code • Voor- en nadelen plugins • Andere demo’s • Bronnen • Met dank aan Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 36. De sterke kanten van plugins Voor- en nadelen plugins • Joomla! of extensie aanvullen / aanpassen • Originele code blijft ongewijzigd, zelfs geen override • Minder ‘update-gevoelig’ dan override • Niet gebonden aan fysieke lay-out • Wanneer plugin niets doet (filter) blijft de html ‘schoon’ • Andere mogelijkheden door ander design pattern • Veel effect met weinig code Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 37. Eventuele bedenkingen Voor- en nadelen plugins • Vereist meer inzicht in Joomla! • Event types • Wanneer worden events (niet) getriggerd • Waar input ophalen • Waar output heen sturen • Minder geschikt voor eigen content type • Efficiënt met server resources? Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 38. Inhoudsopgave  Introductie  Demo plugin IntroMarker - werking  Hoe werken plugins?  Hoe maak je een plugin?  Demo plugin IntroMarker - code  Voor- en nadelen plugins • Andere demo’s • Bronnen • Met dank aan Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 39. Meer demo’s Demo Ander eigen werk • TextColsBoot (system) • OutsideTheBox (system) • Bieb (content) • EasyProfile (system; EasyProfile, jQuery) • Submissions dashboard (system; RSForms, jQuery) • Postcode lookup (idem plus eigen database tabel en Ajax) • Petitie afbeelding (system; RSForms, php image bewerking) Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 40. Inhoudsopgave  Introductie  Demo plugin IntroMarker - werking  Hoe werken plugins?  Hoe maak je een plugin?  Demo plugin IntroMarker - code  Voor- en nadelen plugins  Andere demo’s • Bronnen • Met dank aan Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 41. Instructie en voorbeelden Bronnen Demo plugin IntroMarker http://www.oorzaak.nl/jd17nl Boek Programming Joomla! plugins / Jisse Reitsma (Engelstalig) https://www.yireo.com/books/programming-joomla-plugins-book Code bij boek Jisse Reitsma https://github.com/yireo/JoomlaPluginsBook Instructievideo ‘My First Plugin’ (Engelstalig) https://www.joomlashack.com/blog/tutorials/hello-world-joomla-plugins/ Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 42. Online Joomla! documentatie Bronnen Plugins https://docs.joomla.org/Plugins https://docs.joomla.org/Plugin/Events https://docs.joomla.org/Application_execution_order https://docs.joomla.org/J3.x:Creating_a_Plugin_for_Joomla Veldtypes voor parameters in xml bestand en voor custom formuliervelden https://docs.joomla.org/Standard_form_field_types Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 43. Inhoudsopgave  Introductie  Demo plugin IntroMarker - werking  Hoe werken plugins?  Hoe maak je een plugin?  Demo plugin IntroMarker - code  Voor- en nadelen plugins  Andere demo’s  Bronnen • Met dank aan Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl
  • 44. Met dank aan Jisse Reitsma – Joomla! plugins Herman Peeren – programmeren Joomla! algemeen René Kreijveld – voorbeeldcode postcode plugin JUG030 – feedback op deze presentatie Presentatie Mijn eerste Joomla! plugin, JoomlaDagen.nl, 2017 Frits Jongbloets, Studio De Oorzaak & De Webcompagnons, oorzaak@oorzaak.nl