function mcnodes_update($cname) { global $db, $tblprefix; $mcnodes = array(); $query = $db->query("SELECT * FROM {$tblprefix}mcnodes"); while ($row = $db->fetch_array($query)) { $mcnodes[$row['ename']] = $row; } cache2file($mcnodes, 'mcnodes', '', 0); unset($mcnodes, $row); }
$cmsinfos['lic_str'] = ''; if ($lic_infos = @file($lic_file)) { $lic_infos = array_filter($lic_infos); $cmsinfos['lic_str'] = str_replace(array("\r", "\n"), '', implode('-', $lic_infos)); } if (!preg_match("/[\\d\\.]{7,15}/", $now_svr)) { $upstr = ''; $cms_up_url = $cms_upurl; $updates = array('mcharset' => $mcharset, 'cms_version' => $cms_version, 'lan_version' => $lan_version, 'server_name' => $now_svr, 'cmsname' => $cmsname, 'lic_str' => $cmsinfos['lic_str']); foreach ($updates as $k => $v) { $upstr .= $k . '=' . rawurlencode($v) . '&'; } $cms_up_url .= '/upmsg.php?update=' . rawurlencode(base64_encode($upstr)) . '&md5sign=' . substr(md5($_SERVER['HTTP_USER_AGENT'] . $upstr . $timestamp), 8, 8) . '&uptime=' . $timestamp; unset($updates, $upstr); } cache2file($cmsinfos, 'cmsinfos'); } $archivestr = $memberstr = ''; foreach ($tblarr as $k => $v) { $var = in_array($k, array('archive', 'comment', 'reply', 'answer', 'orders', 'offer')) ? 'archivestr' : 'memberstr'; ${$var} .= '<tr><td class="bgc_E7F5FE fB">' . lang($k) . '</td><td class="bgc_FFFFFF">' . @$cmsinfos[$k]['ck'] . '</td><td class="bgc_FFFFFF">' . @$cmsinfos[$k]['nock'] . '</td><td class="bgc_FFFFFF">' . @$cmsinfos[$k]['m'] . '</td><td class="bgc_FFFFFF">' . @$cmsinfos[$k]['w'] . '</td><td class="bgc_FFFFFF">' . @$cmsinfos[$k]['d3'] . '</td><td class="bgc_FFFFFF">' . @$cmsinfos[$k]['d1'] . '</td></tr>'; } $lic_str = empty($cmsinfos['lic_str']) ? lang('lic_uk') . ' <a href="http://www.08cms.com" target="_blank" class="cRed">' . lang('lic_by') . '</a>' : lang('lic_no') . $cmsinfos['lic_str'] . '<a href="http://www.08cms.com" target="_blank" class="cRed">' . lang('lic_ck') . '</a>'; $cmsinfos['server'] = PHP_OS . '/PHP ' . PHP_VERSION; $cmsinfos['safe_mode'] = @ini_get('safe_mode') ? 'ON' : 'OFF'; $cmsinfos['max_upload'] = @ini_get('upload_max_filesize') ? @ini_get('upload_max_filesize') : 'Disabled'; $cmsinfos['allow_url_fopen'] = @ini_get('allow_url_fopen') ? "YES" : "NO"; $cmsinfos['gdpic'] = function_exists("imagealphablending") && function_exists("imagecreatefromjpeg") && function_exists("ImageJpeg") ? 'YES' : 'NO'; $cmsinfos['servertime'] = date("Y-m-d H:i"); $gid = $curuser->info['grouptype2']; $group = read_cache('usergroups', 2);
}*/ if (!empty($tagutclass)) { in_array($tagutclass, $clscname) && amessage('utcls_exist', axaction(1, M_REFERER)); # $tagclasses[$utc.$clsindex] = array( $tagclasses[auto_utc_index()] = array('cname' => $tagutclass, 'vieworder' => max(0, intval($tagutclassorder))); } if (!empty($utclassnew)) { foreach ($utclassnew as $key => $clsnew) { if (array_key_exists($key, $tagclasses)) { !empty($clsnew['cname']) && !in_array($clsnew['cname'], $clscname) && ($tagclasses[$key]['cname'] = $clsnew['cname']); $tagclasses[$key]['vieworder'] = max(0, intval($clsnew['vieworder'])); } } } multisort($tagclasses); cache2file($tagclasses, 'tagclasses', 'usualtags', $sid); adminlog(lang('edit_tagclasses_mlist')); amessage('utcls_fin', axaction(1, M_REFERER)); } } function multisort(&$arr) { if (!is_array($arr) || empty($arr) || !function_exists('array_multisort')) { return; } foreach ($arr as $k => $v) { $vorder[$k] = $v['vieworder']; $eorder[$k] = $k; } array_multisort($vorder, SORT_ASC, $eorder, SORT_ASC, $arr); }
} foreach ($utags as $k => $v) { $ocache = read_cache('utag', $k, '', $nsid); cache2file($ocache, cache_name('utag', $k), 'utag', 0); } foreach ($ctags as $k => $v) { $ocache = read_cache('ctag', $k, '', $nsid); cache2file($ocache, cache_name('ctag', $k), 'ctag', 0); } foreach ($ptags as $k => $v) { $ocache = read_cache('ptag', $k, '', $nsid); cache2file($ocache, cache_name('ptag', $k), 'ptag', 0); } foreach ($rtags as $k => $v) { $ocache = read_cache('rtag', $k, '', $nsid); cache2file($ocache, cache_name('rtag', $k), 'rtag', 0); } clear_dir(M_ROOT . $subsite['dirname'], true); //清除子站目录 clear_dir(M_ROOT . "dynamic/cache/{$nsid}/", true); //清除子站缓存 m_unlink($homedefault); //清除可能残留的静态首页 $db->query("DELETE FROM {$tblprefix}subsites WHERE sid='{$nsid}'", 'SILENT'); rebuild_cache(-1); adminlog(lang('subsittranstmsite')); amessage('subtramsifin', '?entry=subsites&action=subsitesedit'); } elseif ($action == 'subsitedel' && $nsid) { if (empty($confirm)) { $message = lang('delsubsite') . '<br><br>' . lang('del_alert') . "<br><br>"; $message .= lang('confirmclick') . "[<a href=?entry=subsites&action=subsitedel&nsid=" . $nsid . "&confirm=1>" . lang('delete') . "</a>] ";
if (!empty($unsetvars1[$key]) && in_array($val, $unsetvars1[$key])) { unset($mtagnew['setting'][$key]); } } } $mtagnew['template'] = empty($mtagnew['template']) ? '' : stripslashes($mtagnew['template']); $mtagnew['disabled'] = empty($mtag['disabled']) ? 0 : 1; $mtag = array('cname' => stripslashes($mtagnew['cname']), 'ename' => $mtagnew['ename'], 'tclass' => $tclass, 'template' => $mtagnew['template'], 'setting' => $mtagnew['setting'], 'disabled' => $mtagnew['disabled']); $mtags[$mtagnew['ename']] = array('tclass' => $tclass, 'vieworder' => $mtags[$tname]['vieworder']); cache2file($mtag, cache_name($ttype, $mtagnew['ename']), $ttype, $sid); if ($mtagnew['ename'] != $tname) { del_cache($ttype, $tname, '', $sid); unset($mtags[$tname]); } mtags_order($mtags); cache2file($mtags, $ttype . 's', $ttype . 's', $sid); adminlog(lang('detamod' . $ttype)); amessage('tagmodfin', axaction(6, $forward)); } } function mtags_order(&$mtags) { if (!is_array($mtags) || empty($mtags) || !function_exists('array_multisort')) { return; } foreach ($mtags as $k => $v) { $vorder[$k] = $v['vieworder']; $eorder[$k] = $k; } array_multisort($vorder, SORT_ASC, $eorder, SORT_ASC, $mtags); }
if (!submitcheck('bmtplcopy')) { !is_file($true_tpldir . '/' . $tplname) && amessage('poisotemfino'); tabheader(lang('copnormapagetemp'), 'mtplcopy', "?entry=mtpls&action=mtplcopy{$param_suffix}&tplname={$tplname}"); trbasic(lang('templatecname'), 'mtpladd[cname]'); trbasic(lang('templateclass'), 'mtpladd[tpclass]', makeoption($tpclasses, $mtpl['tpclass']), 'select'); trbasic(lang('soctemfi'), '', $tplname, ''); trbasic(lang('tempfilsav'), 'mtpladd[tplname]'); tabfooter('bmtplcopy'); a_guide('mtplcopy'); } else { (!$mtpladd['cname'] || !$mtpladd['tplname']) && amessage('datamissing', M_REFERER); $mtplsnew = findfiles($true_tpldir); in_array($mtpladd['tplname'], $mtplsnew) && amessage('poitemficnarep', M_REFERER); !copy($true_tpldir . '/' . $tplname, $true_tpldir . '/' . $mtpladd['tplname']) && amessage('temcopfai', M_REFERER); $mtpls[$mtpladd['tplname']] = array('cname' => stripslashes($mtpladd['cname']), 'tpclass' => $mtpladd['tpclass']); cache2file($mtpls, 'mtpls', 'mtpls', $sid); adminlog(lang('copynormaltemplate')); amessage('temcopfin', axaction(6, "?entry=mtpls&action=mtplsedit{$param_suffix}")); } } elseif ($action == 'mtagcode') { if (empty($createrange)) { amessage('poitagsou'); } if (preg_match("/\\{(u|c|p)\\\$(.+?)(\\s|\\})/is", $createrange, $matches)) { $ttype = $matches[1] . 'tag'; $tname = $matches[2]; $url = "?entry=mtags&action=mtagsdetail&ttype={$ttype}{$param_suffix}&tname={$tname}"; mheader("location:{$url}"); } elseif (preg_match("/\\{tpl\\\$(.+?)\\}/is", $createrange, $matches)) { $tname = $matches[1]; $url = "?entry=mtags&action=mtagsdetail&ttype=rtag{$param_suffix}&tname={$tname}";
$no++; echo "<tr class=\"txt\">" . "<td class=\"txtC w30\">{$no}</td>\n" . "<td class=\"txtL\">{$v['cname']}</td>\n" . "<td class=\"txtL\">{$v['link']}</td>\n" . "<td class=\"txtC\"><input type=\"text\" size=\"20\" name=\"sptplsnew[{$k}][tplname]\" value=\"" . (empty($sptpls[$k]) ? '' : $sptpls[$k]) . "\"></td>\n" . "<td class=\"txtC w30\"><a href=\"?entry=sptpls&action=sptpldetail&spid={$k}{$param_suffix}\" onclick=\"return floatwin('open_sptplsedit',this)\">" . lang('edit') . "</a></td></tr>\n"; } tabfooter('bsptplsedit', lang('modify')); a_guide('sptplsedit'); } else { foreach ($dbtpls as $k => $v) { $sptplsnew[$k]['tplname'] = trim($sptplsnew[$k]['tplname']); if (preg_match("/[^a-z_A-Z0-9\\.]+/", $sptplsnew[$k]['tplname'])) { $sptplsnew[$k]['tplname'] = ''; } if ($sptplsnew[$k]['tplname'] != @$sptpls[$k]) { $sptpls[$k] = $sptplsnew[$k]['tplname']; } } cache2file($sptpls, 'sptpls', 'sptpls', $sid); adminlog(lang('edsptemmanli')); amessage('pagemodfin', "?entry=sptpls&action=sptplsedit{$param_suffix}"); } } elseif ($action == 'sptpldetail' && $spid) { $dbtpl = $dbtpls[$spid]; $tplname = empty($sptpls[$spid]) ? '' : $sptpls[$spid]; if (!submitcheck('bsptpldetail')) { if (empty($tplname) || !is_file($true_tpldir . '/' . $tplname)) { if (@(!touch($true_tpldir . '/' . $tplname))) { amessage('sptplnoexist', axaction(2, M_REFERER)); } } $template = load_tpl($tplname, 0); tabheader(lang('sptemset') . '-' . $dbtpl['cname'], 'sptpldetail', "?entry=sptpls&action=sptpldetail&spid={$spid}{$param_suffix}"); trbasic(lang('templatecontent'), '', $tplname, '');
} $tagsarr[] = array('utags', ''); $outags = oread_cache('utags', '', '', 'template'); foreach ($outags as $k => $v) { $tagsarr[] = array('utag', $k); } foreach ($tagsarr as $k => $v) { $ocache = oread_cache($v[0], $v[1], '', 'template'); if (!$v[1]) { cache2file($ocache, $v[0], $v[0], $nsid); } else { if (!empty($ocache['template'])) { oreplace($ocache['template'], 'p'); oreplace($ocache['template'], 'c'); } cache2file($ocache, cache_name($v[0], $v[1]), $v[0], $nsid); } } //将一些站点信息写入进来 $omconfigs = oread_cache('mconfigs', '', '', 'cache'); $sqlstr = ''; foreach (array('cmslogo', 'cmstitle', 'cmskeyword', 'cmsdescription', 'hometpl') as $var) { isset($omconfigs[$var]) && ($sqlstr .= ($sqlstr ? ',' : '') . "{$var}='" . addslashes($omconfigs[$var]) . "'"); } $db->query("UPDATE {$tblprefix}subsites SET {$sqlstr} WHERE sid='{$nsid}'"); updatecache('subsites'); $stepeds['templates'] = 1; ocache2file($stepeds, 'stepeds'); amessage('operatesuc', '?entry=subsetup&action=templates'); } elseif (submitcheck('bundo')) { clear_dir($true_tpldir);
function deal_btagnames() { global $btagnames; $commus = reload_cache('commus'); sys_cache('btagnames'); $commoned = 0; $channels = reload_cache('channels'); foreach ($channels as $chid => $channel) { $fields = reload_cache('fields', $chid); foreach ($fields as $k => $field) { if ($field['mcommon']) { !$commoned && ($btagnames[] = array('ename' => $k, 'cname' => $field['cname'], 'bclass' => 'archive', 'sclass' => '', 'datatype' => $field['datatype'])); } else { $btagnames[] = array('ename' => $k, 'cname' => $field['cname'], 'bclass' => 'archive', 'sclass' => $chid, 'datatype' => $field['datatype']); } } if (@$commus[$channel['cuid']]['cclass'] == 'answer') { $btagnames[] = array('ename' => 'appeals', 'cname' => lang('appealamount'), 'bclass' => 'archive', 'sclass' => $chid, 'datatype' => 'int'); $btagnames[] = array('ename' => 'appealdate', 'cname' => lang('appeendtime'), 'bclass' => 'archive', 'sclass' => $chid, 'datatype' => 'date'); } $commoned = 1; } unset($channels, $fields); $commoned = 0; $fchannels = reload_cache('fchannels'); foreach ($fchannels as $chid => $fchannel) { $fields = reload_cache('ffields', $chid); foreach ($fields as $k => $field) { if ($k == 'subject') { !$commoned && ($btagnames[] = array('ename' => $k, 'cname' => $field['cname'], 'bclass' => 'freeinfo', 'sclass' => '', 'datatype' => $field['datatype'])); } else { $btagnames[] = array('ename' => $k, 'cname' => $field['cname'], 'bclass' => 'freeinfo', 'sclass' => $chid, 'datatype' => $field['datatype']); } } $commoned = 1; } unset($fchannels, $fields); $cotypes = reload_cache('cotypes'); foreach ($cotypes as $coid => $cotype) { $btagnames[] = array('ename' => 'ccid' . $coid . 'title', 'cname' => $cotype['cname'] . lang('cocname'), 'bclass' => 'archive', 'sclass' => '', 'datatype' => 'text'); $btagnames[] = array('ename' => "ccid{$coid}", 'cname' => $cotype['cname'] . lang('coclass') . 'id', 'bclass' => 'archive', 'sclass' => '', 'datatype' => 'int'); } unset($cotypes, $cotype); $cafields = reload_cache('cafields'); foreach ($cafields as $field) { $btagnames[] = array('ename' => $field['ename'], 'cname' => $field['cname'], 'bclass' => 'cnode', 'sclass' => 'catalog', 'datatype' => $field['datatype']); } unset($cafields, $field); $ccfields = reload_cache('ccfields'); foreach ($ccfields as $field) { $btagnames[] = array('ename' => $field['ename'], 'cname' => $field['cname'], 'bclass' => 'cnode', 'sclass' => 'coclass', 'datatype' => $field['datatype']); } unset($ccfields, $field); $commoned = 0; $mchannels = reload_cache('mchannels'); foreach ($mchannels as $chid => $mchannel) { $mfields = reload_cache('mfields', $chid); foreach ($mfields as $k => $field) { if ($field['mcommon']) { !$commoned && !in_array($k, array('password')) && ($btagnames[] = array('ename' => $k, 'cname' => $field['cname'], 'bclass' => 'member', 'sclass' => '', 'datatype' => $field['datatype'])); } else { $btagnames[] = array('ename' => $k, 'cname' => $field['cname'], 'bclass' => 'member', 'sclass' => $chid, 'datatype' => $field['datatype']); } } $commoned = 1; } unset($mchannels, $mfields, $field); $currencys = reload_cache('currencys'); foreach ($currencys as $crid => $currency) { $btagnames[] = array('ename' => 'currency' . $crid, 'cname' => $currency['cname'] . lang('amount'), 'bclass' => 'member', 'sclass' => '', 'datatype' => 'int'); } unset($currencys, $currency); $grouptypes = reload_cache('grouptypes'); foreach ($grouptypes as $gtid => $grouptype) { $btagnames[] = array('ename' => 'grouptype' . $gtid, 'cname' => $grouptype['cname'] . lang('usergroup') . 'id', 'bclass' => 'member', 'sclass' => '', 'datatype' => 'int'); $btagnames[] = array('ename' => 'grouptype' . $gtid . 'name', 'cname' => $grouptype['cname'] . lang('usergroup'), 'bclass' => 'member', 'sclass' => '', 'datatype' => 'text'); } unset($grouptypes, $grouptype); $bnames = array(); foreach ($btagnames as $k => $v) { if (!array_key_exists($v['ename'], $bnames)) { $bnames[$v['ename']] = $v['cname']; } elseif (!in_array($v['cname'], array_filter(explode(' | ', $bnames[$v['ename']])))) { $bnames[$v['ename']] .= ' | ' . $v['cname']; } } cache2file($btagnames, 'btagnames'); cache2file($bnames, 'bnames'); unset($btagnames, $bnames); }
if (!empty($csstplsnew)) { foreach ($csstplsnew as $k => $v) { $csstpls[$k]['cname'] = stripslashes($v['cname']); } } cache2file($csstpls, 'csstpls', 'csstpls', $sid); adminlog(lang('edit_cssfile_mlist')); amessage('cssfilemodifyfinish', M_REFERER); } else { if (!empty($jstplsnew)) { foreach ($jstplsnew as $k => $v) { $jstpls[$k]['cname'] = stripslashes($v['cname']); $jstpls[$k]['tplname'] = stripslashes($v['tplname']); } } cache2file($jstpls, 'jstpls', 'jstpls', $sid); adminlog(lang('edit_jsfile_mlist')); amessage('jsfilemodifyfinish', M_REFERER); } } elseif ($action == 'fileadd') { $forward = empty($forward) ? M_REFERER : $forward; $forwardstr = '&forward=' . rawurlencode($forward); if (!submitcheck('bfileadd')) { tabheader(lang('add_css_js_file'), 'filecopy', "?entry=csstpls&action=fileadd{$param_suffix}&jsmode={$jsmode}{$forwardstr}"); trbasic(($jsmode ? 'JS' : 'CSS') . lang('file_saveas'), 'filenamenew'); echo "<tr class=\"txt\"><td class=\"txtL\">" . lang('file_content') . "</td>" . "<td class=\"txtL\"><textarea class=\"textarea\" style=\"width:650px;height:480px\" name=\"contentnew\" id=\"contentnew\"></textarea></td></tr>"; tabfooter('bfileadd'); a_guide('csstpladd'); } else { if (empty($filenamenew)) { amessage('pointfilename', M_REFERER);