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

    <?
include_once './include/general.inc.php';
include_once M_ROOT.'./include/common.fun.php';
include_once M_ROOT.'./include/archive.fun.php';
include_once M_ROOT.'./include/archive.cls.php';

//分析基本信息
$querystr = $_SERVER['QUERY_STRING'];
un_virtual($querystr);
parse_str($querystr);
$page = empty($page) ? 1 :  max(1, intval($page));
empty($aid) && message(lang('confirmchoose archive'));
$aid = max(0,intval($aid));
$arc = new cls_archive();
if(!$arc->arcid($aid)) message(lang('confirmchoose archive'));
if(!$arc->archive['checked'] && !$curuser->isadmin()) message(lang('pointed archive nocheck')); 

//分析所在子站
switch_cache($arc->archive['sid']);
$sid = $arc->archive['sid'];
if_siteclosed($sid);

//分析权限与扣积分,文章出售
$ispre = 0;//是否启动前导页
if($arc->archive['atid']) $altype = read_cache('altype',$arc->archive['atid'],'',$sid);
$pretpl = $arc->archive['atid'] ? $altype['pretpl'] : $arc->channel['pretpl'];
if(!arc_allow($arc->archive,'aread')){//如果有备用页,则进入备用页。
	if(!$pretpl) message(lang('none archive browse permission'));
	$ispre = 1;
}
if($crids = $arc->arc_crids()){//需要对当前用户扣值
	$cridstr = '';
	foreach($crids['total'] as $k => $v) $cridstr .= ($cridstr ? ',' : '').abs($v).$currencys[$k]['unit'].$currencys[$k]['cname'];
	$commu = read_cache('commu',8);
	if(!empty($commu['setting']['autoarc'])){//不自动扣值的情况:如有前导页,进前导页,否则提示出订阅链接,选择是否订阅
		if(!$pretpl) message(lang('purchase this archive want pay currency &nbsp;:&nbsp;').$cridstr."<br><br><a href=\"subscribe.php?aid=$aid\">>>".lang('subscribe')."</a>");
		$ispre = 1;
	}else{//自动扣值,当前会员扣值及向出售者支付积分
		if(!$curuser->crids_enough($crids['total'])) message(lang('purchase this archive want pay currency &nbsp;:&nbsp;').$cridstr.lang('<br><br> you nohave subscribe this archive wanted enough currency !'));
		$curuser->updatecrids($crids['total'],0,lang('subscribe archive'));
		$curuser->payrecord($arc->aid,0,$cridstr,1);
		if(!empty($crids['sale'])){
			$actuser = new cls_userinfo;
			$actuser->activeuser($arc->archive['mid']);
			foreach($crids['sale'] as $k => $v) $crids['sale'][$k] = -$v;
			$actuser->updatecrids($crids['sale'],1,lang('sale archive'));
			unset($actuser);
		}
	}
}

//读取缓存页面
if(!$enablestatic && $cache1circle){
	$cachefile = htmlcac_dir($ispre ? 'pre' : 'arc',date('Ym',$arc->archive['createdate']),1).cac_namepre($arc->aid).'_'.$page.'.php';//前导页与正式页的缓存需要区分开
	if(is_file($cachefile) && (filemtime($cachefile) > ($timestamp - $cache1circle * 60))) mexit(read_htmlcac($cachefile));
}

//分析模板来源
$tplname = $ispre ? $pretpl : ($arc->archive['atid'] ?  $altype['arctpl'] : $arc->channel['arctpl']);
!$tplname && message(lang('please define related template !'));
$arc->template = @load_tpl($tplname,1);
!$arc->template && message(lang('please add template content !'));
//解析页面内容
$arc->detail_data();
$arc->parsedata();
$arc->mpcheck();//一定要在parsedata之后执行
$temparr = $arc->transarr();
$arc->mpinfos['durlpre'] = $cms_abs."archive.php?aid=".$arc->aid."&page=";
$arc->mpinfos['nowpage'] = max(1,min(intval($page),$arc->mpinfos['pcount']));
$arc->mpinfos['static'] = 0;
$s_item = array();
$arc->nreplace($arc->template,'p',$s_item);
nreplace($arc->template,'c',$temparr);
$arc->nreplace($arc->template,'u',$s_item);
$arc->nreplace($arc->template,'b',$s_item);
code_parse($arc->template);
//处理被动静态及缓存,输出页面
$arc->template .= "<script language=\"javascript\" src=\"".$cms_abs."static.php?mode=arc&fromd=1&aid=$aid".($sid ? "&sid=$sid" : '')."\"></script>";
if(!$enablestatic && $cache1circle) save_htmlcac($arc->template,$cachefile);
mexit($arc->template);
?>