📄 project.inc.php
字号:
$allselected = '';
$listoption = '<option value="1"'.(@in_array(1, $savemethod) ? ' selected': '').'>'.$lang['project_credits_item_config'].'</option>';
$listoption .= '<option value="2"'.(@in_array(2, $savemethod) ? ' selected': '').'>'.$lang['project_credits_rule_config'].'</option>';
$listoption .= '<option value="3"'.(@in_array(3, $savemethod) ? ' selected': '').'>'.$lang['project_credits_use_config'].'</option>';
}
showformheader("project&operation=add&id=$id");
showhiddenfields(array('projectid' => $projectid, 'type' => $type, 'detailsubmit' => 'submit'));
showtableheader();
showtitle('project_scheme_save');
if(!empty($projectid)) {
showsetting('project_scheme_cover', 'coverwith', '', 'radio');
}
showsetting('project_scheme_option', '', '', '<select name="fieldoption[]" size="10" multiple="multiple"><option value="all" '.$allselected.'>'.$lang['all'].'</option>'.$listoption.'</select>');
showsetting('project_scheme_title', 'name', $project['name'], 'text');
showsetting('project_scheme_description', 'description', $project['description'], 'textarea');
showsubmit('addsubmit');
showtablefooter();
} else {
$type = !empty($type) && in_array($type, array('forum', 'group', 'extcredit')) ? $type : '';
if(empty($name)) {
cpmsg('project_no_title', '', 'error');
}
if($type == 'forum') {
$value = $db->fetch_first("SELECT f.*, ff.* FROM {$tablepre}forums f
LEFT JOIN {$tablepre}forumfields ff USING (fid)
WHERE f.fid='$id'");
if(!$value) {
cpmsg('forums_nonexistence', '', 'error');
}
} elseif($type == 'group') {
$value = $db->fetch_first("SELECT * FROM {$tablepre}usergroups WHERE groupid='$id'");
if(!$value) {
cpmsg('project_no_usergroup', '', 'error');
}
} elseif($type == 'extcredit') {
if(empty($fieldoption)) {
cpmsg('project_no_item', '', 'error');
}
$delfields = array();
$fieldoption = in_array('all', $fieldoption) ? array(1, 2, 3) : $fieldoption;
$variables = in_array(1, $fieldoption) ? ", 'extcredits', 'creditspolicy'" : '';
$variables .= in_array(2, $fieldoption) ? ", 'creditsformula'" : '';
$variables .= in_array(3, $fieldoption) ? ", 'creditstrans', 'creditstax', 'transfermincredits', 'exchangemincredits', 'maxincperthread', 'maxchargespan'" : '';
$query = $db->query("SELECT * FROM {$tablepre}settings WHERE variable IN (''$variables)");
$value['savemethod'] = $fieldoption;
while($data = $db->fetch_array($query)) {
$value[$data['variable']] = $data['value'];
}
}
if($type == 'forum' || $type == 'group') {
if(in_array('all', $fieldoption)) {
foreach($delfields[$type] as $field) {
unset($value[$field]);
}
} else {
$selectlist = '';
foreach($value as $key => $val) {
if(in_array($key, $fieldoption)) {
$selectlist[$key] .= $val;
}
}
$value = $selectlist;
}
}
$value = !empty($value) ? addslashes(serialize($value)) : '';
if(!empty($projectid) && !empty($coverwith)) {
$db->query("UPDATE {$tablepre}projects SET name='$name', description='$description', value='$value' WHERE id='$projectid'");
} else {
$db->query("INSERT INTO {$tablepre}projects (name, type, description, value) VALUES ('$name', '$type', '$description', '$value')");
}
if($type == 'forum') {
cpmsg('project_sava_succeed', $BASESCRIPT.'?action=forums&operation=edit&fid='.$id, 'succeed');
} elseif($type == 'group') {
cpmsg('project_sava_succeed', $BASESCRIPT.'?action=usergroups&operation=edit&id='.$id, 'succeed');
} elseif($type == 'extcredit') {
cpmsg('project_sava_succeed', $BASESCRIPT.'?action=settings&operation=credits', 'succeed');
}
}
} elseif($operation == 'apply') {
$type = !empty($type) && in_array($type, array('forum', 'group', 'extcredit')) ? $type : 'forum';
if(($type == 'forum' && empty($allowforumsedit)) || ($type == 'group' && empty($allowusergroups)) || ($type == 'extcredit' && empty($allowcreditwizard))) {
cpmsg('action_noaccess', '', 'error');
}
$projectselect = "<select name=\"projectid\"><option value=\"0\" selected=\"selected\">".$lang['none']."</option>";
$query = $db->query("SELECT id, name, type FROM {$tablepre}projects WHERE type='$type'");
while($project = $db->fetch_array($query)) {
$projectselect .= "<option value=\"$project[id]\" ".($project['id'] == $projectid ? 'selected="selected"' : NULL).">$project[name]</option>\n";
}
$projectselect .= '</select>';
if(!submitcheck('applysubmit')) {
if($type == 'forum') {
require_once DISCUZ_ROOT.'./include/forum.func.php';
$forumselect = '<select name="target[]" size="10" multiple="multiple">'.forumselect().'</select>';
} elseif($type == 'group') {
$groupselect = '<select name="target[]" size="10" multiple="multiple">';
$query = $db->query("SELECT groupid, type, grouptitle, creditshigher, creditslower, stars, color, groupavatar FROM {$tablepre}usergroups ORDER BY creditshigher");
while($group = $db->fetch_array($query)) {
$groupselect .= '<option value="'.$group['groupid'].'">'.$group['grouptitle'].'</option>';
}
$groupselect .= '</select>';
} elseif($type == 'extcredit') {
dheader("location: $BASESCRIPT?action=settings&operation=credits&projectid=$projectid");
}
shownav('tools', 'project_scheme');
showsubmenu('project_global_forum');
showformheader("project&operation=apply&projectid=$projectid");
showtableheader();
showtitle($type == 'forum' ? 'project_scheme_forum' : 'project_group_scheme');
showsetting('project_scheme_name', '', '', $projectselect);
if($type == 'forum') {
showsetting('forums_copy_target', '', '', $forumselect);
} elseif($type == 'group') {
showsetting('project_target_usergroup', '', '', $groupselect);
}
showsubmit('applysubmit');
showtablefooter();
showformfooter();
} else {
if(empty($target)) {
cpmsg('project_target_item_invalid', '', 'error');
}
$applyids = implodeids($target);
$project = $db->fetch_first("SELECT type, value FROM {$tablepre}projects WHERE id='$projectid'");
if(!$project) {
cpmsg('project_no_scheme', '', 'error');
}
if(!$value = unserialize($project['value'])) {
cpmsg('project_invalid', '', 'error');
}
if($project['type'] == 'forum') {
$table_forum_columns = array('styleid', 'allowsmilies', 'allowhtml', 'allowbbcode', 'allowimgcode', 'allowanonymous', 'allowshare', 'allowpostspecial', 'alloweditrules', 'alloweditpost', 'allowspecialonly', 'modnewposts', 'recyclebin', 'jammer', 'forumcolumns', 'threadcaches', 'disablewatermark', 'autoclose', 'simple');
$table_forumfield_columns = array('attachextensions', 'postcredits', 'replycredits', 'digestcredits', 'postattachcredits', 'getattachcredits', 'viewperm', 'postperm', 'replyperm', 'getattachperm', 'postattachperm', 'modrecommend', 'formulaperm');
$updatesql = $comma = '';
foreach($table_forum_columns as $field) {
if(isset($value[$field])) {
$updatesql .= "$comma$field='".addslashes($value[$field])."'";
$comma = ', ';
}
}
if($updatesql && $applyids) {
$db->query("UPDATE {$tablepre}forums SET $updatesql WHERE fid IN ($applyids)");
}
$updatesql = $comma = '';
foreach($table_forumfield_columns as $field) {
if(isset($value[$field])) {
$updatesql .= "$comma$field='".addslashes($value[$field])."'";
$comma = ', ';
}
}
if($updatesql && $applyids) {
$db->query("UPDATE {$tablepre}forumfields SET $updatesql WHERE fid IN ($applyids)");
}
} elseif($project['type'] == 'group') {
$usergroup_columns = array('readaccess', 'allowvisit', 'allowpost', 'allowreply', 'allowpostpoll', 'allowpostreward', 'allowposttrade', 'allowpostactivity', 'allowpostvideo', 'allowdirectpost', 'allowgetattach', 'allowpostattach', 'allowvote', 'allowmultigroups', 'allowsearch', 'allowcstatus', 'allowinvisible', 'allowtransfer', 'allowsetreadperm', 'allowsetattachperm', 'allowhidecode', 'allowhtml', 'allowcusbbcode', 'allowanonymous', 'allownickname', 'allowsigbbcode', 'allowsigimgcode', 'allowviewpro', 'allowviewstats', 'disableperiodctrl', 'reasonpm', 'maxprice', 'maxsigsize', 'maxattachsize', 'maxsizeperday', 'maxpostsperhour', 'attachextensions', 'raterange', 'mintradeprice', 'maxtradeprice', 'minrewardprice', 'maxrewardprice', 'magicsdiscount', 'allowmagics', 'maxmagicsweight', 'allowbiobbcode', 'allowbioimgcode', 'maxbiosize', 'allowinvite', 'allowmailinvite', 'inviteprice', 'maxinvitenum', 'maxinviteday', 'allowpostdebate', 'tradestick', 'exempt');
$updatesql = $comma = '';
foreach($usergroup_columns as $field) {
if(isset($value[$field])) {
$updatesql .= "$comma$field='".addslashes($value[$field])."'";
$comma = ', ';
}
}
if($updatesql && $applyids) {
$db->query("UPDATE {$tablepre}usergroups SET $updatesql WHERE groupid IN ($applyids)");
}
}
cpmsg('project_scheme_succeed', '', 'succeed');
}
}
function fetch_table_struct($tablename, $result = 'FIELD') {
global $db, $tablepre;
$datas = array();
$query = $db->query("DESCRIBE $tablepre$tablename");
while($data = $db->fetch_array($query)) {
$datas[$data['Field']] = $result == 'FIELD' ? $data['Field'] : $data;
}
return $datas;
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -