[Frage] wrap mittels if überschreiben bei bestimmter page:uid [Gelöst] TYPO3-Version: 6.2.7

  • wini2 wini2
    Jedi-Meister
    0 x
    286 Beiträge
    0 Hilfreiche Beiträge
    30. 08. 2016, 15:34

    hallo,

    ich suche nach einer möglichkeit, einen wrap zu überschreiben, wenn eine bestimmte seite aufgerufen ist.

    1. lib.kundenlogin = COA_INT
    2. lib.kundenlogin{
    3. ...
    4.  
    5. 30 = TEXT
    6. 30.if.negate = 1
    7. 30 {
    8.  
    9. if.isFalse.data >
    10. value = Konto bearbeiten
    11. typolink.parameter= 54
    12. typolink.title = Konto bearbeiten oder löschen
    13. typolink.returnLast = url
    14. wrap = <li class=""><!!=|>Kto. bearbeiten</a></li>
    15.  
    16. if.value =54
    17. if.equals.data = page:uid
    18. ???override??? = <li class="active"><!!=|>Kto. bearbeiten</a></li>
    19.  
    20.  
    21. }
    22.  
    23. }

    leider bekomme ich das mit dem if nicht hin. geht das überhaupt 'inline' (ohne globale variable)?

    danke für eure hilfe.

  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    0 x
    2845 Beiträge
    105 Hilfreiche Beiträge
    31. 08. 2016, 11:25 - Lösung

    Komplizierter, aber performanter gedacht ;)

    Durch Conditions wird das Caching blockiert, durch if-Funktion nicht.

    wrap hat laut [url=https://docs.typo3.org/typo3cms/TyposcriptReference/Functions/Stdwrap/Index.html#wrap]TSref[/url] als Datentyp "wrap /+.splitChar /stdWrap". stdWrap eröffnet Dir die Möglichkeit des IFs.
    Nachdem Dein override für den wrap gelten soll, muss es unterhalb des wrap eingeordnet werden. Und nachdem die Bedingung (if) für das override gelten soll, ist auch das in richtige Ebene zu schieben, dass es nur für das override greift:

    1. wrap = <li class=""><!!=|>Kto. bearbeiten</a></li>
    2. override = <li class="active"><!!=|>Kto. bearbeiten</a></li>
    3. override.if.value =54
    4. override.if.equals.data = page:uid
    5. }

    Ungetestet, sollte aber tun.


  • 1
  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    31. 08. 2016, 07:29

    Viel zu kompliziert gedacht,
    nimm einfach eine Condition für die Pid, und gut ist:

    1. lib.kundenlogin = COA_INT
    2. lib.kundenlogin{
    3. ...
    4.  
    5. 30 = TEXT
    6. 30 {
    7. value = Konto bearbeiten
    8. typolink.parameter= 54
    9. typolink.title = Konto bearbeiten oder löschen
    10. typolink.returnLast = url
    11. wrap = <li class=""><!!=|>Kto. bearbeiten</a></li>
    12. }
    13. }
    14.  
    15. [globalVar = TSFE:id = 54]
    16. lib.kundenlogin.30.wrap = <li class="active"><!!=|>Kto. bearbeiten</a></li>
    17. [global]

  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    0 x
    2845 Beiträge
    105 Hilfreiche Beiträge
    31. 08. 2016, 11:25

    Komplizierter, aber performanter gedacht ;)

    Durch Conditions wird das Caching blockiert, durch if-Funktion nicht.

    wrap hat laut [url=https://docs.typo3.org/typo3cms/TyposcriptReference/Functions/Stdwrap/Index.html#wrap]TSref[/url] als Datentyp "wrap /+.splitChar /stdWrap". stdWrap eröffnet Dir die Möglichkeit des IFs.
    Nachdem Dein override für den wrap gelten soll, muss es unterhalb des wrap eingeordnet werden. Und nachdem die Bedingung (if) für das override gelten soll, ist auch das in richtige Ebene zu schieben, dass es nur für das override greift:

    1. wrap = <li class=""><!!=|>Kto. bearbeiten</a></li>
    2. override = <li class="active"><!!=|>Kto. bearbeiten</a></li>
    3. override.if.value =54
    4. override.if.equals.data = page:uid
    5. }

    Ungetestet, sollte aber tun.

  • wini2 wini2
    Jedi-Meister
    0 x
    286 Beiträge
    0 Hilfreiche Beiträge
    31. 08. 2016, 15:55

    [b]vielen dank an euch beide![/b]

    die variante mit der globalen variablen funktioiert - hatte ich vorher schon probiert. wrap.override mit if funktioniert ebenfalls und ist offensichtlich nicht nur eleganter, sondern auch noch performanter.

  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    01. 09. 2016, 05:59

    Zitiert von: Julian.Hofmann

    Durch Conditions wird das Caching blockiert...

    Wo ist das offiziell dokumentiert?

    Nach den mir vorliegenden Informationen wird für jede Condition eine gesonderte Version der Seite gecached.

  • 1