Versimpel beheer
met Joomla modules
Emiel Kwakkel
Emiel Kwakkel is not affiliated with or endorsed by the Joomla Project or Open Source Matters.
The Joomla logo is used under a limited license granted by Open Source Matters the trademark holder in the United States and other countries.
Emiel Kwakkel
Agenda
Maak je eigen Joomla Module
1. Introductie
2. Technieken
3. Bouwen
4. Demo
Wat zijn modules?
Introductie
Modules zijn lichtgewicht
en flexibele extensies voor
Joomla
Custom HTML
Of sourcerer module
Doel van een CMS
Introductie
Het scheiden van content en
functionaliteit
Maak beheer makkelijk
Introductie
Voordelen eigen module
Introductie
Simpeler voor admins
Scheiding content & functionaliteit
Template overrides
Generiek
Technieken
Maak je eigen Joomla Module
XML HTML PHP+ +
XML
Set van gestructureerde gegevens
<persoon>
<voornaam>Emiel</voornaam>
<achternaam>Kwakkel</achternaam>
 
<afbeelding locatie="/images/emiel.png" beschrijving="Emiel" />
 
<interesses>
<interesse type="websites">Joomla</interesse>
<interesse type="sport">Wielrennen</interesse>
</interesses>
 
</persoon>
tag
element
attribuut
HTML
De webpagina
<!DOCTYPE html>
<html lang="nl">
<head>
<title>Webpagina titel</title>
</head>
<body>
<h1>Versimpel beheer</h1>
<p>Met Joomla modules.
<br>Vandaag!</p>
</body>
</html>
Versimpel beheer
Met Joomla modules.
Vandaag!
tag
element
attribuut
PHP
Server-side programmeertaal
<?php
// Maak een variabele "test" aan
$test = “Ik ben variabel";
// Geef de variabele weer
echo $test;
?>
Ik ben variabel
PHP
Server-side programmeertaal
<?php
// Maak variabelen aan
$a = 10;
$b = 5;
// Ga rekenen
$delen = $a / $b;
// Geef resultaat weer
echo "A gedeeld door B = " . $delen;
?>
A gedeeld door B = 2
PHP
Server-side programmeertaal
<?php
// Toon lees meer? 1 = ja / 0 = nee
$show_readmore = 1;
$readmore = “Lees meer…”;
// Moet tekst getoond worden?
if ($show_readmore == 1) {
echo $readmore;
} else {
echo “<hr>”;
}
?>
Lees meer
De mapstructuur
Welke bestanden heb je nodig?
helper.php
mod_naam
mod_naam.php
mod_naam.xml
tmpl
default.php
Verbinding met de database (optioneel)
Variabelen doorsturen naar template
Beschrijf de module
Template map
Standaard view
De mapstructuur
Hoe werkt het?
mod_footer_column.xml
mod_footer_column
De mapstructuur
Hoe werkt het?
mod_footer_column.php default.phphelper.php
mod_naam.xml
Beschrijf de module
<?xml version='1.0' encoding='utf-8'?>
<extension type='module' version='3.1.0' client='site' method='upgrade'>
<name>Naam module</name>
<author>Naam auteur</author>
<version>1.0.0</version>
<description>Beschrijf je module</description>
<files>
<filename module='mod_naam'>mod_naam.php</filename>
<filename>helper.php</filename>
<folder>tmpl</folder>
</files>
<config>
mod_naam.xml
Beschrijf de module
<?xml version='1.0' encoding='utf-8'?>
<extension type='module' version='3.1.0' client='site' method='upgrade'>
<name>Naam module</name>
<author>Naam auteur</author>
<version>1.0.0</version>
<description>Beschrijf je module</description>
<files>
<filename module='mod_naam'>mod_naam.php</filename>
<filename>helper.php</filename>
<folder>tmpl</folder>
</files>
<config>
<fields name='params'>
</fields>
</config>
</extension>
Plaats hierin velden
mod_naam.xml
In het config element
/** Tekst veld voorbeeld **/
<field name='firstname' type='text' default='' label='Firstname' description=''
size='10' />
/** Datum veld **/
<field name='startdate' type='calendar' default='13-07-2015' label='Start
datum' description='' format='%d-%m-%Y' />
/** Media manager **/
<field name='main_image"' type='media' directory='stories' />
/** Meer voorbeelden: https://docs.joomla.org/Standard_form_field_types/nl**/
mod_naam.php
Geeft variabelen door aan de template
// Laad in de helper.php
require_once dirname(__FILE__) . '/helper.php';
// Laad in variabelen
$firstname = htmlspecialchars($params->params->get('firstname'));
$startdate = htmlspecialchars($params->params->get('startdate'));
$main_image = htmlspecialchars($params->params->get('main_image'));
// Geef variabelen door aan de template
require(JModuleHelper::getLayoutPath('mod_naam', $params->get('layout',
'default')));
default.php
De template van de module (view)
<p>Hallo <?php echo $firstname; ?></p>
<?php
if ($main_image != "") {
?>
<img src="<?php echo $main_image;?>” alt="<?php echo $firstname;?>">
<?php
}
?>
Starterskit
Download voorbeeld module
http://emielkwakkel.nl/downloads/presentations/joomla-maak-je-eigen-module/mod_name.zip
mod_naam.zip
The Color Republic
Demo
Snelopgitaar
Demo
Live demo…
Aan de slag
Vragen?
Connect!
@eKwakkel
Emiel Kwakkel
emielkwakkel.nl
joomlacommunity.eu: jEmiel

Versimpel beheer met Joomla modules