[TYPO3-german] Parameter an externen Link anhängen
Joerg Wagner [DigiLog]
news.netfielders.de at digilog.de
Fri Mar 27 13:29:01 CET 2009
Hier ist eine aktualisierte Version der PHP-Function im File
ts_user_functions.php. Diese Version berücksichtigt den URL-Type (http,
https, ftp, mailto), der im Backend zusammen mit der URL-Eingabe gewählt
werden kann:
<?php
class user_functions{
function user_addLangIdToExternalUrl($content, $conf){
// get params from calling TS
$pLangUID = $conf['langUID']; // config.sys_language_uid
// if link type is "external url" replace link to redirecting page
with external url and add language param
if($this->cObj->data['doktype']==3){
$urlSchemes = array(0=>'', 1=>'http://', 2=>'ftp://',
3=>'mailto:', 4=>'https://');
$content = preg_replace('/(<a[^>]*href=")[^"]*("[^>]*>)/i',
'$1'.$urlSchemes[$this->cObj->data['urltype']].$this->cObj->data['url']."?L=$pLangUID".'$2',
$content);
}
return $content;
}
}
?>
Viele Grüße,
Jörg.
Joerg Wagner schrieb:
> Hallo Stephan,
>
> > ich möchte per typoscript einen Paramter an einen externen Link in einem
> > Text-Content-Element anhängen.
>
> Ich hatte ein ähnliches Problem mit Menüpunkten, die z.T. auf eine
> externe Website verweisen sollten und dabei ebenfalls den L-Parameter
> mit übergeben sollten. Hat mich viel Zeit gekostet - vielleicht hilft
> Dir meine Lösung weiter.
>
>
> TS-Setup:
>
> config.sys_language_uid = 0
> [globalVar = GP:L=1]
> config.sys_language_uid = 1
> [global]
> [globalVar = GP:L=2]
> config.sys_language_uid = 2
> [global]
> ...
>
> includeLibs.myUserFunctions = fileadmin/templates/php/ts_user_functions.php
>
> ...
>
> # TS des Menüs in dem die externen URLs definiert sind:
> lib.mainMenu = HMENU
> lib.mainMenu {
> 1 = GMENU
> 1 {
> NO {
> allStdWrap.postUserFunc.langUID < config.sys_language_uid
> allStdWrap.postUserFunc = user_functions->user_addLangIdToExternalUrl
> ...
> }
> ...
> }
> }
>
>
>
> Die PHP-Function in der Datei ts_user_functions.php sieht so aus:
>
> <?php
> class user_functions{
> function user_addLangIdToExternalUrl($content, $conf){
> // get params from calling TS
> $pLangUID = $conf['langUID']; // config.sys_language_uid
>
> // if link type is "external url" replace link to redirecting page
> with external url and add language param
> if($this->cObj->data['doktype']==3){
> $content = preg_replace('/(<a[^>]*href=")[^"]*("[^>]*>)/i',
> '$1http://'.$this->cObj->data['url']."?L=$pLangUID".'$2', $content);
> }
>
> return $content;
> }
> }
> ?>
>
>
> Sollte so auch für TMENU funktionieren. Nebeneffekt ist, dass das
> href-Attribut der so modifizierten Links direkt die externe Adresse
> enthält und nicht die interne Seitenadresse, die dann redirected wird.
>
> Viel Erfolg,
> Jörg.
>
>
>
> Stephan Bauer schrieb:
>> Hallo,
>>
>> ich möchte per typoscript einen Paramter an einen externen Link in
>> einem Text-Content-Element anhängen.
>> Z.B. im Textfeld steht der Link
>> <link www.test.de>Hier klicken</link>
>>
>> An diesen Link möchte ich die aktuelle Sprache meiner Seite anhängen
>> (z.B. ?lang=de)
>>
>> Zusätzlich möchte ich noch eine per user_func
>> generierte Checksumme anhängen (z.B. &check=098f6bcd)
>>
>> Ich habe mich zu tode gesucht und nichts gefunden.
>>
>> Vielen Dank im Voraus.
>>
>> Grüße
>>
>> Stephan
>>
More information about the TYPO3-german
mailing list