pratica dopo il manuale typoscript reference

42
Bologna 28/29 Ottobre 2011 Pratica dopo il manuale TYPOSCRIPT REFERENCE Relatore: Roberto Torresani T3Camp Italia Il secondo evento italiano dedicato a Typo3

Upload: roberto-torresani

Post on 13-Jun-2015

1.861 views

Category:

Technology


5 download

DESCRIPTION

Esempi pratici su typoscript

TRANSCRIPT

Page 1: 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

Page 2: Pratica dopo il manuale Typoscript Reference

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

Page 3: Pratica dopo il manuale Typoscript Reference

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

Page 4: Pratica dopo il manuale Typoscript Reference

http://www.t3campitalia.it/

Pag. 4Pag. 4

Qualche difficoltà?

Page 5: Pratica dopo il manuale Typoscript Reference

http://www.t3campitalia.it/

Pag. 5Pag. 5

La direzione è quella

Page 6: Pratica dopo il manuale Typoscript Reference

http://www.t3campitalia.it/

Pag. 6Pag. 6

Più modi per arrivare

Page 7: Pratica dopo il manuale Typoscript Reference

http://www.t3campitalia.it/

Pag. 7Pag. 7

Non so più cosa fare

Page 8: Pratica dopo il manuale Typoscript Reference

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

Page 9: Pratica dopo il manuale Typoscript Reference

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

Page 10: Pratica dopo il manuale Typoscript Reference

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)

Page 11: Pratica dopo il manuale Typoscript Reference

http://www.t3campitalia.it/

Pag. 11Pag. 11

Propietà della pagina

Page 12: Pratica dopo il manuale Typoscript Reference

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 }

}}

Page 13: Pratica dopo il manuale Typoscript Reference

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

Page 14: Pratica dopo il manuale Typoscript Reference

http://www.t3campitalia.it/

Pag. 14Pag. 14

Proprietà di pagina

Page 15: Pratica dopo il manuale Typoscript Reference

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> }

Page 16: Pratica dopo il manuale Typoscript Reference

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

Page 17: Pratica dopo il manuale Typoscript Reference

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}

Page 18: Pratica dopo il manuale Typoscript Reference

http://www.t3campitalia.it/

Pag. 18Pag. 18

Personalizzare Conten Element

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

Page 19: Pratica dopo il manuale Typoscript Reference

http://www.t3campitalia.it/

Pag. 19Pag. 19

Personalizzare Content Element

Page 20: Pratica dopo il manuale Typoscript Reference

http://www.t3campitalia.it/

Pag. 20Pag. 20

Personalizzare Content Element

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

Page 21: Pratica dopo il manuale Typoscript Reference

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

Page 22: Pratica dopo il manuale Typoscript Reference

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 } }}

Page 23: Pratica dopo il manuale Typoscript Reference

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]

Page 24: Pratica dopo il manuale Typoscript Reference

http://www.t3campitalia.it/

Pag. 24Pag. 24

Label multilingua

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

Page 25: Pratica dopo il manuale Typoscript Reference

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]

Page 26: Pratica dopo il manuale Typoscript Reference

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> }

Page 27: Pratica dopo il manuale Typoscript Reference

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

Page 28: Pratica dopo il manuale Typoscript Reference

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}

Page 29: Pratica dopo il manuale Typoscript Reference

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

Page 30: Pratica dopo il manuale Typoscript Reference

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

Page 31: Pratica dopo il manuale Typoscript Reference

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 } } }

Page 32: Pratica dopo il manuale Typoscript Reference

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

Page 33: Pratica dopo il manuale Typoscript Reference

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

Page 34: Pratica dopo il manuale Typoscript Reference

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 >

Page 35: Pratica dopo il manuale Typoscript Reference

http://www.t3campitalia.it/

Pag. 35Pag. 35

Pagina senza contenuti

Se la pagina non presenta dei contenuti, visualizzare la stringa:

“Pagina in allestimento”

Page 36: Pratica dopo il manuale Typoscript Reference

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}

Page 37: Pratica dopo il manuale Typoscript Reference

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

Page 38: Pratica dopo il manuale Typoscript Reference

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 } [....]

Page 39: Pratica dopo il manuale Typoscript Reference

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]=| } }}

Page 40: Pratica dopo il manuale Typoscript Reference

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

Page 41: Pratica dopo il manuale Typoscript Reference

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 }}

Page 42: Pratica dopo il manuale Typoscript Reference

http://www.t3campitalia.it/

Pag. 42Pag. 42

Roberto Torresani

Roberto [email protected]

www.torresani.eu (prima o poi)