Pratica dopo il manuale Typoscript Reference
-
Upload
roberto-torresani -
Category
Technology
-
view
1.856 -
download
5
description
Transcript of Pratica dopo il manuale Typoscript Reference
Bologna 28/29 Ottobre 2011
Pratica dopo il manuale TYPOSCRIPT REFERENCERelatore: Roberto Torresani
T3Camp Italia Il secondo evento italiano dedicato a Typo3
http://www.t3campitalia.it/
Pag. 2Pag. 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
http://www.t3campitalia.it/
Pag. 3Pag. 3
T3Camp Italia 2010
Typoscript, questo sconosciuto
● Cos'è typoscript● Come funziona● Dov'è utilizzato● Esempi pratici di base● Riferimenti a manuali
http://www.t3campitalia.it/
Pag. 4Pag. 4
Qualche difficoltà?
http://www.t3campitalia.it/
Pag. 5Pag. 5
La direzione è quella
http://www.t3campitalia.it/
Pag. 6Pag. 6
Più modi per arrivare
http://www.t3campitalia.it/
Pag. 7Pag. 7
Non so più cosa fare
http://www.t3campitalia.it/
Pag. 8Pag. 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
http://www.t3campitalia.it/
Pag. 9Pag. 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
http://www.t3campitalia.it/
Pag. 10Pag. 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)
http://www.t3campitalia.it/
Pag. 11Pag. 11
Propietà della pagina
http://www.t3campitalia.it/
Pag. 12Pag. 12
Banner con typoscript
page.10.subparts.BANNER = IMAGEpage.10.subparts.BANNER { file { import = uploads/media/ import { data = levelmedia:-1,slide listNum = 0 }
}}
http://www.t3campitalia.it/
Pag. 13Pag. 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
http://www.t3campitalia.it/
Pag. 14Pag. 14
Proprietà di pagina
http://www.t3campitalia.it/
Pag. 15Pag. 15
Setup e constant per frase
● ConstantfraseDefault = Se hai un'idea …autoreDefault = Jim Morrison
● Setuppage.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> }
http://www.t3campitalia.it/
Pag. 16Pag. 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
http://www.t3campitalia.it/
Pag. 17Pag. 17
Page TSConfig
TCEMAIN { # ID gruppo proprietario nuove pagine permissions.groupid = 1 # Permessi del gruppo nuove pagine permissions.group = show,edit,new,editcontent}
http://www.t3campitalia.it/
Pag. 18Pag. 18
Personalizzare Conten Element
Il cms deve permettere variazioni grafiche nella visualizzazione dei blocchi testo (content element)
http://www.t3campitalia.it/
Pag. 19Pag. 19
Personalizzare Content Element
http://www.t3campitalia.it/
Pag. 20Pag. 20
Personalizzare Content Element
TCEFORM { tt_content { header_layout { addItems.6 = newHeader altLabels.6 = Nuovo header } }}
http://www.t3campitalia.it/
Pag. 21Pag. 21
Pagine con template differenti
Le pagine di secondo livello del sito devono prevedono più template:● Template due colonne● Template tre colonne
http://www.t3campitalia.it/
Pag. 22Pag. 22
TSConfig layout personalizzati
TCEFORM { pages { layout { altLabels { 0 = layout due colonne 1 = layout tre colonne } removeItems = 2,3 } }}
http://www.t3campitalia.it/
Pag. 23Pag. 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]
http://www.t3campitalia.it/
Pag. 24Pag. 24
Label multilingua
In tutte le pagine del sito deve essere presente una label multilingua
http://www.t3campitalia.it/
Pag. 25Pag. 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]
http://www.t3campitalia.it/
Pag. 26Pag. 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> }
http://www.t3campitalia.it/
Pag. 27Pag. 27
Localizzazione estensioni
● Un' estensione installata non presenta la traduzione nella lingua del sito
● La traduzione presente in un' estensione non piace al cliente
http://www.t3campitalia.it/
Pag. 28Pag. 28
Setup localizzazione
plugin.tx_changepassword_pi1._LOCAL_LANG.default { legend = Cambio password oldpassword = Vecchia password newpassword = Nuova password}
http://www.t3campitalia.it/
Pag. 29Pag. 29
Variabile da localconf
● localconf.php$TYPO3_CONF_VARS['TORRESANI']['email'] = '[email protected]';
● Setuppage.60 = TEXTpage.60.data = global:TYPO3_CONF_VARS|TORRESANI|email
http://www.t3campitalia.it/
Pag. 30Pag. 30
Titolo pagina padre
Nel menu di secondo livello, indicare il nome della pagina di primo livello, senza link
http://www.t3campitalia.it/
Pag. 31Pag. 31
Setup per titolo pagina
page.10.subparts.TITOLO_MENU2 = HMENUpage.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 } } }
http://www.t3campitalia.it/
Pag. 32Pag. 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
http://www.t3campitalia.it/
Pag. 33Pag. 33
Setup (1/2)
temp.textbase < tt_content.texttt_content.text >tt_content.text = CASEtt_content.text { key.field=colPos default < temp.textbase 1 < temp.textbase 2 < temp.textbase
●
http://www.t3campitalia.it/
Pag. 34Pag. 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 >
http://www.t3campitalia.it/
Pag. 35Pag. 35
Pagina senza contenuti
Se la pagina non presenta dei contenuti, visualizzare la stringa:
“Pagina in allestimento”
http://www.t3campitalia.it/
Pag. 36Pag. 36
Setup per pagina vuota
page.10.subparts.CONTENT = COApage.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}
http://www.t3campitalia.it/
Pag. 37Pag. 37
Ultima news in evidenza
Nella home page del sito va visualizzato il titolo, con link al dettaglio, dell'ultima news inserita
http://www.t3campitalia.it/
Pag. 38Pag. 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 } [....]
http://www.t3campitalia.it/
Pag. 39Pag. 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]=| } }}
http://www.t3campitalia.it/
Pag. 40Pag. 40
Configurazioni differenti
Nella stessa pagina di un sito devono essere visualizzate due istanze della stessa estensione con configurazioni differenti
http://www.t3campitalia.it/
Pag. 41Pag. 41
Setup configurazione differente
temp.tt_news < plugin.tt_newsplugin.tt_news >plugin.tt_news = CASEplugin.tt_news { key.field = uid default < temp.tt_news 75 < temp.tt_newspi1 75 { templateFile = newsAlternativo.html singlePid = 33 }}
http://www.t3campitalia.it/
Pag. 42Pag. 42
Roberto Torresani
Roberto [email protected]
www.torresani.eu (prima o poi)