Esempio n. 1
0
 /**
  * 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;
 }