public function getFeedURL($url, $atom = false) { require_once DISCUSS_HELPERS . '/router.php'; $sef = DiscussRouter::isSefEnabled(); $join = $sef ? '?' : '&'; $url = DiscussRouter::_($url) . $join . 'format=feed'; $url .= $atom ? '&type=atom' : '&type=rss'; return $url; }
public static function getRoutedURL($url, $xhtml = false, $external = false) { if (!$external) { return DiscussRouter::_($url, $xhtml); } $mainframe = JFactory::getApplication(); $uri = JURI::getInstance(JURI::base()); //To fix 1.6 Jroute issue as it will include the administrator into the url path. $url = str_replace('/administrator/', '/', DiscussRouter::_($url, $xhtml)); if ($mainframe->isAdmin() && DiscussRouter::isSefEnabled()) { if (DiscussHelper::getJoomlaVersion() >= '1.6') { JFactory::$application = JApplication::getInstance('site'); } if (DiscussHelper::getJoomlaVersion() >= '3.0') { jimport('joomla.libraries.cms.router'); } else { jimport('joomla.application.router'); require_once JPATH_ROOT . '/includes/router.php'; require_once JPATH_ROOT . '/includes/application.php'; } $router = new JRouterSite(array('mode' => JROUTER_MODE_SEF)); $urls = $router->build($url)->toString(array('path', 'query', 'fragment')); $urls = DISCUSS_JURIROOT . '/' . ltrim(str_replace('/administrator/', '/', $urls), '/'); $container = explode('/', $urls); $container = array_unique($container); $urls = implode('/', $container); if (DiscussHelper::getJoomlaVersion() >= '1.6') { JFactory::$application = JApplication::getInstance('administrator'); } return $urls; } else { $url = rtrim($uri->toString(array('scheme', 'host', 'port')), '/') . '/' . ltrim($url, '/'); $url = str_replace('/administrator/', '/', $url); if (DiscussRouter::isSefEnabled()) { $container = explode('/', $url); $container = array_unique($container); $url = implode('/', $container); } return $url; } }