📄 tools.inc.php
字号:
<?php
/*
[DISCUZ!] admin/tools.inc.php - board tools (newsletter, file permissions checking, etc)
This is NOT a freeware, use is subject to license terms
Version: 4.0.0
Web: http://www.comsenz.com
Copyright: 2001-2005 Comsenz Technology Ltd.
Last Modified: 2005-2-24 11:10
*/
if(!defined('IN_DISCUZ') || !isset($PHP_SELF) || !preg_match("/[\/\\\\]admincp\.php$/", $PHP_SELF)) {
exit('Access Denied');
}
cpheader();
if($action == 'newsletter') {
if(!submitcheck('newslettersubmit')) {
$count = 0;
$usergroups = '';
$query = $db->query("SELECT groupid, grouptitle FROM {$tablepre}usergroups ORDER BY type, creditslower");
while($group = $db->fetch_array($query)) {
$usergroups .= ($count++ % 3 == 0 ? '</tr><tr>' : '').
"<td width=\"33%\" nowrap><input type=\"checkbox\" name=\"sendto[]\" value=\"$group[groupid]\"> $group[grouptitle]</td>";
}
?>
<table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="90%" align="center" class="tableborder">
<tr class="header"><td><?=$lang['tips']?></td></tr>
<tr bgcolor="<?=ALTBG1?>"><td>
<br><?=$lang['newsletter_tips']?>
</td></tr></table>
<br><br><form method="post" action="admincp.php?action=newsletter">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="90%" align="center" class="tableborder">
<tr class="header"><td colspan="2"><?=$lang['newsletter']?></td></tr>
<tr>
<td bgcolor="<?=ALTBG1?>" valign="top">
<?=$lang['newsletter_to']?>
<br><input type="checkbox" name="chkall" onclick="checkall(this.form)"> <?=$lang['all']?>
</td><td bgcolor="<?=ALTBG2?>">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr><?=$usergroups?></tr></table>
<tr>
<td bgcolor="<?=ALTBG1?>"><?=$lang['subject']?>:</td>
<td bgcolor="<?=ALTBG2?>"><input type="text" name="subject" size="80"></td>
</tr>
<tr>
<td bgcolor="<?=ALTBG1?>" valign="top"><?=$lang['message']?>:</td><td bgcolor="<?=ALTBG2?>">
<textarea cols="80" rows="10" name="message"></textarea></td></tr>
<tr>
<td bgcolor="<?=ALTBG1?>"><?=$lang['newsletter_send_via']?></td>
<td bgcolor="<?=ALTBG2?>">
<input type="radio" value="email" name="sendvia"> <?=$lang['email']?>
<input type="radio" value="pm" checked name="sendvia"> <?=$lang['pm']?>
</td></tr>
</table><br>
<center><input type="submit" name="newslettersubmit" value="<?=$lang['submit']?>"></center>
</form>
<?
} else {
if(is_array($sendto)) {
$ids = '\''.implode('\',\'', $sendto).'\'';
} else {
cpmsg('newsletter_send_to_invalid');
}
if(!$subject || !$message) {
cpmsg('newsletter_sm_invalid');
}
$subject = '[Discuz!] '.$subject;
$emails = '';
$query = $db->query("SELECT uid, email FROM {$tablepre}members WHERE groupid IN ($ids) AND newsletter='1'");
while($member = $db->fetch_array($query)) {
if($sendvia == 'pm') {
require_once DISCUZ_ROOT.'./include/discuzcode.func.php';
$subject = dhtmlspecialchars($subject);
$message = trim(parseurl($message));
$db->query("INSERT INTO {$tablepre}pms (msgfrom, msgfromid, msgtoid, folder, new, subject, dateline, message)
VALUES('$discuz_user', '$discuz_uid', '$member[uid]', 'inbox', '1', '$subject', '$timestamp', '$message')");
} elseif($sendvia == 'email') {
$emails .= $comma.$member['email'];
$comma = ',';
}
}
if($sendvia == 'pm') {
$db->query("UPDATE {$tablepre}members SET newpm='1' WHERE groupid IN ($ids) AND newsletter='1'");
} elseif($sendvia == 'email') {
sendmail($emails, $subject, $message);
}
cpmsg('newsletter_succeed');
}
} elseif($action == 'updatecache') {
$tpl = dir(DISCUZ_ROOT.'./forumdata/templates');
while($entry = $tpl->read()) {
if(preg_match("/\.tpl\.php$/", $entry)) {
@unlink(DISCUZ_ROOT.'./forumdata/templates/'.$entry);
}
}
$tpl->close();
$js = dir(DISCUZ_ROOT.'./forumdata/cache');
while($entry = $js->read()) {
if(preg_match("/^javascript_/", $entry)) {
@unlink(DISCUZ_ROOT.'./forumdata/cache/'.$entry);
}
}
$js->close();
updatecache();
$db->query("DELETE FROM {$tablepre}searchindex");
$db->query("DELETE FROM {$tablepre}threadsmod WHERE dateline<$timestamp-86400*365");
cpmsg('update_cache_succeed');
} elseif($action == 'jswizard') {
/* Threads == Start == */
$tcheckorderby = array((isset($parameter['orderby']) ? $parameter['orderby'] : 'lastpost') => 'checked');
for($i = 1; $i <= 4; $i++) {
$tcheckdigest[$i] = !empty($parameter['digest'][$i]) ? 'checked' : '';
}
echo '<form method="post" action="admincp.php?action=jswizard&function=threads#'.$lang['jswizard_threads'].'">';
showtype('jswizard_threads', 'top');
if($jssubmit && $function == 'threads') {
$jsurl = "function=$function".
($parameter['threads_forums'] && !in_array('all', $parameter['threads_forums'])? '&fids='.jsfids($parameter['threads_forums']) : '').
"&maxlength=$parameter[maxlength]".
"&startrow=$parameter[startrow]".
"&picpre=".rawurlencode($parameter['picpre']).
"&items=$parameter[items]".
"&digest=".bindec(intval($parameter['digest'][1]).intval($parameter['digest'][2]).intval($parameter['digest'][3]).intval($parameter['digest'][4])).
"&newwindow=$parameter[newwindow]".
"&highlight=$parameter[highlight]".
"&forum=$parameter[forum]".
"&author=$parameter[author]".
"&dateline=$parameter[dateline]".
"&orderby=$parameter[orderby]";
$jsurl = "{$boardurl}api/javascript.php?$jsurl&verify=".md5($authkey.$jsurl);
echo "<tr bgcolor=\"".ALTBG1."\"><td colspan=\"2\">".
"<textarea rows=\"3\" style=\"width: 100%; word-break: break-all\" onMouseOver=\"this.focus()\" onFocus=\"this.select()\">".
dhtmlspecialchars("<script language=\"JavaScript\" src=\"$jsurl\"></script>").
"</textarea></td></tr>";
}
showsetting('jswizard_threads_fids', '', '', jsforumselect('threads'));
showsetting('jswizard_threads_maxlength', 'parameter[maxlength]', isset($parameter['maxlength']) ? $parameter['maxlength'] : 50, 'text');
showsetting('jswizard_threads_startrow', 'parameter[startrow]', intval($parameter['startrow']), 'text');
showsetting('jswizard_threads_items', 'parameter[items]', isset($parameter['items']) ? $parameter['items'] : 10, 'text');
showsetting('jswizard_threads_picpre', 'parameter[picpre]', $parameter['picpre'], 'text');
showsetting('jswizard_threads_digest', '', '', '<input type="checkbox" name="parameter[digest][1]" value="1" '.$tcheckdigest[1].'> '.$lang['jswizard_digest_1'].'<br><input type="checkbox" name="parameter[digest][2]" value="1" '.$tcheckdigest[2].'> '.$lang['jswizard_digest_2'].'<br><input type="checkbox" name="parameter[digest][3]" value="1" '.$tcheckdigest[3].'> '.$lang['jswizard_digest_3'].'<br><input type="checkbox" name="parameter[digest][4]" value="1" '.$tcheckdigest[4].'> '.$lang['jswizard_digest_0'].'');
showsetting('jswizard_threads_newwindow', 'parameter[newwindow]', isset($parameter['newwindow']) ? $parameter['newwindow'] : 1, 'radio');
showsetting('jswizard_threads_highlight', 'parameter[highlight]', $parameter['highlight'], 'radio');
showsetting('jswizard_threads_forum', 'parameter[forum]', $parameter['forum'], 'radio');
showsetting('jswizard_threads_author', 'parameter[author]', $parameter['author'], 'radio');
showsetting('jswizard_threads_dateline', 'parameter[dateline]', $parameter['dateline'], 'radio');
showsetting('jswizard_threads_orderby', '', '', '<input type="radio" name="parameter[orderby]" value="lastpost" '.$tcheckorderby['lastpost'].'> '.$lang['jswizard_threads_orderby_lastpost'].'<br><input type="radio" name="parameter[orderby]" value="dateline" '.$tcheckorderby['dateline'].'> '.$lang['jswizard_threads_orderby_dateline'].'<br><input type="radio" name="parameter[orderby]" value="replies" '.$tcheckorderby['replies'].'> '.$lang['jswizard_threads_orderby_replies'].'<br><input type="radio" name="parameter[orderby]" value="views" '.$tcheckorderby['views'].'> '.$lang['jswizard_threads_orderby_views']);
showtype('', 'bottom');
echo '<br><center><input type="submit" name="jssubmit" value="'.$lang['submit'].'"></center></form>';
/* Threads == End == */
/* Forums == Start == */
$fcheckorderby = array((isset($parameter['orderby']) ? $parameter['orderby'] : 'displayorder') => 'checked');
echo '<form method="post" action="admincp.php?action=jswizard&function=forums#'.$lang['jswizard_forums'].'">';
showtype('jswizard_forums', 'top');
if($jssubmit && $function == 'forums') {
$jsurl = "function=$function".
($parameter['forums_forums'] && !in_array('all', $parameter['forums_forums'])? '&fups='.jsfids($parameter['forums_forums']) : '').
"&startrow=$parameter[startrow]".
"&items=$parameter[items]".
"&newwindow=$parameter[newwindow]".
"&orderby=$parameter[orderby]";
$jsurl = "{$boardurl}api/javascript.php?$jsurl&verify=".md5($authkey.$jsurl);
echo "<tr bgcolor=\"".ALTBG1."\"><td colspan=\"2\">".
"<textarea rows=\"3\" style=\"width: 100%; word-break: break-all\" onMouseOver=\"this.focus()\" onFocus=\"this.select()\">".
dhtmlspecialchars("<script language=\"JavaScript\" src=\"$jsurl\"></script>").
"</textarea></td></tr>";
}
showsetting('jswizard_forums_fups', '', '', jsforumselect('forums'));
showsetting('jswizard_forums_startrow', 'parameter[startrow]', intval($parameter['startrow']), 'text');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -