function marc_static($maid = 0, $matid = 0) { //只是将公示页生成静态,受限页不生成静态 global $db, $tblprefix, $arc, $cms_abs, $marchtmldir, $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); if ($maid) { $arc->init(); $arc->arcid($maid, $matid); } if (empty($arc->maid)) { return false; } if (!$arc->archive['checked']) { marc_un_static(0); return false; } if (!($tplname = $arc->matype['arctpl'])) { return false; } $subpath = $arc->archive['matid'] . '/' . date('Ym', $arc->archive['createdate']) . '/'; mmkdir(M_ROOT . $marchtmldir . '/' . $subpath); $namepre = $subpath . $arc->maid . '_'; $arc->archive['arcurl'] = $cms_abs . $marchtmldir . '/' . $namepre . '1.html'; $_da =& $arc->archive; marc_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'] = $cms_abs . $marchtmldir . '/' . $namepre . '{$page}.html'; $_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(); str2file($_content, M_ROOT . $marchtmldir . '/' . $namepre . "{$_pp}.html"); unset($_content); $pcount = @$_mp['pcount']; } echo $_o_content; unset($_o_content); $_no_dbhalt = false; $db->query("UPDATE {$tblprefix}marchives_{$matid} SET arcurl='" . $namepre . "1.html' WHERE maid='" . $arc->maid . "'"); return true; }
function deal_incell() { global $cotypes, $sid, $orelays, $acatalogs, $m_thumb; if (in_array($this->tclass, array('archives', 'alarchives', 'relates', 'searchs'))) { arc_parse($this->item, $this->temparr['m_thumbid']); } elseif (in_array($this->tclass, array('marchives', 'masearchs'))) { marc_parse($this->item, $this->temparr['m_thumbid']); } elseif ($this->tclass == 'catalogs') { //这是一个特例(含节点),在标识中会加入新元素,需要先处理midarr, //读取继承参数 parse_str(cnstr($this->temparr), $midarr); if (isset($midarr['caid']) && @$this->tag['cainherit'] != 'active') { unset($midarr['caid']); } foreach ($cotypes as $k => $v) { if (isset($midarr['ccid' . $k]) && @$this->tag['coinherit' . $k] != 'active') { unset($midarr['ccid' . $k]); } } $listby = $this->tag['listby'] == 'ca' ? 0 : intval(str_replace('co', '', $this->tag['listby'])); if (!$listby) { //先处理非列表项目,因为列表项id要放在最后 foreach ($cotypes as $k => $v) { //读取手动指定的参数 if ($v['sortable'] && !empty($this->tag['coinherit' . $k]) && is_numeric($this->tag['coinherit' . $k])) { $midarr['ccid' . $k] = $this->tag['coinherit' . $k]; } } unset($midarr['caid']); $midarr['caid'] = $this->item['caid']; } else { $coid = $listby; if (!empty($this->tag['cainherit']) && is_numeric($this->tag['cainherit'])) { $midarr['caid'] = $this->tag['cainherit']; } foreach ($cotypes as $k => $v) { $k != $coid && $v['sortable'] && !empty($this->tag['coinherit' . $k]) && is_numeric($this->tag['coinherit' . $k]) && ($midarr['ccid' . $k] = $this->tag['coinherit' . $k]); } unset($midarr['ccid' . $coid]); $midarr['ccid' . $coid] = $this->item['ccid']; } if (!empty($this->tag['urlmode']) && !empty($midarr[$this->tag['urlmode']])) { $midarr = array_merge(array($this->tag['urlmode'] => $midarr[$this->tag['urlmode']]), $midarr); } $nsid = empty($this->tag['nsid']) ? 0 : intval($this->tag['nsid']); if (!$nsid) { $nsid = isset($temparr['nsid']) ? $temparr['nsid'] : $sid; //当前子站需要分析是否有传下来的id,否则认为是全局id } elseif ($nsid == -1) { $nsid = 0; } elseif ($nsid == -2) { $nsid = $sid; } $cnstr = cnstr($midarr); $this->item = cn_parsearr($cnstr, $nsid, $listby, $this->temparr['m_thumbid']); $cnode = cnodearr($cnstr, $this->item['sid']); re_cnode($this->item, $cnstr, $cnode); unset($cnode, $midarr); } elseif ($this->tclass == 'farchives') { $m_thumb->config[$this->temparr['m_thumbid']] = array('id' => $this->item['aid'], 'mode' => 'fa', 'smode' => $this->item['chid']); } elseif ($this->tclass == 'commus') { $m_thumb->config[$this->temparr['m_thumbid']] = array('id' => $this->item['cid'], 'mode' => 'cu', 'smode' => @$this->tag['cuid']); } elseif ($this->tclass == 'mcommus') { $m_thumb->config[$this->temparr['m_thumbid']] = array('id' => $this->item['cid'], 'mode' => 'mcu', 'smode' => @$this->tag['cuid']); } elseif ($this->tclass == 'mcatalogs') { if ($this->tag['listby'] == 'ca') { $this->item['indexurl'] = mcn_url($this->item['mcaid']); $this->item['listurl'] = mcn_url($this->item['mcaid'], 0, 1); } elseif ($this->tag['listby'] == 'uc') { $this->item['indexurl'] = mcn_url($this->item['mcaid'], $this->item['ucid']); $this->item['listurl'] = mcn_url($this->item['mcaid'], $this->item['ucid'], 1); } } elseif ($this->tclass == 'images') { if ($this->tmode == 'p') { $m_thumb->config[$this->temparr['m_thumbid']] = $m_thumb->config['main']; } if (@$this->tag['thumb'] && @$this->tag['maxwidth'] && @$this->tag['maxheight'] && islocal($this->item['url'], 1)) { //生成缩略图或启用缩略图 $true_local = islocal($this->item['url'], 2); if ($true_local && is_file(local_atm($this->item['url']) . 's/' . $this->tag['maxwidth'] . '_' . $this->tag['maxheight'] . '.jpg') || !$true_local && in_str($this->tag['maxwidth'] . '_' . $this->tag['maxheight'], @$this->item['thumbs'])) { //已生成缩略图 $this->item['url_s'] = $this->item['url'] . 's/' . $this->tag['maxwidth'] . '_' . $this->tag['maxheight'] . '.jpg'; } else { $this->item['url_s'] = @$m_thumb->thumb($this->item['url'], $this->temparr['m_thumbid'], $this->tag['tname'], $this->item['fid'], @$this->tag['maxwidth'], @$this->tag['maxheight']); } } else { $this->item['url_s'] = $this->item['url']; } if ($this->item['url_s'] != $this->item['url']) { //真正启用了缩略图,直接使用设定的宽高 $this->item['width'] = @$this->tag['maxwidth']; $this->item['height'] = @$this->tag['maxheight']; } else { //使用原图来重计宽高 $wh = imagewh($this->item['url'], @$this->item['width'], @$this->item['height'], @$this->tag['maxwidth'], @$this->tag['maxheight']); $this->item['width'] = $wh['width']; $this->item['height'] = $wh['height']; } } elseif ($this->tclass == 'members') { global $grouptypes; foreach ($grouptypes as $k => $v) { $this->item['grouptype' . $k . 'name'] = ''; if (!empty($this->item['grouptype' . $k])) { $usergroups = read_cache('usergroups', $k); $this->item['grouptype' . $k . 'name'] = $usergroups[$this->item['grouptype' . $k]]['cname']; } } $m_thumb->config = array('id' => $this->item['mid'], 'mode' => 'm', 'smode' => $this->item['mchid']); unset($usergroups, $v); } //从上级标识接受参数作为当前原始标识 if (!empty($this->tag['rrelays'])) { $midarr = array(); $relays = relays2arr($this->tag['rrelays']); foreach ($relays as $k => $v) { if (isset($this->temparr[$v])) { $midarr[$k] = $this->temparr[$v]; } } $this->item += $midarr; unset($midarr); } $this->item += $this->temparr; //从当前原始标识向下级标识传送参数 $this->midarr = $this->temparr; $relays = $orelays; !empty($this->tag['relays']) && ($relays = relays2arr($this->tag['relays']) + $relays); foreach ($relays as $k => $v) { if (isset($this->item[$v])) { $this->midarr[$k] = $this->item[$v]; } } unset($relays); }
//是否权限控制页 $arc = new cls_marchive(); if (!$arc->arcid($maid, $matid)) { message('choosemarchive'); } if (!$arc->archive['checked'] && !$curuser->isadmin()) { message('pointmarchinoch'); } if ($isp && !$curuser->pmbypmids('aread', $arc->matype['rpmid'])) { message('nomarcreadpermission'); } //分析模板来源 $tplname = $isp ? $arc->matype['parctpl'] : $arc->matype['arctpl']; !$tplname && message('definereltem'); $_da =& $arc->archive; marc_parse($_da); $_mp = array(); $_mp['durlpre'] = view_url(en_virtual('marchive.php?maid=' . $maid . '&matid=' . $matid . ($isp ? '&isp=1' : '') . '&page={$page}', 1)); $_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(); ob_clean(); mexit($_content); ?>