- Bugfix: uninstall function to really remove all settings done in the settings page

- Bugfix: load default settings after plugin is installed

git-svn-id: https://plugins.svn.wordpress.org/footnotes/trunk@919395 b8457f37-d9ea-0310-8a92-e5e31aec5664
This commit is contained in:
Aricura 2014-05-22 13:33:57 +00:00
parent a42f55165a
commit ca2c42eeaa
5 changed files with 29 additions and 46 deletions

View file

@ -36,13 +36,6 @@ class Class_Footnotes
add_action('init', array($this, 'init'));
add_action('admin_init', array($this, 'admin_init'));
add_action('admin_menu', array($this, 'admin_menu'));
/* register hook for activating the plugin */
register_activation_hook(__FILE__, array($this, 'activate'));
/* register hook for deactivating the plugin */
register_deactivation_hook(__FILE__, array($this, 'deactivate'));
/* register hook for uninstalling the plugin */
register_uninstall_hook(__FILE__, array($this, 'uninstall'));
}
/**
@ -70,7 +63,21 @@ class Class_Footnotes
*/
function uninstall()
{
require_once(dirname(__FILE__) . '/../includes/uninstall.php');
/* uninstalling the plugin is only allowed for logged in users */
if (!is_user_logged_in()) {
wp_die(__('You must be logged in to run this script.', FOOTNOTES_PLUGIN_NAME));
}
/* current user needs the permission to (un)install plugins */
if (!current_user_can('install_plugins')) {
wp_die(__('You do not have permission to run this script.', FOOTNOTES_PLUGIN_NAME));
}
/*
* delete the settings container in the database
* @since 1.0.6
*/
delete_option(FOOTNOTE_SETTINGS_CONTAINER);
}
/**

View file

@ -44,6 +44,10 @@ function footnotes_plugin_settings_link($links, $file)
function footnotes_filter_options($p_str_OptionsField, $p_arr_DefaultValues, $p_bool_ConvertHtmlChars = true)
{
$l_arr_Options = get_option($p_str_OptionsField);
/* if no settings set yet return default values */
if (empty($l_arr_Options)) {
return $p_arr_DefaultValues;
}
/* loop through all keys in the array and filters them */
foreach ($l_arr_Options as $l_str_Key => $l_str_Value) {
/* removes special chars from the settings value */

View file

@ -1,38 +0,0 @@
<?php
/**
* Created by Stefan Herndler.
* User: Stefan
* Date: 15.05.14
* Time: 16:21
* Version: 1.0.6
* Since: 1.0
*/
/* check if the wordpress function to uninstall plugins is active */
if (!defined('WP_UNINSTALL_PLUGIN')) {
header('Status: 403 Forbidden');
header('HTTP/1.1 403 Forbidden');
exit();
}
/*
* requires the defines of the plugin
* @since 1.0.6
*/
require_once(dirname(__FILE__) . '/defines.php');
/* uninstalling the plugin is only allowed for logged in users */
if (!is_user_logged_in()) {
wp_die(__('You must be logged in to run this script.', FOOTNOTES_PLUGIN_NAME));
}
/* current user needs the permission to (un)install plugins */
if (!current_user_can('install_plugins')) {
wp_die(__('You do not have permission to run this script.', FOOTNOTES_PLUGIN_NAME));
}
/*
* delete the settings container in the database
* @since 1.0.6
*/
delete_option(FOOTNOTE_SETTINGS_CONTAINER);

View file

@ -67,6 +67,14 @@ if (!function_exists('is_admin')) {
exit();
}
/* register hook for activating the plugin */
register_activation_hook(__FILE__, array('Class_Footnotes', 'activate'));
/* register hook for deactivating the plugin */
register_deactivation_hook(__FILE__, array('Class_Footnotes', 'deactivate'));
/* register hook for uninstalling the plugin */
register_uninstall_hook(__FILE__, array('Class_Footnotes', 'uninstall'));
/* action to locate language and load the wordpress-specific language file */
add_action('plugins_loaded', 'footnotes_load_language');

View file

@ -43,6 +43,8 @@ No, this Plugin has been written from scratch. Of course some inspirations on ho
- Update: Setting where the reference container appears on public pages can also be set to the widget area
- Add: link to the wordpress.org support page in the plugin main page
- Update: Changed plugin URL from GitHub to WordPress
- Bugfix: uninstall function to really remove all settings done in the settings page
- Bugfix: load default settings after plugin is installed
= 1.1.0 =
- Update: Global styling for the public plugin name