本帖最后由 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个项目和登陆后的个人信息移动到家园下,使家园高亮,求高手解决!
|