www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/include/parse/cnode.php

    <?php
!defined('M_COM') && exit('No Permission');
function onecnode(&$tag,$temparr){//@@@
	global $acatalogs,$cotypes,$btags,$sid;
	parse_str(cnstr($temparr),$midarr);
	$nsid = $sid;
	foreach($midarr as $k => $v){
		if($k == 'caid'){
			$nsid = empty($acatalogs[$v]['sid']) ? $sid : $acatalogs[$v]['sid'];
			if($tag['casource'] != 'active') unset($midarr[$k]);
		}elseif(@$tag['cosource'.str_replace('ccid','',$k)] != 'active'){
			 unset($midarr[$k]);
		}
	}
	if($tag['listby'] == 'ca'){
		foreach($cotypes as $k => $cotype){//先处理非列表项目
			($cotype['sortable'] && !empty($tag['cosource'.$k]) && is_numeric($tag['cosource'.$k])) && $midarr['ccid'.$k] = $tag['cosource'.$k];
		}
		if(empty($tag['casource'])){
			return '';
		}elseif($tag['casource'] == 'active'){//列表项id要放在最后
			if(empty($midarr['caid'])) return '';
			if(!$item = read_cache('catalog',$midarr['caid'],'',$nsid)) return '';
			unset($midarr['caid']);
			$midarr['caid'] = $temparr['caid'];
		}else{
			if(!$item = read_cache('catalog',$tag['casource'],'',$nsid)) return '';
			$midarr['caid'] = $tag['casource'];
		}
	}else{
		$coid = str_replace('co','',$tag['listby']);
		(!empty($tag['casource']) && is_numeric($tag['casource'])) && $midarr['caid'] = $tag['casource'];
		foreach($cotypes as $k => $cotype){
			(($k != $coid) && $cotype['sortable'] && !empty($tag['cosource'.$k]) && is_numeric($tag['cosource'.$k])) && $midarr['ccid'.$k] = $tag['cosource'.$k];
		}
		if($tag['cosource'.$coid] == 'active'){
			if(empty($midarr['ccid'.$coid])) return '';
			if(!$item = read_cache('coclass',$coid,$midarr['ccid'.$coid])) return '';
			unset($midarr['ccid'.$coid]);
			$midarr['ccid'.$coid] = $temparr['ccid'.$coid];
		}else{
			if(empty($tag['cosource'.$coid])) return '';
			if(!$item = read_cache('coclass',$coid,$tag['cosource'.$coid])) return '';
			$midarr['ccid'.$coid] = $tag['cosource'.$coid];
		}
	}
	if(empty($item)) return '';
	(!empty($tag['urlmode']) && !empty($midarr[$tag['urlmode']])) && $midarr = array_merge(array($tag['urlmode'] => $midarr[$tag['urlmode']]),$midarr);
	$cnstr = cnstr($midarr);
	$cnode = cnodearr($cnstr,$nsid);
	re_cnode($item,$cnstr,$cnode);
	$template = $tag['template'];
	nreplace($template,'c',$midarr);
	nreplace($template,'u',$item);
	nreplace($template,'b',$item);
	return $template;
}
?>