/** * Calculates and sets the internal linkVars based upon the current * $_GET parameters and the setting "config.linkVars". * * @return void */ public function calculateLinkVars() { $this->linkVars = ''; $linkVars = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(',', (string) $this->config['config']['linkVars']); if (empty($linkVars)) { return; } $getData = \TYPO3\CMS\Core\Utility\GeneralUtility::_GET(); foreach ($linkVars as $linkVar) { $test = $value = ''; if (preg_match('/^(.*)\\((.+)\\)$/', $linkVar, $match)) { $linkVar = trim($match[1]); $test = trim($match[2]); } if ($linkVar === '' || !isset($getData[$linkVar])) { continue; } if (!is_array($getData[$linkVar])) { $temp = rawurlencode($getData[$linkVar]); if ($test !== '' && !\TYPO3\CMS\Frontend\Page\PageGenerator::isAllowedLinkVarValue($temp, $test)) { // Error: This value was not allowed for this key continue; } $value = '&' . $linkVar . '=' . $temp; } else { if ($test !== '' && strcmp('array', $test)) { // Error: This key must not be an array! continue; } $value = \TYPO3\CMS\Core\Utility\GeneralUtility::implodeArrayForUrl($linkVar, $getData[$linkVar]); } $this->linkVars .= $value; } }