Download - Programmeren van Plugins voor Joomla 1.5

Transcript
Page 1: Programmeren van Plugins voor Joomla 1.5

Joomla 1.5 Plugins

Programmeren van Plugins

Peter MartinJoomladagen.nlVrijdag 23 april 2010

Page 2: Programmeren van Plugins voor Joomla 1.5

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

Page 3: Programmeren van Plugins voor Joomla 1.5

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

Page 4: Programmeren van Plugins voor Joomla 1.5

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

Page 5: Programmeren van Plugins voor Joomla 1.5

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

Page 6: Programmeren van Plugins voor Joomla 1.5

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

Joomla's framework

Page 7: Programmeren van Plugins voor Joomla 1.5

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)

Page 8: Programmeren van Plugins voor Joomla 1.5

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

Page 9: Programmeren van Plugins voor Joomla 1.5

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”

Page 10: Programmeren van Plugins voor Joomla 1.5

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

“Samenwerking” van Extensies - 1/3

Page 11: Programmeren van Plugins voor Joomla 1.5

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

“Samenwerking” van Extensies - 2/3

Page 12: Programmeren van Plugins voor Joomla 1.5

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

Page 13: Programmeren van Plugins voor Joomla 1.5

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

Page 14: Programmeren van Plugins voor Joomla 1.5

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

Plugins – Verschillende types

1. Authentication2. Content3. Editors4. Editors-XTD5. Search6. System7. User8. XML-RPC9. Pe7er

Page 15: Programmeren van Plugins voor Joomla 1.5

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

Plugin type: Authentication

Page 16: Programmeren van Plugins voor Joomla 1.5

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

Page 17: Programmeren van Plugins voor Joomla 1.5

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

Plugin type: Content

Page 18: Programmeren van Plugins voor Joomla 1.5

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

Page 19: Programmeren van Plugins voor Joomla 1.5

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

Plugin type: Editors

Page 20: Programmeren van Plugins voor Joomla 1.5

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

Page 21: Programmeren van Plugins voor Joomla 1.5

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

Plugin type: Editors-XTD

Page 22: Programmeren van Plugins voor Joomla 1.5

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

Page 23: Programmeren van Plugins voor Joomla 1.5

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

Plugin type: Search

Page 24: Programmeren van Plugins voor Joomla 1.5

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

Page 25: Programmeren van Plugins voor Joomla 1.5

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

Plugin type: System

Page 26: Programmeren van Plugins voor Joomla 1.5

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

Page 27: Programmeren van Plugins voor Joomla 1.5

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

Plugin type: User

Page 28: Programmeren van Plugins voor Joomla 1.5

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

Page 29: Programmeren van Plugins voor Joomla 1.5

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

Plugin type: XML-RPC

Page 30: Programmeren van Plugins voor Joomla 1.5

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.

Page 31: Programmeren van Plugins voor Joomla 1.5

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

Plugin type: Pe7er

Page 32: Programmeren van Plugins voor Joomla 1.5

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

Page 33: Programmeren van Plugins voor Joomla 1.5

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

Page 34: Programmeren van Plugins voor Joomla 1.5

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

Page 35: Programmeren van Plugins voor Joomla 1.5

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' );

Page 36: Programmeren van Plugins voor Joomla 1.5

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

Page 37: Programmeren van Plugins voor Joomla 1.5

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

Demo code: Search Plugin

Breid de zoekfunctionaliteit uit naar menu items

Page 38: Programmeren van Plugins voor Joomla 1.5

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

Page 39: Programmeren van Plugins voor Joomla 1.5

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){}

Page 40: Programmeren van Plugins voor Joomla 1.5

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

Page 41: Programmeren van Plugins voor Joomla 1.5

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