[TYPO3-UG Oesterreich] bestätigungslink erstellen

Christian Holzmann mail at innovations.at
Wed Jan 16 23:30:26 CET 2008


Hallo Rainer!
Du möchtest also einen absoluten Link generieren...

Ich geb Dir einfach mal einen Tipp:
gibt in Deiner Extension mal

print_r($GLOBALS['TSFE']);

ein und lass Dir dann die Seite anzeigen,
in der Du die Extension eingebunden hast.

Das ist das TypoScript Frontend Array... da sind
alle Variablen drin, die Du für das Frontend zur Verfügung
hast.

Da findest Du im Quelltext dann unter anderem auch
Deinen Host.. also die "www"-Adresse.
Du könntest also
"http://"
+TSFE Variable mit der Domain-URL
+"/"
+Dein $this->pi_linkToPage
zusammenfügen und hättest Deine URL "zusammengepfriemelt".

Wenn Du aber zum Beispiel Deine Typo3 Installation NICHT
im Hauptverzeichnis, sondern in einem Unterverzeichnis
hast, müsstest Du im Typo3SCript Template dies durch
config.baseURL=www.meinedomain.tld/meintypo3verzeichnis
angeben.

Und wenn Du dann die URL so zusammen gebastelt hast,
funktioniert der LInk dann nicht korrekt.

Da musst Du also dann die baseURL mit berücksichtigen....

Ich hab da eine Funktion gefunden (Ersteller etc.. steht noch
drin, also kannst Dich dann bei ihm bedanken wenn Du sie nimmst *g*).

Martin verwendet allerdings nicht das TSFE-Array, um die Domain oder
den Host herauszufinden, sondern er verwendet dafür die Funktion
t3lib_div::getIndpEnv("HTTP_HOST"), die ganz einfach UNABHÄNGIG
vom Betriebssystem , der PHP Version etc... die Server-Variable
oder auch Systemumgebungsvariable "HTTP_HOST" ausliest.
(Geht alternativ auch mit $_SERVER["HTTP_HOST"]).

So genug geschwafelt, Du siehst, es führen 1000 Wege nach Rom,
hier ist die Funktion.
Ich wollte es nur erklärt haben; Copy&Paste auf eigene Gefahr ;-)


  /**
      * Generates an absolute link.
      * This function generates an absolute link from a relative link
      * that is submitted as parameter.
      * For this, the config.baseURL property is used. If this property
      * is not set, the absolute URL will be determined using the
      * $_ENV[HTTP_HOST] variable.
      * This function was introduced due to problems with some realUrl
      * configuration.
      *
      * @param  string $link A relative link
      * @return string       The submitted string converted into an 
absolute link
      * @author Martin Helmich <m.helmich at mittwald.de>
      */
     function getAbsUrl($link) {
     	if(substr($link,0,7)=='http://') return $link;
     	if($GLOBALS['TSFE']->config['config']['baseURL']) {
			$baseUrl = $GLOBALS['TSFE']->config['config']['baseURL'];
			if(substr($baseUrl,-1,1)!='/') $baseUrl = $baseUrl.'/';
			$result = $baseUrl.$link;
     	}
		else
	        $result = 'http://'.t3lib_div::getIndpEnv("HTTP_HOST").'/'.$link;
	    return $result;
     }


Hier noch die Links/Infos:
getIndpEnv: 
http://typo3.org/fileadmin/typo3api-4.0.0/d3/d3d/classt3lib__div.html#8de3416a12d356d9b2c0bf8ef12dfdfc

Die Funktion stammt übrigens aus der Extension mm_forum: 
http://typo3.org/extensions/repository/view/mm_forum/0.1.4/info/


Hoffe, damit geholfen zu haben.
Lg Chris al. Woody



Rainer Amler schrieb:
> Hallo,
> 
> Ich wollte fragen wie ich eine Email mit einem Bestätigungslink
> erstellen kann.
> 
> Das einzige was ich bis jetzt hinbekommen habe ist ist folgendes:
> 
> $content .= $this->pi_linkToPage('klicke hier', $GLOBALS["TSFE"]->id,
> '', array($this->prefixId."[authlink]" => $kunde['authlink']));
> 
> da bekomme ich allerdings nur eine
> index.php?id=31&tx_lxkehrtermine_pi1[authlink]=1234567
> heraus.
> 
> Es sollte aber heissen: http://www.wasauchimmer.at/index.php?id=31....
> 
> Ich verwende derzeit kein zusätzliches TS oder sonst was; reines PHP.
> 
> Vielen lieben dank für alle Vorschläge! und ich ärgere mich jetzt schon
> über die vermutlich "einfache" lösung ;-)
> 
> lg,
> rainer
> 


More information about the TYPO3-at mailing list