Zum Inhalt springen

GMENU mit align=right kommt nicht gut

Erstellt am 23. August 2006 · 4 Antworten · letzte Antwort am 25. August 2006

Tags: Frage

whity ·

Hallo zusammen

Bei einem Kunden habe ich ein GMENU mit rechts ausgerichteter Schrift erstellt. Soweit kein Problem. Aber sobald der "title" einen Leerschlag enthält versaut es mir diesen Menüpunk.

Bsp:
http://www.wymsecuritysystems.ch/Zentralen.34+M5c50842c46a.0.html

Mein TS für das Menü (3. Level / Effekt trifft aber bei allen Leveln auf):

temp.menu1.3 = GMENU
temp.menu1.3.noBlur = 1
temp.menu1.3 {
  NO {
    wrap = |<br /> |*| |<br /> |*| |<br /><img src="clear.gif" width="1" height="10" alt="space" /><br />
    XY = 250, 15

    backColor = #ffffcc
    transparentBackground = 1

    5 = IMAGE
    5.file = fileadmin/templates/images/btn_sub2_up.gif
    5.align = right
    5.offset = -58 ,5

    10 = TEXT
    10.text.field = title
    10.fontFile = fileadmin/templates/arial.ttf
    10.fontSize = 11
    10.fontColor = #F56116
    10.iterations = 2
    10.offset = -70, 11
    10.align = right
    10.antiAlias = 1
  }

  RO < .NO
  RO = 1
  RO {
    5.file = fileadmin/templates/images/btn_sub2_over.gif

    20 = BOX
    20.dimensions = -70, 13, [10.w], 1
    20.color = #F56116
    20.align = right
  }


  ACT < .RO
  ACT = 1
  ACT {
    5.file = fileadmin/templates/images/btn_sub2_down.gif
  }
}

Kennt dieses Problem vielleicht jemand und weiss eine Lösung?

Vielen Dank & Gruss
Urs

Brainbug80 ·

Ich bin mir auch nicht sicher, aber könnte es an dem wrap in Zeile 5 liegen?
Ich hab auch ein Menü gebaut, dass rechtsbündig ausgerichtet ist (www.i-mine.org) und da hab ich nur ein

wrap = |<*br> (ohne Sternchen)

drin.
Kannst es ja mal testen 🙂

whity ·

Der wrap kommt um das Bild herum. Sieht nur so komisch aus da ich verschiedene Abstände brauche dafür.

Habe gesehen das du auf genannten Seite eine Image-Map verwendest. Bei mir ist es aber ein Bild pro Menüpunkt.

Lief vorher noch auf einer alten Typo3 version, habe ich aber gestern noch auf 4.0.1 aktualisiert da ich dachte vielleicht ein Bug von Typo3. Aber macht genau das gleiche.

Ich schaue mal in den source code ob ich finde wie das genau generiert wird.

Gruss
Urs

whity ·

Nun habe ich gefunden was dieses Problem verursacht.
Die PHP-Funktion imagettfbbox() , welche die grösse des Textes im Bild berechnet, gibt nichts zurück wenn der übergebenen Text ein Leerschlag enthält.

Dies passiert (bei mir) auf einem RedHat Enterprise 3 Server mit PHP 4.3.2

Als workaround habe ich mal folgendes gemacht (nicht gerade der super workaround aber erfüllt seinen Zweck):

In der Datei "t3lib/class.t3lib_stdgraphic.php":

function ImageTTFBBoxWrapper($fontSize, $angle, $fontFile, $string, $splitRendering, $sF=1)     {
.....
  // Calculate Bounding Box for part:
  $tmpStr = $strCfg['str'];
  $strCfg['str'] = str_replace(' ', '.', $strCfg['str']);
  $calc = ImageTTFBBox(t3lib_div::freetypeDpiComp($sF*$strCfg['fontSize']), $angle, $fontFile, $strCfg['str']);
  if (strstr($tmpStr, ' ')) {
    $calc[2] = $calc[2] - 2;
    $calc[4] = $calc[4] - 2;
  }
.....

Die Zeilen 7-10 können auch weg gelassen werden. Brauchte ich nur für etwas finetuning.

Vielleicht hilfts ja jemandem 😃

Gruss
Urs