SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
Joomla 1.5 Plugins


                        Programmeren van Plugins



Peter Martin
Joomladagen.nl
Vrijdag 23 april 2010
Overzicht presentatie

             >>>> Sheets worden digitaal beschikbaar <<<<

         Introductie
         Component                 / Module / Plugin - overzicht
         Plugins
         Demo:           Programmeren van Plugin
             –   content plugin
             –   search plugin
         Vragen




Peter Martin – joomladagen.nl – 23+24 april 2010                    2
Peter Martin aka “pe7er”
       Wonen
           –   Nijmegen
       Werk
           –   db8 – Nijmegen
       Joomla
           –   Global Moderator
           –   Community Leadership Team
       JCI
           –   JCI Nederland - Projectmanager Internet
           –   JCI Mariken, Nijmegen
       Open          Coffee Nijmegen

Peter Martin – joomladagen.nl – 23+24 april 2010         3
Peter Martin – joomladagen.nl – 23+24 april 2010   4
Extensies – Types
      1.   Components
      2.   Modules
      3.   Plugins

      4.   Templates
      5.   Language Files
      6.   1.6 → Libraries

      7.   Addons → uitbreidingen van componenten
      8.   Tools → externe applicaties


Peter Martin – joomladagen.nl – 23+24 april 2010    5
Joomla's framework




Peter Martin – joomladagen.nl – 23+24 april 2010   6
Extensies – Wat is het?
       Component:
          Bepalende webapplicatie, belangrijkste gedeelte,
          max 1 tegelijk!

       Module:
          Ondersteunend, schermweergave,
          meerdere tegelijk (volgorde bepalend)

         Plugin:
          Ondersteunend, onzichtbaar op achtergrond,
          meerdere tegelijk (volgorde bepalend)


Peter Martin – joomladagen.nl – 23+24 april 2010             7
Extensies – Technisch?
       Component:
          (/administrator)/components/com_comp-naam
          jos_components

       Module:
          (/administrator)/modules/mod_modulenaam
          jos_modules & jos_modules_menu

         Plugin:
          /plugins/type_plugin/pluginnaam
          jos_plugins


Peter Martin – joomladagen.nl – 23+24 april 2010      8
Extensies – Activatie?
      Hoe worden ze geactiveerd?

       Component:
          Via URL + &option=com_componentnaam

       Module:
          Via menu item: URL + &Itemid=x

         Plugin:
          “luisteren” naar bepaalde “events”



Peter Martin – joomladagen.nl – 23+24 april 2010   9
“Samenwerking” van Extensies - 1/3




Peter Martin – joomladagen.nl – 23+24 april 2010   10
“Samenwerking” van Extensies - 2/3




Peter Martin – joomladagen.nl – 23+24 april 2010   11
“Samenwerking” van Extensies 3/3
       Search Module
                                                   C Formulier    M Formulier
       Search Component
           –   Resultaat Formulier
           –   Search Form
       Search           Plugin                                     P Zoek in
                                                                  database tabel
           –   Articles
           –   Categories                                           P Zoek in
                                                   C Bewerking
                                                                  database tabel
           –   Sections
                                                                    P Zoek in
           –   Contacts                                           database tabel


                                                   C Resultaten



Peter Martin – joomladagen.nl – 23+24 april 2010                                   12
Peter Martin – joomladagen.nl – 23+24 april 2010   13
Plugins – Verschillende types
      1.   Authentication
      2.   Content
      3.   Editors
      4.   Editors-XTD
      5.   Search
      6.   System
      7.   User
      8.   XML-RPC
      9.   Pe7er



Peter Martin – joomladagen.nl – 23+24 april 2010   14
Plugin type: Authentication




Peter Martin – joomladagen.nl – 23+24 april 2010   15
Plugin type: Authentication
       Wat:Authenticatie - “inloggen op website”,
        Joomla login & Externe login mogelijkheden
       Events:
           –   onAuthenticate
       Bijv:      Authenticatie via Gmail, Facebook, Twitter
          etc




Peter Martin – joomladagen.nl – 23+24 april 2010                16
Plugin type: Content




Peter Martin – joomladagen.nl – 23+24 april 2010   17
Plugin type: Content
       Wat:  Bewerk content of voegt functionaliteit toe
        bij renderen van content – Alleen content
        component & niet bij module of template output
       Events:
           –   onBeforeDisplayContent / onAfterDisplayContent
           –   onAfterDisplayTitle
           –   onPrepareContent
       Bijv:      e-mail cloaking




Peter Martin – joomladagen.nl – 23+24 april 2010                18
Plugin type: Editors




Peter Martin – joomladagen.nl – 23+24 april 2010   19
Plugin type: Editors
       Wat:WYSIWYG-editor in Joomla
       Events:
           –   onDisplay
           –   onGetContent
           –   onGetInsertMethod
           –   onInit
           –   onSave
           –   onSetContent
       Bijv:      JCE editor




Peter Martin – joomladagen.nl – 23+24 april 2010   20
Plugin type: Editors-XTD




Peter Martin – joomladagen.nl – 23+24 april 2010   21
Plugin type: Editors-XTD
       Wat:Extra knoppen voor WYSIWYG editor
       Events:
           –   onCustomEditorButton
       Bijv:      “Readmore” onderaan in editor




Peter Martin – joomladagen.nl – 23+24 april 2010   22
Plugin type: Search




Peter Martin – joomladagen.nl – 23+24 april 2010   23
Plugin type: Search
       Wat:Joomla's zoekfunctionaliteit uitbreiden naar
        andere niet-joomla tabellen
       Wanneer: bij Joomla's core zoek component
       Twee events:
           –   onSearch
           –   onSearchAreas
       Bijv:      PDF Indexer




Peter Martin – joomladagen.nl – 23+24 april 2010           24
Plugin type: System




Peter Martin – joomladagen.nl – 23+24 april 2010   25
Plugin type: System
       Flexibele           plugins - na flexibele gedefineerde
          punten:
           –   onAfterInitialize
           –   onAfterRoute
           –   onAfterDispatch
           –   onAfterRender
       Bijv:      SEF, Debug, Legacy




Peter Martin – joomladagen.nl – 23+24 april 2010                  26
Plugin type: User




Peter Martin – joomladagen.nl – 23+24 april 2010   27
Plugin type: User
       Wat: Acties gebaseerd op geregistreerde
        gebruiker
       Wanneer: in/uitloggen, bewaren user profile
       Events:
           –   onBeforeStoreUser / onAfterStoreUser
           –   onBeforeDeleteUser / onAfterDeleteUser
           –   onLoginFailure
           –   onLoginUser / onLogoutUser
       Bijv:  Vaak gebruikt voor “bridge” tussen andere
          applicaties, bijv phpBB3



Peter Martin – joomladagen.nl – 23+24 april 2010           28
Plugin type: XML-RPC




Peter Martin – joomladagen.nl – 23+24 april 2010   29
Plugin type: XML-RPC
       Wat:systemen aanroepen van procedures op
        andere machines via HTTP en XML
       Events:
           –   onGetWebServices
       Bijv: externe programma's waarmee je lokaal
          content aanmaakt en via XML-RPC op Joomla
          website publiceert.




Peter Martin – joomladagen.nl – 23+24 april 2010      30
Plugin type: Pe7er




Peter Martin – joomladagen.nl – 23+24 april 2010   31
Plugin type: Pe7er
       Bestaat  NIET, maar kan wel!
       Wat: Bewerk output van bepaald eigen
        component – wel zelf 'hooks' inbouwen
       Bij eigen componenten
           –   Anderen kunnen functionaliteit uitbreiden
       Events:
           –   Zelf definieren




Peter Martin – joomladagen.nl – 23+24 april 2010           32
Peter Martin – joomladagen.nl – 23+24 april 2010   33
Demo code: Content Plugin
       Zoek     in artikelen naar bepaalde tekst...
          ... en link die automatisch naar een website




Peter Martin – joomladagen.nl – 23+24 april 2010         34
Demo code: Content Plugin
       Referentie in jos_plugins
        INSERT INTO `jos_plugins` VALUES(37, 'db8 Hyperlink',
        'db8hyperlink', 'content', 0, 0, 1, 0, 0, 62, '2010-04-23 12:30:08',
        'search_word=anhyperlink=www.pe7er.comnn');
       Installatiebestand "db8hyperlink.xml"
        <?xml version="1.0" encoding="utf-8"?>
        <install version="1.5" type="plugin" group="search">
        <name>db8 hyperlink</name>
        <files>
        <filename plugin="db8menus" >db8menus.php</filename>
        </files>
        </install>
       php bestand "db8hyperlink.php"
        <?php
        defined( '_JEXEC' ) or die( 'Restricted access' );


Peter Martin – joomladagen.nl – 23+24 april 2010                               35
Peter Martin – joomladagen.nl – 23+24 april 2010   36
Demo code: Search Plugin
       Breid        de zoekfunctionaliteit uit naar menu items




Peter Martin – joomladagen.nl – 23+24 april 2010                  37
Demo code: Search Plugin 1/2
       Installatiebestand "db8menus.xml"
        <?xml version="1.0" encoding="utf-8"?>
        <install version="1.5" type="plugin" group="search">
        <name>Search – Menus</name>
        <files>
        <filename plugin="db8menus" >db8menus.php</filename>
        </files>
        </install>
       php bestand "db8menus.php"
        <?php
        defined( '_JEXEC' ) or die( 'Restricted access' );
       Installeerbaar               → db8menu_searchplg.zip




Peter Martin – joomladagen.nl – 23+24 april 2010               38
Demo code: Search Plugin 2/2
       Na installatie "db8menus.php" aanpassen
       Procedureel via functies?
          $mainframe->registerEvent( 'onSearch', 'plgSearchDb8Menus' );
          $mainframe->registerEvent( 'onSearchAreas',
          'plgSearchDb8MenusAreas' );

          function &plgSearchDb8MenusAreas()
          function plgSearchDb8Menus()
       OOP via een Class?
        jimport('joomla.plugin.plugin');

          class plgSearchdb8Menus extends Jplugin{}
          function &onSearchAreas(){}
          function onSearch('text){}



Peter Martin – joomladagen.nl – 23+24 april 2010                          39
Literatuur
         www.packtpub.com
          Mastering Joomla! 1.5 Extension and
           Framework Development - James Kennard


          Joomla!  1.5 Development Cookbook -
             James Kennard


          Learning  Joomla! 1.5 Extension
             Development (2009!!) - Joseph L. LeBlanc


Peter Martin – joomladagen.nl – 23+24 april 2010        40
Vragen?
       Presentatie              & modules beschikbaar via
          www.db8.nl




      Peter Martin
      e-mail: info at db8.nl
      website: www.db8.nl



Peter Martin – joomladagen.nl – 23+24 april 2010             41

Más contenido relacionado

Destacado

Help mijn website is gehackt - Joomla User Group Den Bosch 2014
Help mijn website is gehackt - Joomla User Group Den Bosch 2014Help mijn website is gehackt - Joomla User Group Den Bosch 2014
Help mijn website is gehackt - Joomla User Group Den Bosch 2014Peter Martin
 
Joomla 10-jaar-vooruitgang-jdnl15
Joomla 10-jaar-vooruitgang-jdnl15Joomla 10-jaar-vooruitgang-jdnl15
Joomla 10-jaar-vooruitgang-jdnl15Peter Martin
 
Joomla: 10 years of progress (jd15fr)
Joomla: 10 years of progress (jd15fr)Joomla: 10 years of progress (jd15fr)
Joomla: 10 years of progress (jd15fr)Peter Martin
 
Internet of Things - Linux Usergroup Nijmegen
Internet of Things - Linux Usergroup NijmegenInternet of Things - Linux Usergroup Nijmegen
Internet of Things - Linux Usergroup NijmegenPeter Martin
 
Linux command-line-magic-jdnl15
Linux command-line-magic-jdnl15Linux command-line-magic-jdnl15
Linux command-line-magic-jdnl15Peter Martin
 
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014Peter Martin
 
Joomla multilingual website without 3rd party extensions - Joomladay UK 2014
Joomla multilingual website without 3rd party extensions - Joomladay UK 2014Joomla multilingual website without 3rd party extensions - Joomladay UK 2014
Joomla multilingual website without 3rd party extensions - Joomladay UK 2014Peter Martin
 
Developing new feature in Joomla - Joomladay UK 2016
Developing new feature in Joomla - Joomladay UK 2016Developing new feature in Joomla - Joomladay UK 2016
Developing new feature in Joomla - Joomladay UK 2016Peter Martin
 
JCE editor optimaliseren (Joomla Den Bosc­h 2016)
JCE editor optimaliseren (Joomla Den Bosc­h 2016)JCE editor optimaliseren (Joomla Den Bosc­h 2016)
JCE editor optimaliseren (Joomla Den Bosc­h 2016)Peter Martin
 
Joomla on Raspberry Pi using Nginx - Nederlandse Linux Gebruikers Group novem...
Joomla on Raspberry Pi using Nginx - Nederlandse Linux Gebruikers Group novem...Joomla on Raspberry Pi using Nginx - Nederlandse Linux Gebruikers Group novem...
Joomla on Raspberry Pi using Nginx - Nederlandse Linux Gebruikers Group novem...Peter Martin
 
linux-commandline-magic-Joomla-World-Conference-2014
linux-commandline-magic-Joomla-World-Conference-2014linux-commandline-magic-Joomla-World-Conference-2014
linux-commandline-magic-Joomla-World-Conference-2014Peter Martin
 

Destacado (11)

Help mijn website is gehackt - Joomla User Group Den Bosch 2014
Help mijn website is gehackt - Joomla User Group Den Bosch 2014Help mijn website is gehackt - Joomla User Group Den Bosch 2014
Help mijn website is gehackt - Joomla User Group Den Bosch 2014
 
Joomla 10-jaar-vooruitgang-jdnl15
Joomla 10-jaar-vooruitgang-jdnl15Joomla 10-jaar-vooruitgang-jdnl15
Joomla 10-jaar-vooruitgang-jdnl15
 
Joomla: 10 years of progress (jd15fr)
Joomla: 10 years of progress (jd15fr)Joomla: 10 years of progress (jd15fr)
Joomla: 10 years of progress (jd15fr)
 
Internet of Things - Linux Usergroup Nijmegen
Internet of Things - Linux Usergroup NijmegenInternet of Things - Linux Usergroup Nijmegen
Internet of Things - Linux Usergroup Nijmegen
 
Linux command-line-magic-jdnl15
Linux command-line-magic-jdnl15Linux command-line-magic-jdnl15
Linux command-line-magic-jdnl15
 
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
 
Joomla multilingual website without 3rd party extensions - Joomladay UK 2014
Joomla multilingual website without 3rd party extensions - Joomladay UK 2014Joomla multilingual website without 3rd party extensions - Joomladay UK 2014
Joomla multilingual website without 3rd party extensions - Joomladay UK 2014
 
Developing new feature in Joomla - Joomladay UK 2016
Developing new feature in Joomla - Joomladay UK 2016Developing new feature in Joomla - Joomladay UK 2016
Developing new feature in Joomla - Joomladay UK 2016
 
JCE editor optimaliseren (Joomla Den Bosc­h 2016)
JCE editor optimaliseren (Joomla Den Bosc­h 2016)JCE editor optimaliseren (Joomla Den Bosc­h 2016)
JCE editor optimaliseren (Joomla Den Bosc­h 2016)
 
Joomla on Raspberry Pi using Nginx - Nederlandse Linux Gebruikers Group novem...
Joomla on Raspberry Pi using Nginx - Nederlandse Linux Gebruikers Group novem...Joomla on Raspberry Pi using Nginx - Nederlandse Linux Gebruikers Group novem...
Joomla on Raspberry Pi using Nginx - Nederlandse Linux Gebruikers Group novem...
 
linux-commandline-magic-Joomla-World-Conference-2014
linux-commandline-magic-Joomla-World-Conference-2014linux-commandline-magic-Joomla-World-Conference-2014
linux-commandline-magic-Joomla-World-Conference-2014
 

Similar a Programmeren van Plugins voor Joomla 1.5

Joomla! Plugins Programmeren [NL]
Joomla! Plugins Programmeren [NL]Joomla! Plugins Programmeren [NL]
Joomla! Plugins Programmeren [NL]Yireo
 
Web 2.0 en Architectuur: het organisatie perspectief
Web 2.0 en Architectuur: het organisatie perspectiefWeb 2.0 en Architectuur: het organisatie perspectief
Web 2.0 en Architectuur: het organisatie perspectiefRobert Slagter
 
#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensies#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensiesHerman Peeren
 
Expert Sessie: Joomla Usability: Plugins
Expert Sessie: Joomla Usability: PluginsExpert Sessie: Joomla Usability: Plugins
Expert Sessie: Joomla Usability: PluginsYireo
 
Customizing Team Foundation Server 2012 (TechDays 2013)
Customizing Team Foundation Server 2012 (TechDays 2013)Customizing Team Foundation Server 2012 (TechDays 2013)
Customizing Team Foundation Server 2012 (TechDays 2013)Delta-N
 
Introductie Drupal development
Introductie Drupal developmentIntroductie Drupal development
Introductie Drupal developmentBart Hanssens
 
Lotus Connections - Profiles (beheer & development)
Lotus Connections - Profiles (beheer & development)Lotus Connections - Profiles (beheer & development)
Lotus Connections - Profiles (beheer & development)Richard van Delft
 
Intro schema.org / microdata voor frontend developers
Intro schema.org / microdata voor frontend developersIntro schema.org / microdata voor frontend developers
Intro schema.org / microdata voor frontend developersPieter Mergan
 
JMonitoring, powertool voor Joomla!
JMonitoring, powertool voor Joomla!JMonitoring, powertool voor Joomla!
JMonitoring, powertool voor Joomla!René Kreijveld
 
JCI Webmaster Sessions
JCI Webmaster SessionsJCI Webmaster Sessions
JCI Webmaster SessionsJCI Vlaanderen
 
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
 
Microsoft Bot Framework and Microsoft Teams at SharePoint Saturday NL 2017
Microsoft Bot Framework and Microsoft Teams at SharePoint Saturday NL 2017Microsoft Bot Framework and Microsoft Teams at SharePoint Saturday NL 2017
Microsoft Bot Framework and Microsoft Teams at SharePoint Saturday NL 2017Remco Ploeg
 
Zoekmachine optimalisatie
Zoekmachine optimalisatieZoekmachine optimalisatie
Zoekmachine optimalisatieRealimpact
 
XPages Introductie
XPages IntroductieXPages Introductie
XPages IntroductieRob Bontekoe
 
UiTwidgets build on Drupal7 by CultuurNet
UiTwidgets build on Drupal7 by CultuurNetUiTwidgets build on Drupal7 by CultuurNet
UiTwidgets build on Drupal7 by CultuurNetSven Houtmeyers
 
Functionele wijzigingen cms7
Functionele wijzigingen cms7Functionele wijzigingen cms7
Functionele wijzigingen cms7MaxServ
 
Joomla kennismaking
Joomla kennismakingJoomla kennismaking
Joomla kennismakingJohan Smits
 

Similar a Programmeren van Plugins voor Joomla 1.5 (20)

Rich snippets-joomla
Rich snippets-joomlaRich snippets-joomla
Rich snippets-joomla
 
Joomla! Plugins Programmeren [NL]
Joomla! Plugins Programmeren [NL]Joomla! Plugins Programmeren [NL]
Joomla! Plugins Programmeren [NL]
 
Web 2.0 en Architectuur: het organisatie perspectief
Web 2.0 en Architectuur: het organisatie perspectiefWeb 2.0 en Architectuur: het organisatie perspectief
Web 2.0 en Architectuur: het organisatie perspectief
 
#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensies#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensies
 
Expert Sessie: Joomla Usability: Plugins
Expert Sessie: Joomla Usability: PluginsExpert Sessie: Joomla Usability: Plugins
Expert Sessie: Joomla Usability: Plugins
 
Customizing Team Foundation Server 2012 (TechDays 2013)
Customizing Team Foundation Server 2012 (TechDays 2013)Customizing Team Foundation Server 2012 (TechDays 2013)
Customizing Team Foundation Server 2012 (TechDays 2013)
 
Introductie Drupal development
Introductie Drupal developmentIntroductie Drupal development
Introductie Drupal development
 
Lotus Connections - Profiles (beheer & development)
Lotus Connections - Profiles (beheer & development)Lotus Connections - Profiles (beheer & development)
Lotus Connections - Profiles (beheer & development)
 
Intro schema.org / microdata voor frontend developers
Intro schema.org / microdata voor frontend developersIntro schema.org / microdata voor frontend developers
Intro schema.org / microdata voor frontend developers
 
Atos Origin
Atos OriginAtos Origin
Atos Origin
 
JMonitoring, powertool voor Joomla!
JMonitoring, powertool voor Joomla!JMonitoring, powertool voor Joomla!
JMonitoring, powertool voor Joomla!
 
JCI Webmaster Sessions
JCI Webmaster SessionsJCI Webmaster Sessions
JCI Webmaster Sessions
 
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
 
Microsoft Bot Framework and Microsoft Teams at SharePoint Saturday NL 2017
Microsoft Bot Framework and Microsoft Teams at SharePoint Saturday NL 2017Microsoft Bot Framework and Microsoft Teams at SharePoint Saturday NL 2017
Microsoft Bot Framework and Microsoft Teams at SharePoint Saturday NL 2017
 
Zoekmachine optimalisatie
Zoekmachine optimalisatieZoekmachine optimalisatie
Zoekmachine optimalisatie
 
XPages Introductie
XPages IntroductieXPages Introductie
XPages Introductie
 
UiTwidgets build on Drupal7 by CultuurNet
UiTwidgets build on Drupal7 by CultuurNetUiTwidgets build on Drupal7 by CultuurNet
UiTwidgets build on Drupal7 by CultuurNet
 
Functionele wijzigingen cms7
Functionele wijzigingen cms7Functionele wijzigingen cms7
Functionele wijzigingen cms7
 
Joomla kennismaking
Joomla kennismakingJoomla kennismaking
Joomla kennismaking
 
Rich snippets - joomla
Rich snippets - joomlaRich snippets - joomla
Rich snippets - joomla
 

Más de Peter Martin

Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...Peter Martin
 
Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...
Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...
Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...Peter Martin
 
Troubleshooting Joomla! problems - Joomladay Germany 2014
Troubleshooting Joomla! problems - Joomladay Germany 2014Troubleshooting Joomla! problems - Joomladay Germany 2014
Troubleshooting Joomla! problems - Joomladay Germany 2014Peter Martin
 
How IT works - Joomladay Germany 2014
How IT works - Joomladay Germany 2014How IT works - Joomladay Germany 2014
How IT works - Joomladay Germany 2014Peter Martin
 
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & Vagrant
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & VagrantLinux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & Vagrant
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & VagrantPeter Martin
 
Problemen oplossen in Joomla - Joomladagen 2014
Problemen oplossen in Joomla - Joomladagen 2014Problemen oplossen in Joomla - Joomladagen 2014
Problemen oplossen in Joomla - Joomladagen 2014Peter Martin
 
Joomla 3 Component programmeren met RAD - Joomladagen 2014
Joomla 3 Component programmeren met RAD - Joomladagen 2014Joomla 3 Component programmeren met RAD - Joomladagen 2014
Joomla 3 Component programmeren met RAD - Joomladagen 2014Peter Martin
 
Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)Peter Martin
 
JUG Utrecht 2013 - Optimaliseren van Joomla Content Editor (JCE) voor admins
JUG Utrecht 2013 - Optimaliseren van Joomla Content Editor (JCE) voor adminsJUG Utrecht 2013 - Optimaliseren van Joomla Content Editor (JCE) voor admins
JUG Utrecht 2013 - Optimaliseren van Joomla Content Editor (JCE) voor adminsPeter Martin
 
JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...
JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...
JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...Peter Martin
 

Más de Peter Martin (10)

Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
 
Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...
Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...
Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...
 
Troubleshooting Joomla! problems - Joomladay Germany 2014
Troubleshooting Joomla! problems - Joomladay Germany 2014Troubleshooting Joomla! problems - Joomladay Germany 2014
Troubleshooting Joomla! problems - Joomladay Germany 2014
 
How IT works - Joomladay Germany 2014
How IT works - Joomladay Germany 2014How IT works - Joomladay Germany 2014
How IT works - Joomladay Germany 2014
 
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & Vagrant
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & VagrantLinux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & Vagrant
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & Vagrant
 
Problemen oplossen in Joomla - Joomladagen 2014
Problemen oplossen in Joomla - Joomladagen 2014Problemen oplossen in Joomla - Joomladagen 2014
Problemen oplossen in Joomla - Joomladagen 2014
 
Joomla 3 Component programmeren met RAD - Joomladagen 2014
Joomla 3 Component programmeren met RAD - Joomladagen 2014Joomla 3 Component programmeren met RAD - Joomladagen 2014
Joomla 3 Component programmeren met RAD - Joomladagen 2014
 
Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)
 
JUG Utrecht 2013 - Optimaliseren van Joomla Content Editor (JCE) voor admins
JUG Utrecht 2013 - Optimaliseren van Joomla Content Editor (JCE) voor adminsJUG Utrecht 2013 - Optimaliseren van Joomla Content Editor (JCE) voor admins
JUG Utrecht 2013 - Optimaliseren van Joomla Content Editor (JCE) voor admins
 
JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...
JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...
JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...
 

Programmeren van Plugins voor Joomla 1.5

  • 1. Joomla 1.5 Plugins Programmeren van Plugins Peter Martin Joomladagen.nl Vrijdag 23 april 2010
  • 2. Overzicht presentatie >>>> Sheets worden digitaal beschikbaar <<<<  Introductie  Component / Module / Plugin - overzicht  Plugins  Demo: Programmeren van Plugin – content plugin – search plugin  Vragen Peter Martin – joomladagen.nl – 23+24 april 2010 2
  • 3. Peter Martin aka “pe7er”  Wonen – Nijmegen  Werk – db8 – Nijmegen  Joomla – Global Moderator – Community Leadership Team  JCI – JCI Nederland - Projectmanager Internet – JCI Mariken, Nijmegen  Open Coffee Nijmegen Peter Martin – joomladagen.nl – 23+24 april 2010 3
  • 4. Peter Martin – joomladagen.nl – 23+24 april 2010 4
  • 5. Extensies – Types 1. Components 2. Modules 3. Plugins 4. Templates 5. Language Files 6. 1.6 → Libraries 7. Addons → uitbreidingen van componenten 8. Tools → externe applicaties Peter Martin – joomladagen.nl – 23+24 april 2010 5
  • 6. Joomla's framework Peter Martin – joomladagen.nl – 23+24 april 2010 6
  • 7. Extensies – Wat is het?  Component: Bepalende webapplicatie, belangrijkste gedeelte, max 1 tegelijk!  Module: Ondersteunend, schermweergave, meerdere tegelijk (volgorde bepalend)  Plugin: Ondersteunend, onzichtbaar op achtergrond, meerdere tegelijk (volgorde bepalend) Peter Martin – joomladagen.nl – 23+24 april 2010 7
  • 8. Extensies – Technisch?  Component: (/administrator)/components/com_comp-naam jos_components  Module: (/administrator)/modules/mod_modulenaam jos_modules & jos_modules_menu  Plugin: /plugins/type_plugin/pluginnaam jos_plugins Peter Martin – joomladagen.nl – 23+24 april 2010 8
  • 9. Extensies – Activatie? Hoe worden ze geactiveerd?  Component: Via URL + &option=com_componentnaam  Module: Via menu item: URL + &Itemid=x  Plugin: “luisteren” naar bepaalde “events” Peter Martin – joomladagen.nl – 23+24 april 2010 9
  • 10. “Samenwerking” van Extensies - 1/3 Peter Martin – joomladagen.nl – 23+24 april 2010 10
  • 11. “Samenwerking” van Extensies - 2/3 Peter Martin – joomladagen.nl – 23+24 april 2010 11
  • 12. “Samenwerking” van Extensies 3/3  Search Module C Formulier M Formulier  Search Component – Resultaat Formulier – Search Form  Search Plugin P Zoek in database tabel – Articles – Categories P Zoek in C Bewerking database tabel – Sections P Zoek in – Contacts database tabel C Resultaten Peter Martin – joomladagen.nl – 23+24 april 2010 12
  • 13. Peter Martin – joomladagen.nl – 23+24 april 2010 13
  • 14. Plugins – Verschillende types 1. Authentication 2. Content 3. Editors 4. Editors-XTD 5. Search 6. System 7. User 8. XML-RPC 9. Pe7er Peter Martin – joomladagen.nl – 23+24 april 2010 14
  • 15. Plugin type: Authentication Peter Martin – joomladagen.nl – 23+24 april 2010 15
  • 16. Plugin type: Authentication  Wat:Authenticatie - “inloggen op website”, Joomla login & Externe login mogelijkheden  Events: – onAuthenticate  Bijv: Authenticatie via Gmail, Facebook, Twitter etc Peter Martin – joomladagen.nl – 23+24 april 2010 16
  • 17. Plugin type: Content Peter Martin – joomladagen.nl – 23+24 april 2010 17
  • 18. Plugin type: Content  Wat: Bewerk content of voegt functionaliteit toe bij renderen van content – Alleen content component & niet bij module of template output  Events: – onBeforeDisplayContent / onAfterDisplayContent – onAfterDisplayTitle – onPrepareContent  Bijv: e-mail cloaking Peter Martin – joomladagen.nl – 23+24 april 2010 18
  • 19. Plugin type: Editors Peter Martin – joomladagen.nl – 23+24 april 2010 19
  • 20. Plugin type: Editors  Wat:WYSIWYG-editor in Joomla  Events: – onDisplay – onGetContent – onGetInsertMethod – onInit – onSave – onSetContent  Bijv: JCE editor Peter Martin – joomladagen.nl – 23+24 april 2010 20
  • 21. Plugin type: Editors-XTD Peter Martin – joomladagen.nl – 23+24 april 2010 21
  • 22. Plugin type: Editors-XTD  Wat:Extra knoppen voor WYSIWYG editor  Events: – onCustomEditorButton  Bijv: “Readmore” onderaan in editor Peter Martin – joomladagen.nl – 23+24 april 2010 22
  • 23. Plugin type: Search Peter Martin – joomladagen.nl – 23+24 april 2010 23
  • 24. Plugin type: Search  Wat:Joomla's zoekfunctionaliteit uitbreiden naar andere niet-joomla tabellen  Wanneer: bij Joomla's core zoek component  Twee events: – onSearch – onSearchAreas  Bijv: PDF Indexer Peter Martin – joomladagen.nl – 23+24 april 2010 24
  • 25. Plugin type: System Peter Martin – joomladagen.nl – 23+24 april 2010 25
  • 26. Plugin type: System  Flexibele plugins - na flexibele gedefineerde punten: – onAfterInitialize – onAfterRoute – onAfterDispatch – onAfterRender  Bijv: SEF, Debug, Legacy Peter Martin – joomladagen.nl – 23+24 april 2010 26
  • 27. Plugin type: User Peter Martin – joomladagen.nl – 23+24 april 2010 27
  • 28. Plugin type: User  Wat: Acties gebaseerd op geregistreerde gebruiker  Wanneer: in/uitloggen, bewaren user profile  Events: – onBeforeStoreUser / onAfterStoreUser – onBeforeDeleteUser / onAfterDeleteUser – onLoginFailure – onLoginUser / onLogoutUser  Bijv: Vaak gebruikt voor “bridge” tussen andere applicaties, bijv phpBB3 Peter Martin – joomladagen.nl – 23+24 april 2010 28
  • 29. Plugin type: XML-RPC Peter Martin – joomladagen.nl – 23+24 april 2010 29
  • 30. Plugin type: XML-RPC  Wat:systemen aanroepen van procedures op andere machines via HTTP en XML  Events: – onGetWebServices  Bijv: externe programma's waarmee je lokaal content aanmaakt en via XML-RPC op Joomla website publiceert. Peter Martin – joomladagen.nl – 23+24 april 2010 30
  • 31. Plugin type: Pe7er Peter Martin – joomladagen.nl – 23+24 april 2010 31
  • 32. Plugin type: Pe7er  Bestaat NIET, maar kan wel!  Wat: Bewerk output van bepaald eigen component – wel zelf 'hooks' inbouwen  Bij eigen componenten – Anderen kunnen functionaliteit uitbreiden  Events: – Zelf definieren Peter Martin – joomladagen.nl – 23+24 april 2010 32
  • 33. Peter Martin – joomladagen.nl – 23+24 april 2010 33
  • 34. Demo code: Content Plugin  Zoek in artikelen naar bepaalde tekst... ... en link die automatisch naar een website Peter Martin – joomladagen.nl – 23+24 april 2010 34
  • 35. Demo code: Content Plugin  Referentie in jos_plugins INSERT INTO `jos_plugins` VALUES(37, 'db8 Hyperlink', 'db8hyperlink', 'content', 0, 0, 1, 0, 0, 62, '2010-04-23 12:30:08', 'search_word=anhyperlink=www.pe7er.comnn');  Installatiebestand "db8hyperlink.xml" <?xml version="1.0" encoding="utf-8"?> <install version="1.5" type="plugin" group="search"> <name>db8 hyperlink</name> <files> <filename plugin="db8menus" >db8menus.php</filename> </files> </install>  php bestand "db8hyperlink.php" <?php defined( '_JEXEC' ) or die( 'Restricted access' ); Peter Martin – joomladagen.nl – 23+24 april 2010 35
  • 36. Peter Martin – joomladagen.nl – 23+24 april 2010 36
  • 37. Demo code: Search Plugin  Breid de zoekfunctionaliteit uit naar menu items Peter Martin – joomladagen.nl – 23+24 april 2010 37
  • 38. Demo code: Search Plugin 1/2  Installatiebestand "db8menus.xml" <?xml version="1.0" encoding="utf-8"?> <install version="1.5" type="plugin" group="search"> <name>Search – Menus</name> <files> <filename plugin="db8menus" >db8menus.php</filename> </files> </install>  php bestand "db8menus.php" <?php defined( '_JEXEC' ) or die( 'Restricted access' );  Installeerbaar → db8menu_searchplg.zip Peter Martin – joomladagen.nl – 23+24 april 2010 38
  • 39. Demo code: Search Plugin 2/2  Na installatie "db8menus.php" aanpassen  Procedureel via functies? $mainframe->registerEvent( 'onSearch', 'plgSearchDb8Menus' ); $mainframe->registerEvent( 'onSearchAreas', 'plgSearchDb8MenusAreas' ); function &plgSearchDb8MenusAreas() function plgSearchDb8Menus()  OOP via een Class? jimport('joomla.plugin.plugin'); class plgSearchdb8Menus extends Jplugin{} function &onSearchAreas(){} function onSearch('text){} Peter Martin – joomladagen.nl – 23+24 april 2010 39
  • 40. Literatuur www.packtpub.com  Mastering Joomla! 1.5 Extension and Framework Development - James Kennard  Joomla! 1.5 Development Cookbook - James Kennard  Learning Joomla! 1.5 Extension Development (2009!!) - Joseph L. LeBlanc Peter Martin – joomladagen.nl – 23+24 april 2010 40
  • 41. Vragen?  Presentatie & modules beschikbaar via www.db8.nl Peter Martin e-mail: info at db8.nl website: www.db8.nl Peter Martin – joomladagen.nl – 23+24 april 2010 41