ich baue gerade einen Sprachwechsellink allerings möchte ich nicht die standardmethode aus /media/scripts/example_languageMenu nutzen da ich noch weitere parameter auf der seite nutze und die sonst alle von hand in dem script einbauen müsste
menu.Flag.10 = TEXT
menu.Flag.10.value = deutsch
menu.Flag.10.typolink.parameter.data = field:uid
menu.Flag.10.typolink.additionalParams= &Lang=en
bisher gibt es zwei parameter Lang(en/de) Flash(on/off) und die sollen natürlich erhalten bleiben. es könnten aber noch mehr werden und daher möchte ich mich da nicht festlegen
der code oben funktioniert. allerdings wird der string "&Lang=en" einfach an den url string anghängt das füht dann u.a zu derartigen url's
index.php?id=1&Lang=de&Lang=en
Frage
1. ist das problematisch das die Lang Variable im url string zweimal vorkommt
2. wie kann in einem typolink einen Parameter überschreiben und alle anderen einschließlich der id erhalten
möglicherweise habe ich auch die funktionen der typolink property noch nicht ganz verstanden
danke schonmal Martin
Das Problem habe ich auch!
Alledings scheint trotzdem alles zu klappen.
ich bin der antwort auf der spur
TYPOSCRIPT
CONFIG.10.typolink.params.type = 98
CONFIG.10.typolink.userFunc = user_Functions->addLinkParam
PHP
<?php
class user_Functions {
var $cObj;
function addLinkParam ($content, $conf) {
t3lib_div::debug( $content );
t3lib_div::debug( $conf);
return '<A HREF="'.$content["url"].'"'.$content["targetParams"].$content["aTagParams"].'>';
}
}
?>
Aber wie bekomme ich nun einen parameter an das script übergeben
soweit ich das bisher verstanden habe sollten doch die parameter als array übergeben werden
ich erwarte also bei conf einen array der so ausieht
array("params"->array("type"->"98") )
allerdings konnt bei $conf gar nix an ... wo ist der denkfehler und wie setze ich parameter dafür
gruß Martin
Ich habs jetzt
Script
typolink.userFunc = user_Functions->addLinkParameters
typolink.userFunc.Lang = de
PHP
<?php
# Allgemeine Funktionsklasse
# Author Martin Ficzel
class user_Functions {
function addLinkParameters ($content,$conf) {
# Parameter von url lösen
$newURLArray = explode("?", $content["url"], 2);
$newURLFile = $newURLArray[0];
$newURLParams = $newURLArray[1];
$newParamString = "";
if ( isset($newURLParams) ) {
# Parameter Array zerlegen
$paramArray = explode("&", $newURLArray[1] );
$oldParams = Array();
foreach (array_keys($paramArray ) as $key) {
#werte und keys zerlegen
$temp = explode("=", $paramArray[$key],2);
if (count($temp) ==2) {
# und im assoziativem array ablegen
$oldParams[$temp[0]] = $temp[1];
}
}
# array conf auf array mappen
$newParams = array_merge ($oldParams, $conf);
# parameter string wieder zusammensetzen
$paramArray = Array();
foreach (array_keys($newParams) as $key) {
$paramArray[$key] = $key."=".$newParams [$key];
}
$newParamString = implode("&", $paramArray );
}
# parameter und url wieder zusammensetzen
$newURL = $newURLFile."?".$newParamString;
# ATag zurüchgeben
return '<A HREF="'. $newURL.'"'.$content["targetParams"].$content["aTagParams"].'>';
}
}
?>
jetzt kannst du über
typolink.userFunc.myVar = myValue
beliebige Variablen dem Link mitgeben und die alten werte werden überschrieben
gruß Martin