| Guida ai Template di Joomla. Parte 2 |
|
|
|
| Sabato 31 Gennaio 2009 13:59 |
|
Proseguiamo, finalmente, nella trattazione dei template di Joomla. Fino ad ora abbiamo affrontato i seguenti concetti:
Vediamo adesso come lavorare con i box container. Â
Proprietà Float
Abbiamo affrontato in precedenza alcuni concetti fondamentali relativi ai box container:
E allora come fare a posizionare i box uno accanto all'altro? Per visualizzare i box uno accanto all'altro è necessario affidarsi ai fogli di stile e alla proprietà float creando cosi' i cosiddetti box galleggianti (appunto floats). I floats box sono contenitori che vengono rimossi dal normale flusso del documento (dall'alto verso il basso) e vengono spostati a sinistra o a destra del blocco contenitore, mentre il resto del testo si dispone intorno a loro.
Facciamo un esempio usando il tag <p> : Supponiamo di avere questo codice html in una pagina <DIV> In questo codice vediamo un container div all'interno del quale si trovano tre paragrafi ad uno dei quali viene applicata la proprietà float. Ora vediamo come usare la proprietà float in questo foglio di stile collegato alla pagine contenente il codice precedente: BODY {background: #000000; width: 400px; }
Ed ecco il risultato:
Come vedete il primo box container <P ID="uno"> viene posizionato nella pagina e i successivi box <p> vengono posizionati non seguendo il normale flusso del documento (un box sotto l'altro) ma partendo dalla destra del primo box e ruotando attorno ad esso. Vediamo ora cosa succede ad applicare la proprietà float a più box container contemporaneamente. BODY { background: #000000; }
In questo caso il secondo box container <P ID="due"> viene posizionato a destra del primo e provoca il posizionamento del terzo box alla sua destra. Â
Questo perchè il secondo box non avrà abbastanza spazio per stare accanto al primo e verrà posizionato sotto il primo box. Proprietà Clear
Se desideriamo che un box container non si disponga a contorno di un altro (come nel primo caso) dobbiamo usare la proprietà clear in questo modo: BODY {
L'effetto sarà il seguente:
Come si vede, rispetto alla prima figura, il terzo box container non contorna il primo ma ne resta completamente distaccato. In conclusione applicando la proprietà float ad uno o più box container è pissibile modificarne la loro disposizione rispetto al normale flusso del documento. Esercizio 1 - Primo templateAdesso proviamo a realizzare il primo template per Joomla! Sarà un template molto semplice a due colonne ma senza grafica, solo con i colori. La grafica è comunque possibile aggiungerla in un secondo momento Iniziamo col disegnare lo schema che vogliamo realizzare:
Come si vede sono presenti 4 contenitori nominati Header, Left, Main Content e Footer contenuti all'interno di un unico contenitore (colorato in verde). Quest'ultimo serve solo a raggrupparli al loro interno e permette di centrare l'intera struttura nella pagina del browser. Iniziamo a scrivere il codice html che descrive quanto abbiamo disegnato. Ad ogni contenitore DIV che andremo a disegnare assegneremo una classe del foglio di stile che abbia lo stesso nome descritto nello schema: <body> Per scriverlo non abbiamo tenuto conto della disposizione ma seguito l'orientamento dall'alto verso il basso e da sinistra verso destra. Il contenitore di classe "principale" è quello colorato di verse e al suo interno abbiamo disposto, uno dopo l'altro, gli altri contenitori. Così come lo abbiamo scritto però, visualizzandolo in un browser, vedremo i contenitori disposti uno sottto l'altro. E' necessario adesso iniziare a definire il Foglio di Stile del nostro template descrivendo le classi che abbiamo assegnato ad ogni contenitore. <style> Al contenitore di classe principale abbiamo assegnato una dimensione di 800 pixel mentre agli altri contenitori abbiamo assegnato un'ampiezza in percentuale. Pechè? Avremmo potuto stabilire delle dimensioni in pixel anche per gli altri contenitori, ad esempio 200px per il contenitore di classe left e 600px per il contenitore di classe maincontent (la somma dei due valori fa 800px). Così facendo però se avessimo aumentato la dimensione del contenitore principale (che contiene tutti gli altri) avremmo dovuto variare in proporzione anche le dimensioni degli altri contenitori (left e maincontent). Esprimendoli in percentuale il problema non sussiste. Ad ogni classe seono stati applicati dei colori di background e dei bordi colorati solo per differenziarle. Quello che più ci interessa in questo momento è guardare come è stata usata la proprietà float. Come vedete la proprietà float:left è stata usata nelle classi left e maincontent per modificare la naturale disposizione dei contenitori a cui sono applicate in modo da affiancarli uno all'altro. Ecco dunque come si presenterà la base del nostro template. Cosa manca adesso per trasformarlo in un vero template per Joomla? Semplicemente aggiungere quelle funzioni di Joomla che consentano di inserire all'interno dei contenitore i moduli, i componenti e i contenuti che joomla legge dal database. Queste funzioni fanno parte del cosiddetto Framework di Joomla e sono scritte in questo modo: <jdoc:include type="tipo_oggetto" name="nome_zona_modulo" /> Riscriviamo allora il codice html inserendo le funzioni del Framework: <body> Adesso dovremmo staccare la parte di codice del foglio di stile del template e inserirla in un file che chiameremo template.css. Quello che fino ad ora era un file con estensione html lo rinominiamo in un file con estensione .php Con una semplice operazione di taglia e incolla togliamo tutto ciò che si trova tra i tag <style> e </style> (che cancelleremo) e inseriamoli in un file di testo che rinomineremo in telmplate.css. Il file che contiene l'html lo rinomineremo con il nome index.php. Sistemiamo questi due file in una cartella che chiameremo MioTemplate. In questa cartella mettiamo il file index.php e dentro una cartella che chiamermo css (dentro la cartella MioTemplate) metteremo il file template.css. Nel file index.php aggiungiamo, all'inizio del codice quello che segue:
Con il tag <link> possiamo includere all'interno della nostra pagina il foglio di stile conservato nella cartella css. Nella realtà il path per raggiungere questo file è un pò più complesso perchè deve tenere conto del percorso reale per raggiungere il file. Per fare questo si usano le variabili php proprie del Framework di joomla. Potremo quendi esprimere il path in due modi: <link rel="stylesheet" href="/templates/rhuk_milkyway/css/template.css" type="text/css" /> oppure <link rel="stylesheet" href="/templates//css/template_css.css" type="text/css" media="screen" /> Nel primo caso viene usato $this->baseurl per esprimere l'url del sito. Il path verrà dunque trasformato in: http://www.miosito.it/templates/rhuk_milkyway/css/template.css Nel secondo caso viene usato in più $this->template che sostituisce il nome del template in uso (al posto di indicare direttamente il nome della cartella. Il path verrà dunque trasformato allo stesso modo descritto in precedenza. La differenza sta nel fatto che questo metodo è più generico è può essere usato in tutti i template a prescindere dal nome del template stesso. |
Commenti
E' quello che tutti gli utilizzatori di joomla! cercano.
Anche chi non ha dimestichezza di css e modelbox credo abbia, seguendo il tuo tutorial, la possibilità di capire con rapidità le regole base che lo gestiscono.
Vai avanti così.
dorylinux
Spero di riuscire a completare questa seconda parte (ci manca poco) e magari iniziare una terza parte che approfondisca la modifica dei template già costruiti da altri.
Ogni suggerimento è bene accetto ;-)
Grazie, si fa quel che si può! :-D
Spero di aggiungere presto qualche altro "esercizio" in particolare la modifica di un template già esistente cercando anche di spiegare come si usano gli addon di Firefox (questa mi pare più difficile).