Joomla! Modules Iedereen kan ze maken!
Even voorstellen... Niels van der Veer (n9iels) Tweede jaars student informatica aan de Hogeschool Rotterdam Werkzaam bij Perfect Web Team als developer Lid van de Joomla! Bug Squad (JBS) 2
Slides De slides zijn online te vinden op http://slides.nielsvanderveer.me 3
Inhoud Waarom en waarvoor modules? Blauwdruk van een module Bestanden Parameters Layouts Taalbestanden Tips voor ontwikkelen 4
Wie gebruikt de "Aangepaste HTML" module? 5
Waarom modules? Parameters Herbruikbaar Meertalig Overal te plaatsen 6
Waarvoor je eigen module? Sliders Contactpersonen Artikel van de week Nieuws Boodschappen Sociale buttons Bootstrap Aangepaste HTML Openingstijden 7
Blauwdruk van een module
Bestandsstructuur mod_hellojug tmpl default.php mod_hellojug.zip mod_hellojug.php mod_hellojug.xml 9
mod_hellojug.xml <?xml version="1.0" encoding="utf-8"?> <extension type="module" version="3.1" client="site" method="upgrade"> <name>hallo JUG!</name> <author>niels van der Veer</author> <creationdate>juni 2016</creationDate> <copyright>copyright (C) 2016 Niels van der Veer. All rights reserved.</copyright> <license>gnu General Public License version 2 or later; see LICENSE.txt</license> <authoremail>contact@nielsvanderveer.me</authoremail> <authorurl>www.nielsvanderveer.me</authorurl> <version>1.0.0</version> <description>voorbeeld module voor een JUG</description> <files> <folder>tmpl</folder> <filename module="mod_hellojug">mod_hellojug.php</filename> </files> <config> </config> </extension> 10
mod_hellojug.php <?php defined('_jexec') or die; require JModuleHelper::getLayoutPath('mod_hellojug', $params->get('layout', 'default')); 11
tmpl/default.php <?php defined('_jexec') or die;?> Hallo JUG! 12
Hello JUG! 13
Parameters Worden gedefinieerd in het XML bestand tussen de <config> tags <fields name="params"> <fieldset name="basic"> <field name="name" type="text" default="" label="jug naam" description="geef de naam van de JUG op" /> </fieldset> </fields> https://docs.joomla.org/standard_form_field_types 14
Parameters 15
Parameters Kunnen worden aangeroepen in PHP bestanden $params->get("paramter-naam", "standaard waarde"); 16
tmpl/default.php <?php defined('_jexec') or die;?> Hallo JUG <?php echo $params->get("name", "010");?>! 17
Layouts Staan in de /tmpl map Standaard layout is default.php Aan te roepen met een parameter <fieldset name="advanced"> <field name="layout" type="modulelayout" label="jfield_alt_layout_label" description="jfield_alt_module_layout_desc" /> </fieldset> require JModuleHelper::getLayoutPath('mod_hellojug', $params->get('layout', 'default')); 18
tmpl/joomladays.php <?php defined('_jexec') or die;?> Hallo Joomla! Dagen <?php echo $params->get("name", "NL");?>! 19
Layouts 20
Layouts 21
Taalbestanden
Taalbestanden Staan in de map language van je website Worden in XML bestanden direct aangeroepen Kunnen in PHP worden aangeroepen en vertaald met: echo JText::_("MOD_HELLOJUG"); 23
Taalbestanden mod_hellojug language tmpl nl-nl default.php en-gb nl-nl.mod_hellojug.ini nl-nl.mod_hellojug.sys.ini joomladays.php mod_hellojug.php mod_hellojug.xml en-gb.mod_hellojug.ini en-gb.mod_hellojug.sys.ini 24
language/nl-nl/... nl-nl.mod_hellojug.ini MOD_HELLOJUG="Hallo JUG!" MOD_HELLOJUG_XML_DESCRIPTION="Voorbeeld module voor een JUG" MOD_HELLOJUG_FIELD_NAME_LABEL="JUG naam" MOD_HELLOJUG_FIELD_NAME_DESC="Geef de naam van de JUG op" MOD_HELLOJUG_GREETING_JUG="Hallo JUG" MOD_HELLOJUG_GREETING_JD="Hallo Joomla! Dagen" nl-nl.mod_hellojug.sys.ini MOD_HELLOJUG="Hallo JUG!" MOD_HELLOJUG_XML_DESCRIPTION="Voorbeeld module voor een JUG" 25
language/en-gb/... en-gb.mod_hellojug.ini MOD_HELLOJUG="Hello JUG!" MOD_HELLOJUG_XML_DESCRIPTION="Example module for a JUG" MOD_HELLOJUG_FIELD_NAME_LABEL="JUG name" MOD_HELLOJUG_FIELD_NAME_DESC="Give the name of the JUG" MOD_HELLOJUG_GREETING_JUG="Hello JUG" MOD_HELLOJUG_GREETING_JD="Hello Joomla! Days" en-gb.mod_hellojug.sys.ini MOD_HELLOJUG="Hello JUG!" MOD_HELLOJUG_XML_DESCRIPTION="Example module for a JUG" 26
mod_hellojug.xml <?xml version="1.0" encoding="utf-8"?> <extension type="module" version="3.1" client="site" method="upgrade">... <files> <folder>language</folder> <folder>tmpl</folder> <filename module="mod_hellojug">mod_hellojug.php</filename> </files>... </extension> 27
tmpl/... default.php <?php defined('_jexec') or die;?> <?php echo JText::_("MOD_HELLOJUG_GREETING_JUG");?> <?php echo $params->get("name", "010");?>! joomladays.php <?php defined('_jexec') or die;?> <?php echo JText::_("MOD_HELLOJUG_GREETING_JD");?> <?php echo $params->get("name", "NL");?>! 28
Taalbestanden 29
Tips voor ontwikkelen
Tips voor beginnende ontwikkelaars - Lokale website met MAMP of XAMPP - IDE, bijv. Visual Studio Code, Notepad++, Sublimetext, Atom - W3Schools - Afkijken mag : -) 31
De slides zijn online te vinden op http://slides.nielsvanderveer.me De module is te vinden op GitHub, http://github.com/n9iels/mod_hellojug 32
Bedankt voor de aandacht!