Quattrossa's Planet » Typo3 CMS guide e tutorials » Template Tutorial 
Sito personale Guida in italiano Typo3 e consigli SEO

Realizzare un Template per un sito creato in Typo3

In rete troviamo alcuni tutorial per creare passo per passo un template con Typo3. Un esempio è il Modern template building (in lingua inglese, spagnola, francese e tedesca).
Per essere sincero, l'ho trovato un po complicato nonostante sia ben definito ed i programmatori abbiano fatto un buonissimo lavoro. Ho deciso di spiegare a modo mio e il più semplice possibile  come creare un Template per Typo3 includendo un esempio di Typoscript, di CSS e di Layout, posizionando già diversi Markers.
Nel Layout ho già inserito anche una rootline (Breadcrumbs), alcuni markers per richiamare un contenuto a piacere e un piede della pagina suddiviso in 4 campi.
Siete liberi di usare gli esempi di Layout e di Typoscript per creare un template a vostro piacere; questa guida dovrebbe servire per iniziare a capire come si crea un Template in Typo3, dalla trasformazione di un file HTML fino alla sua esposizione in rete in versione Typo3.

Imparare Typo3: cosa ci server per creare un template

Per creare questo esempio di template per il vostro sito, avete bisogno di un paio di cose:

  • nozioni di base del CMS Typo3
  • creare un file di CSS esterno che metteremo nella cartella: fileadmin/css/
  • creare un file di index,html che metteremo nella cartella fileadmin/templates/

il file di CSS serve come esempio. In Typoscript definirò alcune "classi" e "id" cosichè tramite CSS sarà più semplice creare velocemente il Layout per il menu di navigazione a diversi livelli. Oltretutto dovrete poi completare il CSS a vostro piacere.

Spiegazione del template ed del suo Layout.

Il template è costituito da:
Colonna sinistra dove apparirà il menu di navigazione. Sotto il menu di navigazione, richiameremo oltretutto i "records" (contenuti che immetteremo nel backend)  delle pagine che immetteremo nelle colonne sinistre.

Colonna di destra con, oltre a richiamare i "records" della colonna di destra nelle pagine del backend, avremmo anche la possibilità di esporre un contenuto a piacere che appaia su tutte le pagine del sito.

La testa del Sito: un records a piacere che apparirà su tutte le pagine del sito. Questo lo definiremo in un "records" nel Backend richiamando il contenuto centrale di una pagina
che definiremo in Typoscript tramite numero di identificazione (ID).

Il piede della pagina, footer. Qui il piede si suddivide in:
parte superiore di larghezza completa e parte inferiore diviso in 4 campi o aree dove possiamo inserire dei contenuti a piacere che appaino su tutte le pagine. Questi contenuti vanno inseriti direttamente nel file di Index.html.
Se desiderate anche qui avere un contenuto che potete richiamare da un recrods dal backend, ho scritto una breve definizione su come richiamare un contenuto posizionato su una pagina a piacere tramite ID: records e contenuti tramite page ID.

Parte centrale della pagina: il contenuto del sito. Qui appariranno tutti i records che nel Backend inseriremo nella colonna centrale.

Qui potete vedere due Screenshots del Template e la loro suddivisione. Il primo è in formato HTML mentre nel secondo rimangono solamente i markers che servono per creare il template in Typo3.
I colori come per es. lo sfondo, le colonne e il footer, servono solo per avere un'idea della suddivisione del Layout. Nel file di CSS si possono togliere o cambiare a piacere.

template in formato html per Typo3
Es. Template HTML per Typo3
Typo3 HTML template con markers
Es. Typo3 Template con markers

Preparazione del file HTML per Typo3.

Per preparare il template a Typo3, dobbiamo diciamo ripulire il file di HTML.
Cancellando tutte le cose che non servono dal Layout, lasciamo solo i markers racchiusi dentro i "div" del Layout, che serviranno a richiamare i diversi contenuti che immetteremo nel Backend.
I markers sono stringe che iniziano e finiscono con 3 simboli "#": esempio ###CONTENUTO###.

Eccovi qui il codice HTML pulito e preparato per il template:

Show all / Hide all

fold faq

Il file di HTML per il nostro Template

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Layout CSS Typo3</title>
<link rel="stylesheet" type="text/css" href="esempio.css" />
</head>

<body>
      <!-- ###DOCUMENTO### begin -->
      <div id="contenuto-esterno">
         <div id="rootline">
               ###ROOTLINE###        
         </div>
         <div id="header">
              ###HEADER###
         </div>
         <div id="leftcolumn">
             ###NAV_SINISTRA###<br><br>
            ###SINISTRA###
         </div>
         <div id="content">
               ###CONTENUTO###
         </div>
         <div id="rightcolumn">        
               ###DESTRA###<br><br>
             ###CONT_DESTRO###
         </div>
         <div id="footer">
               <div id="copyright">###FOOTER###</p></div>
              <div id="footer-tabs"><p>footer primo contenuto</p></div>
              <div id="footer-tabs"><p>footer secondo contenuto</p></div>        
              <div id="footer-tabs"><p>footer terzo contenuto</p></div>        
              <div id="footer-tabs"><p>footer quarto contenuto</p></div>    
         </div>   
    </div>  
    <!-- ###DOCUMENTO### end -->    
</body>
</html>

Inizio e fine del documento

Come noterete oltre ai markers, abbiamo aggiunto nel file anche le subparts, cioè l'inizio e la fine del documento tramite due stringe:
<!-- ###DOCUMENTO### begin -->
<!-- ###DOCUMENTO### end -->

Show all / Hide all

fold faq

File di CSS necessario per il template

* { padding: 0; margin: 0; }

body {
 font-family: Verdana, Arial, Helvetica, sans-serif;
 font-size: 12px;
 margin-top:10px;
 margin-bottom:10px;
 background-color:#000000;
}

p {
 padding:0px;margin:0px;
}

#contenuto-esterno {
 margin: 0 auto;
 width: 1024px;
  background-color:#ffffff;
}

#content {
 float: left;
 color: #333;
 background: #FFFFFF;
 height: 350px;
 width: 614px;
 display: inline;
 margin:10px 10px 20px 10px;
}

#header {
 color: #333;
 width: 1014px;
 float: left;
 height: 75px;
 background: #f1eee4;
 padding:5px 5px 5px 5px;
}

#rootline {
 float: left;
 width: 1014px;
 height: 21px;
 color: #333;
 background: #eaeaea;
 padding:5px 5px 0px 5px;
 font-size:11px;
}

#leftcolumn {
 color: #333;
 background: #ebd7cb;
 height: 350px;
 width: 200px;
 float: left;
 padding:10px 5px 20px 5px;
}

#rightcolumn {
 color: #333;
 background: #c7c4bc;
 height: 350px;
 width: 170px;
 float: left;
 padding:10px 5px 20px 5px;
}
#footer {
 font-size:11px;
 text-align:center;
 width: 1014px;
 height: 140px;
 clear: both;
 color: #333;
 background: #c8cbdb;
 padding:5px 5px 5px 5px;
}
#copyright {
width:1014px;
font-size:11px;
text-align:center;
clear:both;
height:20px;
 background: #d3b8c2;
 padding:2px;
}
#footer-tabs{
width:233px;
float:left;
background:#6b6659;
height:90px;
padding:5px;margin:5px;
text-align:left;
color:#ffffff;
}

Una volta trasformato il file HTML e preparato il file di CSS e posti tramite FTP nell'apposita cartella sul Webserver, possiamo passare alla definizione del TS (Typo Script).

Nel Backend di Typo3 andiamo sotto la voce "web" e clicchiamo su "tempate" poi passiamo alla colonna di lato dove troviamo l'albero con la pagina iniziale chiamata "root".
Qui schiacciamo su: "Create Template for a New Site", o in caso abbiate già un template, allora cliccare su: "Click here to Edit the whole template record".
Sotto "Template title" possiamo inserire un titolo del template.
La voce "Rootlevel" deve essere cliccata, cosi da definire che questo template è il template principale del sito.
Sotto la Tab "include" troviamo: "include static (from extensions)" . Qui dobbiamo includere: "CSS styled content" semplicemente cliccandoci sopra una volta.
È possibile che nell'ultima versione di Typo3 dopo l'installazione queso file sia già incluso automaticamente o che con l'ultima versione, non servano più. Orientarsi alla versione che si sta usando.

Quello che a noi ora interessa è la voce "Setup". Questo campo è la cosa più importante dove avviene la configurazione del Template tramite Typoscript.
I commenti in Typoscript si scrivono ponendo davanti al testo il simbolo "#" e, molto importante,  mai nella stessa riga di una stringa di codice. Per ogni riga di commento, deve essere aggiunto davanti il simbolo #.

Ed ora possiamo inserire il nostro codice di Typoscript nel campo di Setup. Ho immesso alcuni commenti che vi aiuteranno a  capire a cosa appartengono le diverse stringe di codice.

Il codice di Typoscript necessario per il template

Show all / Hide all

fold faq

Codice Typo Script per il nostro Template

# ---------------------------- PAGE START
   
page = PAGE
page {   

#------- Impostazioni generali della pagina
bodyTag = <body>
   
#richiamiamo il file di CSS posizionato in fileadmin/css/
stylesheet = fileadmin/css/main.css

#------- definire i MetaTags
meta.AUTHOR = nome dell'autore
meta.description = TEXT
meta.description.field = description
meta.keywords = TEXT
meta.keywords.field = keywords
meta.robots = TEXT
meta.robots = index, follow

#------- integrare il design
10 = TEMPLATE
10.template = FILE
10.template.file = fileadmin/template/index.html
10.workOnSubpart = DOCUMENTO
 
10.marks {
#------- Navigazione di sinistra 
NAV_SINISTRA = HMENU
NAV_SINISTRA {
stdWrap.required = 1
stdWrap.prepend = TEXT
stdWrap.prepend {
wrap = <div class="leftboxmenu"><h3> |</h3>
data = leveltitle:1
  }
wrap = |</div>
entryLevel = 1
    
1 = TMENU
1 {
wrap = <ul>|</ul>
noBlur = 1
NO = 1
NO.wrapItemAndSub = <li>|</li>
ACT = 1
ACT.wrapItemAndSub= <li>|</li>
CUR = 1
CUR.wrapItemAndSub= <li class="leftmenu_aktiv">|</li>
CUR.allWrap = <p>|</p>
CUR.doNotLinkIt = 1
SPC = 1
SPC {
before.dataWrap = <li class="spacer"><div class="menuespacer"> </div></li>|
doNotShowLink = 1
 }
}
 
2 <.1
 2 {
wrap = <ul class="submenu">|</ul>
noBlur = 1
NO = 1
NO.wrapItemAndSub = <li>|</li>
ACT = 1
ACT.wrapItemAndSub= <li class="submenu_act">|</li>
CUR = 1
CUR.wrapItemAndSub= <li class="submenu_act">|</li>
CUR.allWrap = <span>|</span>
CUR.doNotLinkIt = 1    
SPC = 1
SPC {
before.dataWrap = <li class="spacer"><div class="menuespacer"> </div></li>|
doNotShowLink = 1
}
}
3 <.2
 }

#------- Rootline
                    ROOTLINE = COA
                       ROOTLINE {

#------- richiamare la rootline in posizione 20
20 = HMENU
20 {
special = rootline
special.range = 1|-1
includeNotInMenu = true
1 = TMENU
1 {
noBlur = 1
NO.allWrap= |*| | &raquo; |*| |*|
CUR = 1
CUR.doNotLinkIt = 1
 }
}  


#------- richiamare il contenuto centrale del sito
CONTENUTO = CONTENT
CONTENUTO {
table = tt_content
select.orderBy = sorting
select.where = colPos = 0
select.languageField = sys_language_uid
}

#------- richiamare il contenuto sotto la navigazione di sinistra
SINISTRA = CONTENT
SINISTRA {
table = tt_content
select.orderBy = sorting
select.where = colPos = 1
select.languageField = sys_language_uid
}
      
#------- richiamare il contenuto sulla colonna di destra
DESTRA = COA
DESTRA.10 = CONTENT
DESTRA.10 {
table = tt_content
select.where = colPos = 2
select.orderBy = sorting
select.languageField = sys_language_uid
  }
           
#-------  richiamare un contenuto posizionato su una pagina
#-------  a piacere tramite ID
CONT_DESTRO.20 = CONTENT
CONT_DESTRO.20 {
table = tt_content
select.orderBy = sorting
#------- richiamiamo il contenuto centrale della pagina
#------- con ID 5 per la colonna destra
select.pidInList = 5
select.languageField = sys_language_uid
 }

#-------  richiamare un contenuto posizionato su una pagina a
#-------  piacere tramite ID da immettere nell'header della pagina
HEADER.40 = CONTENT
HEADER.40 {
table = tt_content
select.orderBy = sorting
#------- richiamiamo il contenuto centrale della pagina con ID 6
select.pidInList = 6
select.languageField = sys_language_uid
                                                }
#------- chiusura marks   

#------- chiusura page
 }

Ed eccoci al risultato finale del tutorial

Una volta immesso il codice di Typoscript, caricato sul server il file di CSS e il file di index.html, possiamo vedere nel backend il risultato.
Quello di cui ora abbiamo bisogno è il creare le pagine singole. Creando ogni pagina noteremo che esse appariranno nel menu di navigazione sinistro.
Non ci resta poi che cambiare a piacere il file di CSS per creare un Layout personalizzato ed iniziare a immettere i nostri contenuti.

Con la versione di Typo3 4.4 è possibile durante l'installazione avere già un Layout di base. Molto consigliato per coloro che non hanno ancora esperienza e desiderano iniziare subito con la presentazione del proprio sito in rete. Questo template è poi possibile cambiarlo usando i rispettivi marker o modificando il file di CSS e il codice di Typoscript che si trova nel template principale della pagina Root.


Commenti

scrivi commento


To top

  Quattrossa's Planet » Typo3 CMS guide e tutorials » Template Tutorial