Upload
peter-martin
View
1.009
Download
0
Embed Size (px)
DESCRIPTION
Presentation for Joomladays 2010 in Utrecht, The Netherlands about programming plugins for Joomla 1.5
Citation preview
Joomla 1.5 Plugins
Programmeren van Plugins
Peter MartinJoomladagen.nlVrijdag 23 april 2010
Peter Martin – joomladagen.nl – 23+24 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 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 4
Peter Martin – joomladagen.nl – 23+24 april 2010 5
Extensies – Types
1. Components2. Modules3. Plugins
4. Templates5. Language Files6. 1.6 → Libraries
7. Addons → uitbreidingen van componenten8. Tools → externe applicaties
Peter Martin – joomladagen.nl – 23+24 april 2010 6
Joomla's framework
Peter Martin – joomladagen.nl – 23+24 april 2010 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 8
Extensies – Technisch?
Component:(/administrator)/components/com_comp-naam jos_components
Module:(/administrator)/modules/mod_modulenaamjos_modules & jos_modules_menu
Plugin: /plugins/type_plugin/pluginnaamjos_plugins
Peter Martin – joomladagen.nl – 23+24 april 2010 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 10
“Samenwerking” van Extensies - 1/3
Peter Martin – joomladagen.nl – 23+24 april 2010 11
“Samenwerking” van Extensies - 2/3
Peter Martin – joomladagen.nl – 23+24 april 2010 12
“Samenwerking” van Extensies 3/3
Search Module Search Component
– Resultaat Formulier– Search Form
Search Plugin– Articles– Categories– Sections– Contacts
C Formulier
C Resultaten
C Bewerking
P Zoek in database tabel
M Formulier
P Zoek in database tabel
P Zoek in database tabel
Peter Martin – joomladagen.nl – 23+24 april 2010 13
Peter Martin – joomladagen.nl – 23+24 april 2010 14
Plugins – Verschillende types
1. Authentication2. Content3. Editors4. Editors-XTD5. Search6. System7. User8. XML-RPC9. Pe7er
Peter Martin – joomladagen.nl – 23+24 april 2010 15
Plugin type: Authentication
Peter Martin – joomladagen.nl – 23+24 april 2010 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 17
Plugin type: Content
Peter Martin – joomladagen.nl – 23+24 april 2010 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 19
Plugin type: Editors
Peter Martin – joomladagen.nl – 23+24 april 2010 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 21
Plugin type: Editors-XTD
Peter Martin – joomladagen.nl – 23+24 april 2010 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 23
Plugin type: Search
Peter Martin – joomladagen.nl – 23+24 april 2010 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 25
Plugin type: System
Peter Martin – joomladagen.nl – 23+24 april 2010 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 27
Plugin type: User
Peter Martin – joomladagen.nl – 23+24 april 2010 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 29
Plugin type: XML-RPC
Peter Martin – joomladagen.nl – 23+24 april 2010 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 31
Plugin type: Pe7er
Peter Martin – joomladagen.nl – 23+24 april 2010 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 33
Peter Martin – joomladagen.nl – 23+24 april 2010 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 35
Demo code: Content Plugin
Referentie in jos_pluginsINSERT INTO `jos_plugins` VALUES(37, 'db8 Hyperlink', 'db8hyperlink', 'content', 0, 0, 1, 0, 0, 62, '2010-04-23 12:30:08', 'search_word=a\nhyperlink=www.pe7er.com\n\n');
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"<?phpdefined( '_JEXEC' ) or die( 'Restricted access' );
Peter Martin – joomladagen.nl – 23+24 april 2010 36
Peter Martin – joomladagen.nl – 23+24 april 2010 37
Demo code: Search Plugin
Breid de zoekfunctionaliteit uit naar menu items
Peter Martin – joomladagen.nl – 23+24 april 2010 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"<?phpdefined( '_JEXEC' ) or die( 'Restricted access' );
Installeerbaar → db8menu_searchplg.zip
Peter Martin – joomladagen.nl – 23+24 april 2010 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 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 41
Vragen?
Presentatie & modules beschikbaar via www.db8.nl
Peter Martine-mail: info at db8.nlwebsite: www.db8.nl