Back to SiteRouter class

Method parseRawRoute

public void
parseRawRoute
(mixed &$router, mixed &$uri)
Convert a raw route to an internal URI
Parameters
  • \Joomla\CMS\Router\SiteRouter & $router Router object
  • \Joomla\CMS\Uri\Uri & $uri URI object to process
Returns
  • void
Since
  • 4.0.0
Class: SiteRouter
Project: Joomla

Method parseRawRoute - Source code

/**
 * Convert a raw route to an internal URI
 *
 * @param   SiteRouter  &$router  Router object
 * @param   Uri         &$uri     URI object to process
 *
 * @return  void
 *
 * @since   4.0.0
 */
public function parseRawRoute(&$router, &$uri)
{
    if ($uri->getVar('Itemid')) {
        $item = $this->menu->getItem($uri->getVar('Itemid'));
    } else {
        $item = $this->menu->getDefault($this->app->getLanguage()->getTag());
    }
    if ($item && $item->type === 'alias') {
        $newItem = $this->menu->getItem($item->getParams()->get('aliasoptions'));
        if ($newItem) {
            $item->query = array_merge($item->query, $newItem->query);
            $item->component = $newItem->component;
        }
    }
    if (\is_object($item)) {
        // Set the active menu item
        $this->menu->setActive($item->id);
        $uri->setVar('Itemid', $item->id);
        $uri->setQuery(array_merge($item->query, $uri->getQuery(true)));
    }
}