Joomla 2.5 / 3.0 module programmeren
-
Upload
peter-martin -
Category
Documents
-
view
632 -
download
3
description
Transcript of Joomla 2.5 / 3.0 module programmeren
Joomla 2.5 / 3.0 module programmeren
Peter Martin, twitter: @pe7er Joomladagen.nl, za 20 april 2013
Overzicht Presentatie 1.
Extensies in het kort 2. Module basis 2. Database >>>Sheetsvia:www.db8.nl Module Beheer: ACL, volgorde, parameters 1 modus: Read (Display) Voorbeeld: mod_breadcrumbs
Peter Martin joomladagen.nl 20+21 april 2013
6
1. Extensies Plugin
Ondersteunend. Functioneert onzichtbaar op achtergrond. Meerdere tegelijk. Activatie via bepaalde events (of hooks) in extensies Beheer: Extensions > Plugin Beheer: ACL, volgorde, parameters 1 modus Voorbeeld: Content emailcloak Plugin
Peter Martin joomladagen.nl 20+21 april 2013
7
1. Extensies SamenwerkingSamenwerking Zoeken: Module (M) C Form M Form
Zoekveld
Component
(C)C Processing
Zoekformulier Resultaatpagina
P Search in database table P Search in database table P Search in database table C Results
Plugin
(P)
Articles Categories Contacts
Peter Martin joomladagen.nl 20+21 april 2013
8
1. Extensies Modules in Template Weergave
Module Posities:
Extensions > Template Manager > Preview Module Positions: enabled URL + ?tp=1
Code
voor Module Positie in Template: /templates/template_naam/index.php
Peter Martin joomladagen.nl 20+21 april 2013
9
2. Module basis
Peter Martin joomladagen.nl 20+21 april 2013
10
2. Module basis
Locatie:
Front-end: /modules/mod_naam Back-end: /administrator/modules/mod_naam mod_naam.php code mod_naam.xml installatie & parameters #__extensionsname=Module Naam type=module element=mod_naam folder={leeg} client_id: 0 = front-end, 1 = back-end
Bestanden:
Database referentie
Peter Martin joomladagen.nl 20+21 april 2013
11
2. Module basis: voorbeeld Joomla's
Weblinks Component
Toont weblinks van een Weblink categorie Telt aantal kliks
Database
tabel: #__weblinks
id, catid, title, url, description, created, hits, state, catid
Joomla's
Weblinks Module
created datum wordt *niet* gebruikt
Peter Martin joomladagen.nl 20+21 april 2013
12
2. Module Latest WeblinksOntwikkel Module: Toon meest recent toegevoegde weblinks
Map: /modules/mod_db8latestweblinks/ Bestanden: mod_db8latestweblinks.php
mod_db8latestweblinks.xml {volgende sheet}
Installatie: Extensies
> Extensiebeheer > Ontdekken (Discover) Extensies > Modulebeheer > [Nieuw]
Peter Martin joomladagen.nl 20+21 april 2013
13
2. Module Latest WeblinksManifest file: mod_db8latestweblinks.xml db8LatestWeblinks PeterMartin April2013 (C)20052013PeterMartin.Allrightsreserved. GNUGeneralPublicLicenseversion2orlater; [email protected] www.db8.nl 2.5.0 MOD_DB8LATESTWEBLINKS_XML_DESCRIPTION mod_db8latestweblinks.php mod_db8latestweblinks.xml
Peter Martin joomladagen.nl 20+21 april 2013
14
2. Module Latest Weblinks
Peter Martin joomladagen.nl 20+21 april 2013
15
3. Module Database
Peter Martin joomladagen.nl 20+21 april 2013
16
3. Module DatabaseJoomla Database Object1.Joomla's Database Object aanroepen 2.Een leeg Query Object instantieren 3.Query Object opbouwenGEEN hardcoded MySQL string gebruiken! SELECT * FROM #__weblinks ORDER BY created DESC
4.Query Object in Database Object plaatsen 5.Uit Database Object de resultaten opvragen
Peter Martin joomladagen.nl 20+21 april 2013
17
3. Module Database mod_db8latestweblinks.phpdefined('_JEXEC')ordie; $db=Jfactory::getDbo(); $query=$db>getQuery(true); $query>select('*') >from('#__weblinks') >order('createdDESC'); $db>setQuery($query,0,7); $items=$db>loadObjectList(); ?>
Peter Martin joomladagen.nl 20+21 april 2013
18
3. Module Database
Peter Martin joomladagen.nl 20+21 april 2013
19
3. Module DatabaseDebug: echo "sql = $query"; print_r($items); HTML
Google Chrome Inspect Element FireFox + FireBug addon
Peter Martin joomladagen.nl 20+21 april 2013
20
4. Module OOP style
Peter Martin joomladagen.nl 20+21 april 2013
21
4. Module OOP style Object
Oriented Programming logica & schermuitvoer
Scheiding MVC
Model Controller View
Model helper Controller de module zelf (1 modus: toon module) View HTML output template override mogelijk!
Peter Martin joomladagen.nl 20+21 april 2013
22
4. Module OOP style: Model/modules/mod_db8latestweblinks/ helper.phpdefined('_JEXEC')ordie; classmodDb8latestweblinksHelper { staticfunctiongetItems($params) { $db=Jfactory::getDbo(); $query=$db>getQuery(true); $query>select('*') >from('#__weblinks') >order('createdDESC'); $db>setQuery($query,0,7); $items=$db>loadObjectList(); return$items; } }
Peter Martin joomladagen.nl 20+21 april 2013
23
4. Module OOP style: Controller/modules/mod_db8latestweblinks/ mod_db8latestweblinks.phpdefined('_JEXEC')ordie; require_oncedirname(__FILE__).'/helper.php'; $items= modDb8latestweblinksHelper::getItems($params); requireJmoduleHelper::getLayoutPath( 'mod_db8latestweblinks',$params>get('layout', 'default'));
Peter Martin joomladagen.nl 20+21 april 2013
24
4. Module OOP style: View/modules/mod_db8latestweblinks/tmpl/ default.phpdefined('_JEXEC')ordie; ?>
Peter Martin joomladagen.nl 20+21 april 2013
25
4. Module OOP style
Peter Martin joomladagen.nl 20+21 april 2013
26
5. Parameters
Peter Martin joomladagen.nl 20+21 april 2013
27
5. Parameters Flexibiliteit
Categorien Toon aantal resultaten Target Window Follow/No Follow Toon: Datum, Beschrijving (hover), Hits Tel kliks wel / niet Toon: Published / unpublished
.xml
keuze definitie Helper.php keuze in SQL query meenemen
Peter Martin joomladagen.nl 20+21 april 2013
28
5. Parameters Keuzes /modules/mod_db8latestweblinks/
mod_db8latestweblinks.xml
Peter Martin joomladagen.nl 20+21 april 2013
29
5. Parameters Keuzes /modules/mod_db8latestweblinks/
mod_db8latestweblinks.xml
Peter Martin joomladagen.nl 20+21 april 2013
30
5. Parameters Keuzes In
back-end
Peter Martin joomladagen.nl 20+21 april 2013
31
5. Parameters /modules/mod_db8latestweblinks/
helper.php
staticfunctiongetItems($params){ $db=Jfactory::getDbo(); $query=$db>getQuery(true); $query>select('*') >from('#__weblinks') >order('createdDESC'); $catid=$params>get('catid'); if(is_array($catid)){ if($catid[0]!=null){ $catid=implode(',',$catid); $query>where('catidIN('.$catid.')'); } } $db>setQuery($query,0,$params>get('count',5)); $rows=$db>loadObjectList(); return$rows; }
Peter Martin joomladagen.nl 20+21 april 2013
32
6. Taalbestand
Peter Martin joomladagen.nl 20+21 april 2013
33
6. Taalbestand Flexibiliteit
Mbt distributie Mbt Language Override !
Taallabels in .xml, en in .php via JText Locatie:
Front-end: /language/en-GB/en-GB.mod_naam.ini /language/en-GB/en-GB.mod_naam.sys.ini Back-end: /administrator/language/en-GB/en-GB.mod_naam.ini /administrator/language/en-GB/en-GB.mod_naam. sys.ini
Peter Martin joomladagen.nl 20+21 april 2013
34
6. Taalbestand
/modules/mod_db8latestweblinks/ mod_db8latestweblinks.xml
Peter Martin joomladagen.nl 20+21 april 2013
35
6. Taalbestand
Peter Martin joomladagen.nl 20+21 april 2013
36
6. Taalbestand
/language/en-GB/en-GB.mod_db8latestweblinks.iniMOD_DB8LATESTWEBLINKS_FIELD_CATEGORY_DESC="Choosetheweblinkscategorytodisplay" MOD_DB8LATESTWEBLINKS_FIELD_COUNT_DESC="Numberofweblinkstodisplay" MOD_DB8LATESTWEBLINKS_FIELD_COUNT_LABEL="Count"
/language/en-GB/en-GB.mod_db8latestweblinks.sys.iniMOD_DB8LATESTWEBLINKS="WeblinksLatest" MOD_DB8LATESTWEBLINKS_XML_DESCRIPTION="Thismodulesdisplaysthelatestweblinks fromacategorydefinedintheWeblinkscomponent." MOD_DB8LATESTWEBLINKS_LAYOUT_DEFAULT="Default"
/language/nl-NL/nl-NL.mod_db8latestweblinks.iniMOD_DB8LATESTWEBLINKS_FIELD_CATEGORY_DESC="Kiesdeweblinkscategorieomtetonen" MOD_DB8LATESTWEBLINKS_FIELD_COUNT_DESC="Aantalweertegevenweblinks" MOD_DB8LATESTWEBLINKS_FIELD_COUNT_LABEL="Aantal"
/language/nl-NL/nl-NL.mod_db8latestweblinks.sys.iniMOD_DB8LATESTWEBLINKS="WeblinksMeestrecente" MOD_DB8LATESTWEBLINKS_XML_DESCRIPTION="Dezemoduletoontdemeestrecenteweblinks uiteencategorievanhetweblinkscomponent." MOD_DB8LATESTWEBLINKS_LAYOUT_DEFAULT="Standaard"
Peter Martin joomladagen.nl 20+21 april 2013
37
6. Taalbestand
Peter Martin joomladagen.nl 20+21 april 2013
38
7. Views
Peter Martin joomladagen.nl 20+21 april 2013
39
7. Views View
= HTML Output View wijzigen: is via template override te wijzigen /modules/mod_db8latestweblinks/tmpl/ default.php Aan
beheerders meerdere views aanbieden?
1.Layout keuze parameter /modules/mod_db8latestweblinks/ mod_db8latestweblinks.xml 2.Alternatieve view /modules/mod_db8latestweblinks/tmpl/ alternatieve_weergave.phpPeter Martin joomladagen.nl 20+21 april 2013
40
7. Views Layout keuze parameter/modules/mod_db8latestweblinks/ mod_db8latestweblinks.xml
Peter Martin joomladagen.nl 20+21 april 2013
41
7. Views Alternatieve weergave/modules/mod_db8latestweblinks/tmpl/ with-date.phpdefined('_JEXEC')ordie; ?>
Peter Martin joomladagen.nl 20+21 april 2013
42
7. Views Alternatieve weergave
Peter Martin joomladagen.nl 20+21 april 2013
43
8. Parameters Advanced
Peter Martin joomladagen.nl 20+21 april 2013
44
8. Parameters Advanced Advanced
Options
Alternative Layout (zie 7. Views) Module Class Suffix Caching Cache Time
Peter Martin joomladagen.nl 20+21 april 2013
45
8. Parameters Advanced JGLOBAL_USE_GLOBAL COM_MODULES_FIELD_VALUE_NOCACHING
Peter Martin joomladagen.nl 20+21 april 2013
46
9. Packaging (voor distributie)
Peter Martin joomladagen.nl 20+21 april 2013
47
9. Packaging (voor distributie) Archive Inhoud:
bestand: mod_naam_j25_v1.zip
mod_db8latestweblinks.xml mod_db8latestweblinks.php helper.php /language/en-GB/en-GB.mod_db8latestweblinks.ini /language/en-GB/en-GB.mod_db8latestweblinks.sys.ini
Taalbestanden:
HTML
output:
/tmpl/default.php /tmpl/with-date.php
Peter Martin joomladagen.nl 20+21 april 2013
48
9. Packaging (voor distributie) Installatiebestand:
mod_db8latestweblinks.xml
mod_db8latestweblinks.php mod_db8latestweblinks.xml helper.php tmpl language TESTEN!
Installatie op andere site / server
Peter Martin joomladagen.nl 20+21 april 2013
49
10. Update
Peter Martin joomladagen.nl 20+21 april 2013
50
10. Update In
module's .xml file: Op server een .xml file met versie informatie
Peter Martin joomladagen.nl 20+21 april 2013
51
10. Update .xml manifest file /modules/mod_db8latestweblinks/
mod_db8latestweblinks.xml
http://www.db8.nl/upd ate/mod_db8latestweblinksupdate.xml
Geen
spaties of line breaks tussen server tags
Peter Martin joomladagen.nl 20+21 april 2013
52
10. Update .xml server file Locatie zoals gespecificeerd in .xml http://www.db8.nl/update/ mod_db8latestweblinksupdate.xml
manifest file:
db8LatestWeblinks Moduletoshowlatestadded Weblinks mod_db8latestweblinks module 2.0 http://www.db8.nl/en/downloads/db8latest weblinks
Peter Martin joomladagen.nl 20+21 april 2013
53
10. Update .xml server file http://www.db8.nl/extensions/mod_db8_latest _weblinks_2.5_v2.0.zip stable PeterMartin http://www.db8.nl
Peter Martin joomladagen.nl 20+21 april 2013
54
Peter Martin joomladagen.nl 20+21 april 2013
55
Vragen?
Peter Martin joomladagen.nl 20+21 april 2013
56
Vragen? Presentatie
beschikbaar via www.db8.nl
Peter Martin e-mail: info at db8.nl website: www.db8.nl
Peter Martin joomladagen.nl 20+21 april 2013
57
Gebruikte foto's
Speed Typing - Matthew Bowden http://www.sxc.hu/photo/275499 Motherboard 4 - Lisa Zanchi http://www.sxc.hu/photo/103914 ram Mohamed Riffath http://www.sxc.hu/photo/487296 lots of files 2 - Michael & Christa Richert http://www.sxc.hu/photo/1370555 Blank E-Box for Software etc 6 - Przemyslaw Szczepanski, http://www.sxc.hu/photo/950048 switches - "trhaynes", http://www.sxc.hu/photo/56670 Bengali Keyborad - Mohammad Jobaed Adnan http://www.sxc.hu/photo/676844 san sebastian views 1 - ibon san martin http://www.sxc.hu/photo/94018 Communications Receiver - John Munsch http://www.sxc.hu/photo/260775 Fragile Parcel - Richard Dudley http://www.sxc.hu/photo/1279274 Sparks - Hector Landaeta http://www.sxc.hu/photo/1184243 signs signs - Jason Antony, http://www.sxc.hu/photo/751034 Face - Questions - Bob Smith, http://www.sxc.hu/photo/418215
Peter Martin joomladagen.nl 20+21 april 2013
58