function plgSystemSEF_Advance(&$subject, $config) { parent::__construct($subject, $config); plgSystemSEF_Advance::trigger(); }
/** * This function is used as a replacement to JRoute::_() to generate sef urls in Joomla admin * * @param mixed $urls * @param mixed $xhtml * @param mixed $ssl */ function siteRoute($urls, $xhtml = true, $ssl = null) { global $mainframe; !is_array($urls) and $urls = array($urls); $parsed_urls = array(); // Check if plugins already processed $_this = cmsFramework::getInstance(); if (!is_object($_this->jMainframe)) { // Backup original mainframe object $_this->jMainframe = clone $mainframe; // Get a new mainframe object to process the sef plugins $mainframe = JApplication::getInstance('site'); $router = $mainframe->getRouter(); $plugins = JPluginHelper::_load(); $total = count($plugins); for ($i = 0; $i < $total; $i++) { $plugins[$i]->type == 'system' and in_array($plugins[$i]->name, $_this->sef_plugins) and JPluginHelper::_import($plugins[$i]); } if (class_exists('plgSystemSEF_Advance')) { plgSystemSEF_Advance::trigger(); } else { $mainframe->triggerEvent('onAfterInitialise'); } // Store modified mainframe object with sef plugin router $_this->newMainframe = $mainframe; } else { // Load the modified mainframe object with sef plugin router $mainframe = $_this->newMainframe; } $router = $mainframe->getRouter(); foreach ($urls as $url) { $uri = $router->build($url); $parsed_url = $uri->toString(); $parsed_urls[] = str_replace('/administrator', '', $parsed_url); } // Restore original mainframe object $mainframe = $_this->jMainframe; return count($parsed_urls) == 1 ? array_shift($parsed_urls) : $parsed_urls; }