Start vandaag met het maken van eigen Joomla modules!
Wat zijn modules, en hoe kan een zelfgemaakte module het beheer van Joomla versimpelen? We leggen de basis uit van PHP, MySQL en XML en laten zien hoe je eenvoudig zelf een module maakt.
Deze presentatie is gegeven bij de Joomladagen 2016 en verschillende lokale Joomla User Groups.
1. 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.
10. 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
11. 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
13. 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
14. 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
15. 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
20. 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**/
21. 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')));
22. 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
}
?>