Un modulo per il front-end di Joomla che, ad esempio, mostra un testo “Hello World”, può essere sviluppato in pochi passi:
1. Creare una struttura con la seguente alberatura (dobbiamo rispettare il modello MVC di Joomla!):
/mod_helloworld
/index.html
/helper.php
/mod_helloworld.php
/mod_helloworld.xml
/tmpl
/index.html
/default.php
2. I file html avranno un contenuto dummy del tipo:
<html><body bgcolor="#FFFFFF"></body></html>
3. il file mod_helloworld.xml descrive:
- il modulo e l’autore
- i file contenenti il codice del modulo (mod_helloword.php)
- eventuali parametri, modificabili dal backend per personalizzare le istanze di quel modulo
Ecco un esempio:
<?xml version="1.0" encoding="UTF-8"?>
<install type="module" version="1.5.0">
<name>HelloWorld</name>
<author>Autore</author>
<creationDate>25/02/2009</creationDate>
<copyright>(C) 2005 Open Source Matters. All rights reserved.</copyright>
<license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license>
<authorEmail>info@host.com</authorEmail>
<authorUrl>www.host.com</authorUrl>
<version>1.0</version>
<description>Modulo per inserire un testo</description>
<files>
<filename module="mod_helloworld">mod_helloworld.php</filename>
</files>
<params>
<param name="moduleclass_sfx" type="text" size="30" default="" label="Module Class Suffix" description="PARAMMODULECLASSSUFFIX" />
<param name="testo" type="text" size="25" default="" label="Testo" description="Testo da visualizzare"/>
</params>
</install>
4. Il file mod_helloworld.php può essere qualcosa del genere:
// includo un file di supporto (DS rappresenta la '/'
// su macchine linux, '' su Windows
require_once (dirname(__FILE__).DS.'helper.php');
// recupero il path della view per il modulo
$layout = JModuleHelper::getLayoutPath('mod_helloworld');
// richiamo una funzione dall'helper
$options = modHelloWorldHelper::getName();
// effettuo il render della view (verra' eseguito default.php)
require($layout);
5. Il file helper.php, può essere qualcosa del genere:
<?php
// evito che il file venga richiamato al di fuori del CMS
defined('_JEXEC') or die('Restricted access');
class modHelloWorldHelper
{
function getName() {
return 'Pippo';
}
}
6. Il file /tmpl/default.php conterrrà, invece:
<?php
// evito che il file venga richiamato al di fuori del CMS
defined('_JEXEC') or die('Restricted access');
// richiamo l'oggetto $mainframe di Joomla!
global $mainframe;
// recupero il parametro testo dalla configurazione di questa istanza del modulo
// il nome del parametro è stato definito nell'xml del modulo
$params->def('moduleclass_sfx', '');
$testo = $params->def('testo', '');
echo $testo;
7. Copiate la directory mod_helloworld e tutto il suo contenuto in /modules della vostra installazione di Joomla! e il gioco è fatto!
that’s all folks
NB: Ho inserito un helper.php per incapsulare in una classe delle funzioni specifiche, ovviamente qualora il modulo sia semplice, non è necessario (e si può rimuovere anche il require_once dal mod_helloworld.php)









