📄 misc.inc.php
字号:
updatecache('settings');
cpmsg('crons_succeed', 'admincp.php?action=misc&operation=crons', 'succeed');
}
} else {
$cronid = empty($run) ? $edit : $run;
$cron = $db->fetch_first("SELECT * FROM {$tablepre}crons WHERE cronid='$cronid'");
if(!$cron) {
cpmsg('undefined_action', '', 'error');
}
$cron['filename'] = str_replace(array('..', '/', '\\'), array('', '', ''), $cron['filename']);
$cronminute = str_replace("\t", ',', $cron['minute']);
$cron['minute'] = explode("\t", $cron['minute']);
if(!empty($edit)) {
if(!submitcheck('editsubmit')) {
shownav('misc', 'cron');
showsubmenu($lang['crons_edit'].' - '.$cron['name']);
showtips('crons_edit_tips');
$weekdayselect = $dayselect = $hourselect = '';
for($i = 0; $i <= 6; $i++) {
$weekdayselect .= "<option value=\"$i\" ".($cron['weekday'] == $i ? 'selected' : '').">".$lang['crons_week_day_'.$i]."</option>";
}
for($i = 1; $i <= 31; $i++) {
$dayselect .= "<option value=\"$i\" ".($cron['day'] == $i ? 'selected' : '').">$i $lang[crons_day]</option>";
}
for($i = 0; $i <= 23; $i++) {
$hourselect .= "<option value=\"$i\" ".($cron['hour'] == $i ? 'selected' : '').">$i $lang[crons_hour]</option>";
}
shownav('misc', 'crons');
showformheader("misc&operation=crons&edit=$cronid");
showtableheader();
showsetting('crons_edit_weekday', '', '', "<select name=\"weekdaynew\"><option value=\"-1\">*</option>$weekdayselect</select>");
showsetting('crons_edit_day', '', '', "<select name=\"daynew\"><option value=\"-1\">*</option>$dayselect</select>");
showsetting('crons_edit_hour', '', '', "<select name=\"hournew\"><option value=\"-1\">*</option>$hourselect</select>");
showsetting('crons_edit_minute', 'minutenew', $cronminute, 'text');
showsetting('crons_edit_filename', 'filenamenew', $cron['filename'], 'text');
showsubmit('editsubmit');
showtablefooter();
showformfooter();
} else {
$daynew = $weekdaynew != -1 ? -1 : $daynew;
if($minutenew == '') {
$minutenew = '';
} elseif(strpos($minutenew, ',') !== FALSE) {
$minutenew = explode(',', $minutenew);
foreach($minutenew as $key => $val) {
$minutenew[$key] = $val = intval($val);
if($val < 0 || $var > 59) {
unset($minutenew[$key]);
}
}
$minutenew = array_slice(array_unique($minutenew), 0, 12);
$minutenew = implode("\t", $minutenew);
} else {
$minutenew = intval($minutenew);
$minutenew = $minutenew >= 0 && $minutenew < 60 ? $minutenew : '';
}
if(preg_match("/[\\\\\/\:\*\?\"\<\>\|]+/", $filenamenew)) {
cpmsg('crons_filename_illegal', '', 'error');
} elseif(!is_readable(DISCUZ_ROOT.($cronfile = "./include/crons/$filenamenew"))) {
cpmsg('crons_filename_invalid', '', 'error');
} elseif($weekdaynew == -1 && $daynew == -1 && $hournew == -1 && $minutenew == '') {
cpmsg('crons_time_invalid', '', 'error');
}
$db->query("UPDATE {$tablepre}crons SET weekday='$weekdaynew', day='$daynew', hour='$hournew', minute='$minutenew', filename='".trim($filenamenew)."' WHERE cronid='$cronid'");
updatecache('crons');
require_once DISCUZ_ROOT.'./include/cron.func.php';
cronnextrun($cron);
cpmsg('crons_succeed', 'admincp.php?action=misc&operation=crons', 'succeed');
}
} else {
if(!@include_once DISCUZ_ROOT.($cronfile = "./include/crons/$cron[filename]")) {
cpmsg('crons_run_invalid', '', 'error');
} else {
require_once DISCUZ_ROOT.'./include/cron.func.php';
cronnextrun($cron);
cpmsg('crons_run_succeed', 'admincp.php?action=misc&operation=crons', 'succeed');
}
}
}
} elseif($operation == 'tags') {
if(!$tagstatus) {
cpmsg('tags_not_open', "admincp.php?action=settings&operation=functions#subtitle_tags");
}
if(submitcheck('tagsubmit') && !empty($tag)) {
$tagdelete = $tagclose = $tagopen = array();
foreach($tag as $key => $value) {
if($value == -1) {
$tagdelete[] = $key;
} elseif($value == 1) {
$tagclose[] = $key;
} elseif($value == 0) {
$tagopen[] = $key;
}
}
if($tagdelete) {
$db->query("DELETE FROM {$tablepre}tags WHERE tagname IN (".implodeids($tagdelete).")", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}threadtags WHERE tagname IN (".implodeids($tagdelete).")", 'UNBUFFERED');
}
if($tagclose) {
$db->query("UPDATE {$tablepre}tags SET closed=1 WHERE tagname IN (".implodeids($tagclose).")", 'UNBUFFERED');
}
if($tagopen) {
$db->query("UPDATE {$tablepre}tags SET closed=0 WHERE tagname IN (".implodeids($tagopen).")", 'UNBUFFERED');
}
if($tagdelete || $tagclose || $tagopen) {
updatecache(array('tags_index', 'tags_viewthread'));
}
cpmsg('tags_updated', 'admincp.php?action=misc&operation=tags&tagsearchsubmit=yes&tagname='.rawurlencode($tagname).'&threadnumlower='.intval($threadnumlower).'&threadnumhigher='.intval($threadnumhigher).'&status='.intval($status), 'succeed');
}
shownav('topic', 'nav_posting_tags');
showsubmenu('nav_posting_tags');
if(!submitcheck('tagsearchsubmit', 1)) {
$tagcount[0] = $db->result_first("SELECT count(*) FROM {$tablepre}tags");
$tagcount[1] = $db->result_first("SELECT count(*) FROM {$tablepre}tags WHERE closed=1");
$tagcount[2] = $tagcount[0] - $tagcount[1];
include DISCUZ_ROOT.'./forumdata/cache/cache_index.php';
showtableheader('tags_hot', 'nobottom fixpadding');
showtablerow('', '', $_DCACHE['tags']);
showtablefooter();
showformheader('misc&operation=tags');
showtableheader('tags_search', 'notop');
showsetting('tags_tag', 'tagname', '', 'text');
showsetting('tags_threadnum_between', array('threadnumhigher', 'threadnumlower'), array(), 'range');
showsetting('tags_status', array( 'status', array(
array(-1, lang('all')."($tagcount[0])"),
array(0, lang('tags_status_1')."($tagcount[1])"),
array(1, lang('tags_status_0')."($tagcount[2])"),
), TRUE), -1, 'mradio');
showsubmit('tagsearchsubmit', 'tags_search');
showtablefooter();
showformfooter();
} else {
$tagpp = 100;
$page = max(1, intval($page));
$threadnumlower = !empty($threadnumlower) ? intval($threadnumlower) : '';
$threadnumhigher = !empty($threadnumhigher) ? intval($threadnumhigher) : '';
$sqladd = $tagname ? "tagname LIKE '%".str_replace(array('%', '*', '_'), array('\%', '%', '\_'), $tagname)."%'" : '1';
$sqladd .= $threadnumlower ? " AND total<'".intval($threadnumlower)."'" : '';
$sqladd .= $threadnumhigher ? " AND total>'".intval($threadnumhigher)."'" : '';
$sqladd .= $status != -1 ? " AND closed='".intval($status)."'" : '';
$pagetmp = $page;
$num = $db->result_first("SELECT count(*) FROM {$tablepre}tags WHERE $sqladd");
$multipage = multi($num, $tagpp, $page, 'admincp.php?action=misc&operation=tags&tagsearchsubmit=yes&tagname='.rawurlencode($tagname).'&threadnumlower='.intval($threadnumlower).'&threadnumhigher='.intval($threadnumhigher).'&status='.intval($status));
do {
$query = $db->query("SELECT * FROM {$tablepre}tags WHERE $sqladd ORDER BY total DESC LIMIT ".(($pagetmp - 1) * $tagpp).", $tagpp");
$pagetmp--;
} while(!$db->num_rows($query) && $pagetmp);
showformheader('misc&operation=tags&page='.$page);
showhiddenfields(array(
'tagname' => $tagname,
'threadnumlower' => $threadnumlower,
'threadnumhigher' => $threadnumhigher,
'tagname' => $tagname,
'status' => $status,
));
showtableheader('nav_posting_tags', 'fixpadding');
showtablerow('', array('class="td21"', 'class="td25"'), array(
lang('tags_tag'),
lang('tags_threadnum'),
''
));
while($tag = $db->fetch_array($query)) {
showtablerow('', array('class="td21"', 'class="td25"'), array(
'<a href="tag.php?name='.rawurlencode($tag['tagname']).'" target="_blank">'.$tag['tagname'].'</a>',
$tag['total'],
'<input name="tag['.$tag['tagname'].']" type="radio" class="radio" value="-1"> '.$lang['delete'].' <input name="tag['.$tag['tagname'].']" type="radio" class="radio" value="1"'.($tag['closed'] ? ' checked' : '').'> '.$lang['tags_status_1'].' <input name="tag['.$tag['tagname'].']" type="radio" class="radio" value="0"'.(!$tag['closed'] ? ' checked' : '').'> '.$lang['tags_status_0']
));
}
showsubmit('tagsubmit', 'submit', '', '<a href="#" onclick="checkAll(\'option\', $(\'cpform\'), \'-1\')">'.lang('tags_all_delete').'</a> <a href="#" onclick="checkAll(\'option\', $(\'cpform\'), \'1\')">'.lang('tags_all_close').'</a> <a href="#" onclick="checkAll(\'option\', $(\'cpform\'), \'0\')">'.lang('tags_all_open').'</a>', $multipage);
showtablefooter();
showformfooter();
}
} elseif($operation == 'custommenu') {
if(!$do) {
if(!submitcheck('optionsubmit')) {
$page = max(1, intval($page));
$mpp = 10;
$startlimit = ($page - 1) * $mpp;
$num = $db->result_first("SELECT count(*) FROM {$tablepre}admincustom WHERE uid='$discuz_uid' AND sort='1'");
$multipage = $inajax ? multi($num, $mpp, $page, 'admincp.php?action=misc&operation=custommenu', 0, 3, TRUE, TRUE) :
multi($num, $mpp, $page, 'admincp.php?action=misc&operation=custommenu');
$optionlist = $ajaxoptionlist = '';
$query = $db->query("SELECT id, title, displayorder, url FROM {$tablepre}admincustom WHERE uid='$discuz_uid' AND sort='1' ORDER BY displayorder, dateline DESC, clicks DESC LIMIT $startlimit, $mpp");
while($custom = $db->fetch_array($query)) {
$optionlist .= showtablerow('', array('class="td25"', 'class="td28"', '', 'class="td26"'), array(
"<input type=\"checkbox\" class=\"checkbox\" name=\"delete[]\" value=\"$custom[id]\">",
"<input type=\"text\" class=\"txt\" size=\"3\" name=\"displayordernew[$custom[id]]\" value=\"$custom[displayorder]\">",
"<input type=\"text\" class=\"txt\" size=\"25\" name=\"titlenew[$custom[id]]\" value=\"".lang($custom['title'])."\"><input type=\"hidden\" name=\"langnew[$custom[id]]\" value=\"$custom[title]\">",
"<input type=\"text\" class=\"txt\" size=\"40\" name=\"urlnew[$custom[id]]\" value=\"$custom[url]\">"
), TRUE);
$ajaxoptionlist .= '<li><a href="'.$custom['url'].'" target="'.(substr($custom['url'], 0, 19) == 'admincp.php?action=' ? 'main' : '_blank').'">'.lang($custom['title']).'</a></li>';
}
if($inajax) {
ajaxshowheader();
echo $ajaxoptionlist.'<li>'.$multipage.'</li><script reload="1">initCpMenus(\'custommenu\');parent.cmcache=true;</script>';
ajaxshowfooter();
exit;
}
echo <<<EOT
<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="newtitle[]" size="25">'],
[1,'<input type="text" class="txt" name="newurl[]" size="40">', 'td26']
]
];
</script>
EOT;
shownav('misc', 'nav_custommenu');
showsubmenu('nav_custommenu');
showformheader('misc&operation=custommenu');
showtableheader();
showsubtitle(array('', 'display_order', 'name', 'URL'));
echo $optionlist;
echo '<tr><td></td><td colspan="3"><div><a href="###" onclick="addrow(this, 0)" class="addtr">'.$lang['custommenu_add'].'</a></div></td></tr>';
showsubmit('optionsubmit', 'submit', 'del', '', $multipage);
showtablefooter();
showformfooter();
} else {
if($ids = implodeids($delete)) {
$db->query("DELETE FROM {$tablepre}admincustom WHERE id IN ($ids) AND uid='$discuz_uid'");
}
if(is_array($titlenew)) {
foreach($titlenew as $id => $title) {
$title = dhtmlspecialchars($langnew[$id] && lang($langnew[$id], false) ? $langnew[$id] : $title);
$db->query("UPDATE {$tablepre}admincustom SET title='$title', displayorder='$displayordernew[$id]', url='".dhtmlspecialchars($urlnew[$id])."' WHERE id='$id'");
}
}
if(is_array($newtitle)) {
foreach($newtitle as $k => $v) {
$db->query("INSERT INTO {$tablepre}admincustom (title, displayorder, url, sort, uid) VALUES ('".dhtmlspecialchars($v)."', '".intval($newdisplayorder[$k])."', '".dhtmlspecialchars($newurl[$k])."', '1', '$discuz_uid')");
}
}
cpmsg('custommenu_edit_succeed', 'admincp.php?action=misc&operation=custommenu', 'succeed', '<script type="text/JavaScript">parent.cmcache=false;</script>');
}
} elseif($do == 'add') {
if($title && $url) {
admincustom($title, dhtmlspecialchars($url), 1);
cpmsg('custommenu_add_succeed', 'admincp.php?'.$url, 'succeed', '<script type="text/JavaScript">parent.cmcache=false;</script>');
} else {
cpmsg('undefined_action', '', 'error');
}
} elseif($do == 'clean') {
if(!$confirmed) {
cpmsg('custommenu_history_delete_confirm', "admincp.php?action=misc&operation=custommenu&do=clean", 'form');
} else {
$db->query("DELETE FROM {$tablepre}admincustom WHERE uid='$discuz_uid' AND sort='0'");
cpmsg('custommenu_history_delete_succeed', '#', 'succeed', '<script type="text/JavaScript">setTimeout("parent.location.reload();", 2999);</script>');
}
} else {
cpmsg('undefined_action');
}
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -