📄 misc.inc.php
字号:
<?php
/*
[Discuz!] (C)2001-2007 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$Id: misc.inc.php 13486 2008-04-18 04:32:01Z liuqiang $
*/
if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
exit('Access Denied');
}
cpheader();
if($operation == 'onlinelist') {
if(!submitcheck('onlinesubmit')) {
shownav('misc', 'onlinelist');
showsubmenu('nav_misc_onlinelist');
showtips('onlinelist_tips');
showformheader('misc&operation=onlinelist&');
showtableheader('', 'fixpadding');
showsubtitle(array('', 'display_order', 'usergroup', 'usergroups_title', 'onlinelist_image'));
$listarray = array();
$query = $db->query("SELECT * FROM {$tablepre}onlinelist");
while($list = $db->fetch_array($query)) {
$list['title'] = dhtmlspecialchars($list['title']);
$listarray[$list['groupid']] = $list;
}
$onlinelist = '';
$query = $db->query("SELECT groupid, grouptitle FROM {$tablepre}usergroups WHERE type<>'member'");
$group = array('groupid' => 0, 'grouptitle' => 'Member');
do {
$id = $group['groupid'];
showtablerow('', array('class="td25"', 'class="td23 td28"', 'class="td24"', 'class="td24"', 'class="td21 td26"'), array(
$listarray[$id]['url'] ? " <img src=\"images/common/{$listarray[$id]['url']}\">" : '',
'<input type="text" class="txt" name="displayordernew['.$id.']" value="'.$listarray[$id]['displayorder'].'" size="3" />',
$group['groupid'] <= 8 ? lang('usergroups_system_'.$id) : $group['grouptitle'],
'<input type="text" class="txt" name="titlenew['.$id.']" value="'.($listarray[$id]['title'] ? $listarray[$id]['title'] : $group['grouptitle']).'" size="15" />',
'<input type="text" class="txt" name="urlnew['.$id.']" value="'.$listarray[$id]['url'].'" size="20" />'
));;
} while($group = $db->fetch_array($query));
showsubmit('onlinesubmit', 'submit', 'td');
showtablefooter();
showformfooter();
} else {
if(is_array($urlnew)) {
$db->query("DELETE FROM {$tablepre}onlinelist");
foreach($urlnew as $id => $url) {
$url = trim($url);
if($id == 0 || $url) {
$db->query("INSERT INTO {$tablepre}onlinelist (groupid, displayorder, title, url)
VALUES ('$id', '$displayordernew[$id]', '$titlenew[$id]', '$url')");
}
}
}
updatecache('onlinelist');
cpmsg('onlinelist_succeed', 'admincp.php?action=misc&operation=onlinelist', 'succeed');
}
} elseif($operation == 'forumlinks') {
if(!submitcheck('forumlinksubmit')) {
?>
<script type="text/JavaScript">
var rowtypedata = [
[
[1,'', 'td25'],
[1,'<input type="text" class="txt" name="newdisplayorder[]" size="3">', 'td28'],
[1,'<input type="text" class="txt" name="newname[]" size="15">'],
[1,'<input type="text" class="txt" name="newurl[]" size="20">'],
[1,'<input type="text" class="txt" name="newdescription[]" size="30">', 'td26'],
[1,'<input type="text" class="txt" name="newlogo[]" size="20">']
]
]
</script>
<?
shownav('misc', 'forumlinks');
showsubmenu('nav_misc_links');
showtips('forumlinks_tips');
showformheader('misc&operation=forumlinks');
showtableheader();
showsubtitle(array('', 'display_order', 'forumlinks_edit_name', 'forumlinks_edit_url', 'forumlinks_edit_description', 'forumlinks_edit_logo'));
$query = $db->query("SELECT * FROM {$tablepre}forumlinks ORDER BY displayorder");
while($forumlink = $db->fetch_array($query)) {
showtablerow('', array('class="td25"', 'class="td28"', '', '', 'class="td26"'), array(
'<input type="checkbox" class="checkbox" name="delete[]" value="'.$forumlink['id'].'" />',
'<input type="text" class="txt" name="displayorder['.$forumlink[id].']" value="'.$forumlink['displayorder'].'" size="3" />',
'<input type="text" class="txt" name="name['.$forumlink[id].']" value="'.$forumlink['name'].'" size="15" />',
'<input type="text" class="txt" name="url['.$forumlink[id].']" value="'.$forumlink['url'].'" size="20" />',
'<input type="text" class="txt" name="description['.$forumlink[id].']" value="'.$forumlink['description'].'" size="30" />',
'<input type="text" class="txt" name="logo['.$forumlink[id].']" value="'.$forumlink['logo'].'" size="20" />'
));
}
echo '<tr><td></td><td colspan="3"><div><a href="###" onclick="addrow(this, 0)" class="addtr">'.$lang['forumlinks_add'].'</a></div></td></tr>';
showsubmit('forumlinksubmit', 'submit', 'del');
showtablefooter();
showformfooter();
} else {
if(is_array($delete)) {
$ids = $comma = '';
foreach($delete as $id) {
$ids .= "$comma'$id'";
$comma = ',';
}
$db->query("DELETE FROM {$tablepre}forumlinks WHERE id IN ($ids)");
}
if(is_array($name)) {
foreach($name as $id => $val) {
$db->query("UPDATE {$tablepre}forumlinks SET displayorder='$displayorder[$id]', name='$name[$id]', url='$url[$id]',description='$description[$id]',logo='$logo[$id]' WHERE id='$id'");
}
}
if(is_array($newname)) {
foreach($newname as $key => $value) {
if($value) {
$db->query("INSERT INTO {$tablepre}forumlinks (displayorder, name, url, description, logo) VALUES ('$newdisplayorder[$key]', '$value', '$newurl[$key]', '$newdescription[$key]', '$newlogo[$key]')");
}
}
}
updatecache('forumlinks');
cpmsg('forumlinks_succeed', 'admincp.php?action=misc&operation=forumlinks', 'succeed');
}
} elseif($operation == 'discuzcodes') {
if(!submitcheck('bbcodessubmit') && !$edit) {
shownav('topic', 'nav_posting_discuzcodes');
showsubmenu('nav_posting_discuzcodes');
showtips('dzcode_edit_tips');
showformheader('misc&operation=discuzcodes');
showtableheader('', 'fixpadding');
showsubtitle(array('', 'dzcode_tag', 'available', 'dzcode_icon', 'dzcode_icon_file', ''));
$query = $db->query("SELECT * FROM {$tablepre}bbcodes");
while($bbcode = $db->fetch_array($query)) {
showtablerow('', array('class="td25"', 'class="td21"', 'class="td25"', 'class="td25"', 'class="td21"'), array(
"<input class=\"checkbox\" type=\"checkbox\" name=\"delete[]\" value=\"$bbcode[id]\">",
"<input type=\"text\" class=\"txt\" size=\"15\" name=\"tagnew[$bbcode[id]]\" value=\"$bbcode[tag]\">",
"<input class=\"checkbox\" type=\"checkbox\" name=\"availablenew[$bbcode[id]]\" value=\"1\" ".($bbcode['available'] ? 'checked' : NULL).">",
$bbcode[icon] ? "<img src=\"images/common/$bbcode[icon]\" border=\"0\"" : ' ',
"<input type=\"text\" class=\"txt\" size=\"25\" name=\"iconnew[$bbcode[id]]\" value=\"$bbcode[icon]\">",
"<a href=\"admincp.php?action=misc&operation=discuzcodes&edit=$bbcode[id]\" class=\"act\">$lang[detail]</a>"
));
}
showtablerow('', array('class="td25"', 'class="td21"', 'class="td25"', 'class="td25"', 'class="td21"'), array(
lang('add_new'),
'<input type="text" class="txt" size="15" name="newtag">',
'',
'',
'<input type="text" class="txt" size="25" name="newicon">',
''
));
showsubmit('bbcodessubmit', 'submit', 'del');
showtablefooter();
showformfooter();
} elseif(submitcheck('bbcodessubmit')) {
if(is_array($delete)) {
$ids = '\''.implode('\',\'', $delete).'\'';
$db->query("DELETE FROM {$tablepre}bbcodes WHERE id IN ($ids)");
}
if(is_array($tagnew)) {
foreach($tagnew as $id => $val) {
if(!preg_match("/^[0-9a-z]+$/i", $tagnew[$id]) && strlen($tagnew[$id]) < 20) {
cpmsg('dzcode_edit_tag_invalid', '', 'error');
}
$db->query("UPDATE {$tablepre}bbcodes SET tag='$tagnew[$id]', icon='$iconnew[$id]', available='$availablenew[$id]' WHERE id='$id'");
}
}
if($newtag != '') {
if(!preg_match("/^[0-9a-z]+$/i", $newtag && strlen($newtag) < 20)) {
cpmsg('dzcode_edit_tag_invalid', '', 'error');
}
$db->query("INSERT INTO {$tablepre}bbcodes (tag, icon, available, params, nest)
VALUES ('$newtag', '$newicon', '0', '1', '1')");
}
updatecache(array('bbcodes', 'bbcodes_display'));
cpmsg('dzcode_edit_succeed', 'admincp.php?action=misc&operation=discuzcodes', 'succeed');
} elseif($edit) {
$bbcode = $db->fetch_first("SELECT * FROM {$tablepre}bbcodes WHERE id='$edit'");
if(!$bbcode) {
cpmsg('undefined_action', '', 'error');
}
if(!submitcheck('editsubmit')) {
$bbcode['prompt'] = str_replace("\t", "\n", $bbcode['prompt']);
shownav('topic', 'nav_posting_discuzcodes');
showsubmenu($lang['dzcode_edit'].' - '.$bbcode['tag']);
showformheader("misc&operation=discuzcodes&edit=$edit");
showtableheader();
showsetting('dzcode_edit_tag', 'tagnew', $bbcode['tag'], 'text');
showsetting('dzcode_edit_replacement', 'replacementnew', $bbcode['replacement'], 'textarea');
showsetting('dzcode_edit_example', 'examplenew', $bbcode['example'], 'text');
showsetting('dzcode_edit_explanation', 'explanationnew', $bbcode['explanation'], 'text');
showsetting('dzcode_edit_params', 'paramsnew', $bbcode['params'], 'text');
showsetting('dzcode_edit_prompt', 'promptnew', $bbcode['prompt'], 'textarea');
showsetting('dzcode_edit_nest', 'nestnew', $bbcode['nest'], 'text');
showsubmit('editsubmit');
showtablefooter();
showformfooter();
} else {
$tagnew = trim($tagnew);
if(!preg_match("/^[0-9a-z]+$/i", $tagnew)) {
cpmsg('dzcode_edit_tag_invalid', '', 'error');
} elseif($paramsnew < 1 || $paramsnew > 3 || $nestnew < 1 || $nestnew > 3) {
cpmsg('dzcode_edit_range_invalid', '', 'error');
}
$promptnew = trim(preg_replace("/\r\n|\r|\n/", "\t", str_replace("\t", '', $promptnew)));
$db->query("UPDATE {$tablepre}bbcodes SET tag='$tagnew', replacement='$replacementnew', example='$examplenew', explanation='$explanationnew', params='$paramsnew', prompt='$promptnew', nest='$nestnew' WHERE id='$edit'");
updatecache(array('bbcodes', 'bbcodes_display'));
cpmsg('dzcode_edit_succeed', 'admincp.php?action=misc&operation=discuzcodes', 'succeed');
}
}
} elseif($operation == 'censor') {
$page = max(1, intval($page));
$ppp = 30;
$addcensors = isset($addcensors) ? trim($addcensors) : '';
if($do == 'export') {
ob_end_clean();
dheader('Cache-control: max-age=0');
dheader('Expires: '.gmdate('D, d M Y H:i:s', $timestamp - 31536000).' GMT');
dheader('Content-Encoding: none');
dheader('Content-Disposition: attachment; filename=CensorWords.txt');
dheader('Content-Type: text/plain');
$query = $db->query("SELECT find, replacement FROM {$tablepre}words ORDER BY find ASC");
while($censor = $db->fetch_array($query)) {
$censor['replacement'] = str_replace('*', '', $censor['replacement']) <> '' ? $censor['replacement'] : '';
echo $censor['find'].($censor['replacement'] != '' ? '='.stripslashes($censor['replacement']) : '')."\n";
}
exit();
} elseif(submitcheck('addcensorsubmit') && $addcensors != '') {
$oldwords = array();
if($adminid == 1 && $overwrite == 2) {
$db->query("TRUNCATE {$tablepre}words");
} else {
$query = $db->query("SELECT find, admin FROM {$tablepre}words");
while($censor = $db->fetch_array($query)) {
$oldwords[md5($censor['find'])] = $censor['admin'];
}
$db->free_result($query);
}
$censorarray = explode("\n", $addcensors);
$updatecount = $newcount = $ignorecount = 0;
foreach($censorarray as $censor) {
list($newfind, $newreplace) = array_map('trim', explode('=', $censor));
$newreplace = $newreplace <> '' ? daddslashes(str_replace("\\\'", '\'', $newreplace), 1) : '**';
if(strlen($newfind) < 3) {
$ignorecount ++;
continue;
} elseif(isset($oldwords[md5($newfind)])) {
if($overwrite && ($adminid == 1 || $oldwords[md5($newfind)] == $discuz_userss)) {
$updatecount ++;
$db->query("UPDATE {$tablepre}words SET replacement='$newreplace' WHERE `find`='$newfind'");
} else {
$ignorecount ++;
}
} else {
$newcount ++;
$db->query("INSERT INTO {$tablepre}words (admin, find, replacement) VALUES
('$discuz_user', '$newfind', '$newreplace')");
$oldwords[md5($newfind)] = $discuz_userss;
}
}
updatecache('censor');
cpmsg('censor_batch_add_succeed', "admincp.php?action=misc&operation=censor&anchor=import", 'succeed');
} elseif(!submitcheck('censorsubmit')) {
$page = max(1, intval($page));
$startlimit = ($page - 1) * $ppp;
$totalcount = $db->result_first("SELECT count(*) FROM {$tablepre}words");
$multipage = multi($totalcount, $ppp, $page, "admincp.php?action=misc&operation=censor");
shownav('topic', 'nav_posting_censors');
$anchor = in_array($anchor, array('list', 'import')) ? $anchor : 'list';
showsubmenuanchors('nav_posting_censors', array(
array('admin', 'list', $anchor == 'list'),
array('censor_batch_add', 'import', $anchor == 'import')
));
showtips('censor_tips', 'list_tips', $anchor == 'list');
showtips('censor_batch_add_tips', 'import_tips', $anchor == 'import');
showtagheader('div', 'list', $anchor == 'list');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -