Programmeren van Plugins voor Joomla 1.5

1,206 views
1,142 views

Published on

Presentation for Joomladays 2010 in Utrecht, The Netherlands about programming plugins for Joomla 1.5

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,206
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Programmeren van Plugins voor Joomla 1.5

  1. 1. Joomla 1.5 Plugins Programmeren van PluginsPeter MartinJoomladagen.nlVrijdag 23 april 2010
  2. 2. Overzicht presentatie >>>> Sheets worden digitaal beschikbaar <<<<  Introductie  Component / Module / Plugin - overzicht  Plugins  Demo: Programmeren van Plugin – content plugin – search plugin  VragenPeter Martin – joomladagen.nl – 23+24 april 2010 2
  3. 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 NijmegenPeter Martin – joomladagen.nl – 23+24 april 2010 3
  4. 4. Peter Martin – joomladagen.nl – 23+24 april 2010 4
  5. 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 applicatiesPeter Martin – joomladagen.nl – 23+24 april 2010 5
  6. 6. Joomlas frameworkPeter Martin – joomladagen.nl – 23+24 april 2010 6
  7. 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. 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_pluginsPeter Martin – joomladagen.nl – 23+24 april 2010 8
  9. 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. 10. “Samenwerking” van Extensies - 1/3Peter Martin – joomladagen.nl – 23+24 april 2010 10
  11. 11. “Samenwerking” van Extensies - 2/3Peter Martin – joomladagen.nl – 23+24 april 2010 11
  12. 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 ResultatenPeter Martin – joomladagen.nl – 23+24 april 2010 12
  13. 13. Peter Martin – joomladagen.nl – 23+24 april 2010 13
  14. 14. Plugins – Verschillende types 1. Authentication 2. Content 3. Editors 4. Editors-XTD 5. Search 6. System 7. User 8. XML-RPC 9. Pe7erPeter Martin – joomladagen.nl – 23+24 april 2010 14
  15. 15. Plugin type: AuthenticationPeter Martin – joomladagen.nl – 23+24 april 2010 15
  16. 16. Plugin type: Authentication  Wat:Authenticatie - “inloggen op website”, Joomla login & Externe login mogelijkheden  Events: – onAuthenticate  Bijv: Authenticatie via Gmail, Facebook, Twitter etcPeter Martin – joomladagen.nl – 23+24 april 2010 16
  17. 17. Plugin type: ContentPeter Martin – joomladagen.nl – 23+24 april 2010 17
  18. 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 cloakingPeter Martin – joomladagen.nl – 23+24 april 2010 18
  19. 19. Plugin type: EditorsPeter Martin – joomladagen.nl – 23+24 april 2010 19
  20. 20. Plugin type: Editors  Wat:WYSIWYG-editor in Joomla  Events: – onDisplay – onGetContent – onGetInsertMethod – onInit – onSave – onSetContent  Bijv: JCE editorPeter Martin – joomladagen.nl – 23+24 april 2010 20
  21. 21. Plugin type: Editors-XTDPeter Martin – joomladagen.nl – 23+24 april 2010 21
  22. 22. Plugin type: Editors-XTD  Wat:Extra knoppen voor WYSIWYG editor  Events: – onCustomEditorButton  Bijv: “Readmore” onderaan in editorPeter Martin – joomladagen.nl – 23+24 april 2010 22
  23. 23. Plugin type: SearchPeter Martin – joomladagen.nl – 23+24 april 2010 23
  24. 24. Plugin type: Search  Wat:Joomlas zoekfunctionaliteit uitbreiden naar andere niet-joomla tabellen  Wanneer: bij Joomlas core zoek component  Twee events: – onSearch – onSearchAreas  Bijv: PDF IndexerPeter Martin – joomladagen.nl – 23+24 april 2010 24
  25. 25. Plugin type: SystemPeter Martin – joomladagen.nl – 23+24 april 2010 25
  26. 26. Plugin type: System  Flexibele plugins - na flexibele gedefineerde punten: – onAfterInitialize – onAfterRoute – onAfterDispatch – onAfterRender  Bijv: SEF, Debug, LegacyPeter Martin – joomladagen.nl – 23+24 april 2010 26
  27. 27. Plugin type: UserPeter Martin – joomladagen.nl – 23+24 april 2010 27
  28. 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 phpBB3Peter Martin – joomladagen.nl – 23+24 april 2010 28
  29. 29. Plugin type: XML-RPCPeter Martin – joomladagen.nl – 23+24 april 2010 29
  30. 30. Plugin type: XML-RPC  Wat:systemen aanroepen van procedures op andere machines via HTTP en XML  Events: – onGetWebServices  Bijv: externe programmas waarmee je lokaal content aanmaakt en via XML-RPC op Joomla website publiceert.Peter Martin – joomladagen.nl – 23+24 april 2010 30
  31. 31. Plugin type: Pe7erPeter Martin – joomladagen.nl – 23+24 april 2010 31
  32. 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 definierenPeter Martin – joomladagen.nl – 23+24 april 2010 32
  33. 33. Peter Martin – joomladagen.nl – 23+24 april 2010 33
  34. 34. Demo code: Content Plugin  Zoek in artikelen naar bepaalde tekst... ... en link die automatisch naar een websitePeter Martin – joomladagen.nl – 23+24 april 2010 34
  35. 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. 36. Peter Martin – joomladagen.nl – 23+24 april 2010 36
  37. 37. Demo code: Search Plugin  Breid de zoekfunctionaliteit uit naar menu itemsPeter Martin – joomladagen.nl – 23+24 april 2010 37
  38. 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.zipPeter Martin – joomladagen.nl – 23+24 april 2010 38
  39. 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. 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. LeBlancPeter Martin – joomladagen.nl – 23+24 april 2010 40
  41. 41. Vragen?  Presentatie & modules beschikbaar via www.db8.nl Peter Martin e-mail: info at db8.nl website: www.db8.nlPeter Martin – joomladagen.nl – 23+24 april 2010 41

×