Browse Source

Fixing plugin configuration settings

Julio Montoya 13 years ago
parent
commit
f31b13607e
1 changed files with 23 additions and 15 deletions
  1. 23 15
      main/admin/configure_plugin.php

+ 23 - 15
main/admin/configure_plugin.php

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