Professional Documents
Culture Documents
1 Module
Overview Presentation
1.
Extensions, an introduction 2. Module basics 3. Database >>>Sheetsvia:www.db8.nl<<< 4. OOP 5. Parameters 6. Language File 7. Views 8. Parameters Advanced 9. Package 10. Update
Peter Martin joomladagen.nl 20+21 april 2013
1. Extensions, an introduction
1. Extensions 5 types
Extending Joomla's functionality: 1. Components 2. Modules 3. Plugins 4. Templates 5. Language Files
1. Extensions Component
Determines functionality of a page Multiple Modi: CRUD (Create, Read, Update, Delete) Only one component on a page Activation via URL + &option=com_componentname Example com_content
1. Extensions Module
Supportive, Widget, only display to screen (Module Positie) One mode (e.g. Read from database & Display) Multiple modules on a page Activation via menu item: URL + &Itemid=x Example mod_breadcrumbs
1. Extensions Plugin
Supportive. Works invisible in background. One mode: does one thing (e.g. search & replace) Multiple plugins at a time Activation via certain events (of hooks) in components Example Plugin Content - Email Cloaking
(M) (C)
C Processing P Search in database table P Search in database table P Search in database table C Results
Component
Plugin
(P)
Module Positions:
Extensions > Template Manager > Preview Module Positions: enabled URL + ?tp=1
Code
2. Module basics
10
2. Module basics
Location:
Front-end: /modules/mod_name Back-end: /administrator/modules/mod_name mod_name.php code mod_name.xml installation & parameters #__extensions
name=Module Name type=module element=mod_name folder={emply} client_id: 0 = front-end, 1 = back-end
Files:
Database reference
11
Database
tabel: #__weblinks
Joomla's
Weblinks Module
12
<?php defined('_JEXEC') or die; echo "Peter's Recent Weblinks!"; mod_db8latestweblinks.xml {next sheet}
Installation:
Extensions
> Extension Manager > Discover Extensions > Module Manager > [New]
13
14
15
3. Module Database
16
3. Module Database
Joomla Database Object
1.Call Joomla's Database Object 2.Instantiate an empty Query Object 3.Build Query Object
do NOT use hardcoded MySQL! SELECT * FROM #__weblinks ORDER BY created DESC
4.Feed Query Object to Database Object 5.Retrieve Results from Database Object
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
Debug: echo "sql = $query"; print_r($items); HTML
19
20
Oriented Programming
MVC
(Model/View/Controller) architecture:
21
22
23
24
25
output!
the same
26
5. Parameters
27
5. Parameters
Flexibility
Categories Limit results Target Window Follow/No Follow Display: Date, Description (hover), Hits Count clicks / or not Display: Published / unpublished
.xml
28
5. Parameters Choices
/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 Choices
/modules/mod_db8latestweblinks/
mod_db8latestweblinks.xml
<fieldsetname="basic"> <fieldname="catid" type="category" extension="com_weblinks" multiple="true" required="true" label="Category" description="SelectWeblinkcategory"/> <fieldname="count" type="text" default="5" label="Number" description="DisplaynumberWeblinks"/> </fieldset>
Peter Martin joomladagen.nl 20+21 april 2013
30
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; }
31
5. Parameters Choices
32
6. Language File
33
6. Language File
Flexibility
In language files folder: /language/en-GB/en-GB.mod_name.ini /language/en-GB/en-GB.mod_name.sys.ini Or in Module, e.g.: /modules/mod_db8latestweblinks/language/en-GB/ en-GB.mod_db8latestweblinks.ini /modules/mod_db8latestweblinks/language/en-GB/ en-GB.mod_db8latestweblinks.sys.ini
34
6. Language File
/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. Language File
36
6. Language File
/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."
/language/de-DE/de-DE.mod_db8latestweblinks.ini
MOD_DB8LATESTWEBLINKS="WeblinksNeueste" MOD_DB8LATESTWEBLINKS_XML_DESCRIPTION="DiesesModulzeigtdieallerneuestenWeblinks auseinerKategorieinderWeblinksKomponentedefiniert." MOD_DB8LATESTWEBLINKS_FIELD_CATEGORY_DESC="WhlenSiedieKategorieWebLinks angezeigtwerden" MOD_DB8LATESTWEBLINKS_FIELD_COUNT_LABEL="Anzahl" MOD_DB8LATESTWEBLINKS_FIELD_COUNT_DESC="AnzahlanangezeigtenWeblinks"
/language/de-DE/de-DE.mod_db8latestweblinks.sys.ini
MOD_DB8LATESTWEBLINKS="WeblinksNeueste" MOD_DB8LATESTWEBLINKS_XML_DESCRIPTION="DiesesModulzeigtdieallerneuestenWeblinks auseinerKategorieinderWeblinksKomponentedefiniert."
37
6. Language File
38
7. Views
39
7. Views
View
Change
Create
41
42
8. Parameters Advanced
43
8. Parameters Advanced
Advanced
Options
Alternative Layout (see 7. Views) Module Class Suffix Caching Cache Time
44
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>
45
46
package: mod_name_j3x_v2.zip
Language
HTML
/tmpl/default.php /tmpl/with-date.php
TEST!
10. Update
49
10. Update
In
your Module:
Manifest .xml file with <updateservers>
On
50
mod_db8latestweblinks.xml
Do
52
53
54
The
55
Questions?
56
Questions?
Presentation
available at www.db8.nl
57
Used Photos
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