Zum Inhalt springen

Doppelte Alt-Tags in eigenem Menü (in Extension / php)

Erstellt am 12. Juli 2006 · 3 Antworten · letzte Antwort am 15. Mai 2008

Tags: PHP, Frage

imberg ·

Hallo T3ler,

mittels HMENU -> GMENU usw. erzeuge ich in einer Extension ein Menü. Klappt auch alles wunderbar, bis auf den Punkt, dass in dem IMG Tag des jeweiligen Menüpunktes zwei mal ein ALT Tag steht:
- einmal kommt es aus dem Navtitle der gewählten Seite (das will ich aber nicht)
- das andere setzte ich explizit mit imgParams = 'alt="Alt-Test"'

Hier der Code:

...
$HMenu['special'] = 'list';
$HMenu['special.']['value'] = $GLOBALS['TSFE']->id;
$HMenu['1'] = 'GMENU';
$HMenu['1.']["NO"] = '1';
$HMenu['1.']["NO."]["XY"] = '16,15';
$HMenu['1.']["NO."]["ATagTitle"] = 'Test';
$HMenu['1.']["NO."]["imgParams"] = 'alt="Alt-Test"';
...
return $this->cObj->HMENU($HMenu);

Im erzeugten Quellcode steht:

<<img src="typo3temp/menu/5537943883.gif" width="16" height="15" border="0" alt="Alt-Test" />

Man sieht im Quellcode zwei alt-Tags hintereinander, wobei das erste (was ich ja nicht will) vom Browser verwendet wird.
Verwende ich "disableAltText=1" werden immer noch 2 Tags angelegt, nur dass das erste dann so aussieht: alt=""
Ich habe auch schon versucht via $GLOBALS['TSFE']->page['nav_title'] = "Test" den Navtitel zu ändern... ohne Erfolg bei der Tag-Anzeige.

Kennt vielleicht jemand eineLöung für das Problem?
Ziel der Übung war ja in einer Extension ein Rollover-Menü-Objekt zu erzeugen. Mache ich das vielleicht grundsätzlich falsch, da sich das HMENU immer an der Seitenstruktur orientiert und man den Alt-Tag somit gar nicht ändern kann?
Gibt es Alternativen?

Grüße
Ralf

linajoy ·

Also ich stehe vor dem selben Problem.

In der TS-Referenze steht:

disableAltText boolean
If set, the alt-parameter of the images are not set. You can do it manually by “imgParams” (see below)

setzt man jedoch den disableAltText = 1, dann wird der alt-tag nicht ganz entfernt sondern nur gelehrt #paralyzed# ich tippe auf einen bug oder ähnliches.
Liebe Grüße Lina

linajoy ·

meine lösung ist nicht schön aber selten 🙂

disableAltText = 1
    NO {
      allStdWrap.postUserFunc = user_functions->user_remove_alt
      allStdWrap.insertData = 1
      imgParams = alt="{field:tx_gmenu_alttag}"

mit passendem php

function user_remove_alt($content,$conf){
		$ret = str_replace('alt=""', "", $content);
		return $ret;
	}

Grüße Lina