Zum Inhalt springen

TMenüLayers und Multidomains/ absolute Adressen

Erstellt am 29. Oktober 2004 · 4 Antworten · letzte Antwort am 18. November 2004

Tags: URLs & Routing, Links, Frage

Unbekannter Benutzer ·

Hallo Leute,

wie kann ich T3 dazu bewegen aus relativen Links absolute Links innerhalb eines Menüs zu generieren? Ich habe nämlich ein Menü über das ich zu allen Hauptnavigationspunkten gelangen kann, allerdings haben einige Punkte eine eigene Domain und hier verweisen dann alle anderen Menüpunkte auch auf diese Domain, da ja alles relativ im Menü angelegt ist - ich kann hier also nicht mehr auf andere Menüpunkte kommen, die außerhalb der Domain liegen, daher will ich wenigstens dieses Menü mit absoluten Pfaden versehen ...

Unbekannter Benutzer ·

Nein, die einzige Möglichkeit, die wir bis jetzt gefunden haben, ist die Option zur Weiterleitung innerhalb des Domain-Record ... damit schafft man sich allerdings ein anderes Problem:

Wenn man die "Unterdomains" wieder per Weiterleitung auf die Hauptdomain umlengt, fällt die angesurfte "Unterdomain" in der Adressleiste weg ... alles Mist ...

ich glaube, die einzig vernünftige Möglichkeit ist, das Menü per PHP selbst zu coden, also mit den PHP-Einbindungsmöglichkeiten innerhalb von Menüs (komm jetzt nicht drau, wie das heißt ...)

Grüße,
Commodore

Unbekannter Benutzer ·

Nach langer Suche und dann doch mal wieder reiner Zufall, hier die Lösung!!!

Man nehme ein externes PHP-Script, wie man dies einzubinden hat, schaut nach, das erkläre ich jetzt nicht mehr ... folgende Funktion kommt in die Klasse:

function includeDomainFromConstants($I,$conf) {
	$href   = $I['linkHREF']['HREF'];
	$a1     = $I['parts']['ATag_begin'];
	
	// sysDomain abfragen und wenn UID des Menüs identisch mit PID der Domain, dann Ergänzung!
	$resDomain = $GLOBALS['TYPO3_DB']->exec_SELECTquery ('pid, domainName', 'sys_domain', 'hidden=0 AND pid='.$I['uid']);
	$rowDomain = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($resDomain);
	if ($rowDomain) $domain = 'http://www.'.$rowDomain['domainName'];
		else $domain = 'http://www.Standard-Domain.de';
	$I['parts']['ATag_begin'] = str_replace($href, $domain.'/'.$href, $a1);
	
#    	t3lib_div::debug($I);
#		t3lib_div::debug($conf);
	return $I;
}

Etwas TS muss auch noch ins Setup und dannach folgt die Erklärung:

     1 = TMENU
     1 {
       # IProcFunc -> http://typo3.org/documentation/document-library/doc_core_tsref/TMENU-1/
       IProcFunc = user_spiltKnotToNav->includeDomainFromConstants
       target = _top
[...]

IProcFunc übergibt als Array alle Infos des aktuell anzuzeigenden Links, dieses Array wird von meiner Funktion nun an einigen Stellen verändert und wieder zurückgegeben.

Was wird denn nun verändert?
Zuerst wird die UID bzw PID des Menüpunktes/-links ausgelesen und diese dann mit der Tabelle sys_domain abgeglichen, wenn dort ein passender Eintrag gefunden wird, wird der Menülink entsprechend ergänzt, ist dies nicht der Fall, wird die Standard-Domain ergänzt ... fettich 😉

Grüße,
Commodore