📄 plugins.inc.php
字号:
<option value="number">'.lang('plugins_edit_vars_type_number').'</option>
<option value="text" selected>'.lang('plugins_edit_vars_type_text').'</option>
<option value="textarea">'.lang('plugins_edit_vars_type_textarea').'</option>
<option value="radio">'.lang('plugins_edit_vars_type_radio').'</option>
<option value="select">'.lang('plugins_edit_vars_type_select').'</option>
<option value="color">'.lang('plugins_edit_vars_type_color').'</option>
<option value="date">'.lang('plugins_edit_vars_type_date').'</option>
<option value="datetime">'.lang('plugins_edit_vars_type_datetime').'</option>
<option value="forum">'.lang('plugins_edit_vars_type_forum').'</option>
<option value="forums">'.lang('plugins_edit_vars_type_forums').'</option>
<option value="group">'.lang('plugins_edit_vars_type_group').'</option>
<option value="groups">'.lang('plugins_edit_vars_type_groups').'</option>
<option value="extcredit">'.lang('plugins_edit_vars_type_extcredit').'</option>
</seletc>',
''
));
showsubmit('editsubmit', 'submit', 'del');
showtablefooter();
showformfooter();
showtagfooter('div');
} else {
if($type == 'common') {
$namenew = dhtmlspecialchars(trim($namenew));
$directorynew = dhtmlspecialchars($directorynew);
$identifiernew = trim($identifiernew);
$datatablesnew = dhtmlspecialchars(trim($datatablesnew));
$descriptionnew = dhtmlspecialchars($descriptionnew);
$copyrightnew = $plugin['copyright'] ? addslashes($plugin['copyright']) : dhtmlspecialchars($copyrightnew);
$adminidnew = ($adminidnew > 0 && $adminidnew <= 3) ? $adminidnew : 1;
if(!$namenew) {
cpmsg('plugins_edit_name_invalid', '', 'error');
} elseif(!isplugindir($directorynew)) {
cpmsg('plugins_edit_directory_invalid', '', 'error');
} elseif($identifiernew != $plugin['identifier']) {
$query = $db->query("SELECT pluginid FROM {$tablepre}plugins WHERE identifier='$identifiernew' LIMIT 1");
if($db->num_rows($query) || !ispluginkey($identifiernew)) {
cpmsg('plugins_edit_identifier_invalid', '', 'error');
}
}
$db->query("UPDATE {$tablepre}plugins SET adminid='$adminidnew', name='$namenew', identifier='$identifiernew', description='$descriptionnew', datatables='$datatablesnew', directory='$directorynew', copyright='$copyrightnew' WHERE pluginid='$pluginid'");
} elseif($type == 'modules') {
$modulesnew = array();
$newname = trim($newname);
if(is_array($plugin['modules'])) {
foreach($plugin['modules'] as $moduleid => $module) {
if(!isset($delete[$moduleid])) {
$modulesnew[] = array
(
'name' => $namenew[$moduleid],
'menu' => $menunew[$moduleid],
'url' => $urlnew[$moduleid],
'type' => $typenew[$moduleid],
'adminid' => ($adminidnew[$moduleid] >= 0 && $adminidnew[$moduleid] <= 3) ? $adminidnew[$moduleid] : $module['adminid'],
'displayorder' => intval($ordernew[$moduleid]),
);
}
}
}
$newmodule = array();
if(!empty($newname)) {
$modulesnew[] = array
(
'name' => $newname,
'menu' => $newmenu,
'url' => $newurl,
'type' => $newtype,
'adminid' => $newadminid,
'displayorder' => intval($neworder),
);
}
usort($modulesnew, 'modulecmp');
$namesarray = array();
foreach($modulesnew as $key => $module) {
if(!ispluginkey($module['name'])) {
cpmsg('plugins_edit_modules_name_invalid', '', 'error');
} elseif(in_array($module['name'], $namesarray)) {
cpmsg('plugins_edit_modules_duplicated', '', 'error');
}
$namesarray[] = $module['name'];
$module['menu'] = trim($module['menu']);
$module['url'] = trim($module['url']);
$module['adminid'] = $module['adminid'] >= 0 && $module['adminid'] <= 3 ? $module['adminid'] : 1 ;
switch($module['type']) {
case 5:
case 1:
if(empty($module['url'])) {
cpmsg('plugins_edit_modules_url_invalid', '', 'error');
}
break;
case 6:
case 2:
case 3:
if(empty($module['menu'])) {
cpmsg('plugins_edit_modules_menu_invalid', '', 'error');
}
unset($module['url']);
break;
case 4:
unset($module['menu'], $module['url']);
break;
default:
cpmsg('undefined_action', '', 'error');
}
$modulesnew[$key] = $module;
}
$db->query("UPDATE {$tablepre}plugins SET modules='".addslashes(serialize($modulesnew))."' WHERE pluginid='$pluginid'");
} elseif($type == 'hooks') {
if(is_array($delete)) {
$ids = $comma = '';
foreach($delete as $id => $val) {
$ids .= "$comma'$id'";
$comma = ',';
}
$db->query("DELETE FROM {$tablepre}pluginhooks WHERE pluginid='$pluginid' AND pluginhookid IN ($ids)");
}
if(is_array($titlenew)) {
$titlearray = array();
foreach($titlenew as $id => $val) {
if(!ispluginkey($val) || in_array($val, $titlearray)) {
cpmsg('plugins_edit_hooks_title_invalid', '', 'error');
}
$titlearray[] = $val;
$db->query("UPDATE {$tablepre}pluginhooks SET title='".dhtmlspecialchars($titlenew[$id])."', available='".intval($availablenew[$id])."' WHERE pluginid='$pluginid' AND pluginhookid='$id'");
}
}
if($newtitle) {
if(!ispluginkey($newtitle) || (is_array($titlenew) && in_array($newtitle, $titlenew))) {
cpmsg('plugins_edit_hooks_title_invalid', '', 'error');
}
$db->query("INSERT INTO {$tablepre}pluginhooks (pluginid, title, description, code, available)
VALUES ('$pluginid', '".dhtmlspecialchars($newtitle)."', '', '', 0)");
}
} elseif($type == 'vars') {
if($ids = implodeids($delete)) {
$db->query("DELETE FROM {$tablepre}pluginvars WHERE pluginid='$pluginid' AND pluginvarid IN ($ids)");
}
if(is_array($displayordernew)) {
foreach($displayordernew as $id => $displayorder) {
$db->query("UPDATE {$tablepre}pluginvars SET displayorder='$displayorder' WHERE pluginid='$pluginid' AND pluginvarid='$id'");
}
}
$newtitle = dhtmlspecialchars(trim($newtitle));
$newvariable = trim($newvariable);
if($newtitle && $newvariable) {
$query = $db->query("SELECT pluginvarid FROM {$tablepre}pluginvars WHERE pluginid='$pluginid' AND variable='$newvariable' LIMIT 1");
if($db->num_rows($query) || strlen($newvariable) > 40 || !ispluginkey($newvariable)) {
cpmsg('plugins_edit_var_invalid', '', 'error');
}
$db->query("INSERT INTO {$tablepre}pluginvars (pluginid, displayorder, title, variable, type)
VALUES ('$pluginid', '$newdisplayorder', '$newtitle', '$newvariable', '$newtype')");
}
}
updatecache('plugins');
updatecache('settings');
cpmsg('plugins_edit_succeed', "$BASESCRIPT?action=plugins&operation=edit&pluginid=$pluginid&anchor=$anchor", 'succeed');
}
} elseif($operation == 'hooks') {
$pluginhook = $db->fetch_first("SELECT * FROM {$tablepre}plugins p, {$tablepre}pluginhooks ph WHERE p.pluginid='$pluginid' AND ph.pluginid=p.pluginid AND ph.pluginhookid='$pluginhookid'");
if(!$pluginhook) {
cpmsg('undefined_action', '', 'error');
}
if(!submitcheck('hooksubmit')) {
shownav('extended', 'nav_plugins');
showsubmenu('nav_plugins', array(
array('config', 'plugins&operation=config', 1),
array('admin', 'plugins', 0),
array('import', 'plugins&operation=import', 0)
));
showtips('plugins_edit_hooks_tips');
showformheader("plugins&operation=hooks&pluginid=$pluginid&pluginhookid=$pluginhookid");
showtableheader();
showtitle($lang['plugins_edit_hooks'].' - '.$pluginhook['title']);
showsetting('plugins_edit_hooks_description', 'descriptionnew', $pluginhook['description'], 'textarea');
showsetting('plugins_edit_hooks_code', 'codenew', $pluginhook['code'], 'textarea');
showsubmit('hooksubmit');
showtablefooter();
showformfooter();
} else {
$descriptionnew = dhtmlspecialchars(trim($descriptionnew));
$codenew = trim($codenew);
$db->query("UPDATE {$tablepre}pluginhooks SET description='$descriptionnew', code='$codenew' WHERE pluginid='$pluginid' AND pluginhookid='$pluginhookid'");
updatecache('settings');
cpmsg('plugins_edit_hooks_succeed', "$BASESCRIPT?action=plugins&operation=edit&pluginid=$pluginid", 'succeed');
}
} elseif($operation == 'vars') {
$pluginvar = $db->fetch_first("SELECT * FROM {$tablepre}plugins p, {$tablepre}pluginvars pv WHERE p.pluginid='$pluginid' AND pv.pluginid=p.pluginid AND pv.pluginvarid='$pluginvarid'");
if(!$pluginvar) {
cpmsg('undefined_action', '', 'error');
}
if(!submitcheck('varsubmit')) {
shownav('extended', 'nav_plugins');
showsubmenu('nav_plugins', array(
array('config', 'plugins&operation=config', 1),
array('admin', 'plugins', 0),
array('import', 'plugins&operation=import', 0)
));
$typeselect = '<select name="typenew">';
foreach(array('number', 'text', 'radio', 'textarea', 'select', 'color', 'date', 'datetime', 'forum', 'forums', 'group', 'groups', 'extcredit') as $type) {
$typeselect .= '<option value="'.$type.'" '.($pluginvar['type'] == $type ? 'selected' : '').'>'.$lang['plugins_edit_vars_type_'.$type].'</option>';
}
$typeselect .= '</select>';
showformheader("plugins&operation=vars&pluginid=$pluginid&pluginvarid=$pluginvarid");
showtableheader();
showtitle($lang['plugins_edit_vars'].' - '.$pluginvar['title']);
showsetting('plugins_edit_vars_title', 'titlenew', $pluginvar['title'], 'text');
showsetting('plugins_edit_vars_description', 'descriptionnew', $pluginvar['description'], 'textarea');
showsetting('plugins_edit_vars_type', '', '', $typeselect);
showsetting('plugins_edit_vars_variable', 'variablenew', $pluginvar['variable'], 'text');
showsetting('plugins_edit_vars_extra', 'extranew', $pluginvar['extra'], 'textarea');
showsubmit('varsubmit');
showtablefooter();
showformfooter();
} else {
$titlenew = cutstr(dhtmlspecialchars(trim($titlenew)), 25);
$descriptionnew = cutstr(dhtmlspecialchars(trim($descriptionnew)), 255);
$variablenew = trim($variablenew);
$extranew = dhtmlspecialchars(trim($extranew));
if(!$titlenew) {
cpmsg('plugins_edit_vars_title_invalid', '', 'error');
} elseif($variablenew != $pluginvar['variable']) {
$query = $db->query("SELECT pluginvarid FROM {$tablepre}pluginvars WHERE variable='$variablenew'");
if($db->num_rows($query) || !$variablenew || strlen($variablenew) > 40 || !ispluginkey($variablenew)) {
cpmsg('plugins_edit_vars_invalid', '', 'error');
}
}
$db->query("UPDATE {$tablepre}pluginvars SET title='$titlenew', description='$descriptionnew', type='$typenew', variable='$variablenew', extra='$extranew' WHERE pluginid='$pluginid' AND pluginvarid='$pluginvarid'");
updatecache('plugins');
cpmsg('plugins_edit_vars_succeed', "$BASESCRIPT?action=plugins&operation=edit&pluginid=$pluginid", 'succeed');
}
}
function modulecmp($a, $b) {
return $a['displayorder'] > $b['displayorder'] ? 1 : -1;
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -