Back to top

Lug | 10 08 Giovedì
 

Come ti stampo l'articolo

Stampa E-mail  
Autore : Mario Luciani  » Questo articolo è stato letto: 4834 volte »  
 
Guide - Joomla 1.5

stampaIl sistema di template overriding di Joomla consente di personalizzare il comportamento di moduli e componenti senza intaccare l'integrità del codice contenuto nel core. In quest'articolo utilizziamo tale tecnica per controllare l'aspetto della versione stampabile di un articolo. Scrivo dopo la lettura di un interessante articolo proveniente dalle docs ufficiali di joomla sdebitandomi con la community (open source per me significa anche questo!) pubblicando un report su quanto ho imparato.


Tempate overriding

Le versioni attuali di Joomla sono attente a separare il contenuto dalla formattazione e dalla struttura del sito. Nelle condizioni standard la struttura di un sito gestito in Joomla viene gestita dal core che provvede al rendering dei componenti e dei moduli. Il template provvede alla formattazione grafica tramite opportuni fogli di stile css ma provvede anche a stabilire le posizioni disponibili per ospitare i moduli. Di solito per fare un buon template può essere sufficiente progettare un buon foglio di stile ed un buon file index.php. Altre volte le necessità impongono di modificare il comportamento standard di Joomla ma, con la versione attuale, ciò può essere realizzato senza toccare il codice interno di Joomla (il core).

Le tecniche note come template overriding non sono più una novità anzi costituiscono un bagaglio tecnico che ogni web designer deve avere nel suo armamentario. Non voglio qui spiegare queste tecniche rimandando alla grande quantità di articoli presenti sulla rete. Qui discutiamo solamente il caso in questione e cioè la ridefinizione della parte del core che gestisce la versione stampabile di un articolo.

La pagina stampabile

La versione stampabile dell'articolo può essere controllata modificando il file

/templates/$template/component.php

Quando l'utente clicca sull'icona di stampa joomla controlla se il file esiste. Se il file esiste esso viene eseguito per realizzare la funzionalità in esso codificata; se invece il file non esiste allora viene chiamato il gestore standard di Joomla che provvede in modo autonomo ad attuare la procedura. Come primo passo quindi creiamo il file component.php nella cartella principale del template.

Questo file agisce come il file index.php del template e consente la completa personalizzazione dell'aspetto della pagina prodotta come versione stampabile dell'articolo, ivi comprese eventuali posizioni di moduli come per esempio banner pubblicitari oppure specifici fogli di stile. Una versione semplice del file può essere la seguente:

<html>
      <head>
            <jdoc:include type="head"/>
            <link rel="stylesheet" href="/<?php echo $this->baseurl ?/templates/system/css/general.css" type="text/css"/>
            <link rel="stylesheet" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/css/template.css" type="text/css"/>
      </head>
      <body>
            <jdoc:include type="message" />
            <jdoc:include type="component"/>
      </body>
</html>


Viene creato un normale header per il sito, vengono caricati i css general.css e quello specifica del template template.css e quindi, nel blocco BODY, viene posizionato il contenuto vero e proprio dell'articolo (e dei messaggi).

Personalizzare la pagina

Per personalizzare la pagina basta agire su questo file. E' possibile inserire uno specifico foglio di stile oppure stabilire posizioni di blocchi che ospitino banner pubblicitari ad hoc per la pagina stampabile.
Nel mio caso avevo da inserire una riga che richiama uno scripts js per il rendering grafico di equazioni scritte in LaTeX (ma gli usi possono essere i più vari). Il rendering avviene in sede client ma mentre la modifica sul file index.php del template sortiva buoni effetti sul sito questa non agiva quando l'utente chiedeva la versione stampabile della pagina. Con questo piccolo trucco ho risolto in problema.

Attenzione

Se nella cartella HTML de template ci sono altre modifiche al comportamento di joomla tramite template overriding, occorre prestare attenzione per evitare conflitti e sovrapposizione di formattazioni. Il mio consiglio e quello di mettere nel file component.php lo stretto necessario lasciando che il template faccia il suo lavoro normalmente.

Infine

Per chi vuole approfondire meglio la tematica metto il link diretto alle docs di joomla.org di cui ho detto all'inizio
http://docs.joomla.org/Customizing_the_print_pop-up
Potete vedere all'opera il risultato sul mio sito personale (niente di clamoroso). In fondo alla home c'è un menu Risorse con una pagina di test. Una volta aperto l'articolo se cliccate sull'icona della stampante la formula matematica che appare dovrebbe essere renderizzata bene sia nella versione normale che in quella stampabile.

Importante

Vale il solito consiglio: prima di fare qualsiasi modifica fatevi una copia di backup del sito.

Mario Luciani
www.marioluciani.it

commentaCommenta questo articolo sul forum


Articoli più recenti:

 

Ricerca su Joomla.it

Primi passi Non perdere la lettura di questi interessanti suggerimenti, utilissimi per chi si avvicina per la prima volta al mondo Joomla!
kreatif-multimedia-logo