/** * Adjusts the configuration used for RealURL path encoding, depending on a specific domain disposal. * * @param array $configuration Configuration required to determine hosts while path encoding * @param array $params Parameters delivered to RealURL by t3lib_TStemplate->linkData hook * @return mixed Information required for further processing or false if something went wrong */ protected function adjustConfigurationByHostEncode($configuration, $params) { $this->ignoreGETvar = ''; if (is_array($params) && isset($params['LD']['totalURL']) && is_array($configuration)) { $urlParts = parse_url($params['LD']['totalURL']); $urlParams = array(); parse_str($urlParts['query'], $urlParams); foreach ($configuration as $disposal) { if (isset($disposal['rootpage_id']) && $disposal['rootpage_id'] != $this->extConf['pagePath']['rootpage_id']) { continue; } if (isset($disposal['GETvar']) && isset($disposal['value'])) { $GETvar = $disposal['GETvar']; $currentValue = $this->apiWrapper->_GET($GETvar); $expectedValue = isset($urlParams[$GETvar]) ? $urlParams[$GETvar] : false; if ($expectedValue !== false && $disposal['value'] == $expectedValue) { if (!isset($disposal['ifDifferentToCurrent']) || $disposal['value'] != $currentValue) { if (isset($disposal['useConfiguration'])) { $this->ignoreGETvar = $GETvar; $this->setConfigurationByReference($disposal['useConfiguration']); } $this->additionalParametersForChash[$GETvar] = $this->apiWrapper->testInt($urlParams[$GETvar]) ? intval($urlParams[$GETvar]) : $urlParams[$GETvar]; return $disposal; } else { $this->ignoreGETvar = $GETvar; break; } } } } } return false; }