Example #1
0
 /**
  * Builds crawler friendly URL if URL rewriting is enabled
  * This function will attempt to build a crawler friendly URL.  If this feature is
  * disabled because of platform issue it just returns original $url value
  *
  * @param  string $url URL to try and convert
  * @return string      rewritten if $this->urlRewrite is true otherwise original url
  */
 public function buildURL($url)
 {
     if (!$this->urlRewrite) {
         return $url;
     }
     if ($this->urlRouting === Router::ROUTING_WITH_INDEX_PHP || $this->urlRouting === Router::ROUTING_WITHOUT_INDEX_PHP) {
         $newUrl = Router::convertUrl($url);
         if ($newUrl !== $url) {
             return $newUrl;
         }
     }
     $pos = strpos($url, '?');
     $query_string = substr($url, $pos + 1);
     $finalList = array();
     $paramList = explode('&', $query_string);
     for ($i = 1; $i <= count($paramList); $i++) {
         $keyValuePairs = explode('=', current($paramList));
         if (is_array($keyValuePairs)) {
             $argName = current($keyValuePairs);
             next($keyValuePairs);
             $finalList[$argName] = current($keyValuePairs);
         }
         next($paramList);
     }
     $newArgs = '/';
     for ($i = 1; $i <= count($finalList); $i++) {
         $newArgs .= current($finalList);
         if ($i !== count($finalList)) {
             $newArgs .= '/';
         }
         next($finalList);
     }
     return str_replace('?' . $query_string, $newArgs, $url);
 }