Zum Inhalt springen

Vollständige URL erzeugen

Erstellt am 27. November 2007 · 3 Antworten · letzte Antwort am 7. Dezember 2007

Tags: Links, Frage

tbd ·

Hallo!

ich brauche im Hyperlink die vollständige URL inkl. http:/... und nicht nur den internen typolink in einer Routine, da die Daten in einer XML-Datei exportiert werden.

Mit GetTypolink bekomme ich ja index.php?id=57, aber wie bekomme ich das ganze http://www.meineseite.de/index.php?id=57 hin ohne das explizit manuell zuzuweisen?

Jemand eine Idee

einpraegsam.​net ·

XML Beispiel:

# XML Ausgabe
xml = PAGE
xml {
	typeNum = 99
	
	10 = HMENU
	10 {
		special = directory
		special.value = 8
		1 = TMENU
		1.wrap = <ebene>|</ebene>
		1.expAll = 1
		1.NO {
			doNotLinkIt = 1
			stdWrap.cObject = COA
			stdWrap.cObject.wrap = <menu>|</menu>
			stdWrap.cObject {
				10 = TEXT
				10 {
					typolink {
						parameter.field = uid
						returnLast = url
					}
					wrap = <url>{$baseurl}|</url>
				}
				20 = TEXT
				20 {
					field = uid
					wrap = <pid>|</pid>
				}
				30 = TEXT
				30 {
					field = title
					wrap = <title>|</title>
				}
				#40 = TEXT
				#40 {
				#	field = subtitle
				#	wrap = <subtitle>|</subtitle>
				#}
			}
		}
		1.CUR = 1
		1.CUR < .1.NO
		1.CUR.stdWrap.cObject.50 = TEXT
		1.CUR.stdWrap.cObject.50.value = <act>1</act>
		
		#2 < .1
	}
}

[globalVar = GP:type = 99]
config.disableAllHeaderCode = 1
config.additionalHeaders = Content-type: text/xml
[end]

In den Constants haben wir einmal die BaseURL festgelegt:

baseurl = http://www.wunschtacho.de/
tbd ·

Ich habe es jetzt noch besser geschafft. Mir gefiel der Ansatz nicht, irgendwo eine baseurl-Konstante manuell einzugeben. Diese Routine setzt nur voraus, dass es eine domain record im Seitenbaum gibt und nutzt dann den ersten gefundenen domain Eintrag.

function getDomain() {
   $sys_page = t3lib_div::makeInstance('t3lib_pageSelect');
   $rootLine = $sys_page->getRootLine($GLOBALS['TSFE']->id);
   $sys_befunc = t3lib_div::makeInstance('t3lib_BEfunc');
   $domain = $sys_befunc->firstDomainRecord($rootLine);
   return $domain;
}
metypo3guru ·
tbd schrieb

Ich habe es jetzt noch besser geschafft. Mir gefiel der Ansatz nicht, irgendwo eine baseurl-Konstante manuell einzugeben. Diese Routine setzt nur voraus, dass es eine domain record im Seitenbaum gibt und nutzt dann den ersten gefundenen domain Eintrag.

function getDomain() {
   $sys_page = t3lib_div::makeInstance('t3lib_pageSelect');
   $rootLine = $sys_page->getRootLine($GLOBALS['TSFE']->id);
   $sys_befunc = t3lib_div::makeInstance('t3lib_BEfunc');
   $domain = $sys_befunc->firstDomainRecord($rootLine);
   return $domain;
}

sieht gut aus, nur wo hast du das eingefügt, bzw. wann / von wo aus wird es ausgeführt?