Actions
Bug #35069
openaddQueryString.exclude should take precedence over config.linkVars
Status:
Under Review
Priority:
Should have
Assignee:
-
Category:
TypoScript
Target version:
-
Start date:
2012-03-21
Due date:
% Done:
0%
Estimated time:
TYPO3 Version:
4.7
PHP Version:
Tags:
Complexity:
hard
Is Regression:
No
Sprint Focus:
Description
Getting rid of an URL parameter when creating a typolink seems to be impossible using addQueryString.exclude when the parameter is set to the list of config.linkVars.
config.linkVars = L(int) somelink = TEXT someline { value = this link keeps the L parameter typolink { parameter.data = TSFE:id addQueryString = 1 addQueryString.method = GET addQueryString.exclude = L } }
the generated link will contain the parameter L whenever it is set in the calling URL.
the following seems to kinda work as a workaround when RealURL is active and configured to drop an empty L:
somelink.typolink.additionalParams = &L=
the problem can be tracked down to the method linkData() in class.t3lib_tstemplate.php where all the linkVars are being added to the URL:
1379 // linkVars 1380 if ($GLOBALS['TSFE']->config['config']['uniqueLinkVars']) { 1381 if ($addParams) { 1382 $LD['linkVars'] = t3lib_div::implodeArrayForUrl('', t3lib_div::explodeUrl2Array($GLOBALS['TSFE']->linkVars . $addParams), '', FALSE, TRUE); 1383 } else { 1384 $LD['linkVars'] = $GLOBALS['TSFE']->linkVars; 1385 } 1386 } else { 1387 $LD['linkVars'] = $GLOBALS['TSFE']->linkVars . $addParams; 1388 }
linkData() is being called from class.tslib_content.php AFTER gotten rid of the unwanted parameter:
5745 // Query Params: 5746 $addQueryParams = $conf['addQueryString'] ? $this->getQueryArguments($conf['addQueryString.']) : ''; 5747 $addQueryParams .= isset($conf['additionalParams.']) 5748 ? trim($this->stdWrap($conf['additionalParams'], $conf['additionalParams.'])) 5749 : trim($conf['additionalParams']); 5750 if ($addQueryParams == '&' || substr($addQueryParams, 0, 1) != '&') { 5751 $addQueryParams = ''; 5752 } ... 5885 } else { // Internal link or current domain's linking scheme should be used 5886 if ($forceTarget) { 5887 $target = $forceTarget; 5888 } 5889 $LD = $GLOBALS['TSFE']->tmpl->linkData( 5890 $page, 5891 $target, 5892 $conf['no_cache'], 5893 '', 5894 '', 5895 $addQueryParams, 5896 $theTypeP, 5897 $targetDomain 5898 );
i encountered this behaviour in TYPO3 4.5, the source above is from 4.7 though.
Actions