コード例 #1
0
ファイル: joomla15.php プロジェクト: atikahmed/joomla-probid
 function _parseSefRoute(&$uri)
 {
     $vars = array();
     $app = JFactory::getApplication();
     $menu = $app->getMenu(true);
     $parts = cmsFramework::_parseUri($uri);
     $route = $parts['path'];
     // Get the variables from the uri
     $vars = $parts['query'];
     /*
      * Parse the application route
      */
     if (substr($route, 0, 9) == 'component') {
         $segments = explode('/', $route);
         $route = str_replace('component/' . $segments[1], '', $route);
         $vars['option'] = 'com_' . $segments[1];
         $vars['Itemid'] = null;
     } else {
         //Need to reverse the array (highest sublevels first)
         $items = array_reverse($menu->getMenu());
         $found = false;
         foreach ($items as $item) {
             $length = strlen($item->route);
             //get the length of the route
             if ($length > 0 && strpos($route . '/', $item->route . '/') === 0 && $item->type != 'menulink') {
                 $route = substr($route, $length);
                 if ($route) {
                     $route = substr($route, 1);
                 }
                 $found = true;
                 break;
             }
         }
         if (!$found) {
             $item = $menu->getDefault(JFactory::getLanguage()->getTag());
         }
         $vars['Itemid'] = $item->id;
         $vars['option'] = $item->component;
     }
     /*
      * Parse the component route
      */
     if (!empty($route)) {
         $segments = explode('/', $route);
         if (empty($segments[0])) {
             array_shift($segments);
         }
     }
     return $segments;
 }
コード例 #2
0
ファイル: joomla.php プロジェクト: atikahmed/joomla-probid
 function _parseSefRoute(&$uri)
 {
     $vars = array();
     $app = JFactory::getApplication();
     $menu = $app->getMenu(true);
     $parts = cmsFramework::_parseUri($uri);
     $route = $parts['path'];
     /*
      * Parse the application route
      */
     if (substr($route, 0, 9) == 'component') {
         $segments = explode('/', $route);
         $route = str_replace('component/' . $segments[1], '', $route);
     } else {
         //Need to reverse the array (highest sublevels first)
         $items = array_reverse($menu->getMenu());
         $found = false;
         foreach ($items as $item) {
             $length = strlen($item->route);
             //get the length of the route
             if ($length > 0 && strpos($route . '/', $item->route . '/') === 0 && $item->type != 'menulink') {
                 $route = substr($route, $length);
                 if ($route) {
                     $route = substr($route, 1);
                 }
                 break;
             }
         }
     }
     /*
      * Parse the component route
      */
     if (!empty($route)) {
         $segments = explode('/', str_replace('.html', '', $route));
         if (empty($segments[0])) {
             array_shift($segments);
         }
     }
     return $segments;
 }