Tester la présence d’un contenu TEMPLAVOILA

Category: Astuces T3UNI09,Typo3Ph. Ivaldi @ 22 h 33 min

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.

Dans le DS du template TV qui doit effectuer le test, on trouve le code TS...

    
<TypoScript><![CDATA[
10 = RECORDS
10.source.current=1
10.tables = tt_content
10.wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end-->
]]></TypoScript>

... qu'il suffit de modifier ainsi:

    
<TypoScript><![CDATA[
10= COA
10.10 = RECORDS
10.10.source.current = 1
10.10.tables = tt_content
10.10.stdWrap.ifEmpty.cObject < lib.mon_objet
10.wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end-->
]]></TypoScript>

Ce « tip » a été donné par ? (faites vous connaître)

Étiquettes : ,


Google analytics avec Typo3

Category: Astuces T3UNI09,Typo3Ph. Ivaldi @ 14 h 13 min

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.

Voici un bout de code typoScript astucieux pour insérer le code Googgle Analytics dans vos pages.

    
page.wrap (
|
<!-- TAG GOOGLE ANALYTICS START -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost +
"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-4598-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!-- TAG GOOGLE ANALYTICS END -->
)

Ce « tip » a été donné par Cyril de chez Eventex.

Étiquettes :


Afficher, en BE, l’id des pages devant le titre

Category: Astuces T3UNI09,Typo3Ph. Ivaldi @ 14 h 58 min

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 afficher en BACKEND l'id des pages avant le titre il suffit de mettre dans le TSCONFIG d'un user_group admin la ligne de typoScript suivante:

    
options.PageTree.showPageIdWithTitle = 1

Ce « tip » a été donné par ? (faites vous connaître)

Étiquettes : ,


Séparateur dans un menu en typoScript

Category: Astuces T3UNI09,Typo3Ph. Ivaldi @ 15 h 14 min

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.

Voici comment gérer les séparateurs dans un menu du type « section1 | section2 | section3 »:

    
lib.menu_footer = HMENU
lib.menu_footer.special = directory
lib.menu_footer.special.value = {$uid_page_footer}
lib.menu_footer {
    wrap=<ul class="ul_footer" >|</ul>
    1 = TMENU
    1 {
        expAll = 1
        noBlur = 1
        NO {
            linkWrap =<li>|</li>|*|<li>&nbsp;&nbsp;I&nbsp;&nbsp;|</li>|*|<li>&nbsp;&nbsp;I&nbsp;&nbsp;|</li>
            ATagParams = class="a_link_footer"
        }
        ACT = 1
        ACT < .NO
        ACT.ATagParams = class="a_link_footer act"
    }
}

Ce « tip » a été donné par ? (faites vous connaître)

Étiquettes : ,


Header/Footer via l’éditeur de constantes

Category: Astuces T3UNI09,Typo3Ph. Ivaldi @ 19 h 03 min

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=%&nbsp;
}
# 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 = &nbsp;<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 = &nbsp;<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>&nbsp;
}
# 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&eacute;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 = &nbsp;
    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 = &nbsp;|&nbsp;%
        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 = &nbsp;|&nbsp;%
        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 = &nbsp;|&nbsp;%
        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 = &nbsp;|&nbsp;%
        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 = &nbsp;|&nbsp;%
        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 = &nbsp;|&nbsp;%
        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 = &nbsp;|&nbsp;%
        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 = &nbsp;|&nbsp;%
        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 = &nbsp;|&nbsp;%
        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 = &nbsp;|&nbsp;%
        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 :


Modififer les droits par défaut des pages nouvellement crées

Category: Astuces T3UNI09,Typo3Ph. Ivaldi @ 19 h 29 min

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 modififer les droits par défaut des pages nouvellement crées, il suffit de mettre dans le TSCONFIG de votre gabarit le code suivant:

    
TCEMAIN.permissions {
    user = 31
    group = 31
    everybody = 27
    userId = 1
}

Ce « tip » a été donné par ? (faites vous connaître)

Et puisque vous êtes très sage, je rajoute ce petit conseil pratique: « pour voir les documents ouverts en BE il y a une extension très pratique: open_document. Ne pas oublier d'activer les shy extensions dans le gestionnaire d'extensions pour l'installer...

Étiquettes : ,


Ajouter un attribut à une balise

Category: Astuces T3UNI09,Typo3Ph. Ivaldi @ 19 h 41 min

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.

Exemple d'utilisation, inspiré du TSref, pour les news.
Note: ce genre de hack peut être évité avec l'extension `contentreplace` (à confirmer...)
    
tt_content.text {
    20 = TEXT
    20.field = bodytext
    20.wrap = zozo | zozo end <BR>
    20.brTag = <br>
    20.parseFunc {
        makelinks = 1
        makelinks.http.keep = path
        makelinks.http.extTarget = _blank
        makelinks.mailto.keep = path
        tags {
            link = TEXT
            link {
                current = 1
                typolink.extTarget = _blank
                typolink.target={$cLinkTagTarget}
                typolink.wrap = jojo<B><FONT color=green>|</FONT></B>jojo
                typolink = style=kkk
                typolink.parameter.data = parameters : allParams
            }
       }
    }
}

Ce « tip » a été donné par ? (faites vous connaître)

Étiquettes :