programmeren van plugins voor joomla 1.5
Post on 24-Dec-2014
1.009 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
top related