Joomla! – K2: mostrare moduli solo su Categoria o Articolo



Questa piccola guida è per voi che utilizzate il CMS Joomla per la creazione dei vostri siti internet.

Di recente, mi è capitato di realizzare un sito con Joomla insieme al componente per la gestione dei contenuti “K2” (a mio avviso, uno dei migliori del suo genere).

Una delle cose che più spesso capita, è quella di dover inserire alcuni moduli (per chi non conoscesse i moduli di Joomla può trovare una piccola descrizione quì) che devono essere mostrati solo su alcuni articoli del sito.

Per fare ciò, vi sono ad oggi tantissime soluzioni, che vanno dai plugin di terze parti, alla possibilità di inserire singoli moduli, all’interno dei singoli articoli.

Ma ciò di cui voglio parlarvi oggi è un altro tipo di problema.

Quando gestite un sito dove vengono pubblicate, sia le categorie, che i singoli articoli, sapete benissimo che, pubblicando un modulo in una categoria, questo verrà mostrato anche quando si andrà a vedere il singolo articolo di quella categoria.

Una delle soluzioni, potrebbe essere quella di acquistare uno dei plugin di terze parti, a pagamento, e gestire autonomamente la pubblicazione dei moduli.

Se invece quello che cercate è un rimedio gratuito, rapido e “lato codice, ecco come poter risolvere il problema.

Joomla utilizza dei file PHP che gestiscono il layout di componenti, moduli ecc e quindi anche di categorie e singoli articoli . Infatti è grazie a questa possibilità che, dalla versione 1.5 di Joomla vi è la novità dell’ override , ossia la possibilità di sovrascrivere il layout dei moduli e dei componenti di Joomla tramite il template, lasciando intatti i file originali.

Per chi non conoscesse come funziona l’override (necessario per la soluzione del nostro problema), può trovare una piccola descrizione quì.

Tornando al nostro problema (quello di mostrare un modulo solo nella Categoria o solo nel singolo articolo), la possibilità dell’override ci viene in aiuto, grazie anche ai CSS. Questo perchè, modificando il layout della categoria o del singolo articolo, tramite file php, possiamo anche inserire degli stili personalizzati per ogni singolo modulo (tra poco vedremo come).

In questo articolo, parlerò in particolar modo dei file utilizzati dal componente K2.

Inoltre, sfrutteremo la proprietà CSSdisplay” con il rispettivo valore “none” . Quì una piccola spiegazione.

In K2, i file che gestiscono il layout della vista categoria e della vista articolo, si trovano nel percorso

components/com_k2/templates/default

ed in particolare sono:

  • category.php per il layout della vista categoria
  • item.php per il layout della vista singolo articolo

Vi ricordo che questi files dovranno essere copiati nella cartella del template, seguendo le indicazioni per effettuare l’override, così da poter lavorare senza rischiare di rovinare i file originali.

Eccoci finalmente alla soluzione pratica:

Mostrare un modulo solo nei singoli articoli di una categoria, e non nella categoria:

  1. Apriamo, dal backend, la pagina di personalizzazione del modulo da mostrare, ed inseriamo un suffisso nel campo “Class Suffix“, per poterlo poi gestire autonomamente tramite CSS. (Ad esempio, la classe “moduloarticoli“)
  2. Apriamo il file della vista categoria (quindi category.php) ed inseriamo questo codice, in un qualsiasi punto del file:

Salviamo ed aggiorniamo la pagina della categoria.

Vedremo che il modulo non verrà più mostrato in nella categoria, ma sarà ancora visibile in tutti gli articoli (presenti e futuri) di quella stessa categoria.

Mostrare un modulo solo nella visualizzazione della categoria, e non nei singoli articoli:

  1. Apriamo, dal backend, la pagina di personalizzazione del modulo da mostrare, ed inseriamo un suffisso nel campo “Class Suffix“, per poterlo poi gestire autonomamente tramite CSS. (Ad esempio, la classe “modulocategoria“)
  2. Apriamo il file della vista del singolo articolo (quindi item.php) ed inseriamo questo codice, in un qualsiasi punto del file:

Salviamo ed aggiorniamo la pagina del singolo articolo.

Vedremo che il modulo non sarà più visibile all’interno dei singoli articoli, ma sarà presente nella visualizzazione della categoria.

Più semplice a farsi che a dirsi 🙂


Be Sociable, Share!

Tags: , , , , ,

Nessun commento su “Joomla! – K2: mostrare moduli solo su Categoria o Articolo”  

  1. Nessun commento

Lascia un commento

You must log in to post a comment.