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'] = '#'; } } ?>