?? magic.php
字號:
<?php
/*
[Discuz!] (C)2001-2007 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$Id: magic.php 12854 2008-03-13 08:28:20Z tiger $
*/
require_once './include/common.inc.php';
if(!$discuz_uid) {
showmessage('not_loggedin', NULL, 'HALTED');
} elseif(!$creditstrans) {
showmessage('credits_transaction_disabled');
} elseif(!$magicstatus && $adminid != 1) {
showmessage('magics_close');
} elseif(!$allowmagics) {
showmessage('magics_perm');
}
require_once DISCUZ_ROOT.'./include/magic.func.php';
require_once DISCUZ_ROOT.'./forumdata/cache/cache_magics.php';
$magiclist = array();
$page = max(1, intval($page));
$start_limit = ($page - 1) * $tpp;
$action = empty($action) ? 'shop' : $action;
$comma = $typeadd = $filteradd = $forumperm = $targetgroupperm = '';
$magicarray = is_array($_DCACHE['magics']) ? $_DCACHE['magics'] : array();
$operationarray = array('use', 'sell', 'drop', 'give', 'my', 'buy', 'down', 'uselog', 'buylog', 'givelog', 'receivelog', 'marketlog');
$operation = !empty($operation) && in_array($operation, $operationarray) ? $operation : '';
$totalweight = getmagicweight($discuz_uid, $magicarray);
if(!empty($typeid)) {
$typeadd = '&typeid='.intval($typeid);
$filteradd = "AND type='".intval($typeid)."'";
}
if($action == 'shop') {
$discuz_action = 170;
if(empty($operation)) {
$operation = '';
$magiccount = $db->result_first("SELECT COUNT(*) FROM {$tablepre}magics WHERE available='1' $filteradd");
$multipage = multi($magiccount, $tpp, $page, "magic.php?action=shop$typeadd");
$query = $db->query("SELECT magicid, name, identifier, description, price, num, salevolume, weight FROM {$tablepre}magics WHERE available='1' $filteradd ORDER BY displayorder LIMIT $start_limit,$tpp");
while($magic = $db->fetch_array($query)) {
$magic['price'] = $magicsdiscount ? intval($magic['price'] * ($magicsdiscount / 10)) : intval($magic['price']);
$magic['pic'] = strtolower($magic['identifier']).'.gif';
$magiclist[] = $magic;
}
$magicnum = count($magiclist);
$magicendrows = '';
if($colspan = $magicnum % 2) {
while(($colspan - 2) < 0) {
$magicendrows .= '<td class="altbg2"></td>';
$colspan ++;
}
$magicendrows .= '</tr>';
}
include template('magic_shop');
} elseif($operation == 'buy') {
$magic = $db->fetch_first("SELECT * FROM {$tablepre}magics WHERE magicid='$magicid'");
if(!$magic) {
showmessage('magics_nonexistence');
}
if(!$magic['available']) {
showmessage('magics_nonexistence');
}
$magic['price'] = $magicsdiscount ? intval($magic['price'] * ($magicsdiscount / 10)) : intval($magic['price']);
if(!submitcheck('operatesubmit')) {
$magic['pic'] = strtolower($magic['identifier']).'.gif';
$magicperm = unserialize($magic['magicperm']);
$useperm = (strstr($magicperm['usergroups'], "\t$groupid\t") || !$magicperm['usergroups']) ? '1' : '0';
if($magicperm['targetgroups']) {
require_once DISCUZ_ROOT.'./forumdata/cache/cache_usergroups.php';
foreach(explode("\t", $magicperm['targetgroups']) as $groupid) {
if(isset($_DCACHE['usergroups'][$groupid])) {
$targetgroupperm .= $comma.$_DCACHE['usergroups'][$groupid]['grouptitle'];
$comma = ' ';
}
}
}
if($magicperm['forum']) {
require_once DISCUZ_ROOT.'./forumdata/cache/cache_forums.php';
foreach(explode("\t", $magicperm['forum']) as $fid) {
if(isset($_DCACHE['forums'][$fid])) {
$forumperm .= $comma.'<a href="forumdisplay.php?fid='.$fid.'" target="_blank">'.$_DCACHE['forums'][$fid]['name'].'</a>';
$comma = ' ';
}
}
}
include template('magic_shop');
} else {
$magicnum = intval($magicnum);
$magic['weight'] = $magic['weight'] * $magicnum;
$totalprice = $magic['price'] * $magicnum;
$toname = dhtmlspecialchars(trim($tousername));
if(${'extcredits'.$creditstrans} < $totalprice) {
showmessage('magics_credits_no_enough');
} elseif($magic['num'] < $magicnum) {
showmessage('magics_num_no_enough');
} elseif(!$magicnum || $magicnum < 0) {
showmessage('magics_num_invalid');
}
if(!empty($toname) && $allowmagics > 1 && $checkgive) {
givemagic($toname, $magic['magicid'], $magicnum, $magic['num'], $totalprice);
} else {
getmagic($magic['magicid'], $magicnum, $magic['weight'], $totalweight, $discuz_uid, $maxmagicsweight);
updatemagiclog($magic['magicid'], '1', $magicnum, $magic['price'], '0', $discuz_uid);
}
$db->query("UPDATE {$tablepre}magics SET num=num+(-'$magicnum'), salevolume=salevolume+'$magicnum' WHERE magicid='$magicid'");
$db->query("UPDATE {$tablepre}members SET extcredits$creditstrans=extcredits$creditstrans+(-'$totalprice') WHERE uid='$discuz_uid'");
showmessage('magics_succeed', 'magic.php?action=shop');
}
}
} elseif($action =='user') {
$discuz_action = 171;
if(empty($operation)) {
$pid = !empty($pid) ? intval($pid) : 0;
$magiccount = $db->result_first("SELECT COUNT(*) FROM {$tablepre}membermagics mm, {$tablepre}magics m WHERE mm.uid='$discuz_uid' $filteradd AND mm.magicid=m.magicid");
$multipage = multi($magiccount, $tpp, $page, "magic.php?action=user&pid=$pid$typeadd");
$query = $db->query("SELECT mm.num, m.magicid, m.name, m.identifier, m.description, m.weight
FROM {$tablepre}membermagics mm
LEFT JOIN {$tablepre}magics m ON mm.magicid=m.magicid
WHERE mm.uid='$discuz_uid' $filteradd LIMIT $start_limit,$tpp");
while($magic = $db->fetch_array($query)) {
$magic['pic'] = strtolower($magic['identifier']).'.gif';
$magic['weight'] = intval($magic['weight'] * $magic['num']);
$magiclist[] = $magic;
}
$magicnum = count($magiclist);
$magicendrows = '';
if($colspan = $magicnum % 2) {
while(($colspan - 2) < 0) {
$magicendrows .= '<td class="altbg2"></td>';
$colspan ++;
}
$magicendrows .= '</tr>';
}
include template('magic_user');
} else {
$magic = $db->fetch_first("SELECT m.*, mm.num
FROM {$tablepre}membermagics mm
LEFT JOIN {$tablepre}magics m ON mm.magicid=m.magicid
WHERE mm.uid='$discuz_uid' AND mm.magicid='$magicid'");
if(!$magic) {
showmessage('magics_nonexistence','magic.php?action=user');
} elseif(!$magic['num']) {
$db->query("DELETE FROM {$tablepre}membermagics WHERE uid='$discuz_uid' AND magicid='$magic[magicid]'");
showmessage('magics_nonexistence','magic.php?action=user');
}
$magicperm = unserialize($magic['magicperm']);
if(!submitcheck('operatesubmit')) {
$operationsubmit = 'operatesubmit';
$magic['pic'] = strtolower($magic['identifier']).".gif";
$useperm = (strstr($magicperm['usergroups'], "\t$groupid\t") || empty($magicperm['usergroups'])) ? '1' : '0';
if(empty($useperm) && $operation != 'drop') {
showmessage('magics_nopermission','magic.php?action=user');
}
if($magic['num'] <= 0) {
$db->query("DELETE FROM {$tablepre}membermagics WHERE uid='$discuz_uid' AND magicid='$magic[magicid]'");
showmessage('magics_nopermission','magic.php?action=user');
}
if($magicperm['targetgroups']) {
require_once DISCUZ_ROOT.'./forumdata/cache/cache_usergroups.php';
foreach(explode("\t", $magicperm['targetgroups']) as $groupid) {
if(isset($_DCACHE['usergroups'][$groupid])) {
$targetgroupperm .= $comma.$_DCACHE['usergroups'][$groupid]['grouptitle'];
$comma = ' ';
}
}
}
if($magicperm['forum']) {
require_once DISCUZ_ROOT.'./forumdata/cache/cache_forums.php';
foreach(explode("\t", $magicperm['forum']) as $fid) {
if(isset($_DCACHE['forums'][$fid])) {
$forumperm .= $comma.'<a href="forumdisplay.php?fid='.$fid.'" target="_blank">'.$_DCACHE['forums'][$fid]['name'].'</a>';
$comma = ' ';
}
}
}
$magic['weight'] = intval($magicarray[$magic['magicid']]['weight'] * $magic['num']);
if($operation == 'use') {
include language('magics');
$operationsubmit = 'usesubmit';
$username = dhtmlspecialchars($username);
if(!submitcheck('usesubmit') && in_array($magic['type'], array(1, 2)) && !empty($pid)) {
$pid = intval($pid);
$perm = $db->fetch_first("SELECT tid, author, anonymous FROM {$tablepre}posts WHERE pid='$pid'");
if($magic['type'] == 2 && $perm['anonymous']) {
showmessage('magics_post_anonymous');
}
$tid = $perm['tid'];
$username = $perm['author'];
}
if(!@include_once DISCUZ_ROOT.($magicfile = "./include/magic/$magic[filename]")) {
showmessage('magics_filename_nonexistence');
}
}
include template('magic_user');
} else {
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -