Esempio n. 1
0
 /**
  * Combine the url parts and handle the unencoded values
  *
  * @param tx_realurl $ref
  * @param $URLdoneByRealUrl
  * @param array $urlDoneArray
  * @param array $unEncodedValues
  * @return string
  */
 protected function combineEncodedURL(tx_realurl $ref, $URLdoneByRealUrl, $urlDoneArray = array(), $unEncodedValues = array())
 {
     $combinedURL = $URLdoneByRealUrl;
     // RealURL 'defaultToHTMLsuffixOnPrev = 1'
     $fileExt = '';
     if (preg_match('/^(.*)(\\.html)/i', $combinedURL, $matches)) {
         $combinedURL = $matches[1] . '/';
         $fileExt = $matches[2];
     }
     if (count($urlDoneArray)) {
         $combinedURL .= implode('/', $urlDoneArray);
     }
     // The URL to store in cHashCache must not have a leading slash
     $urlForCHashCache = substr($combinedURL, 0, 1) == '/' ? substr($combinedURL, 1) : $combinedURL;
     $ref->encodeSpURL_cHashProcessing($urlForCHashCache, $unEncodedValues);
     if (count($unEncodedValues)) {
         $unEncodedArray = array();
         foreach ($unEncodedValues as $key => $value) {
             $unEncodedArray[] = $this->rawurlencodeParam($key) . '=' . rawurlencode($value);
         }
         $combinedURL .= '?' . implode('&', $unEncodedArray);
     }
     return $combinedURL . $fileExt;
 }