La direttiva “jdoc:include” nei template per Joomla

In Joomla, il nostro sistema CMS preferito, il template è il modello grafico da applicare al nostro sito. Tale modello è indipendente dai contenuti inseriti e dalle estensioni installate: si applica come un “vestito” alla pagina risultante dalle elaborazioni di Joomla.

Nell’installazione base sono già inclusi tre template già pronti all’uso; esistono inoltre numerosi altri template disponibili su internet, sia gratuiti che a pagamento. Se però siamo esigenti e/o vogliamo avere qualcosa di veramente personalizzato, possiamo anche crearci un template personalizzato.

In questo articolo non presenteremo un vero e proprio tutorial per la creazione di un template personalizzato: analizzeremo invece uno degli elementi fondamentali di un template Joomla: la direttiva jdoc:include.

HTML e PHP

Un template Joomla è per la maggior parte realizzato con le stesse tecnologie usate per qualsiasi altra pagina web. Ciò che differenzia un template per Joomla da qualsiasi altro template è la presenza di istruzioni aggiuntive e/o segnaposti che dicono al sistema dove e come inserire i contenuti.

Per cui, se aprite un template Joomla vedrete perlopiù una normale pagina HTML, con però alcuni elementi estranei. Il più frequente è proprio l’elemento jdoc:include. Vediamo alcuni esempi:

<jdoc:include type="head" />

Seguendo una sintassi molto simile all’HTML, questa direttiva indica a Joomla di “piazzare” in quel punto un elemento dinamico del CMS. Nell’esempio mostrato, si tratta delle informazioni che vanno nell’head, quindi la scelta dei CSS, degli script e degli elementi meta.

Tipi di elementi

Altri valori significativi per il campo type sono:

  • component
  • message
  • module
  • modules

Component

La direttiva

<jdoc:include type="component" />

non prevede altri parametri, e si limita a indicare che in quel punto deve iniziare l’output del componente principale della pagina. Infatti, qualsiasi pagina (ovvero: voce di menù) del nostro sito  Joomla punta a un componente: che sia quello per la gestione degli articoli, quello per la registrazione, oppure lo shop di VirtueMart… la direttiva sopra riportata lascia spazio a questo componente principale.

Message

La direttiva

<jdoc:include type="message" />

è un segnaposto per eventuali messaggi di sistema: errori, ma anche inserimenti e modifiche completate con successo. Anche in questo caso, l’output viene generato direttamente dal componente principale della pagina.

Module

La direttiva

<jdoc:include type="module" name="breadcrumbs" />

include uno specifico modulo, e – come si vede nell’esempio – deve riportare come parametro il nome del modulo stesso. Nell’esempio, nel punto indicato verrà caricato il modulo chiamato Breadcrumbs. Nota: il modulo deve essere pubblicato e accessibile perchè la direttiva funzioni.

Questa direttiva non è molto diffusa, solitamente si preferisce includere i moduli per posizione anzichè per nome, come vediamo qui sotto.

Modules

La direttiva

<jdoc:include type="modules" name="top" />

include tutti i moduli pubblicati in una specifica posizione, nell’ordine specificato dalla Gestione moduli in area amministrativa. Nell’esempio, nel punto indicato verranno inclusi tutti i moduli pubblicati nella posizione top.

Style

Il parametro style può essere applicato alle direttive che riguardano come type “module” o “modules”. I possibile valori sono:

  • rounded
  • none
  • table
  • horz
  • xhtml
  • outline

Questi parametri in realtà non modificano solo lo stile di output dei moduli, ma anche il codice HTML che viene usato per visualizzare tali moduli. Questo è necessario per poter poi personalizzare l’aspetto con delle istruzioni CSS appropriate.

Ad esempio, uno style di tipo rounded incastona l’output all’interno di quattro <div>, in modo da poter poi applicare gli angoli arrotondati all’elemento inserendo uno sfondo diverso per ogni div.

E’ possibile definire anche degli stili personalizzati: potete trovare altre informazioni (in inglese) nella documentazione ufficiale di Joomla.

 

Commenti chiusi

Aggiornamento: i commenti lasciati nel tempo a questo articolo hanno poco a che fare con l’argomento originale e sono semplicemente richieste di assistenza. Dato che questo blog non è un centro di supporto generico per Joomla, mentre esistono forum molto più adatti allo scopo, abbiamo deciso di chiudere i commenti a questo articolo.

Tag: , ,

Commenti (11)

  • ciao, grazie per la guida, molto bella… sai aiutarmi per fare questa cosa: ?

    Ho un sito in joomla con il componente hwvideoshare, una gallery video.

    In prima pagina ho la homepage di questo componente con i vari moduli sorpa sotto a destra e a sinitra.

    In un secondo momento ho installato un modulo stile latest news ma non riesco ad inserirlo dentro alla homepage della home page del componente hwvideo share.

    Ho spulciato un po’ i file e sono .tpl

    Io ho già identificato la situazione e inseirei semplicemente

    funziona!!!

    si vede… il problema è che se però tolgo dall index.php la visualizzazione della posizione non mi visualizza più il modulo annidato dentro la homepage di hwvideoshare.

    Quindi ho lo vedo 2 volte o nemmeno una.

    hai idea?

    grazie infinite

  • @Marco:
    certo che si può. Prova a spiegare con maggior chiarezza cosa vuoi ottenere e, anche se questo non è propriamente un forum di supporto 😉 proverò a darti qualche indicazione.

  • vorrei cambiare i colori dei messaggi di sistema es. “articolo salvato correttamente” “grazie per l’email inviata” ecc.. solo che andando sui css ho provato a cambiare tutti i colori ma quelli presenti nei messaggi di notifica non li trovo…come devo fare?

  • @Marco:
    hai provato a guardare la sorgente della pagina che mostra i messaggi di sistema? Ti segnalerà che gli elementi in questione sono, ad esempio:

    #system-message dd.notice
    #system-message dd.message

    Nel CSS del template “rhuk_milkyway” questi elementi sono presenti eccome, e sono modificabili. Se nel tuo template non sono riportati, aggiungili e poi imposta le regole CSS che vuoi.

  • […] Se si è già esperti di HTML e CSS, creare un template specifico per Joomla non è difficile. Confrontando con, ad esempio, un tema per WordPress, in Joomla abbiamo un unico file con dei segnaposto che identificano le posizioni della griglia. Non affrontiamo più nel dettaglio l’argomento anche perchè ne abbiamo già parlato in un altro post. […]

  • Vorrei modificare il formato di un menu specifico di joomla. In un normale contesto HTML/CSS si definisce una classe, che poi viene riferita nel css nelle regole a:link, a:visited, a:hover. In Joomla cosa si deve fare ?
    Grazie

  • @Cesare:
    se non hai mai personalizzato un modulo Joomla, non è facile spiegarti in poche righe come fare. Rapidamente, ti consiglio di approfondire il parametro “Suffisso CSS modulo” che trovi nella configurazione del MODULO associato al MENU’ in questione.
    In questo modo gli assegni una classe personalizzata, e può darsi che ti sia sufficiente

  • Problema che si ripresenta in homepage con qualsiasi Template.
    Il primo articolo in homepage è largo quanto il monitor permette escludendo i menu laterali. Quelli successivi sono larghi la metà (width=50%)
    Non riesco a trovare il punto dove viene inserito questo parametro per eliminarlo…
    Grazie

  • @Oscar:
    il template non c’entra nulla, è una impostazione della voce di menu di tipo “Aspetto Blog Prima Pagina” che ti dice su quante colonne vuoi distribuire i tuoi articoli, eccetto un certo numero di articoli “Principali”.

    E adesso per tutti quanti: i commenti a questo articolo hanno poco a che fare con l’argomento originale e sono semplicemente richieste di assistenza. Dato che esistono forum di supporto su Joomla molto più adatti, chiudo i commenti a questo post.

I commenti sono chiusi.