venerdì 22 aprile 2011

Joomla 1.6: creare un modulo (III parte)

Nel post joomla 1.6: creare un modulo (II parte) abbiamo analizzato il codice necessario per creare un modulo in Joomla 1.6: in quest'ultimo articolo vedremo come leggere i parametri dei moduli in modo da rendere più interessanti le nostre applicazioni.

Inserire i parametri nel file xml del modulo

Per prima cosa dobbiamo dire a Joomla quali parametri vogliamo usare nel nostro modulo: prendiamo il nostro mod_ciao_mondo.xml e aggiungiamo subito dopo il tag <files> i nostri parametri:

<config> 
  <fields name="params">
    <fieldset name="basic">
      <field
        name="par1"
        type="text"
        default="ciao mondo"
        label="Scrivi il tuo saluto"
        description="Questo è il saluto che comparirà nel modulo" />
      <field
        name="par2"
        type="radio"
        default="1"
        label="Mostra il saluto"
        description="Decidi se mostrare il saluto oppure no">
        <option value="1">JSHOW</option>
        <option value="0">JHIDE</option>
      </field>
    </fieldset>
  </fields> 

</config>

In pratica abbiamo due parametri: uno conterrà il nostro saluto (par1) e l'altro ci permetterà di disabilitare oppure no il nostro messaggio attraverso una radio button (par2). 
Joomla mette automaticamente a disposizione nell'entry point del modulo la variabile $params che conterrà i valori che l'utente ha salvato nel backend del sito. Come forse avrete notato, la variabile $params veniva passata come argomento al metodo getSaluto dell'helper proprio per poter utilizzare i parametri del modulo.

Passare i parametri all'helper del modulo

<?php
class modCiaoMondoHelper
{
    public static function getSaluto(&$params)
    {
        if ($params->get("par2") == 1)
        {
            return $params->get("par1");
        }
        return false;
    }
}
?>


Il codice è molto semplice: se il secondo parametro è uguale a 1 (equivale a selezionare 'Mostra' nella radio button) viene usato come saluto il valore del primo parametro.

Modifichiamo il template

<?php
defined('_JEXEC') or die;
if ($saluto)
{ 

    echo $saluto;
}
?>


Dopo aver generato lo zip dei file siamo pronti ad utilizzare il modulo nel nostro sito web.

3 commenti:

Anonimo ha detto...

Buongiorno,
grazie per il suo esempio di modulo.
La prima e seconda parte mi funzionano correttamente!, la terza parte mi da un errore sul file xml durante l'installazione.
Elvio

Paolo Mosca ha detto...

Prego Elvio, che tipo di errore ti restituisce?
Hai aggiunto il tag config dopo il tag files dell'xml del tutorial numero due?

Anonimo ha detto...

Buongiorno.
Io vorrei realizzare in Joomla 2.5 uno sfondo con immagini che cambiamo ogni volta che si refresha la pagina...ho risolto con un modulo che si chiama Background Styler e che funziona egregiamente. adesso però vorrei che quelle immagini avessero un testo collegato o meglio vorrei che all'immagine apparisse anche (all'interno di un modulo) il proprietario dell'immagine... è possibile farlo?
Grazie.

Posta un commento