📄 medals.inc.php
字号:
<?php
/*
[Discuz!] (C)2001-2007 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$Id: magics.inc.php 12641 2008-02-29 13:09:16Z liuqiang $
*/
if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
exit('Access Denied');
}
cpheader();
if(!$operation) {
if(!submitcheck('medalsubmit')) {
shownav('misc', 'nav_medals', 'admin');
showsubmenu('nav_medals', array(
array('admin', 'medals', 1),
array('nav_medals_confer', 'members&operation=confermedal', 0),
array('nav_medals_mod', 'medals&operation=mod', 0)
));
showtips('medals_tips');
showformheader('medals');
showtableheader();
showtablerow('', array('class="td25"', 'class="td28"', 'class="td25"', 'class="td25"', '', '', '', 'class="td23"', 'class="td25"'), array(
'',
lang('display_order'),
'',
lang('available'),
lang('name'),
lang('description'),
lang('medals_image'),
lang('medals_type'),
'',
));
?>
<script type="text/JavaScript">
var rowtypedata = [
[
[1,'', 'td25'],
[1,'<input type="text" class="txt" name="newdisplayorder[]" size="3">', 'td28'],
[1,'', 'td25'],
[1,'', 'td25'],
[1,'<input type="text" class="txt" name="newname[]" size="10">'],
[1,'<input type="text" class="txt" name="newdescription[]" size="30">'],
[1,'<input type="text" class="txt" name="newimage[]" size="20">'],
[1,'', 'td23'],
[1,'', 'td25']
]
];
</script>
<?
$query = $db->query("SELECT * FROM {$tablepre}medals ORDER BY displayorder");
while($medal = $db->fetch_array($query)) {
$checkavailable = $medal['available'] ? 'checked' : '';
$medal['type'] = $medal['type'] == 1 ? lang('medals_register') : lang('medals_adminadd');
showtablerow('', array('class="td25"', 'class="td28"', 'class="td25"', 'class="td25"', '', '', '', 'class="td23"', 'class="td25"'), array(
"<input class=\"checkbox\" type=\"checkbox\" name=\"delete[]\" value=\"$medal[medalid]\">",
"<input type=\"text\" class=\"txt\" size=\"3\" name=\"displayorder[$medal[medalid]]\" value=\"$medal[displayorder]\">",
"<img src=\"images/common/$medal[image]\">",
"<input class=\"checkbox\" type=\"checkbox\" name=\"available[$medal[medalid]]\" value=\"1\" $checkavailable>",
"<input type=\"text\" class=\"txt\" size=\"10\" name=\"name[$medal[medalid]]\" value=\"$medal[name]\">",
"<input type=\"text\" class=\"txt\" size=\"30\" name=\"description[$medal[medalid]]\" value=\"$medal[description]\">",
"<input type=\"text\" class=\"txt\" size=\"20\" name=\"image[$medal[medalid]]\" value=\"$medal[image]\">",
$medal[type],
"<a href=\"admincp.php?action=medals&operation=edit&medalid=$medal[medalid]\" class=\"act\">$lang[detail]</a>"
));
}
echo '<tr><td></td><td colspan="8"><div><a href="###" onclick="addrow(this, 0)" class="addtr">'.$lang['medals_addnew'].'</a></div></td></tr>';
showsubmit('medalsubmit', 'submit', 'del');
showtablefooter();
showformfooter();
} else {
if(is_array($delete)) {
$ids = $comma = '';
foreach($delete as $id) {
$ids .= "$comma'$id'";
$comma = ',';
}
$db->query("DELETE FROM {$tablepre}medals WHERE medalid IN ($ids)");
}
if(is_array($name)) {
foreach($name as $id => $val) {
$db->query("UPDATE {$tablepre}medals SET name=".($name[$id] ? '\''.dhtmlspecialchars($name[$id]).'\'' : 'name').", available='$available[$id]', description=".($description[$id] ? '\''.dhtmlspecialchars($description[$id]).'\'' : 'name').", displayorder='".intval($displayorder[$id])."', image=".($image[$id] ? '\''.$image[$id].'\'' : 'image')." WHERE medalid='$id'");
}
}
if(is_array($newname)) {
foreach($newname as $key => $value) {
if($value != '' && $newimage[$key] != '') {
$db->query("INSERT INTO {$tablepre}medals (name, available, image, displayorder, description) VALUES ('".dhtmlspecialchars($value)."', '$newavailable[$key]', '$newimage[$key]', '".intval($newdisplayorder[$key])."', '".dhtmlspecialchars($newdescription[$key])."')");
}
}
}
updatecache('settings');
updatecache('medals');
cpmsg('medals_succeed', 'admincp.php?action=medals', 'succeed');
}
} elseif($operation == 'mod') {
if(submitcheck('delmedalsubmit')) {
if (is_array($delete)) {
$ids = $comma = '';
foreach($delete as $id) {
$ids .= "$comma'$id'";
$comma = ',';
}
$query = $db->query("UPDATE {$tablepre}medallog SET type='3' WHERE id IN ($ids)");
cpmsg('medals_invalidate_succeed', 'admincp.php?action=medals&operation=mod', 'succeed');
} else {
cpmsg('medals_please_input', 'admincp.php?action=medals&operation=mod', 'error');
}
} elseif(submitcheck('modmedalsubmit')) {
if(is_array($delete)) {
$ids = $comma = '';
foreach($delete as $id) {
$ids .= "$comma'$id'";
$comma = ',';
}
$query = $db->query("SELECT me.id, me.uid, me.medalid, me.dateline, me.expiration, mf.medals
FROM {$tablepre}medallog me
LEFT JOIN {$tablepre}memberfields mf USING (uid)
WHERE id IN ($ids)");
@include_once DISCUZ_ROOT.'./forumdata/cache/cache_medals.php';
while($modmedal = $db->fetch_array($query)) {
$modmedal['medals'] = empty($medalsnew[$modmedal['uid']]) ? $modmedal['medals'] : $medalsnew[$modmedal['uid']];
foreach($modmedal['medals'] = explode("\t", $modmedal['medals']) as $key => $modmedalid) {
list($medalid, $medalexpiration) = explode("|", $modmedalid);
if(isset($_DCACHE['medals'][$medalid]) && (!$medalexpiration || $medalexpiration > $timestamp)) {
$medalsnew[$modmedal['uid']][$key] = $modmedalid;
}
}
$medalstatus = empty($modmedal['expiration']) ? 0 : 1;
$modmedal['expiration'] = $modmedal['expiration'] ? ($timestamp + $modmedal['expiration'] - $modmedal['dateline']) : '';
$medalsnew[$modmedal['uid']][] = $modmedal['medalid'].(empty($modmedal['expiration']) ? '' : '|'.$modmedal['expiration']);
$db->query("UPDATE {$tablepre}medallog SET type=1, status='$medalstatus', expiration='$modmedal[expiration]' WHERE id='$modmedal[id]'");
}
foreach ($medalsnew as $key => $medalnew) {
$medalnew = implode("\t", $medalnew);
$db->query("UPDATE {$tablepre}memberfields SET medals='$medalnew' WHERE uid='$key'");
}
cpmsg('medals_validate_succeed', 'admincp.php?action=medals&operation=mod', 'succeed');
} else {
cpmsg('medals_please_input', 'admincp.php?action=medals&operation=mod', 'error');
}
} else {
$medals = '';
$query = $db->query("SELECT mel.*, m.username, me.name FROM {$tablepre}medallog mel
LEFT JOIN {$tablepre}medals me ON me.medalid = mel.medalid
LEFT JOIN {$tablepre}members m ON m.uid = mel.uid
WHERE mel.type=2 ORDER BY dateline");
while($medal = $db->fetch_array($query)) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -