Zum Inhalt springen

Text auf Menüpunkte rendern funktioniert nicht

Erstellt am 1. März 2013 · 7 Antworten · letzte Antwort am 5. März 2013

Tags: Frage

hummelchen ·

Hallo zusammen,

ich bin wieder an dem Tutorial "Snowboardschule" von Robert Meyer und scheitere an der Erstellung des Menüs; das Menü an sich ist zwar vorhanden, aber es gelingt mir nicht die Seitentitel als Text auf den Menüpunkten anzuzeigen. Woran könnte das eurer Meinung nach liegen? Vielen Dank für die Hilfestellung.

     # Das linke grafische Menü erstellen
     MENU_LINKS = HMENU
     MENU_LINKS {
       special = directory
       special.value = 4
      
        1 = GMENU
        1 {
        NO = 1
        NO {
        XY = 230,30
        backColor = #e6f4ff
          
              }
           }
                 }  
        # Text auf den Menüpunkt rendern
     30 = TEXT
     30 {
         text.field = nav_title // title
         text.case = upper
         fontFile = fileadmin/fonts/verdana.ttf
         fontSize = 16
         fontColor = #053c72
         niceText = 1
         offset = 20,22
        }

Das komplette TypoScript bis hierher sieht so aus:

page = PAGE
page {
  
     # Allgemeine Seiteneigenschaften setzen
  page.config.doctype = html5

     # Meta-Tags angeben
  meta.author = Robert Meyer, Martin Helmich
  meta.description = Hier steht eine Beschreibung

     # CSS-Dateien einbinden
  includeCSS {
   screen = fileadmin/css/style.css
   screen.title = display
   screen.media = screen
             }
  
     # Die Designvorlage integrieren
  10 = TEMPLATE
  10 {
   template = FILE
   template.file = fileadmin/vorlage.html
   workOnSubpart = DOKUMENT
     
   marks {
   DATUM = TEXT
   DATUM.data = date:d.m.Y
       
     # Das Logo ausgeben
   LOGO = IMAGE
   LOGO.file = fileadmin/images/logo.png
   LOGO.file.height = 121
       
     # Den Trailer erstellen
   TRAILER = IMAGE
   TRAILER.file = GIFBUILDER
   TRAILER.file {  
     XY = 731,143
     backColor = white
     
     
      # Das Hintergrundbild einlesen
   10 = IMAGE
   10 {
     file {
     import = 1
     import.data = levelmedia:-1, slide
     treatIdAsReference=1
     import.listNum = 0
     width = 731
          }
     offset = 0,-180
       }
     
       # Den Verlauf einarbeiten
    20 = IMAGE
    20 {
      file = fileadmin/images/trailer_overlay.png
      mask = fileadmin/images/trailer_mask.png
       }
      
        # Den Seitentitel darstellen
     30 = TEXT
     30 {
       text.field = subtitle // title
       fontFile = fileadmin/fonts/verdana-bold.ttf
       fontSize = 24
       fontColor = #053c72
       niceText = 1
       offset = 10,130
         }
                   }
     
        # Das obere Textmenü erstellen
     MENU_OBEN = HMENU
     MENU_OBEN {
       special = directory
       special.value = 3
       
       1 = TMENU
       1 {
       NO = 1
       NO.linkWrap =  | | |*|  | | |*|  |
         }
               }
         
        # Das linke grafische Menü erstellen
     MENU_LINKS = HMENU
     MENU_LINKS {
       special = directory
       special.value = 4
      
        1 = GMENU
        1 {
        NO = 1
        NO {
        XY = 230,30
        backColor = #e6f4ff
          
              }
           }
                 }  
        # Text auf den Menüpunkt rendern
     30 = TEXT
     30 {
         text.field = nav_title // title
         text.case = upper
         fontFile = fileadmin/fonts/verdana.ttf
         fontSize = 16
         fontColor = #053c72
         niceText = 1
         offset = 20,22
        }
            }
         }
        }

LG
Hummelchen

zeroalpha ·

Hallo Hummelchen,

ausschlaggebend ist folgende Zeile:

text.field = nav_title // title

http://wiki.typo3.org/De:TSref/stdWrap

Da steht: Hinweis: Es ist möglich, mehrere Feldnamen durch zwei Slashes "//" zu trennen. Der Inhalt des ersten nicht leeren Feldes wird dann zurückgegeben.

Also wenn du überall nav_title belegt hast, wird nie title benutzt.

versuch doch einfach mal

text.field = title
hummelchen ·

Hallo zeroalpha,

danke für den Hinweis. Auf die Art und Weise habe ich auch schon probiert mich dem Problem zu nähern; es funktioniert einfach nicht. #evil#
Alle Menüpunkte sind angelegt und werden auch angezeigt, wenn man den Mauszeiger über die Fläche bewegt. Was fehlt, ist der verdammte Text. Fällt dir noch eine andere Fehlerquelle ein? Ich bin gerade ein wenig ratlos. Zumal die gleiche Vorgehensweise bei "# den Seitentitel darstellen" ja schonmal funktioniert hat.

VG
hummelchen

zeroalpha ·

Jetzt weiss ich nicht genau was das Problem ist.

1. Du bekommst den Seitentitel nicht angezeigt sondern den nav_title

Da sollte der schon gepostete Code helfen!

2. Es wird überhaupt kein Text angezeigt

Dann nimm mal das

niceText = 1

aus deinem TS. Das hat schon immer mal böse dazwischen gefunkt.

Du machst zwar gerade ein Tutorial durch, aber ich würde mich auf diese GMENU nicht unbedingt so stürzen. Mittlerweile werden ja fast alle Menüs nur noch als TMENU umgesetzt und mittels CSS gestylt.

hummelchen ·

Oh, sorry, ich habe mich nicht klar genug ausgedrückt: es wird überhaupt kein Text angezeigt. Die Felder nav_title sind leer und es soll schon der Seitentitel verwendet werden. Alle Seitentitel sind vorhanden; das habe ich in der Datenbank überprüft. niceText habe ich auch schon auskommentiert bzw. auf 0 gesetzt. Das nützt leider auch nichts. Daher sind mir persönlich als absoluter Anfänger die Ideen ausgegangen, was ich noch tun könnte 😢

VG
Hummelchen

zeroalpha ·

Okay, ich hab den Fehler #angry# - sollte das nächste Mal genauer den Code anschauen!

Kontrolliere mal deine schließenden Klammern!!!

Du schließt das GMENU bevor du deinen Text drauf renderst.

hummelchen ·

Mensch, Zeroalpha, das isses!! Klasse!!! Immer diese blöden Klammern; daran erkennt man, dass ich noch Typo3-Anfänger bin. Nun habe ich etwas gelernt und weiss wonach ich als erstes schauen muss, wenn etwas nicht so funktioniert wie es soll. Vielen lieben Dank nochmal für die Unterstützung.

VG
Hummelchen

zeroalpha ·

Ich würde bei Klammern deutlicher einrücken. Macht das lesen vom Code gleich viel angenehmer!

Also in etwa so:

# Das linke grafische Menü erstellen
     MENU_LINKS = HMENU
     MENU_LINKS {
                  special = directory
                  special.value = 4
 
                  1 = GMENU
                  1 {
                      NO = 1
                      NO {
                           XY = 230,30
                           backColor = #e6f4ff
                          
            
                           # Text auf den Menüpunkt rendern
                           30 = TEXT
                           30 {
                                text.field = nav_title // title
                                text.case = upper
                                fontFile = fileadmin/fonts/verdana.ttf
                                fontSize = 16
                                fontColor = #053c72
                                niceText = 1
                                offset = 20,22
                               }
                         }

                     }
                 }