コード例 #1
0
ファイル: oseMethods.php プロジェクト: kosmosby/medicine-prof
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;
}