📄 plugins.inc.php
字号:
} 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');
} elseif(!isplugindir($directorynew)) {
cpmsg('plugins_edit_directory_invalid');
} 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');
}
}
$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'],
);
}
}
}
$newmodule = array();
if(!empty($newname)) {
$modulesnew[] = array
(
'name' => $newname,
'menu' => $newmenu,
'url' => $newurl,
'type' => $newtype,
'adminid' => $newadminid
);
}
$namesarray = array();
foreach($modulesnew as $key => $module) {
if(!ispluginkey($module['name'])) {
cpmsg('plugins_edit_modules_name_invalid');
} elseif(in_array($module['name'], $namesarray)) {
cpmsg('plugins_edit_modules_duplicated');
}
$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 1:
if(empty($module['url'])) {
cpmsg('plugins_edit_modules_url_invalid');
}
break;
case 2:
case 3:
if(empty($module['menu'])) {
cpmsg('plugins_edit_modules_menu_invalid');
}
unset($module['url']);
break;
case 4:
unset($module['menu'], $module['url']);
break;
default:
cpmsg('undefined_action');
}
$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');
}
$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');
}
$db->query("INSERT INTO {$tablepre}pluginhooks (pluginid, title, description, code, available)
VALUES ('$pluginid', '".dhtmlspecialchars($newtitle)."', '', '', 0)");
}
} elseif($type == 'vars') {
if(is_array($delete)) {
$ids = $comma = '';
foreach($delete as $id => $val) {
$ids .= "$comma'$id'";
$comma = ',';
}
$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');
}
$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', "admincp.php?action=pluginsedit&pluginid=$pluginid#$type");
}
} elseif($action == 'pluginhooks' && $pluginid && $pluginhookid) {
$query = $db->query("SELECT * FROM {$tablepre}plugins p, {$tablepre}pluginhooks ph WHERE p.pluginid='$pluginid' AND ph.pluginid=p.pluginid AND ph.pluginhookid='$pluginhookid'");
if(!$pluginhook = $db->fetch_array($query)) {
cpmsg('undefined_action');
}
if(!submitcheck('hooksubmit')) {
?>
<form method="post" action="admincp.php?action=pluginhooks&pluginid=<?=$pluginid?>&pluginhookid=<?=$pluginhookid?>&formhash=<?=FORMHASH?>">
<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['plugins_edit_hooks_tips']?>
</td></tr></table><br><br>
<?
showtype($lang['plugins_edit_hooks'].' - '.$pluginhook['title'], 'top');
showsetting('plugins_edit_hooks_description', 'descriptionnew', $pluginhook['description'], 'textarea');
showsetting('plugins_edit_hooks_code', 'codenew', $pluginhook['code'], 'textarea');
showtype('', 'bottom');
echo "<br><center><input type=\"submit\" name=\"hooksubmit\" value=\"$lang[submit]\"></center></form>\n<br>";
} 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', "admincp.php?action=pluginsedit&pluginid=$pluginid");
}
} elseif($action == 'pluginvars' && $pluginid && $pluginvarid) {
$query = $db->query("SELECT * FROM {$tablepre}plugins p, {$tablepre}pluginvars pv WHERE p.pluginid='$pluginid' AND pv.pluginid=p.pluginid AND pv.pluginvarid='$pluginvarid'");
if(!$pluginvar = $db->fetch_array($query)) {
cpmsg('undefined_action');
}
if(!submitcheck('varsubmit')) {
$typeselect = '<select name="typenew">';
foreach(array('number', 'text', 'radio', 'textarea', 'select', 'color') as $type) {
$typeselect .= '<option value="'.$type.'" '.($pluginvar['type'] == $type ? 'selected' : '').'>'.$lang['plugins_edit_vars_type_'.$type].'</option>';
}
$typeselect .= '</select>';
echo "<form method=\"post\" action=\"admincp.php?action=pluginvars&pluginid=$pluginid&pluginvarid=$pluginvarid&formhash=".FORMHASH."\">\n";
showtype($lang['plugins_edit_vars'].' - '.$pluginvar['title'], 'top');
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');
showtype('', 'bottom');
echo "<br><center><input type=\"submit\" name=\"varsubmit\" value=\"$lang[submit]\"></center></form>\n<br>";
} 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');
} 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');
}
}
$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', "admincp.php?action=pluginsedit&pluginid=$pluginid");
}
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -