Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[已解决] 100人民币求助外送100G币

[复制链接]
songrui11 发表于 2012-3-4 01:55:15 | 显示全部楼层 |阅读模式
本帖最后由 songrui11 于 2012-3-4 15:06 编辑

<!--{loop $_G['setting']['navs'] $nav}-->
                                                        <!--{if $nav['available'] && (!$nav['level'] || ($nav['level'] == 1 && $_G['uid']) || ($nav['level'] == 2 && $_G['adminid'] > 0) || ($nav['level'] == 3 && $_G['adminid'] == 1))}--><li {if $mnid == $nav[navid]}class="a" {/if}$nav[nav]></li><!--{/if}-->
                                                <!--{/loop}-->
<li {if $mnid == $nav[navid]}class="a" {/if}$nav[nav]></li>
这行来自header文件内,是循环输出导航及判断是否高亮的!!$nav[nav] 这个就是导航前边的是判断条件!符合条件则当前导航加个a
下边是我收集到的
function getcurrentnav() {
        global $_G;
        if(!empty($_G['mnid'])) {
                return $_G['mnid'];
        }
        $mnid = '';
        $_G['basefilename'] = $_G['basefilename'] == $_G['basescript'] ? $_G['basefilename'] : $_G['basescript'].'.php';
        if(isset($_G['setting']['navmns'][$_G['basefilename']])) {
                if($_G['basefilename'] == 'home.php' && $_GET['mod'] == 'space' && (empty($_GET['do']) || in_array($_GET['do'], array('follow', 'view')))) {
                        $_GET['mod'] = 'follow';
                }
                foreach($_G['setting']['navmns'][$_G['basefilename']] as $navmn) {
                        if($navmn[0] == array_intersect_assoc($navmn[0], $_GET)) {
                                $mnid = $navmn[1];
                        }
                }

        }
        if(!$mnid && isset($_G['setting']['navdms'])) {
                foreach($_G['setting']['navdms'] as $navdm => $navid) {
                        if(strpos(strtolower($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']), $navdm) !== false) {
                                $mnid = $navid;
                                break;
                        }
                }
        }
        if(!$mnid && isset($_G['setting']['navmn'][$_G['basefilename']])) {
                $mnid = $_G['setting']['navmn'][$_G['basefilename']];
        }
        return $mnid;
}
上边这段来自function_core.php
function get_cachedata_mainnav() {
        global $_G;

        $data['navs'] = $data['subnavs'] = $data['menunavs'] = $data['navmns'] = $data['navmn'] = $data['navdms'] = $navids = array();
        foreach(C::t('common_nav')->fetch_all_mainnav() as $nav) {
                if($nav['available'] < 0) {
                        continue;
                }
                $id = $nav['type'] == 0 ? $nav['identifier'] : 100 + $nav['id'];
                if($nav['identifier'] == 1 && $nav['type'] == 0 && !helper_access::check_module('portal')) {
                        $nav['available'] = 0;
                }
                if($nav['identifier'] == 3 && $nav['type'] == 0 && !helper_access::check_module('group')) {
                        $nav['available'] = 0;
                }
                if($nav['identifier'] == 4 && $nav['type'] == 0 && !helper_access::check_module('feed')) {
                        $nav['available'] = 0;
                }
                if($nav['type'] == 3) {
                        if(!in_array($nav['identifier'], $_G['setting']['plugins']['available'])) {
                                continue;
                        }
                }
                if($nav['identifier'] == 5 && $nav['type'] == 0 && !$_G['setting']['my_app_status']) {
                        $nav['available'] = 0;
                }
                if($nav['identifier'] == 8 && $nav['type'] == 0 && !$_G['setting']['ranklist']['status']) {
                        $nav['available'] = 0;
                }
                $nav['style'] = parsehighlight($nav['highlight']);
                $data['navs'][$id]['navname'] = $nav['name'];
                $data['navs'][$id]['filename'] = $nav['url'];
                $data['navs'][$id]['available'] = $nav['available'];
                $nav['name'] = $nav['name'].($nav['title'] ? '<span>'.$nav['title'].'</span>' : '');
                $subnavs = '';
                foreach(C::t('common_nav')->fetch_all_subnav($nav['id']) as $subnav) {
                        $item = "<a href=\"$subnav[url]\" hidefocus=\"true\" ".($subnav['title'] ? "title=\"$subnav[title]\" " : '').($subnav['target'] == 1 ? "target=\"_blank\" " : '').parsehighlight($subnav['highlight']).">$subnav[name]</a>";
                        $liparam = !$nav['subtype'] || !$nav['subcols'] ? '' : ' style="width:'.sprintf('%1.1f', (1 / $nav['subcols']) * 100).'%"';
                        $subnavs .= '<li'.$liparam.'>'.$item.'</li>';
                }
                list($navid) = explode('.', basename($nav['url']));
                if($nav['type'] || $navid == 'misc' || $nav['identifier'] == 6) {
                        if($nav['type'] == 4) {
                                $navid = 'P'.$nav['identifier'];
                        } else {
                                $navid = 'N'.substr(md5(($nav['url'] != '#' ? $nav['url'] : $nav['name'])), 0, 4);
                        }
                }
                $navid = 'mn_'.$navid;
                if(in_array($navid, $navids)) {
                        $navid .= '_'.$nav['identifier'];
                }
                $navids[] = $navid;
                $onmouseover = '';
                if($subnavs) {
                        if($nav['subtype']) {
                                $onmouseover = 'navShow(\''.substr($navid, 3).'\')';
                                $data['subnavs'][$navid] = $subnavs;
                        } else {
                                $onmouseover = 'showMenu({\'ctrlid\':this.id,\'ctrlclass\':\'hover\',\'duration\':2})';
                                $data['menunavs'][] = '<ul class="p_pop h_pop" id="'.$navid.'_menu" style="display: none">'.$subnavs.'</ul>';
                        }
                }
                if($nav['identifier'] == 6 && $nav['type'] == 0) {
                        if(!empty($_G['setting']['plugins']['jsmenu'])) {
                                $onmouseover .= "showMenu({'ctrlid':this.id,'ctrlclass':'hover','menuid':'plugin_menu'})";
                        } else {
                                $data['navs'][$id]['available'] = 0;
                                continue;
                        }
                }

                if($nav['logo']) {
                        $navlogo = str_replace('{STATICURL}', STATICURL, $nav['logo']);
                        if(!preg_match("/^".preg_quote(STATICURL, '/')."/i", $navlogo) && !(($valueparse = parse_url($navlogo)) && isset($valueparse['host']))) {
                                $navlogo = $_G['setting']['attachurl'].'common/'.$nav['logo'];
                        }
                        $data['navlogos'][$navid] = '<a href="'.$nav['url'].'" title="'.$_G['setting']['bbname'].'"><img src="'.$navlogo.'" alt="'.$_G['setting']['bbname'].'" border="0" /></a>';
                }

                $purl = parse_url($nav['url']);
                $getvars = array();
                if($purl['query']) {
                        parse_str($purl['query'], $getvars);
                        $data['navmns'][$purl['path']][] = array($getvars, $navid);
                } elseif($purl['host']) {
                        $data['navdms'][strtolower($purl['host'].$purl['path'])] = $navid;
                } elseif($purl['path']) {
                        $data['navmn'][$purl['path']] = $navid;
                }
                if($nav['type'] == 0) {
                        $domainkey = substr($purl['path'], 0, -strlen(strrchr($purl['path'], '.')));
                        if(!empty($_G['setting']['domain']['app'][$domainkey]) && !in_array(strtolower($nav['title']), array('follow', 'guide', 'collection'))) {
                                $nav['url'] = 'http://'.$_G['setting']['domain']['app'][$domainkey];
                        }
                }

                $data['navs'][$id]['navid'] = $navid;
                $data['navs'][$id]['level'] = $nav['level'];
                $data['navs'][$id]['nav'] = "id=\"$navid\" ".($onmouseover ? 'onmouseover="'.$onmouseover.'"' : '')."><a href=\"$nav[url]\" hidefocus=\"true\" ".($nav['title'] ? "title=\"$nav[title]\" " : '').($nav['target'] == 1 ? "target=\"_blank\" " : '')." $nav[style]>$nav[name]</a";
        }
        $data['menunavs'] = implode('', $data['menunavs']);

        return array($data['navs'], $data['subnavs'], $data['menunavs'], $data['navmns'], $data['navmn'], $data['navdms'], $data['navlogos']);

}
我是华丽的分割线
function get_cachedata_mynavs() {
        global $_G;

        $data['mynavs'] = array();
        foreach(C::t('common_nav')->fetch_all_by_navtype(3) as $nav) {
                if($nav['available'] < 0) {
                        continue;
                }
                if($nav['icon']) {
                        $navicon = str_replace('{STATICURL}', STATICURL, $nav['icon']);
                        if(!preg_match("/^".preg_quote(STATICURL, '/')."/i", $navicon) && !(($valueparse = parse_url($navicon)) && isset($valueparse['host']))) {
                                $navicon = $_G['setting']['attachurl'].'common/'.$nav['icon'].'?'.random(6);
                        }
                        $navicon = preg_match('/^http:\/\//i', $navicon) ? $navicon : $_G['siteurl'].$navicon;
                        $nav['icon'] = ' style="background-image:url('.$navicon.') !important"';
                }
                $nav['code'] = '<a href="'.$nav['url'].'"'.($nav['title'] ? ' title="'.$nav['title'].'"' : '').($nav['target'] == 1 ? ' target="_blank"' : '').$nav['icon'].'>'.$nav['name'].'</a>';
                $id = $nav['type'] == 0 ? $nav['identifier'] : 100 + $nav['id'];
                $data['mynavs'][$id] = array('available' => $nav['available'], 'navname' => $nav['name'], 'code' => $nav['code'], 'level' => $nav['level']);
        }
        return $data['mynavs'];
}
这段是我收集到的来自cache_setting.php文件,分别是主导航与快捷导航的函数吧,这个我也不是很确定!
我现在想把快捷导航下的默认6个项目和登陆后的个人信息移动到家园下,使家园高亮,求高手解决!



回复

使用道具 举报

haoycn 发表于 2012-3-4 10:46:08 | 显示全部楼层
增加判断当前页面是否为家园页面的代码应该有用
回复

使用道具 举报

popuppp 发表于 2012-3-4 11:13:47 | 显示全部楼层
这个实际通过后台就可以实现的。

后台,界面,导航

快捷的导航,你可以暂时关闭,然后到家园的导航中添加新链接即可
回复

使用道具 举报

幸福在右 发表于 2012-3-4 11:37:12 | 显示全部楼层
可以试试LSD 的方法。。
回复

使用道具 举报

无名在线 发表于 2012-3-4 11:56:13 | 显示全部楼层
好大一串 代码, 没有一定的功底不建议修改文件!
回复

使用道具 举报

crx349 发表于 2012-3-4 12:05:30 | 显示全部楼层
用功能实现 代码容易错误
回复

使用道具 举报

 楼主| songrui11 发表于 2012-3-4 15:07:35 | 显示全部楼层
haoycn 发表于 2012-3-4 10:46
增加判断当前页面是否为家园页面的代码应该有用

其实那些连接本来就属于家园下的,好像是什么代码屏蔽了判断!
回复

使用道具 举报

yahooren1 发表于 2012-3-4 15:15:36 | 显示全部楼层
这个确实不会呀
回复

使用道具 举报

 楼主| songrui11 发表于 2012-3-4 15:47:02 | 显示全部楼层
popuppp 发表于 2012-3-4 11:13
这个实际通过后台就可以实现的。

后台,界面,导航

刚刚在后台试了一下,没好用!
回复

使用道具 举报

等爱的玫瑰1 发表于 2012-3-4 15:49:56 | 显示全部楼层
看不懂   
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-8-25 18:04 , Processed in 0.108179 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表