function mindex_static($cnstr = '', $addno = 0, $needwri = 1) { global $db, $tblprefix, $cms_abs, $liststaticnum, $homedefault, $sid, $enablestatic, $timestamp, $templatedir, $G, $_no_dbhalt, $btags, $mconfigs, $_mp, $_actid, $_midarr, $_a_vars, $_a_var, $mpnav, $mptitle, $mpstart, $mpend, $mppre, $mpnext, $mppage, $mpcount, $mpacount; @extract($mconfigs, EXTR_SKIP); @extract($btags); $nenablestatic = $enablestatic; if ($cnstr) { if (!($cnode = read_mcnode($cnstr)) || $addno > $cnode['addnum']) { return false; } $statics = empty($cnode['statics']) ? array() : explode(',', $cnode['statics']); $nenablestatic = empty($statics[$addno]) ? $enablestatic : ($statics[$addno] == 1 ? 0 : 1); } elseif ($addno) { return false; } //频道首页不能带附加页 if (!$nenablestatic || !($tplname = mcn_tplname($cnstr, $addno))) { mindex_unstatic($cnstr, $addno, $needwri); return false; } if ($cnstr) { parse_str($cnstr, $_da); $_da += m_cnparse($cnstr) + mcnodearr($cnstr); } else { $_da = array(); } $cnformat = mcn_format($cnstr, $addno); $_o_content = ob_get_contents(); ob_clean(); $_no_dbhalt = true; $pcount = 1; for ($_pp = 1; $_pp <= $pcount; $_pp++) { $_mp = $G = array(); $_mp['durlpre'] = $memberurl . en_virtual($cnstr ? "index.php?{$cnstr}" . ($addno ? "&addno={$addno}" : '') . '&page={$page}' : 'index.php?page={$page}', 1); $_mp['surlpre'] = view_url($cnformat); $_mp['static'] = 1; $_mp['nowpage'] = max(1, intval($_pp)); $_mp['s_num'] = $liststaticnum; _aenter($_da, 1); extract($_da, EXTR_OVERWRITE); $sid = 0; //???????????????????????????????????????? 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=mcnode" . ($cnstr ? "&{$cnstr}" : '') . ($addno ? "&addno={$addno}" : '') . "\"></script>"; @str2file($_content, M_ROOT . m_parseurl($cnformat, array('page' => $_pp))); unset($_content); $pcount = empty($liststaticnum) ? @$_mp['pcount'] : min(@$_mp['pcount'], $liststaticnum); } echo $_o_content; unset($_o_content, $_da, $cnode); $_no_dbhalt = false; if ($needwri) { mcn_update_needstatic($cnstr, $addno, 1); } return true; }
} elseif ($staticmode == 1) { index_static('', 0, 1); } elseif ($staticmode == 2) { index_unstatic('', 0, 1); } elseif ($staticmode == 3) { $sid && cn_blank('', $sid, 0); } } if (in_array('m', $ptypes)) { include_once M_ROOT . "./include/mcn_static.fun.php"; if (empty($staticmode)) { $db->query("UPDATE {$tblprefix}mconfigs SET value='{$timestamp}' WHERE varname='mcnneedstatic'"); } elseif ($staticmode == 1) { mindex_static('', 0, 1); } elseif ($staticmode == 2) { mindex_unstatic('', 0, 1); } } adminlog(lang('indstaadm')); amessage('inddeafin', "?entry={$entry}&action={$action}{$param_suffix}"); } } elseif ($action == 'mcnodes') { $staticmode = max(0, intval(@$staticmode)); $numperpic = min(500, max(20, intval(@$numperpic))); $mcnvar = trim(@$mcnvar); if (!isset($ptypestr)) { $ptypes = empty($ptypes) ? array() : $ptypes; $ptypestr = implode(',', $ptypes); } else { $ptypes = explode(',', $ptypestr); }