📄 misc.inc.php
字号:
shownav('menu_posting_attachtypes');
showtips('attachtypes_tips');
?>
<form method="post" action="admincp.php?action=attachtypes">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
<tr class="header"><td width="5%"><input class="checkbox" type="checkbox" name="chkall" class="header" onclick="checkall(this.form)"><?=$lang['del']?></td>
<td><?=$lang['attachtypes_ext']?></td><td><?=$lang['attachtypes_maxsize']?></td></tr>
<?=$attachtypes?>
<tr class="altbg1">
<td align="center"><?=$lang['add_new']?></td>
<td align="center"><input type="text" size="10" name="newextension"></td>
<td align="center"><input type="text" size="15" name="newmaxsize"></td>
</tr></table><br>
<center><input class="button" type="submit" name="typesubmit" value="<?=$lang['submit']?>"></center>
</form>
<?
} else {
if($ids = implodeids($delete)) {
$db->query("DELETE FROM {$tablepre}attachtypes WHERE id IN ($ids)");
}
if(is_array($extension)) {
foreach($extension as $id => $val) {
$db->query("UPDATE {$tablepre}attachtypes SET extension='$extension[$id]', maxsize='$maxsize[$id]' WHERE id='$id'");
}
}
if($newextension != '') {
$newextension = trim($newextension);
$query = $db->query("SELECT id FROM {$tablepre}attachtypes WHERE extension='$newextension'");
if($db->result($query, 0)) {
cpmsg('attachtypes_duplicate');
}
$db->query("INSERT INTO {$tablepre}attachtypes (extension, maxsize) VALUES
('$newextension', '$newmaxsize')");
}
cpmsg('attachtypes_succeed', 'admincp.php?action=attachtypes');
}
} elseif($action == 'crons') {
if(empty($edit) && empty($run)) {
if(!submitcheck('cronssubmit')) {
$crons = '';
$query = $db->query("SELECT * FROM {$tablepre}crons ORDER BY type DESC");
while($cron = $db->fetch_array($query)) {
if(!$supe['status'] && substr($cron['name'], 0, 5) == 'supe_') {
continue;
}
$disabled = $cron['weekday'] == -1 && $cron['day'] == -1 && $cron['hour'] == -1 && $cron['minute'] == '' ? 'disabled' : '';
foreach(array('weekday', 'day', 'hour', 'minute') as $key) {
if(in_array($cron[$key], array(-1, ''))) {
$cron[$key] = '<b>*</b>';
} elseif($key == 'weekday') {
$cron[$key] = $lang['crons_week_day_'.$cron[$key]];
} elseif($key == 'minute') {
foreach($cron[$key] = explode("\t", $cron[$key]) as $k => $v) {
$cron[$key][$k] = sprintf('%02d', $v);
}
$cron[$key] = implode(',', $cron[$key]);
}
}
$cron['lastrun'] = $cron['lastrun'] ? gmdate("$dateformat<\b\\r>$timeformat", $cron['lastrun'] + $_DCACHE['settings']['timeoffset'] * 3600) : '<b>N/A</b>';
$cron['nextrun'] = $cron['nextrun'] ? gmdate("$dateformat<\b\\r>$timeformat", $cron['nextrun'] + $_DCACHE['settings']['timeoffset'] * 3600) : '<b>N/A</b>';
$crons .= "<tr align=\"center\"><td class=\"altbg1\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[]\" value=\"$cron[cronid]\" ".($cron['type'] == 'system' ? 'disabled' : '')."></td>\n".
"<td class=\"altbg2\"><input type=\"text\" name=\"namenew[$cron[cronid]]\" size=\"20\" value=\"$cron[name]\"><br><b>$cron[filename]</b></td>\n".
"<td class=\"altbg1\"><input class=\"checkbox\" type=\"checkbox\" name=\"availablenew[$cron[cronid]]\" value=\"1\" ".($cron['available'] ? 'checked' : '')." $disabled></td>\n".
"<td class=\"altbg2\">".$lang['crons_type_'.$cron['type']]."</td>".
"<td class=\"altbg1\">$cron[minute]</td>\n".
"<td class=\"altbg2\">$cron[hour]</td>\n".
"<td class=\"altbg1\">$cron[day]</td>\n".
"<td class=\"altbg2\">$cron[weekday]</td>\n".
"<td class=\"altbg1\">$cron[lastrun]</td>\n".
"<td class=\"altbg2\">$cron[nextrun]</td>\n".
"<td class=\"altbg1\"><a href=\"admincp.php?action=crons&edit=$cron[cronid]\">[$lang[edit]]</a>".
($cron['available'] ? " <a href=\"admincp.php?action=crons&run=$cron[cronid]\">[$lang[crons_run]]</a>" : "<span disabled>[$lang[crons_run]]</span>").
"</td></tr>";
}
shownav('menu_misc_crons');
showtips('crons_tips');
?>
<form method="post" action="admincp.php?action=crons">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
<tr class="header"><td width="5%"><input class="checkbox" type="checkbox" name="chkall" class="header" onclick="checkall(this.form,'delete')"><?=$lang['del']?></td>
<td><?=$lang['name']?></td><td><?=$lang['available']?></td><td><?=$lang['type']?></td><td><?=$lang['crons_minute']?></td>
<td width="5%"><?=$lang['crons_hour']?></td><td width="5%"><?=$lang['crons_day']?></td><td width="6%"><?=$lang['crons_week_day']?></td>
<td><?=$lang['crons_last_run']?></td><td><?=$lang['crons_next_run']?></td><td><?=$lang['operation']?></td></tr>
<?=$crons?>
<tr align="center" class="altbg1">
<td><?=$lang['add_new']?></td><td><input type="text" size="20" name="newname"></td><td colspan="9"> </td>
</tr></table><br>
<center><input class="button" type="submit" name="cronssubmit" value="<?=$lang['submit']?>"></center>
</form>
<?
} else {
if($ids = implodeids($delete)) {
$db->query("DELETE FROM {$tablepre}crons WHERE cronid IN ($ids) AND type='user'");
}
if(is_array($namenew)) {
foreach($namenew as $id => $name) {
$db->query("UPDATE {$tablepre}crons SET name='".dhtmlspecialchars($namenew[$id])."', available='".$availablenew[$id]."' ".($availablenew[$id] ? '' : ', nextrun=\'0\'')." WHERE cronid='$id'");
}
}
if($newname = trim($newname)) {
$db->query("INSERT INTO {$tablepre}crons (name, type, available, weekday, day, hour, minute, nextrun)
VALUES ('".dhtmlspecialchars($newname)."', 'user', '0', '-1', '-1', '-1', '', '$timestamp')");
}
updatecache('crons');
updatecache('settings');
cpmsg('crons_succeed', 'admincp.php?action=crons');
}
} else {
$cronid = empty($run) ? $edit : $run;
$query = $db->query("SELECT * FROM {$tablepre}crons WHERE cronid='$cronid'");
if(!($cron = $db->fetch_array($query))) {
cpmsg('undefined_action');
}
$cron['filename'] = str_replace(array('..', '/', '\\'), array('', '', ''), $cron['filename']);
$cron['minute'] = explode("\t", $cron['minute']);
if(!empty($edit)) {
if(!submitcheck('editsubmit')) {
shownav('menu_misc_crons');
showtips('crons_edit_tips');
$weekdayselect = $dayselect = $hourselect = $minuteselect = '';
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</option>";
}
for($i = 0; $i <= 23; $i++) {
$hourselect .= "<option value=\"$i\" ".($cron['hour'] == $i ? 'selected' : '').">$i</option>";
}
for($i = 0; $i < 12; $i++) {
$minuteselect .= '<select name="minutenew[]"><option value="-1">*</option>';
for($j = 0; $j <= 59; $j++) {
$minuteselect .= "<option value=\"$j\" ".($cron['minute'][$i] != '' && $cron['minute'][$i] == $j ? 'selected' : '').">".sprintf("%02d", $j)."</option>";
}
$minuteselect .= '</select>'.($i == 5 ? '<br>' : ' ');
}
echo "<form method=\"post\" action=\"admincp.php?action=crons&edit=$cronid&formhash=".FORMHASH."\">\n";
showtype($lang['crons_edit'].' - '.$cron['name'], 'top');
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', '', '', $minuteselect);
showsetting('crons_edit_filename', 'filenamenew', $cron['filename'], 'text');
showtype('', 'bottom');
echo "<br><center><input class=\"button\" type=\"submit\" name=\"editsubmit\" value=\"$lang[submit]\"></center></form>";
} else {
$daynew = $weekdaynew != -1 ? -1 : $daynew;
if(is_array($minutenew)) {
sort($minutenew = array_unique($minutenew));
foreach($minutenew as $key => $val) {
if($val < 0 || $var > 59) {
unset($minutenew[$key]);
}
}
$minutenew = implode("\t", $minutenew);
} else {
$minutenew = '';
}
if(preg_match("/[\\\\\/\:\*\?\"\<\>\|]+/", $filenamenew)) {
cpmsg('crons_filename_illegal');
} elseif(!is_readable(DISCUZ_ROOT.($cronfile = "./include/crons/$filenamenew"))) {
cpmsg('crons_filename_invalid');
} elseif($weekdaynew == -1 && $daynew == -1 && $hournew == -1 && $minutenew == '') {
cpmsg('crons_time_invalid');
}
$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=crons');
}
} else {
if(!@include_once DISCUZ_ROOT.($cronfile = "./include/crons/$cron[filename]")) {
cpmsg('crons_run_invalid');
} else {
require_once DISCUZ_ROOT.'./include/cron.func.php';
cronnextrun($cron);
cpmsg('crons_run_succeed', 'admincp.php?action=crons');
}
}
}
} elseif($action == 'creditslog') {
$lpp = empty($lpp) ? 50 : $lpp;
$page = max(1, intval($page));
$start_limit = ($page - 1) * $lpp;
$keywordadd = !empty($keyword) ? "AND c.fromto LIKE '%$keyword%'" : '';
$mpurl = "admincp.php?action=$action&keyword=".rawurlencode($keyword)."&lpp=$lpp";
if(!empty($operations) && is_array($operations)) {
$operationadd = "AND c.operation IN ('".implode('\',\'', $operations)."')";
foreach($operations as $operation) {
$mpurl .= '&operations[]='.rawurlencode($operation);
}
} else {
$operationadd = '';
}
$query = $db->query("SELECT COUNT(*) FROM {$tablepre}creditslog c WHERE 1 $keywordadd $operationadd");
$num = $db->result($query, 0);
$multipage = multi($num, $lpp, $page, $mpurl);
$creditsoperations = '';
foreach(array('TFR', 'RCV', 'EXC', 'UGP', 'AFD') as $operation) {
$creditsoperations .= '<input class="checkbox" type="checkbox" name="operations[]" value="'.$operation.'" '.(!empty($operations) && is_array($operations) && in_array($operation, $operations) ? 'checked' : '').'> '.$lang['logs_credit_operation_'.strtolower($operation)].' ';
}
$logs = '';
$total['send'] = $total['receive'] = array();
$query = $db->query("SELECT c.*, m.username FROM {$tablepre}creditslog c
LEFT JOIN {$tablepre}members m USING (uid)
WHERE 1 $keywordadd $operationadd ORDER BY dateline DESC LIMIT $start_limit, $lpp");
while($log = $db->fetch_array($query)) {
$total['send'][$log['sendcredits']] += $log['send'];
$total['receive'][$log['receivecredits']] += $log['receive'];
$log['dateline'] = gmdate('y-n-j H:i', $log['dateline'] + $timeoffset * 3600);
$log['operation'] = $lang['logs_credit_operation_'.strtolower($log['operation'])];
$logs .= "<tr align=\"center\"><td class=\"altbg1\"><a href=\"viewpro.php?username=".rawurlencode($log['username'])."\" target=\"_blank\">$log[username]</td>".
"<td class=\"altbg2\">$log[fromto]</td>".
"<td class=\"altbg1\">$log[dateline]</td>".
"<td class=\"altbg2\">".(isset($extcredits[$log['sendcredits']]) ? $extcredits[$log['sendcredits']]['title'].' '.$log['send'].' '.$extcredits[$log['sendcredits']]['unit'] : $log['send'])."</td>".
"<td class=\"altbg1\">".(isset($extcredits[$log['receivecredits']]) ? $extcredits[$log['receivecredits']]['title'].' '.$log['receive'].' '.$extcredits[$log['receivecredits']]['unit'] : $log['receive'])."</td>".
"<td class=\"altbg2\">$log[operation]</td></tr>";
}
$result = array('send' => array(), 'receive' => array());
foreach(array('send', 'receive') as $key) {
foreach($total[$key] as $id => $amount) {
if(isset($extcredits[$id])) {
$result[$key][] = $extcredits[$id]['title'].' '.$amount.' '.$extcredits[$id]['unit'];
}
}
}
shownav('logs_credit');
?>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
<tr class="header"><td colspan="3"><?=$lang['logs_credit']?></td></tr>
<form method="post" action="admincp.php?action=creditslog">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<tr class="altbg2"><td width="20%"><?=$lang['logs_lpp']?></td>
<td width="60%"><input type="text" name="lpp" size="40" maxlength="40" value="<?=$lpp?>"></td>
<td width="20%"><input class="button" type="submit" value="<?=$lang['submit']?>"></td></tr>
</form>
<form method="post" action="admincp.php?action=creditslog">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<tr class="altbg1"><td><?=$lang['logs_search']?></td><td><input type="text" name="keyword" size="40" value="<?=dhtmlspecialchars($keyword)?>"></td>
<td><input class="button" type="submit" value="<?=$lang['submit']?>"></td></tr>
</form>
<form method="post" action="admincp.php?action=creditslog">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<tr class="altbg2"><td><?=$lang['action']?></td><td><?=$creditsoperations?></td>
<td><input class="button" type="submit" value="<?=$lang['submit']?>"></td></tr>
</form>
</table><br><br>
<?=$multipage?>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
<tr class="header">
<td width="16%"><?=$lang['username']?></td>
<td width="16%"><?=$lang['logs_credit_fromto']?></td>
<td width="17%"><?=$lang['time']?></td>
<td width="16%"><?=$lang['logs_credit_send']?></td>
<td width="15%"><?=$lang['logs_credit_receive']?></td>
<td width="20%"><?=$lang['action']?></td>
</tr>
<?=$logs?>
<tr class="category" align="right"><td colspan="6"><b><?=$lang['logs_credit_send_total']?></b> <?=implode('; ', $result['receive'])?> <b>|</b> <b><?=$lang['logs_credit_receive_total']?></b> <?=implode(', ', $result['send'])?></td></tr>
</table>
<?=$multipage?>
<?
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -