Zum Inhalt springen

In Menüpunkt einzelnes Wort hervorheben

Erstellt am 9. März 2007 · 12 Antworten · letzte Antwort am 23. April 2007

Tags: Frage

Mööp ·

Hallo,

ich frage mich (bzw. den Leser dieser Frage 😉 ) ob es möglich ist, in einem Menüpunkt ein einzelnes Wort mit einem anderen Style als den Rest des Menüpunktes zu versehen.

Sollte z.B. folgendermassen aussehen:

--Obermenüpunkt
----bla blubb trallala
----blabla blubb
----holdrio blubb bla

Das Wort "blubb" sollte dabei in allen Untermenüpunkten mit dem selben Style, aber einem anderem als der Rest des Menüpunktes dargestellt werden.

Mir fallen dazu zwei prinzipielle Lösungsansätze ein:

- eine Funktion die alle Vorkommen eines bestimmten Wortes mit einem style wrappt.

- oder: im Redakteurbereich bei der Eingabe des Seitennamens/Navigationstitels das betreffende Wort irgendwie markieren und dann mittels TS wrappen.

Was auf jeden Fall funktioniert: Einfach im Seitenname einen <span> mit einem Style um das entsprechende Wort. Sauber ist das aber nicht.

Gibt es da irgendeine halbwegs saubere Möglichkeit? Hat jemand eine Idee? Noch interessanter: Hat jemand eine Idee, wie das nicht nur in einem TMENU, sondern auch in einem GMENU funktionieren könnte?

Bin für jede Hilfe dankbar!

Grüße,

Mööp.

Mööp ·

Hallo & vielen Dank für die beiden Antworten! Hat mir schon mal sehr weitergeholfen.

Habe mich mal durch beides etwas durchgewurschtelt.

Wenn ich die Dokumentation zu OptionSplit richtig verstanden habe, dann hilft mir das nur was, wenn das Wort "blubb" immer an der gleichen Stelle steht, also z.B. immer das zweite Wort im Menüpunkt ist. Habe ich das richtig verstanden? Das ist bei meiner Anforderung nämlich leider nicht der Fall: Da kann das Wort an beliebiger Stelle stehen. Das habe ich leider nicht exakt genug formuliert, sorry.

Deshalb habe ich es mal mit replaceString probiert (Habe Version 4.1 am Laufen). Unter http://www.sk-typo3.de/Typoscript-Reference.223.0.html?&cHash=23e5d022a3&tx_rlmpofficedocuments_pi1%5BshowPage%5D=3 gibt es eine Dokumentation zu replaceString.

Laut der dort angegebenen Syntax müsste es doch so:

      # dritte Ebene
      3 = TMENU
      3.NO = 1
      3.NO {
        value:= replaceString blubb|<b>blubb</b>
        ATagParams = class="umenu"
        linkWrap = |<br/>
      }

funktionieren, oder?

Tut es aber leider nicht. Ich finde keine Anzeichen dafür, dass der Replace ausgeführt wird. #paralyzed# Der Rest vom Menü scheint soweit zu funktionieren.

Jemand eine Idee?

Mööp ·

Niemand eine Idee? Schade!

Oder habe ich mich unklar ausgedrückt? Zu wenig selbst recherchiert?

Grüße,

Mööp.

jenses ·

The function is specified right next to the operator (trimmed) and holding the value in brackets (not trimmed).

Sollte also so aussehen:

#dritte Ebene

      3 = TMENU
      3.NO = 1
      3.NO {
        value:=replaceString(blubb|<b>blubb</b>)
        ATagParams = class="umenu"
        linkWrap = |<br/>
      }
Mööp ·

Hallo und Danke für die Antwort,

habe länger rumprobiert und replaceString scheint nicht zu funktionieren. Ich denke das liegt daran, dass "NO" keine Eigenschaft mit dem Namen "value" hat, oder sehe ich das falsch?

Gibt es da einen workaround?

Komme da leider nicht weiter...

Mööp ·

Sorry dass ich das nochmal aufwärme: Ich versuche wirklich das Problem selber zu lösen, komme aber nicht drauf.

Hat jemand eine Idee, ob die Vermutung, die ich in meinem vorherigen Post äußere:

habe länger rumprobiert und replaceString scheint nicht zu funktionieren. Ich denke das liegt daran, dass "NO" keine Eigenschaft mit dem Namen "value" hat, oder sehe ich das falsch?

die Ursache des Problems sein könnte? [/quote]

Oder noch besser: Eine Idee, wie ich das Problem lösen könnte? Oder eine inspiration?

Danke im voraus!

Unbekannter Benutzer ·

Versuchs mal so (ungetestet):

      #dritte Ebene

            3 = TMENU
            3.NO = 1
            3.NO {
              stdWrap.cObject = TEXT
              stdWrap.cObject.field = title
              stdWrap.cObject.value:=replaceString(blubb|<b>blubb</b>).
              ATagParams = class="umenu"
              linkWrap = |<br/>
            }

so in der Art sollte es klappen...

Grüße

Christian

Mööp ·

Hallo Kitsunet & vielen, vielen Dank für die Antwort. Langsam komme ich auf den richtigen Weg.

Ich habe das eben ausprobiert, aber so scheint es nicht zu funktionieren.

Wenn ich den von dir geposteten Code ändere in

      #dritte Ebene
                  3 = TMENU
                  3.NO = 1
                  3.NO {
                    stdWrap.cObject = TEXT
                    # stdWrap.cObject.field = title
                    stdWrap.cObject.value = blubb
                    stdWrap.cObject.value:=replaceString(blubb|<b>blubb</b>).
                    ATagParams = class="umenu"
                    linkWrap = |<br/>
                  }

dann funktioniert es. Macht natürlich keinen Sinn, weil der Menütitel nicht erhalten bleibt. #angry#

Fazit: replaceString funktioniert anscheinend nicht, wenn ich die Eigenschaft field verwende.

Leider weiss ich noch immer nicht, wie ich das lösen könnte...

Das kann doch jetzt nicht mehr wild sein, hast Du/jemand anderes noch einen Tipp für mich?

Grüße,
Mööp.

Mööp ·

Tja... 😢

das hab ich leider nicht drauf, deswegen muss ich darauf wohl verzichten. Sehr schade.

Ich danke euch trotzdem für die Hilfe!

Grüße,

Mööp.