Ce poste est une mise en forme d'un « tip » sur Typo3 donnés lors de la T3UNI09. Le fichier source non formaté de ces « astuces » se trouve ICI.
Pour insérer des éléments en header ou footer via l'éditeur de constantes on commence par définir les éléments qui pourront être insérer:
# Login (login)
temp.login = TEXT
temp.login {
value=Login
typolink.parameter=20
wrap.splitChar=%
wrap=%
}
# SearchBox (searchbox)
plugin.tx_indexedsearch.search.rootPidList = 18
plugin.tx_indexedsearch.show.rules = 0
temp.searchbox = COA
temp.searchbox {
10 = TEXT
10.typolink.parameter = {$plugin.tx_indexedsearch.searchUID}
10.typolink.returnLast = url
10.wrap = <form action="|" method="post" id="indexedsearch" style="display:inline;">
20 = COA
20 {
10 = TEXT
10.data = GPvar : tx_indexedsearch |
10.wrap = <input name="tx_indexedsearch[sword]" value="Rechercher" class="searchbox-sword" type="text" />
20 = COA
20 {
5 = TEXT
5.value = <input type="hidden" name="tx_indexedsearch[group]" value="sections" />
10 = TEXT
10.value = <input type="hidden" name="tx_indexedsearch[sections]" value="0" />
20 = TEXT
20.value = <input name="tx_indexedsearch[submit_button]" value="Search" type="hidden" />
30 = TEXT
30.value = <input name="search" src="loupe.png" value="Search" class="searchbox-button" type="image" />
}
}
30 = COA
30 {
10 = TEXT
10.value = Advanced search +
10.typolink.parameter = {$plugin.tx_indexedsearch.searchUID}
10.typolink.additionalParams = &tx_indexedsearch[ext]=1
10.wrap = <td align="right" colspan="2">|</td>
if.isTrue = {$plugin.tx_indexedsearch.showAdvanced}
}
wrap = | </form>
}
# Contacts (contacts)
temp.contacts = TEXT
temp.contacts {
value=Contact
typolink.parameter=34
}
# Plan de site (sitemap)
temp.site-map = TEXT
temp.site-map {
value=Plan de site
typolink.parameter=33
}
# Mentions légales (legal)
temp.legal = TEXT
temp.legal {
value=Mentions légales
typolink.parameter=32
}
On définit les objets permettant de tester les éléments a insérer dans le header et le footer:
temp.test = CASE
temp.test {
# On indique ici l'élément de la liste qui va etre tester.
# Ce chiffre sera écrasé pour chaque test du pre_header et du footer
key.listNum = 1
key.trim = 1
login < temp.login
searchbox < temp.searchbox
contacts < temp.contacts
sitemap < temp.site-map
legal < temp.legal
language < temp.language
blank = TEXT
blank.value =
default = HTML
default {
value.stdWrap.listNum.splitChar = ::
value.stdWrap.listNum = 0
value.stdWrap.trim = 1
value.typolink.parameter.stdWrap.listNum.splitChar = ::
value.typolink.parameter.stdWrap.listNum = 1
}
}
############################################################
# PRE_HEADER
#
temp.test.key = {$basic.pre_header}
temp.test.default {
value = {$basic.pre_header}
value.typolink.parameter = {$basic.pre_header}
}
lib.pre_header=COA
lib.pre_header{
1 < temp.test
1 {
key.listNum = 0
default.value.listNum < .key.listNum
default.value.typolink.parameter.listNum < .key.listNum
}
2 < temp.test
2 {
key.listNum = 1
default.value.listNum < .key.listNum
default.value.typolink.parameter.listNum < .key.listNum
stdWrap.wrap.splitChar = %
stdWrap.wrap = | %
stdWrap.if.isTrue < temp.test.key
stdWrap.if.isTrue.listNum < .key.listNum
}
3 < temp.test
3 {
key.listNum = 2
default.value.listNum < .key.listNum
default.value.typolink.parameter.listNum < .key.listNum
stdWrap.wrap.splitChar = %
stdWrap.wrap = | %
stdWrap.if.isTrue < temp.test.key
stdWrap.if.isTrue.listNum < .key.listNum
}
4 < temp.test
4 {
key.listNum = 3
default.value.listNum < .key.listNum
default.value.typolink.parameter.listNum < .key.listNum
stdWrap.wrap.splitChar = %
stdWrap.wrap = | %
stdWrap.if.isTrue < temp.test.key
stdWrap.if.isTrue.listNum < .key.listNum
}
5 < temp.test
5 {
key.listNum = 4
default.value.listNum < .key.listNum
default.value.typolink.parameter.listNum < .key.listNum
stdWrap.wrap.splitChar = %
stdWrap.wrap = | %
stdWrap.if.isTrue < temp.test.key
stdWrap.if.isTrue.listNum < .key.listNum
}
6 < temp.test
6 {
key.listNum = 5
default.value.listNum < .key.listNum
default.value.typolink.parameter.listNum < .key.listNum
stdWrap.wrap.splitChar = %
stdWrap.wrap = | %
stdWrap.if.isTrue < temp.test.key
stdWrap.if.isTrue.listNum < .key.listNum
}
if.directReturn = {$basic.pre_header}
wrap = <div id="pre_header">|</div>
}
############################################################
# FOOTER
#
temp.test.key = {$basic.footer}
temp.test.default {
value = {$basic.footer}
value.typolink.parameter = {$basic.footer}
}
lib.footer=COA
lib.footer{
1 < temp.test
1 {
key.listNum = 0
default.value.listNum < .key.listNum
default.value.typolink.parameter.listNum < .key.listNum
}
2 < temp.test
2 {
key.listNum = 1
default.value.listNum < .key.listNum
default.value.typolink.parameter.listNum < .key.listNum
stdWrap.wrap.splitChar = %
stdWrap.wrap = | %
stdWrap.if.isTrue < temp.test.key
stdWrap.if.isTrue.listNum < .key.listNum
}
3 < temp.test
3 {
key.listNum = 2
default.value.listNum < .key.listNum
default.value.typolink.parameter.listNum < .key.listNum
stdWrap.wrap.splitChar = %
stdWrap.wrap = | %
stdWrap.if.isTrue < temp.test.key
stdWrap.if.isTrue.listNum < .key.listNum
}
4 < temp.test
4 {
key.listNum = 3
default.value.listNum < .key.listNum
default.value.typolink.parameter.listNum < .key.listNum
stdWrap.wrap.splitChar = %
stdWrap.wrap = | %
stdWrap.if.isTrue < temp.test.key
stdWrap.if.isTrue.listNum < .key.listNum
}
5 < temp.test
5 {
key.listNum = 4
default.value.listNum < .key.listNum
default.value.typolink.parameter.listNum < .key.listNum
stdWrap.wrap.splitChar = %
stdWrap.wrap = | %
stdWrap.if.isTrue < temp.test.key
stdWrap.if.isTrue.listNum < .key.listNum
}
6 < temp.test
6 {
key.listNum = 5
default.value.listNum < .key.listNum
default.value.typolink.parameter.listNum < .key.listNum
stdWrap.wrap.splitChar = %
stdWrap.wrap = | %
stdWrap.if.isTrue < temp.test.key
stdWrap.if.isTrue.listNum < .key.listNum
}
if.directReturn = {$basic.footer}
wrap = <div id="footer">|</div>
}
Il ne reste plus qu'à ajouter dans constant les variables $basic.footer et $basic.pre_header.
Ce « tip » a été donné par ? (faites vous connaître)
Étiquettes : TypoScript