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

    <?php
!defined('M_COM') && exit('No Permission');
function cnstr($temparr){
	global $cotypes;
	$vararr = array('caid');
	foreach($cotypes as $coid => $cotype) $cotype['sortable'] && $vararr[] = 'ccid'.$coid;
	$cnstr = '';
	foreach($temparr as $k => $v) if(in_array($k,$vararr) && $v = max(0,intval($v))) $cnstr .= ($cnstr ? '&' : '').$k.'='.$v;
	unset($vararr,$temparr,$cotype);
	return $cnstr;
}
function cn_htmldir($cnstr,$sid=0,$wri=0){//需要允许生成子站首页//格式 xxx/aaa/
	global $cnhtmldir,$subsites;
	$dirstr = ($sid ? $subsites[$sid]['dirname'] : $cnhtmldir).'/';
	if(!empty($cnstr)){
		parse_str($cnstr,$idsarr);
		$catalogs = read_cache('catalogs','','',$sid);
		$topid = cn_topid($idsarr['caid'],$catalogs);
		$dirstr .= $catalogs[$topid]['dirname'].'/';//不管本身是否顶级栏目,顶级栏目是必须要创建的
		$wri && mmkdir(M_ROOT.$dirstr,0);

		$dirname = '';//组建节点目录名称
		$topid != $idsarr['caid'] && $dirname .= $catalogs[$idsarr['caid']]['dirname'];//不是顶级栏目时要加入子栏目因素
		unset($idsarr['caid'],$catalogs,$topid);//先释放caid因素.
		foreach($idsarr as $k => $v){
			$item = read_cache('coclass',str_replace('ccid','',$k),$v);
			$dirname .= ($dirname ? '_' : '').$item['dirname'];
			break;
		}
		if($dirname){
			$dirstr .= $dirname.'/';
			$wri && mmkdir(M_ROOT.$dirstr,0);
		}
		unset($item,$idsarr,$dirname);
	}
	return $dirstr;
}
function cn_blank($cnstr,$pstr='i',$sid=0,$force=0){//force:强行删除旧文件,强行覆盖第一个文件,为0时为修复链接
	global $homedefault;
	if($cnstr || $sid){
		$dirstr = cn_htmldir($cnstr,$sid,1);
		$suffix = $sid ? (($cnstr ? '&' : '')."sid=$sid") : '';
		foreach(array('l','bk') as $var){
			if($force && in_str($var,$pstr)) m_unlink(M_ROOT.$dirstr.($var == 'l' ? '1.html' : 'bk_1.html'));
		}
		if(in_str('i',$pstr) && ($force || !is_file(M_ROOT.$dirstr.$homedefault))) @str2file(blank_content("index.php?$cnstr$suffix"),M_ROOT.$dirstr.$homedefault);
		if(in_str('l',$pstr) && ($force || !is_file(M_ROOT.$dirstr.'1.html'))) @str2file(blank_content("list.php?$cnstr$suffix"),M_ROOT.$dirstr.'1.html');
		if(in_str('bk',$pstr) && ($force || !is_file(M_ROOT.$dirstr.'bk_1.html'))) @str2file(blank_content("list.php?bk=1&$cnstr$suffix"),M_ROOT.$dirstr.'bk_1.html');
	}
}
function cn_pmids($cnstr,$sid=0){
	parse_str($cnstr,$idsarr);
	$pmids = array();
	foreach($idsarr as $k => $v){
		$item = $k == 'caid' ? read_cache('catalog',$v,'',$sid) : read_cache('coclass',str_replace('ccid','',$k),$v);
		$pmids[] = $item['permission'];
	}
	unset($item,$idsarr);
	return $pmids;
}
function cn_parsearr($cnstr,$sid=0){//取得当前类目的信息,应该取最末端类目的类的信息才对
	parse_str($cnstr,$idsarr);
	$infos = array();
	$i = 0;
	$num = count($idsarr);
	foreach($idsarr as $k => $v){
		$i ++;
		if($k != 'caid') $coid = intval(str_replace('ccid','',$k));
		$item = $k == 'caid' ? read_cache('catalog',$v,'',$sid) :  read_cache('coclass',$coid,$v);
		$infos[$k == 'caid' ? 'caid' : "cotype$coid"] = $v;
		$infos[$k == 'caid' ? 'catalog' : 'cotype'.$coid.'title'] = $item['title'];
		$i == $num && $infos = array_merge($infos,$item);
	}
	unset($item,$idsarr);
	return $infos;
}
function re_cnode(&$item,&$cnstr,&$cnode){
	global $cms_abs,$sid;
	if($cnode){
		foreach(array('indexurl','listurl','bkurl') as $var) $item[$var] = $cnode[$var]; 
		$item['alias'] = empty($cnode['alias']) ? $item['title'] : $cnode['alias'];
		$item['rss'] = $cms_abs.'rss.php'.(empty($cnstr) ? '' : "?$cnstr").($sid ? ((empty($cnstr) ? '?' : '&')."sid=$sid") : '');
	}else{
		foreach(array('index','list','bk') as $var) $item[$var.'url'] = '#';
	}
}
?>