public function build(Library\HttpUrl $url) { $query = $url->query; $segments = array(); //Build site route $site = $this->getObject('application')->getSite(); if ($site != 'default' && $site != $this->getObject('application')->getRequest()->getUrl()->toString(Library\HttpUrl::HOST)) { $segments[] = $site; } //Build language route $languages = $this->getObject('application.languages'); if (count($languages) > 1) { if (isset($query['language'])) { $language = $query['language']; unset($query['language']); } else { $language = $languages->getActive()->slug; } $segments[] = $language; } //Build component route if (isset($query['option'])) { $segments[] = substr($query['option'], 4); unset($query['option']); if (isset($query['view'])) { if ($query['view'] != $segments[0]) { $segments[] = $query['view']; } unset($query['view']); } } $url->query = $query; //Add the format to the uri if (isset($url->query['format'])) { $format = $url->query['format']; if ($format != 'html') { $url->format = $format; } unset($url->query['format']); } //Build the route $url->setPath($this->getObject('request')->getBaseUrl()->getPath() . '/' . implode('/', $segments)); // Removed unused query variables unset($url->query['Itemid']); unset($url->query['option']); return true; }