function plgSystemSEF_Advance(&$subject, $config)
 {
     parent::__construct($subject, $config);
     plgSystemSEF_Advance::trigger();
 }
Example #2
0
 /**
  * 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;
 }