Professional Documents
Culture Documents
0 module programmeren
Overzicht Presentatie
1.
Extensies in het kort 2. Module basis 2. Database >>>Sheetsvia:www.db8.nl<<< 4. OOP 5. Parameters 6. Views 7. Taalbestand 8. Parameters Advanced 9. Packagen 10. Updaten
Peter Martin joomladagen.nl 20+21 april 2013
1. Extensies 5 types
Extensies = uitbreidingen voor Joomla: 1. Componenten 2. Modules 3. Plugins 4. Templates 5. Taalbestanden
1. Extensies Component
Meest belangrijke extensiebepaalt de functionaliteit Max. 1 component tegelijk Activatie via URL + &option=com_componentnaam Beheer: Components > Componentnaam uitzondering is com_content: Content Meerdere Modi: CRUD (Create, Read, Update, Delete) Voorbeeld: com_content
1. Extensies Module
Ondersteunend. Uitvoer naar scherm (Module Positie) Meerdere tegelijk. Activatie via menu item: URL + &Itemid=x Beheer: Extensions > Module Beheer: ACL, volgorde, parameters 1 modus: Read (Display) Voorbeeld: mod_breadcrumbs
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
1. Extensies Samenwerking
Samenwerking 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)
Module Posities:
Extensions > Template Manager > Preview Module Positions: enabled URL + ?tp=1
Code
2. Module basis
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 #__extensions
name=Module Naam type=module element=mod_naam folder={leeg} client_id: 0 = front-end, 1 = back-end
Bestanden:
Database referentie
11
Weblinks Component
Database
tabel: #__weblinks
Joomla's
Weblinks Module
12
<?php defined('_JEXEC') or die; echo "Recente Weblinks!"; ?> mod_db8latestweblinks.xml {volgende sheet}
Installatie:
Extensies
> Extensiebeheer > Ontdekken (Discover) Extensies > Modulebeheer > [Nieuw]
13
14
15
3. Module Database
16
3. Module Database
Joomla Database Object
1.Joomla's Database Object aanroepen 2.Een leeg Query Object instantieren 3.Query Object opbouwen
GEEN 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
17
3. Module Database
mod_db8latestweblinks.php
defined('_JEXEC')ordie; $db=Jfactory::getDbo(); $query=$db>getQuery(true); $query>select('*') >from('#__weblinks') >order('createdDESC'); $db>setQuery($query,0,7); $items=$db>loadObjectList(); ?> <ul> <?phpforeach($itemsAS$item):?> <li><?phpecho$item>title;?></li> <?phpendforeach;?> </ul>
18
3. Module Database
19
3. Module Database
Debug: echo "sql = $query"; print_r($items); HTML
20
21
Scheiding MVC
Model helper Controller de module zelf (1 modus: toon module) View HTML output template override mogelijk!
22
23
24
25
26
5. Parameters
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
28
5. Parameters Keuzes
/modules/mod_db8latestweblinks/
mod_db8latestweblinks.xml
<config> <fieldsname="params"> <fieldsetname="basic"> <field/> </fieldset> <fieldsetname="advanced"> <field/> </fieldset> </fields> </config>
Peter Martin joomladagen.nl 20+21 april 2013
29
5. Parameters Keuzes
/modules/mod_db8latestweblinks/
mod_db8latestweblinks.xml
<fieldsetname="basic"> <fieldname="catid" type="category" extension="com_weblinks" multiple="true" required="true" label="Categorie" description="KiesWeblinkscategorie"/> <fieldname="count" type="text" default="5" label="Aantal" description="ToonaantalWeblinks"/> </fieldset>
Peter Martin joomladagen.nl 20+21 april 2013
30
5. Parameters Keuzes
In
back-end
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; }
32
6. Taalbestand
33
6. Taalbestand
Flexibiliteit
34
6. Taalbestand
/modules/mod_db8latestweblinks/ mod_db8latestweblinks.xml
<fieldname="catid" type="category" extension="com_weblinks" multiple="true" required="true" label="JCATEGORY" description="MOD_DB8LATESTWEBLINKS_ FIELD_CATEGORY_DESC"/> <fieldname="count" type="text" default="5" label="MOD_DB8LATESTWEBLINKS_ FIELD_COUNT_LABEL" description="MOD_DB8LATESTWEBLINKS_ FIELD_COUNT_DESC"/> </fieldset>
35
6. Taalbestand
36
6. Taalbestand
/language/en-GB/en-GB.mod_db8latestweblinks.ini
MOD_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.ini
MOD_DB8LATESTWEBLINKS="WeblinksLatest" MOD_DB8LATESTWEBLINKS_XML_DESCRIPTION="Thismodulesdisplaysthelatestweblinks fromacategorydefinedintheWeblinkscomponent." MOD_DB8LATESTWEBLINKS_LAYOUT_DEFAULT="Default"
/language/nl-NL/nl-NL.mod_db8latestweblinks.ini
MOD_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.ini
MOD_DB8LATESTWEBLINKS="WeblinksMeestrecente" MOD_DB8LATESTWEBLINKS_XML_DESCRIPTION="Dezemoduletoontdemeestrecenteweblinks uiteencategorievanhetweblinkscomponent." MOD_DB8LATESTWEBLINKS_LAYOUT_DEFAULT="Standaard"
37
6. Taalbestand
38
7. Views
39
7. Views
View
= HTML Output View wijzigen: is via template override te wijzigen /modules/mod_db8latestweblinks/tmpl/ default.php
Aan
40
41
42
43
8. Parameters Advanced
44
8. Parameters Advanced
Advanced
Options
Alternative Layout (zie 7. Views) Module Class Suffix Caching Cache Time
45
8. Parameters Advanced
<fieldsetname="advanced"> <fieldname="moduleclass_sfx" type="text" label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL" description="COM_MODULES_FIELD_MODULECLASS_SFX_DESC"/> <fieldname="cache" type="list" default="1" label="COM_MODULES_FIELD_CACHING_LABEL" description="COM_MODULES_FIELD_CACHING_DESC"> <optionvalue="1">JGLOBAL_USE_GLOBAL</option> <optionvalue="0">COM_MODULES_FIELD_VALUE_NOCACHING</option> </field> <fieldname="cache_time" type="text" default="900" label="COM_MODULES_FIELD_CACHE_TIME_LABEL" description="COM_MODULES_FIELD_CACHE_TIME_DESC"/> <fieldname="cachemode" type="hidden" default="static"> <optionvalue="static"></option> </field> </fieldset>
46
47
bestand: mod_naam_j25_v1.zip
Taalbestanden:
HTML
output:
/tmpl/default.php /tmpl/with-date.php
48
mod_db8latestweblinks.xml
49
10. Update
50
10. Update
In
module's .xml file: <updateservers> Op server een .xml file met versie informatie
51
mod_db8latestweblinks.xml
Geen
52
manifest file:
<?xmlversion="1.0"encoding="utf8"?> <updates> <update> <name>db8LatestWeblinks</name> <description>Moduletoshowlatestadded Weblinks</description> <element>mod_db8latestweblinks</element> <type>module</type> <version>2.0</version> <infourltitle="db8Latest Weblinks">http://www.db8.nl/en/downloads/db8latest weblinks</infourl>
53
54
55
Vragen?
56
Vragen?
Presentatie
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
58