function osePointedRedirection($sefroutemethod, $menu, $isSSL = false) { $mainframe =& JFactory::getApplication(); if ($mainframe->isAdmin()) { return; } $version = oseHtml::getJoomlaVersion(); if ($menu->type == 'url') { $return = $menu->link; } elseif ($menu->type == 'alias') { $menuParams = oseJson::decode($menu->params); $aMenuId = $menuParams->aliasoptions; $aMenu = JSite::getMenu(true)->getItem($aMenuId); return osePointedRedirection($sefroutemethod, $aMenu); } else { switch ($sefroutemethod) { default: case 0: $redURL = $menu->link . "&Itemid=" . $menu->id; break; case 1: $return = $redURL = JRoute::_($menu->link . "&Itemid=" . $menu->id, false); break; case 2: $jConfig = JFactory::getConfig(); if ($version >= '1.6') { if ($jConfig->get('sef_rewrite')) { $redURL = JRoute::_(oseGetValue($menu, 'path')); } else { $redURL = "index.php/" . JRoute::_(oseGetValue($menu, 'path')); } } else { static $menuPath; $parent_id = oseGetValue($menu, 'parent'); if (empty($menuPath)) { $menuPath = array(); array_unshift($menuPath, $menu->alias); } if ($parent_id != 0) { //$aMenu = JSite::getMenu(true)->getItem($parent_id); $db = oseDB::instance(); $query = " SELECT * FROM `#__menu`" . " WHERE id = '{$parent_id}'"; $db->setQuery($query); $aMenu = oseDB::loadItem('obj'); array_unshift($menuPath, $aMenu->alias); $redURL = osePointedRedirection($sefroutemethod, $aMenu); return $redURL; } else { if (!is_array($menuPath)) { $menuPath = array($menuPath); } $menuPath = implode('/', $menuPath); if ($jConfig->getValue('sef_rewrite')) { $redURL = JRoute::_($menuPath); } else { $redURL = "index.php/" . JRoute::_($menuPath); } } } break; } } if (strpos($redURL, 'http') === false && $sefroutemethod != 1) { $return = JURI::root() . $redURL; } return $return; }