SlideShare a Scribd company logo
Pratica dopo il manuale
 TYPOSCRIPT REFERENCE
 Relatore: Roberto Torresani




T3Camp Italia                                 Bologna 28/29 Ottobre 2011
Il secondo evento italiano dedicato a Typo3
Roberto Torresani

                    Libero professionista dal 2003
                    Socio fondatore POSIT (Trento) nel 2007


         TYPO3 dal 2005
         Realizzazione siti e portali
         Consulenze per web agency
         Formazione base e avanzata
         TYPO3 Certifier Integrator

Pag. 2                                http://www.t3campitalia.it/
T3Camp Italia 2010


         Typoscript, questo sconosciuto

     ●   Cos'è typoscript
     ●   Come funziona
     ●   Dov'è utilizzato
     ●   Esempi pratici di base
     ●   Riferimenti a manuali


Pag. 3                             http://www.t3campitalia.it/
Qualche
         difficoltà?

Pag. 4         http://www.t3campitalia.it/
La direzione è quella




Pag. 5               http://www.t3campitalia.it/
Più modi per arrivare




Pag. 6               http://www.t3campitalia.it/
Non so più cosa fare




Pag. 7               http://www.t3campitalia.it/
I prossimi 30 minuti

     ●   Quando e perché sfruttare typoscript
     ●   Strade alternative
     ●   Esempi concreti
         ●   Personalizzazione backend
         ●   Menu, siti multilingua, personalizzare estensioni
         ●   stdWrap, condizioni, content object, …
         ●   Estrazione dati da database
         ●   Le solite proposte dei grafici
         ●   Idee casuali

Pag. 8                                     http://www.t3campitalia.it/
A volte ...
             ●   Si cerca un'estensione da installare che può:
                     ●    appesantire il sistema
                     ●    creare possibili malfunzionamenti e relativi
                          aggiornamenti
                     ●    non essere sempre personalizzabile
         ●   Con typoscript:
                 ●       tutto è gestito dal core di TYPO3
                 ●       sicurezza del codice
                 ●       facilità di personalizzazione


Pag. 9                                                http://www.t3campitalia.it/
Immagine di banner



     ●    Il cliente deve poter gestire le immagini di banner

     ●    Nel caso non sia presente un' immagine va
          visualizzata quella del padre (ricorsivo)




Pag. 10                                http://www.t3campitalia.it/
Propietà della pagina




Pag. 11                    http://www.t3campitalia.it/
Banner con typoscript



          page.10.subparts.BANNER = IMAGE
          page.10.subparts.BANNER {
            file {
               import = uploads/media/
               import {
                   data = levelmedia:-1,slide
                   listNum = 0
               }
              }
          }

Pag. 12                                 http://www.t3campitalia.it/
Frase in evidenza


     ●    Come il banner, va visualizzata una frase che il
          cliente può personalizzare in ogni pagina.
     ●    Se la frase non è presente si eredita quella della
          pagina padre




Pag. 13                                    http://www.t3campitalia.it/
Proprietà di pagina




Pag. 14               http://www.t3campitalia.it/
Setup e constant per frase

    ●     Constant
          fraseDefault = Se hai un'idea …
          autoreDefault = Jim Morrison
    ●     Setup
          page.10.subparts.FRASE = COA {
           10 = TEXT
           10.field = abstract
           10.ifEmpty = {$fraseDefault}
           20 = TEXT
           20.field = author
           20.ifEmpty = {$autoreDefault}
           20.wrap = <br/><span class="autore">(|)</span> }
Pag. 15                                  http://www.t3campitalia.it/
Permessi accesso pagine

     ●    Più utenti gestiscono i contenuti di un sito
     ●    Quando un utente crea una nuova pagina, gli altri
          utenti non vedono la pagina




Pag. 16                                 http://www.t3campitalia.it/
Page TSConfig


          TCEMAIN {
            # ID gruppo proprietario nuove pagine
            permissions.groupid = 1
            # Permessi del gruppo nuove pagine
            permissions.group = show,edit,new,editcontent
          }




Pag. 17                               http://www.t3campitalia.it/
Personalizzare Conten Element




          Il cms deve permettere variazioni
          grafiche nella visualizzazione dei
          blocchi testo (content element)



Pag. 18                            http://www.t3campitalia.it/
Personalizzare Content Element




Pag. 19                    http://www.t3campitalia.it/
Personalizzare Content Element


     TCEFORM {
       tt_content {
         header_layout {
           addItems.6 = newHeader
           altLabels.6 = Nuovo header
         }
       }
     }




Pag. 20                                 http://www.t3campitalia.it/
Pagine con template differenti



          Le pagine di secondo livello del sito
          devono prevedono più template:
          ●   Template due colonne
          ●   Template tre colonne




Pag. 21                                http://www.t3campitalia.it/
TSConfig layout personalizzati



          TCEFORM {
            pages {
              layout {
                altLabels {
                  0 = layout due colonne
                  1 = layout tre colonne
                }
                removeItems = 2,3
              }
            }
          }

Pag. 22                                    http://www.t3campitalia.it/
Setup template più layout



          # Layout di pagina
          [globalVar = TSFE:page|layout=0]
           page.10.template.file = fileadmin/col2.html
          [global]
          [globalVar = TSFE:page|layout=1]
           page.10.template.file = fileadmin/col3.html
          [global]




Pag. 23                                http://www.t3campitalia.it/
Label multilingua



          In tutte le pagine del sito deve essere presente una
          label multilingua




Pag. 24                                    http://www.t3campitalia.it/
Constant per label multilingua


     ●    Constant

          labelSocial = Folgen Sie uns auf
          [globalVar = GP:L=1]
            labelSocial = Seguici su
          [end]
          [globalVar = GP:L=2]
            labelSocial = Follow us on
          [end]


Pag. 25                                 http://www.t3campitalia.it/
Setup per label multilingua


     ●    Setup

           page.10.subparts.SOCIAL = COA
           page.10.subparts.SOCIAL {
             10 = TEXT
             10.value = {$labelSocial}
             10.wrap = <div class="label">|</div>
           }




Pag. 26                                 http://www.t3campitalia.it/
Localizzazione estensioni




     ●    Un' estensione installata non presenta la traduzione
          nella lingua del sito

     ●    La traduzione presente in un' estensione non piace
          al cliente




Pag. 27                                  http://www.t3campitalia.it/
Setup localizzazione




          plugin.tx_changepassword_pi1._LOCAL_LANG.default {
              legend = Cambio password
              oldpassword = Vecchia password
              newpassword = Nuova password
          }




Pag. 28                                 http://www.t3campitalia.it/
Variabile da localconf


●   localconf.php
    $TYPO3_CONF_VARS['TORRESANI']['email'] =
    'typo3@torresani.eu';

●   Setup
    page.60 = TEXT
    page.60.data = global:TYPO3_CONF_VARS|TORRESANI|email




Pag. 29                             http://www.t3campitalia.it/
Titolo pagina padre


          Nel menu di secondo livello, indicare il nome della
          pagina di primo livello, senza link




Pag. 30                                 http://www.t3campitalia.it/
Setup per titolo pagina

          page.10.subparts.TITOLO_MENU2 = HMENU
          page.10.subparts.TITOLO_MENU2 {
            special = rootline
            includeNotInMenu = 1
            entryLevel = 1
            maxItems = 1
            begin = 2
            1 = TMENU
            1{
              expAll = 0
              wrap = <span class="titolo_menu2">|</span>
              NO {
               DoNotLinkIt = 1         } } }
Pag. 31                                 http://www.t3campitalia.it/
Personalizzazione per colonna




     ●    Un sito presenta una grafica suddivisa in tre
          colonne;
     ●    Nel backend sono utilizzate le colonne LEFT, NORMAL
          e RIGHT;
     ●    Personalizzare la classe del link in base alla colonna
          di appartenenza




Pag. 32                                 http://www.t3campitalia.it/
Setup (1/2)

          temp.textbase < tt_content.text
          tt_content.text >
          tt_content.text = CASE
          tt_content.text {
            key.field=colPos
            default < temp.textbase
            1 < temp.textbase
            2 < temp.textbase
     ●




Pag. 33                               http://www.t3campitalia.it/
Setup (2/2)

          default.20.parseFunc.tags.link.typolink.ATagParams=
                      class="linkNormal"

          1.20.parseFunc.tags.link.typolink.ATagParams=
                     class="linkLeft"

          2.20.parseFunc.tags.link.typolink.ATagParams=
                     class="linkRight"
          }
          temp.tt_content >

Pag. 34                              http://www.t3campitalia.it/
Pagina senza contenuti




          Se la pagina non presenta dei contenuti,
          visualizzare la stringa:
          “Pagina in allestimento”




Pag. 35                              http://www.t3campitalia.it/
Setup per pagina vuota



          page.10.subparts.CONTENT = COA
          page.10.subparts.CONTENT {
            10 = HTML
            10 < styles.content.get
            10.if.isTrue.cObject < styles.content.get
            20 = TEXT
            20.value = <h1>{field:title}</h1><p><i>pagina in
          allestimento</i></p>
            20.insertData = 1
            20.if.isFalse.cObject < styles.content.get
          }

Pag. 36                                http://www.t3campitalia.it/
Ultima news in evidenza


          Nella home page del sito va visualizzato il titolo, con
          link al dettaglio, dell'ultima news inserita




Pag. 37                                 http://www.t3campitalia.it/
Typoscript ultima news (1/2)


          page.10 {
           subparts.NEWSHOME = CONTENT
           subparts.NEWSHOME{
            table = tt_news
            select {
              selectFields = uid, title
              pidInList = 90
              languageField = sys_language_uid
              orderBy = uid desc
              max = 1
            }
                             [....]
Pag. 38                                 http://www.t3campitalia.it/
Typoscript ultima news (2/2)


                            [....]
          renderObj = COA
              renderObj {
                10 = HTML
                10.value.field = title
                10.value.typolink.parameter = 50
                10.value.typolink.additionalParams.field = uid
                10.value.typolink.additionalParams.wrap =
          &tx_ttnews[tt_news]=|
              }
            }
          }
Pag. 39                                 http://www.t3campitalia.it/
Configurazioni differenti




          Nella stessa pagina di un sito devono essere
          visualizzate due istanze della stessa
          estensione con configurazioni differenti




Pag. 40                                http://www.t3campitalia.it/
Setup configurazione differente


          temp.tt_news < plugin.tt_news
          plugin.tt_news >
          plugin.tt_news = CASE
          plugin.tt_news {
            key.field = uid
            default < temp.tt_news
            75 < temp.tt_newspi1
            75 {
              templateFile = newsAlternativo.html
              singlePid = 33
            }
          }
Pag. 41                                http://www.t3campitalia.it/
Roberto Torresani



           Roberto Torresani
          typo3@torresani.eu
           www.torresani.eu (prima o poi)




Pag. 42                          http://www.t3campitalia.it/

More Related Content

Similar to Pratica dopo il manuale Typoscript Reference

Template Multidevice con TYPO3
Template Multidevice con TYPO3Template Multidevice con TYPO3
Template Multidevice con TYPO3
Nicola Della Marina
 
TYPO3 & Templavoila Framework
TYPO3 & Templavoila FrameworkTYPO3 & Templavoila Framework
TYPO3 & Templavoila Framework
gammsystem
 
Le 10 estensioni da tenere sempre a disposizione
Le 10 estensioni da tenere sempre a disposizioneLe 10 estensioni da tenere sempre a disposizione
Le 10 estensioni da tenere sempre a disposizione
Nicola Della Marina
 
Fluid powered TYPO3
Fluid powered TYPO3Fluid powered TYPO3
Fluid powered TYPO3
gammsystem
 
Fluid Powered TYPO3
Fluid Powered TYPO3Fluid Powered TYPO3
Fluid Powered TYPO3
gammsystem
 
T3camp 2011 jquery4contents
T3camp 2011 jquery4contentsT3camp 2011 jquery4contents
T3camp 2011 jquery4contents
gammsystem
 
Typo3 prestazioni
Typo3 prestazioniTypo3 prestazioni
Typo3 prestazioni
Mauro Lorenzutti
 
TYPO3 CMS 7.5: le novita
TYPO3 CMS 7.5: le novita TYPO3 CMS 7.5: le novita
TYPO3 CMS 7.5: le novita
Roberto Torresani
 
Dynamo 3.0-manuale utente joomla
Dynamo 3.0-manuale utente joomlaDynamo 3.0-manuale utente joomla
Dynamo 3.0-manuale utente joomla
fabio comerci
 
Typo3 alfresco
Typo3 alfrescoTypo3 alfresco
Typo3 alfresco
Mauro Lorenzutti
 
Tesseract Project - T3Camp Italia 2011 Bologna
Tesseract Project - T3Camp Italia 2011 BolognaTesseract Project - T3Camp Italia 2011 Bologna
Tesseract Project - T3Camp Italia 2011 Bologna
alfredo furnò
 
TYPO3 CMS 7.1 - Le novita
TYPO3 CMS 7.1 - Le novitaTYPO3 CMS 7.1 - Le novita
TYPO3 CMS 7.1 - Le novita
Roberto Torresani
 
Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3
Mauro Lorenzutti
 
TYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaTYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novita
Roberto Torresani
 
Aumentiamo la sicurezza di TYPO3
Aumentiamo la sicurezza di TYPO3Aumentiamo la sicurezza di TYPO3
Aumentiamo la sicurezza di TYPO3
Mauro Lorenzutti
 
TYPO3 CMS 8.0 - Le novità
TYPO3 CMS 8.0 - Le novitàTYPO3 CMS 8.0 - Le novità
TYPO3 CMS 8.0 - Le novità
Roberto Torresani
 
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domainTYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
gammsystem
 
Templating (3/3) | Train to Symfony
Templating (3/3) | Train to SymfonyTemplating (3/3) | Train to Symfony
Templating (3/3) | Train to Symfony
inmarelibero
 
Routing (2/3) | Train to Symfony
Routing (2/3) | Train to SymfonyRouting (2/3) | Train to Symfony
Routing (2/3) | Train to Symfony
inmarelibero
 
TYPO3 CMS 7.4 Le novita
TYPO3 CMS 7.4 Le novitaTYPO3 CMS 7.4 Le novita
TYPO3 CMS 7.4 Le novita
Roberto Torresani
 

Similar to Pratica dopo il manuale Typoscript Reference (20)

Template Multidevice con TYPO3
Template Multidevice con TYPO3Template Multidevice con TYPO3
Template Multidevice con TYPO3
 
TYPO3 & Templavoila Framework
TYPO3 & Templavoila FrameworkTYPO3 & Templavoila Framework
TYPO3 & Templavoila Framework
 
Le 10 estensioni da tenere sempre a disposizione
Le 10 estensioni da tenere sempre a disposizioneLe 10 estensioni da tenere sempre a disposizione
Le 10 estensioni da tenere sempre a disposizione
 
Fluid powered TYPO3
Fluid powered TYPO3Fluid powered TYPO3
Fluid powered TYPO3
 
Fluid Powered TYPO3
Fluid Powered TYPO3Fluid Powered TYPO3
Fluid Powered TYPO3
 
T3camp 2011 jquery4contents
T3camp 2011 jquery4contentsT3camp 2011 jquery4contents
T3camp 2011 jquery4contents
 
Typo3 prestazioni
Typo3 prestazioniTypo3 prestazioni
Typo3 prestazioni
 
TYPO3 CMS 7.5: le novita
TYPO3 CMS 7.5: le novita TYPO3 CMS 7.5: le novita
TYPO3 CMS 7.5: le novita
 
Dynamo 3.0-manuale utente joomla
Dynamo 3.0-manuale utente joomlaDynamo 3.0-manuale utente joomla
Dynamo 3.0-manuale utente joomla
 
Typo3 alfresco
Typo3 alfrescoTypo3 alfresco
Typo3 alfresco
 
Tesseract Project - T3Camp Italia 2011 Bologna
Tesseract Project - T3Camp Italia 2011 BolognaTesseract Project - T3Camp Italia 2011 Bologna
Tesseract Project - T3Camp Italia 2011 Bologna
 
TYPO3 CMS 7.1 - Le novita
TYPO3 CMS 7.1 - Le novitaTYPO3 CMS 7.1 - Le novita
TYPO3 CMS 7.1 - Le novita
 
Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3
 
TYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaTYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novita
 
Aumentiamo la sicurezza di TYPO3
Aumentiamo la sicurezza di TYPO3Aumentiamo la sicurezza di TYPO3
Aumentiamo la sicurezza di TYPO3
 
TYPO3 CMS 8.0 - Le novità
TYPO3 CMS 8.0 - Le novitàTYPO3 CMS 8.0 - Le novità
TYPO3 CMS 8.0 - Le novità
 
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domainTYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
 
Templating (3/3) | Train to Symfony
Templating (3/3) | Train to SymfonyTemplating (3/3) | Train to Symfony
Templating (3/3) | Train to Symfony
 
Routing (2/3) | Train to Symfony
Routing (2/3) | Train to SymfonyRouting (2/3) | Train to Symfony
Routing (2/3) | Train to Symfony
 
TYPO3 CMS 7.4 Le novita
TYPO3 CMS 7.4 Le novitaTYPO3 CMS 7.4 Le novita
TYPO3 CMS 7.4 Le novita
 

More from Roberto Torresani

TYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novitaTYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novita
Roberto Torresani
 
TYPO3 Versione 10.4 - Le novità
TYPO3 Versione 10.4 - Le novitàTYPO3 Versione 10.4 - Le novità
TYPO3 Versione 10.4 - Le novità
Roberto Torresani
 
TYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novitaTYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novita
Roberto Torresani
 
TYPO3 v10.0 - Le novità
TYPO3 v10.0 - Le novitàTYPO3 v10.0 - Le novità
TYPO3 v10.0 - Le novità
Roberto Torresani
 
TYPO3 CMS 9.1 - Le novità
TYPO3 CMS 9.1 - Le novitàTYPO3 CMS 9.1 - Le novità
TYPO3 CMS 9.1 - Le novità
Roberto Torresani
 
TYPO3 8 LTS - Party Release
TYPO3 8 LTS - Party ReleaseTYPO3 8 LTS - Party Release
TYPO3 8 LTS - Party Release
Roberto Torresani
 
TYPO3 8.5 - Le novità
TYPO3 8.5 - Le novitàTYPO3 8.5 - Le novità
TYPO3 8.5 - Le novità
Roberto Torresani
 
TYPO3 CMS 8.4 - Le novità
TYPO3 CMS 8.4 - Le novitàTYPO3 CMS 8.4 - Le novità
TYPO3 CMS 8.4 - Le novità
Roberto Torresani
 
TYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novità
TYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novitàTYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novità
TYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novità
Roberto Torresani
 
TYPO3 CMS 8.1 - Le novità
TYPO3 CMS 8.1 - Le novitàTYPO3 CMS 8.1 - Le novità
TYPO3 CMS 8.1 - Le novità
Roberto Torresani
 
TYPO3 CMS 7.6 - Le novita
TYPO3 CMS 7.6 - Le novitaTYPO3 CMS 7.6 - Le novita
TYPO3 CMS 7.6 - Le novita
Roberto Torresani
 
TYPO3 CMS 7.3 - le novita
TYPO3 CMS 7.3 - le novitaTYPO3 CMS 7.3 - le novita
TYPO3 CMS 7.3 - le novita
Roberto Torresani
 
Novita TYPO3 CMS 7.2
Novita TYPO3 CMS 7.2Novita TYPO3 CMS 7.2
Novita TYPO3 CMS 7.2
Roberto Torresani
 
TYPO3 7.0 - Le novità
TYPO3 7.0 - Le novitàTYPO3 7.0 - Le novità
TYPO3 7.0 - Le novità
Roberto Torresani
 

More from Roberto Torresani (14)

TYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novitaTYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novita
 
TYPO3 Versione 10.4 - Le novità
TYPO3 Versione 10.4 - Le novitàTYPO3 Versione 10.4 - Le novità
TYPO3 Versione 10.4 - Le novità
 
TYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novitaTYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novita
 
TYPO3 v10.0 - Le novità
TYPO3 v10.0 - Le novitàTYPO3 v10.0 - Le novità
TYPO3 v10.0 - Le novità
 
TYPO3 CMS 9.1 - Le novità
TYPO3 CMS 9.1 - Le novitàTYPO3 CMS 9.1 - Le novità
TYPO3 CMS 9.1 - Le novità
 
TYPO3 8 LTS - Party Release
TYPO3 8 LTS - Party ReleaseTYPO3 8 LTS - Party Release
TYPO3 8 LTS - Party Release
 
TYPO3 8.5 - Le novità
TYPO3 8.5 - Le novitàTYPO3 8.5 - Le novità
TYPO3 8.5 - Le novità
 
TYPO3 CMS 8.4 - Le novità
TYPO3 CMS 8.4 - Le novitàTYPO3 CMS 8.4 - Le novità
TYPO3 CMS 8.4 - Le novità
 
TYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novità
TYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novitàTYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novità
TYPO3 CMS 8.2 e TYPO3 CMS 8.3 - Le novità
 
TYPO3 CMS 8.1 - Le novità
TYPO3 CMS 8.1 - Le novitàTYPO3 CMS 8.1 - Le novità
TYPO3 CMS 8.1 - Le novità
 
TYPO3 CMS 7.6 - Le novita
TYPO3 CMS 7.6 - Le novitaTYPO3 CMS 7.6 - Le novita
TYPO3 CMS 7.6 - Le novita
 
TYPO3 CMS 7.3 - le novita
TYPO3 CMS 7.3 - le novitaTYPO3 CMS 7.3 - le novita
TYPO3 CMS 7.3 - le novita
 
Novita TYPO3 CMS 7.2
Novita TYPO3 CMS 7.2Novita TYPO3 CMS 7.2
Novita TYPO3 CMS 7.2
 
TYPO3 7.0 - Le novità
TYPO3 7.0 - Le novitàTYPO3 7.0 - Le novità
TYPO3 7.0 - Le novità
 

Pratica dopo il manuale Typoscript Reference

  • 1. Pratica dopo il manuale TYPOSCRIPT REFERENCE Relatore: Roberto Torresani T3Camp Italia Bologna 28/29 Ottobre 2011 Il secondo evento italiano dedicato a Typo3
  • 2. Roberto Torresani Libero professionista dal 2003 Socio fondatore POSIT (Trento) nel 2007 TYPO3 dal 2005 Realizzazione siti e portali Consulenze per web agency Formazione base e avanzata TYPO3 Certifier Integrator Pag. 2 http://www.t3campitalia.it/
  • 3. T3Camp Italia 2010 Typoscript, questo sconosciuto ● Cos'è typoscript ● Come funziona ● Dov'è utilizzato ● Esempi pratici di base ● Riferimenti a manuali Pag. 3 http://www.t3campitalia.it/
  • 4. Qualche difficoltà? Pag. 4 http://www.t3campitalia.it/
  • 5. La direzione è quella Pag. 5 http://www.t3campitalia.it/
  • 6. Più modi per arrivare Pag. 6 http://www.t3campitalia.it/
  • 7. Non so più cosa fare Pag. 7 http://www.t3campitalia.it/
  • 8. I prossimi 30 minuti ● Quando e perché sfruttare typoscript ● Strade alternative ● Esempi concreti ● Personalizzazione backend ● Menu, siti multilingua, personalizzare estensioni ● stdWrap, condizioni, content object, … ● Estrazione dati da database ● Le solite proposte dei grafici ● Idee casuali Pag. 8 http://www.t3campitalia.it/
  • 9. A volte ... ● Si cerca un'estensione da installare che può: ● appesantire il sistema ● creare possibili malfunzionamenti e relativi aggiornamenti ● non essere sempre personalizzabile ● Con typoscript: ● tutto è gestito dal core di TYPO3 ● sicurezza del codice ● facilità di personalizzazione Pag. 9 http://www.t3campitalia.it/
  • 10. Immagine di banner ● Il cliente deve poter gestire le immagini di banner ● Nel caso non sia presente un' immagine va visualizzata quella del padre (ricorsivo) Pag. 10 http://www.t3campitalia.it/
  • 11. Propietà della pagina Pag. 11 http://www.t3campitalia.it/
  • 12. Banner con typoscript page.10.subparts.BANNER = IMAGE page.10.subparts.BANNER { file { import = uploads/media/ import { data = levelmedia:-1,slide listNum = 0 } } } Pag. 12 http://www.t3campitalia.it/
  • 13. Frase in evidenza ● Come il banner, va visualizzata una frase che il cliente può personalizzare in ogni pagina. ● Se la frase non è presente si eredita quella della pagina padre Pag. 13 http://www.t3campitalia.it/
  • 14. Proprietà di pagina Pag. 14 http://www.t3campitalia.it/
  • 15. Setup e constant per frase ● Constant fraseDefault = Se hai un'idea … autoreDefault = Jim Morrison ● Setup page.10.subparts.FRASE = COA { 10 = TEXT 10.field = abstract 10.ifEmpty = {$fraseDefault} 20 = TEXT 20.field = author 20.ifEmpty = {$autoreDefault} 20.wrap = <br/><span class="autore">(|)</span> } Pag. 15 http://www.t3campitalia.it/
  • 16. Permessi accesso pagine ● Più utenti gestiscono i contenuti di un sito ● Quando un utente crea una nuova pagina, gli altri utenti non vedono la pagina Pag. 16 http://www.t3campitalia.it/
  • 17. Page TSConfig TCEMAIN { # ID gruppo proprietario nuove pagine permissions.groupid = 1 # Permessi del gruppo nuove pagine permissions.group = show,edit,new,editcontent } Pag. 17 http://www.t3campitalia.it/
  • 18. Personalizzare Conten Element Il cms deve permettere variazioni grafiche nella visualizzazione dei blocchi testo (content element) Pag. 18 http://www.t3campitalia.it/
  • 19. Personalizzare Content Element Pag. 19 http://www.t3campitalia.it/
  • 20. Personalizzare Content Element TCEFORM { tt_content { header_layout { addItems.6 = newHeader altLabels.6 = Nuovo header } } } Pag. 20 http://www.t3campitalia.it/
  • 21. Pagine con template differenti Le pagine di secondo livello del sito devono prevedono più template: ● Template due colonne ● Template tre colonne Pag. 21 http://www.t3campitalia.it/
  • 22. TSConfig layout personalizzati TCEFORM { pages { layout { altLabels { 0 = layout due colonne 1 = layout tre colonne } removeItems = 2,3 } } } Pag. 22 http://www.t3campitalia.it/
  • 23. Setup template più layout # Layout di pagina [globalVar = TSFE:page|layout=0] page.10.template.file = fileadmin/col2.html [global] [globalVar = TSFE:page|layout=1] page.10.template.file = fileadmin/col3.html [global] Pag. 23 http://www.t3campitalia.it/
  • 24. Label multilingua In tutte le pagine del sito deve essere presente una label multilingua Pag. 24 http://www.t3campitalia.it/
  • 25. Constant per label multilingua ● Constant labelSocial = Folgen Sie uns auf [globalVar = GP:L=1] labelSocial = Seguici su [end] [globalVar = GP:L=2] labelSocial = Follow us on [end] Pag. 25 http://www.t3campitalia.it/
  • 26. Setup per label multilingua ● Setup page.10.subparts.SOCIAL = COA page.10.subparts.SOCIAL { 10 = TEXT 10.value = {$labelSocial} 10.wrap = <div class="label">|</div> } Pag. 26 http://www.t3campitalia.it/
  • 27. Localizzazione estensioni ● Un' estensione installata non presenta la traduzione nella lingua del sito ● La traduzione presente in un' estensione non piace al cliente Pag. 27 http://www.t3campitalia.it/
  • 28. Setup localizzazione plugin.tx_changepassword_pi1._LOCAL_LANG.default { legend = Cambio password oldpassword = Vecchia password newpassword = Nuova password } Pag. 28 http://www.t3campitalia.it/
  • 29. Variabile da localconf ● localconf.php $TYPO3_CONF_VARS['TORRESANI']['email'] = 'typo3@torresani.eu'; ● Setup page.60 = TEXT page.60.data = global:TYPO3_CONF_VARS|TORRESANI|email Pag. 29 http://www.t3campitalia.it/
  • 30. Titolo pagina padre Nel menu di secondo livello, indicare il nome della pagina di primo livello, senza link Pag. 30 http://www.t3campitalia.it/
  • 31. Setup per titolo pagina page.10.subparts.TITOLO_MENU2 = HMENU page.10.subparts.TITOLO_MENU2 { special = rootline includeNotInMenu = 1 entryLevel = 1 maxItems = 1 begin = 2 1 = TMENU 1{ expAll = 0 wrap = <span class="titolo_menu2">|</span> NO { DoNotLinkIt = 1 } } } Pag. 31 http://www.t3campitalia.it/
  • 32. Personalizzazione per colonna ● Un sito presenta una grafica suddivisa in tre colonne; ● Nel backend sono utilizzate le colonne LEFT, NORMAL e RIGHT; ● Personalizzare la classe del link in base alla colonna di appartenenza Pag. 32 http://www.t3campitalia.it/
  • 33. Setup (1/2) temp.textbase < tt_content.text tt_content.text > tt_content.text = CASE tt_content.text { key.field=colPos default < temp.textbase 1 < temp.textbase 2 < temp.textbase ● Pag. 33 http://www.t3campitalia.it/
  • 34. Setup (2/2) default.20.parseFunc.tags.link.typolink.ATagParams= class="linkNormal" 1.20.parseFunc.tags.link.typolink.ATagParams= class="linkLeft" 2.20.parseFunc.tags.link.typolink.ATagParams= class="linkRight" } temp.tt_content > Pag. 34 http://www.t3campitalia.it/
  • 35. Pagina senza contenuti Se la pagina non presenta dei contenuti, visualizzare la stringa: “Pagina in allestimento” Pag. 35 http://www.t3campitalia.it/
  • 36. Setup per pagina vuota page.10.subparts.CONTENT = COA page.10.subparts.CONTENT { 10 = HTML 10 < styles.content.get 10.if.isTrue.cObject < styles.content.get 20 = TEXT 20.value = <h1>{field:title}</h1><p><i>pagina in allestimento</i></p> 20.insertData = 1 20.if.isFalse.cObject < styles.content.get } Pag. 36 http://www.t3campitalia.it/
  • 37. Ultima news in evidenza Nella home page del sito va visualizzato il titolo, con link al dettaglio, dell'ultima news inserita Pag. 37 http://www.t3campitalia.it/
  • 38. Typoscript ultima news (1/2) page.10 { subparts.NEWSHOME = CONTENT subparts.NEWSHOME{ table = tt_news select { selectFields = uid, title pidInList = 90 languageField = sys_language_uid orderBy = uid desc max = 1 } [....] Pag. 38 http://www.t3campitalia.it/
  • 39. Typoscript ultima news (2/2) [....] renderObj = COA renderObj { 10 = HTML 10.value.field = title 10.value.typolink.parameter = 50 10.value.typolink.additionalParams.field = uid 10.value.typolink.additionalParams.wrap = &tx_ttnews[tt_news]=| } } } Pag. 39 http://www.t3campitalia.it/
  • 40. Configurazioni differenti Nella stessa pagina di un sito devono essere visualizzate due istanze della stessa estensione con configurazioni differenti Pag. 40 http://www.t3campitalia.it/
  • 41. Setup configurazione differente temp.tt_news < plugin.tt_news plugin.tt_news > plugin.tt_news = CASE plugin.tt_news { key.field = uid default < temp.tt_news 75 < temp.tt_newspi1 75 { templateFile = newsAlternativo.html singlePid = 33 } } Pag. 41 http://www.t3campitalia.it/
  • 42. Roberto Torresani Roberto Torresani typo3@torresani.eu www.torresani.eu (prima o poi) Pag. 42 http://www.t3campitalia.it/