Gli stili dei moduli di Joomla

Quando vogliamo richiamare un modulo in un template di Joomla, usiamo un codice del tipo

<jdoc:include type="modules" name="left" style="xhtml" />

che in sostanza significa “includi tutti i moduli della posizione left, usando lo stile xhtml”.

Usando Joomla 1.0 era possibile definire lo stile della visualizzazione di un modulo usando una serie di numeri, ovvero:
•    0 (per default) mostra il modulo come una tabella verticale
•    1 mostra il codice in una tabella orizzontale
•    -1 pubblica l’output del codice senza alcuna formattazione HTML
•    -2 genera codice XHTML, ed il titolo racchiuso in un tag H3
•    -3 genera codice racchiuso tra una serie di DIV che permettono di creare box dagli angoli arrotondati.

Joomla 1.5 ha conservato queste definizioni, ma è anche possibile usare delle parole per descriverle:
•    0 = table
•    1 = horz
•    -1 = none
•    -2 = xhtml
•    -3 = rounded

Oltre a questo è stato definito lo stile outline, che viene usato per mostrare le posizioni dei moduli durante il preview del template, come mostrato in figura.

Esempio di utilizzo dello stile outline

Prima dell’avvento di Joomla 1.5 questi stili non erano estensibili: era possibile usare solo questi. Ora abbiamo invece la possibilità di specificare un nostro stile personalizzato.

Come fare?

Dobbiamo agire sugli output override del template, come spiegato nella sezione “Output Override”.
Nella cartella html/ del template avremo un file chiamato modules.php. Questo è il contenuto del file modules.php del template Beez. Esso crea un nuovo stile beezDivision, che racchiude l’output in un div e mostra il titolo in un tag Hx, dove x è un numero definito nel parametro headerLevel, per default H3.

&lt; ?php
function modChrome_beezDivision($module, &amp;$params, &amp;$attribs)
{
 $headerLevel = isset($attribs['headerLevel']) ? (int) $attribs['headerLevel'] : 3;
 if (!empty ($module-&gt;content)) : ?&gt;
<div class="moduletable&lt;?php echo $params-&gt;get('moduleclass_sfx'); ?&gt;">
  &lt; ?php if ($module-&gt;showtitle) : ?&gt;
   &gt;&lt; ?php echo $module-&gt;title; ?&gt;&gt;
  &lt; ?php endif; ?&gt;
  &lt; ?php echo $module-&gt;content; ?&gt;</div>
 
&lt; ?php endif;
}

Per richiamare questo stile dovremo avere nel file index.php del template il codice.

<jdoc:include type="modules" name="left" style="beezDivision" headerLevel="3" />

Come vediamo, all’interno del codice esistono chiamate come $module->showtitle.

L’oggetto $module è il collegamento che abbiamo con la configurazione di Joomla ed il codice del modulo, infatti
•    $module->showtitle indica se il titolo del modulo deve essere mostrato
•    $module->title è il titolo del modulo
•    $module->content è l’output del modulo

Quando può essere utile creare nuovi stili? Ad esempio quando vogliamo presentare un modulo in un modo diverso dal solito, magari creando una lista numerata anzichè una lista ordinata o altro ancora. La fantasia è l’unico limite.


Bookmark and Share

2 Commenti al post “Gli stili dei moduli di Joomla”

STEFANO Says:

la mia esigenza è quella di inserire un modulo menu nel div #page che è generato default.php article.
seguendo il tuo script riesco a farlo?
grazie

leopan81 Says:

Come modificare il codice per far sicchè ogni voce menù presenti angoli arrotondati???

Lascia un commento

Nome (obbligatorio)

Mail (non sarà pubblicata) (obbligatoria)

Sito web