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

    <?php
!defined('M_COM') && exit('No Permission');
function index_static($cnstr = '',$needwri = 1){
	global $db,$tblprefix,$cms_abs,$sid,$homedefault,$enablestatic,$cnindexcircle,$cms_abs,$hometpl,$timestamp,$btags;
	$item = array();
	if(!$cnstr){
		$tplname = !$sid ? $hometpl : $btags['hometpl'];
		if(!$enablestatic || !$tplname || !($template = load_tpl($tplname))){//子站的各种配置切换
			index_unstatic($cnstr,$needwri);
			return false;
		}
		$htmlfile = M_ROOT.($sid ? cn_htmldir($cnstr,$sid,1) : '').$homedefault;
		$item['rss'] = $cms_abs.'rss.php'.($sid ? "?sid=$sid" : '');
	}else{
		if(!$cnode = cnodearr($cnstr,$sid)) return false;
		if(!$enablestatic || !cn_allowstatic($cnstr,$sid) || !($tplname = $cnode['indextpl']) || !($template = load_tpl($tplname))){
			index_unstatic($cnstr,$needwri);
			return false;
		}
		$htmlfile = M_ROOT.cn_htmldir($cnstr,$sid,1).$homedefault;
		$item = cn_parsearr($cnstr,$sid);
		re_cnode($item,$cnstr,$cnode);
	}
	parse_str($cnstr,$temparr);
	nreplace($template,'c',$temparr);
	nreplace($template,'u',$item);
	nreplace($template,'b',$item);
	code_parse($template);
	$template .= "<script language=\"javascript\" src=\"".$cms_abs."static.php?mode=cnindex".($sid ? "&sid=$sid" : '').($cnstr ? "&$cnstr" : '')."\"></script>";
	@str2file($template,$htmlfile);
	if($needwri){
		if($cnstr){
			$db->query("UPDATE {$tblprefix}cnodes SET ineedstatic='".($timestamp + (!$cnindexcircle ? 86400*365 : $cnindexcircle * 60))."' WHERE ename='$cnstr'");
		}elseif($sid){
			$db->query("UPDATE {$tblprefix}subsites SET ineedstatic='".($timestamp + (!$cnindexcircle ? 86400*365 : $cnindexcircle * 60))."' WHERE sid='$sid'");
		}else $db->query("UPDATE {$tblprefix}mconfigs SET value='".($timestamp + (!$cnindexcircle ? 86400*365 : $cnindexcircle * 60))."' WHERE varname='ineedstatic'");
	}
	unset($template,$item,$temparr,$midarr,$mpinfo,$cnode);
	return true;
}
function list_static($cnstr = '',$isbk = 0,$needwri = 1){
	global $db,$tblprefix,$cms_abs,$liststaticnum,$virtualurl,$sid,$enablestatic,$cnlistcircle,$cms_abs,$timestamp;
	if(!$cnode = cnodearr($cnstr,$sid)) return false;
	if(!$enablestatic || !cn_allowstatic($cnstr,$sid) || !($tplname = $cnode[$isbk ? 'bktpl' : 'listtpl']) || !($template = load_tpl($tplname))){
		list_unstatic($cnstr,$isbk,$needwri);
		return false;
	}
	$item = cn_parsearr($cnstr,$sid);
	re_cnode($item,$cnstr,$cnode);
	$filepre = cn_htmldir($cnstr,$sid,1).($isbk ? 'bk_' : '');

	parse_str($cnstr,$temparr);
	$pagenum = 1;//初始化页数
	if(preg_match("/\{p\\$(.+?)\s+(.*?)\{\/p\\$\\1\}/is",$template,$matches)){
		$midarr = $temparr;
		$mpinfo = mpinfo($matches[1],stripslashes($matches[2]),$midarr);
		$midarr = array_merge($midarr,$mpinfo);
		$midarr['durlpre'] = $cms_abs.'list.php?'.($isbk ? 'bk=1&' : '').($sid ? "sid=$sid&" : '').$cnstr.'&page=';
		$midarr['surlpre'] = $cms_abs.$filepre;
		$midarr['static'] = 1;
		$pagenum = empty($liststaticnum) ? $midarr['pcount'] : min($midarr['pcount'],$liststaticnum);
		$mp_exist = true;
		unset($matches,$mpinfo);
	}
	for($i = 1;$i <= $pagenum;$i++){
		$pagebody = $template;
		if(!empty($mp_exist)){//存在分页标识
			$midarr['nowpage'] = $i;
			$item['mpnav'] = mpnav($midarr,$virtualurl,$liststaticnum);
			nreplace($pagebody,'p',$midarr);
		}
		nreplace($pagebody,'c',$temparr);
		nreplace($pagebody,'u',$item);
		nreplace($pagebody,'b',$item);
		code_parse($pagebody);
		$pagebody .= "<script language=\"javascript\" src=\"".$cms_abs."static.php?mode=".($isbk ? 'cnbk' : 'cnlist').($sid ? "&sid=$sid" : '').($cnstr ? "&$cnstr" : '')."\"></script>";
		@str2file($pagebody,M_ROOT.$filepre.$i.'.html');
	}
	if($needwri){
		$db->query("UPDATE {$tblprefix}cnodes SET ".($isbk ? 'bk' : 'l')."needstatic='".($timestamp + (!$cnlistcircle ? 86400*365 : $cnlistcircle * 60))."' WHERE ename='$cnstr'");
	}
	unset($pagebody,$template,$item,$temparr,$midarr,$mpinfo,$cnode);
	return;
}
function index_unstatic($cnstr='',$needwri=1){
	global $db,$tblprefix,$sid,$cnindexcircle,$homedefault,$timestamp;
	if($cnstr){
		if(!($cnode = cnodearr($cnstr,$sid))) return;
		cn_blank($cnstr,'i',$sid,1);
		$needwri && $db->query("UPDATE {$tblprefix}cnodes SET ineedstatic='".($timestamp + (!$cnindexcircle ? 86400*365 : $cnindexcircle * 60))."' WHERE ename='$cnstr'");
	}elseif($sid){
		cn_blank($cnstr,'i',$sid,1);
		$needwri && $db->query("UPDATE {$tblprefix}subsites SET ineedstatic='".($timestamp + (!$cnindexcircle ? 86400*365 : $cnindexcircle * 60))."' WHERE sid='$sid'");
	}else{
		@unlink(M_ROOT.$homedefault);
		$needwri && $db->query("UPDATE {$tblprefix}mconfigs SET value='".($timestamp + (!$cnindexcircle ? 86400*365 : $cnindexcircle * 60))."' WHERE varname='ineedstatic'");
	}
	return true;
}
function list_unstatic($cnstr,$isbk = 0,$needwri=1){
	global $db,$tblprefix,$sid,$cnlistcircle,$timestamp;
	if(!($cnode = cnodearr($cnstr,$sid))) return;
	cn_blank($cnstr,$isbk ? 'bk' : 'l',$sid,1);
	$needwri && $db->query("UPDATE {$tblprefix}cnodes SET ".($isbk ? 'bk' : 'l')."needstatic='".($timestamp + (!$cnlistcircle ? 86400*365 : $cnlistcircle * 60))."' WHERE ename='$cnstr'");
	return;
}

?>