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 : ').$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 : ').$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); ?>