function arc_static($aid = 0, $addno = 0, $needwri = 1) { //可能需要多个页面同时进行 global $db, $tblprefix, $arc, $sid, $timestamp, $cms_abs, $enablestatic, $archivecircle, $templatedir, $G, $_no_dbhalt, $btags, $mconfigs, $_mp, $_actid, $_midarr, $_a_vars, $_a_var, $mpnav, $mptitle, $mpstart, $mpend, $mppre, $mpnext, $mppage, $mpcount, $mpacount; if ($aid) { $arc->arcid($aid); } if (empty($arc->aid) || $addno > $arc->channel['addnum']) { return false; } @extract($mconfigs, EXTR_SKIP); switch_cache($arc->archive['sid']); $sid = $arc->archive['sid']; @extract($btags); $tplname = arc_tplname($addno, $arc->archive['arctpls'], $arc->channel['arctpls']); $staticarr = empty($arc->channel['statics']) ? array() : explode(',', $arc->channel['statics']); $nenablestatic = empty($staticarr[$addno]) ? $enablestatic : ($staticarr[$addno] == 1 ? 0 : 1); if (!$nenablestatic || !arc_allowstatic($arc->archive) || !$tplname) { arc_un_static(0, $addno, $needwri, 1); return false; } $arc->detail_data(); $surlpre = $arc->urlpre($addno, 1); $filepre = $arc->filepre($addno); $_da =& $arc->archive; arc_parse($_da); $_o_content = ob_get_contents(); ob_clean(); $_no_dbhalt = true; $pcount = 1; for ($_pp = 1; $_pp <= $pcount; $_pp++) { $_mp = $G = array(); $_mp['surlpre'] = $surlpre; $_mp['static'] = 1; $_mp['nowpage'] = $_pp; _aenter($_da, 1); extract($_da, EXTR_OVERWRITE); tpl_refresh($tplname); @(include M_ROOT . "template/{$templatedir}/pcache/{$tplname}.php"); $_content = ob_get_contents(); ob_clean(); $_content .= "<script language=\"javascript\" src=\"" . $cms_abs . "tools/static.php?mode=arc&aid={$aid}" . ($addno ? "&addno={$addno}" : '') . ($sid ? "&sid={$sid}" : '') . "\"></script>"; $arcfile = m_parseurl($filepre, array('page' => $_pp)); str2file($_content, M_ROOT . $arcfile); unset($_content); $pcount = @$_mp['pcount']; } echo $_o_content; unset($_o_content); $_no_dbhalt = false; if ($needwri) { $arc->update_needstatic($addno, 1); } return true; }
$crids['sale'][$k] = -$v; } $actuser->updatecrids($crids['sale'], 1, lang('salearchive')); 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_tplname($addno, $arc->archive['arctpls'], $arc->channel['arctpls']); !$tplname && message('definereltem'); $arc->detail_data(); $durlpre = $arc->urlpre($addno); $_da =& $arc->archive; arc_parse($_da); $_mp = array(); $_mp['durlpre'] = $durlpre; $_mp['static'] = 0; $_mp['nowpage'] = max(1, intval($page)); $_mp['s_num'] = 0; //静态页数不限 _aenter($_da, 1); @extract($btags); extract($_da, EXTR_OVERWRITE); tpl_refresh($tplname);
message('wap_cantdeductions'); } $curuser->updatecrids($crids['total'], 0, lang('subscribearchive')); $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('salearchive')); unset($actuser); } } //分析模板来源 $tplname = arc_tplname($addno, '', $arc->channel['warctpls']); $tplname || message('wap_definereltem'); $arc->detail_data(); $durlpre = $arc->urlpre($addno); $_da =& $arc->archive; arc_parse($_da); $_mp = array(); $_mp['durlpre'] = $durlpre; $_mp['static'] = 0; $_mp['nowpage'] = max(1, intval($page)); _aenter($_da, 1); @extract($btags); extract($_da, EXTR_OVERWRITE); tpl_refresh($tplname); include M_ROOT . "template/{$templatedir}/pcache/{$tplname}.php"; $_content = ob_get_contents();