예제 #1
0
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;
}
예제 #2
0
parse_str(un_virtual($_SERVER['QUERY_STRING']), $temparr);
$cnstr = mcnstr($temparr);
$addno = max(0, intval(@$temparr['addno']));
$page = max(1, intval(@$temparr['page']));
if (!($cnode = read_mcnode($cnstr))) {
    $cnstr = '';
    $addno = 0;
}
$cache1circle && ($cachefile = htmlcac_dir('mcn', '', 1) . cac_namepre($cnstr, $addno) . '_' . $page . '.php');
if ($cache1circle && is_file($cachefile) && filemtime($cachefile) > $timestamp - $cache1circle * 60) {
    mexit(read_htmlcac($cachefile));
}
$_da = $temparr;
if ($cnstr) {
    $_da += m_cnparse($cnstr);
    $_da += mcnodearr($cnstr);
    $tplname = mcn_tplname($cnstr, $addno);
    $statics = empty($cnode['statics']) ? array() : explode(',', $cnode['statics']);
    $enablestatic = empty($statics[$addno]) ? $enablestatic : ($statics[$addno] == 1 ? 0 : 1);
} else {
    $tplname = @$m_index_tpl;
}
empty($tplname) && message('definereltem');
$_mp = array('durlpre' => $memberurl . en_virtual("index.php?" . substr(($cnstr ? "&{$cnstr}" : '') . ($addno ? "&addno={$addno}" : '') . '&page={$page}', 1), 1), 'static' => 0, 'nowpage' => $page);
_aenter($_da, 1);
@extract($btags);
extract($_da, EXTR_OVERWRITE);
$sid = 0;
tpl_refresh($tplname);
@(include M_ROOT . "template/{$templatedir}/pcache/{$tplname}.php");
$_content = ob_get_contents();