Fixing plugin configuration settings

skala
Julio Montoya 13 years ago
parent 1a974bc933
commit f31b13607e
  1. 38
      main/admin/configure_plugin.php

@ -10,6 +10,9 @@ $language_file = array ('registration','admin');
$cidReset = true; $cidReset = true;
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
// Access restrictions
api_protect_admin_script();
$plugin_name = $_GET['name']; $plugin_name = $_GET['name'];
$plugin_obj = new AppPlugin(); $plugin_obj = new AppPlugin();
@ -21,36 +24,41 @@ if (empty($plugin_info)) {
$installed_plugins = $plugin_obj->get_installed_plugins(); $installed_plugins = $plugin_obj->get_installed_plugins();
if (!in_array($plugin_name, $installed_plugins)) { if (!in_array($plugin_name, $installed_plugins)) {
api_not_allowed(); api_not_allowed();
} }
global $_configuration; global $_configuration;
$content = ''; $content = null;
if (isset($plugin_info['settings_form'])) { if (isset($plugin_info['settings_form'])) {
$form = $plugin_info['settings_form']; $form = $plugin_info['settings_form'];
if (isset($form)) { if (isset($form)) {
//We override the form attributes //We override the form attributes
$attributes = array('action'=>api_get_self().'?name='.$plugin_name, 'method'=>'POST'); $attributes = array('action'=>api_get_self().'?name='.$plugin_name, 'method'=>'POST');
$form->updateAttributes($attributes); $form->updateAttributes($attributes);
$content = $form->toHtml(); $content = Display::page_subheader($plugin_info['title']);
$content .= $form->toHtml();
} }
} else {
$message = Display::return_message(get_lang('NoConfigurationSettingsForThisPlugin'), 'warning');
} }
if (isset($form) && $form->validate()) { if (isset($form)) {
$values = $form->exportValues(); if ($form->validate()) {
//api_delete_category_settings_by_subkey($plugin_name); $values = $form->exportValues();
$access_url_id = api_get_current_access_url_id(); //api_delete_category_settings_by_subkey($plugin_name);
api_delete_settings_params(array('category = ? AND access_url = ? AND subkey = ? AND type = ? and variable <> ?' => $access_url_id = api_get_current_access_url_id();
array('Plugins', $access_url_id, $plugin_name, 'setting', "status"))); api_delete_settings_params(array('category = ? AND access_url = ? AND subkey = ? AND type = ? and variable <> ?' =>
foreach ($values as $key => $value) { array('Plugins', $access_url_id, $plugin_name, 'setting', "status")));
$key = Database::escape_string($plugin_name.'_'.$key); foreach ($values as $key => $value) {
api_add_setting($value, $key, $plugin_name, 'setting', 'Plugins', $plugin_name, null, null, null, $_configuration['access_url'], 1); $key = Database::escape_string($plugin_name.'_'.$key);
api_add_setting($value, $key, $plugin_name, 'setting', 'Plugins', $plugin_name, null, null, null, $_configuration['access_url'], 1);
}
$message = Display::return_message(get_lang('ConfigurationSaved'), 'success');
} }
} else {
$content = Display::return_message(get_lang('NoConfigurationSettingsForThisPlugin'), 'warning');
} }
$tpl = new Template($tool_name); $tpl = new Template($tool_name);

Loading…
Cancel
Save