From 37f40b79356acd8fcad343e94755e69a56c34b9a Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Mon, 4 Jul 2005 21:53:26 +0000 Subject: [PATCH] register_activation_hook() and register_deactivation_hook(). Let's try these on. git-svn-id: https://develop.svn.wordpress.org/trunk@2697 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/admin-functions.php | 4 ---- wp-admin/plugins.php | 13 +++++++------ wp-includes/functions.php | 16 ++++++++++++++++ 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/wp-admin/admin-functions.php b/wp-admin/admin-functions.php index 56cb1fa63b..ac29725254 100644 --- a/wp-admin/admin-functions.php +++ b/wp-admin/admin-functions.php @@ -1072,10 +1072,6 @@ function get_admin_page_parent() { return ''; } -function plugin_basename($file) { - return preg_replace('/^.*wp-content[\\\\\/]plugins[\\\\\/]/', '', $file); -} - function add_menu_page($page_title, $menu_title, $access_level, $file, $function = '') { global $menu, $admin_page_hooks; diff --git a/wp-admin/plugins.php b/wp-admin/plugins.php index 1e7de39f69..3b0f997d61 100644 --- a/wp-admin/plugins.php +++ b/wp-admin/plugins.php @@ -3,21 +3,22 @@ require_once('admin.php'); if ( isset($_GET['action']) ) { check_admin_referer(); - + if ('activate' == $_GET['action']) { $current = get_settings('active_plugins'); if (!in_array($_GET['plugin'], $current)) { $current[] = trim( $_GET['plugin'] ); + sort($current); + update_option('active_plugins', $current); + include(ABSPATH . 'wp-content/plugins/' . trim( $_GET['plugin'] )); + do_action('activate_' . trim( $_GET['plugin'] )); } - sort($current); - update_option('active_plugins', $current); header('Location: plugins.php?activate=true'); - } - - if ('deactivate' == $_GET['action']) { + } else if ('deactivate' == $_GET['action']) { $current = get_settings('active_plugins'); array_splice($current, array_search( $_GET['plugin'], $current), 1 ); // Array-fu! update_option('active_plugins', $current); + do_action('deactivate_' . trim( $_GET['plugin'] )); header('Location: plugins.php?deactivate=true'); } } diff --git a/wp-includes/functions.php b/wp-includes/functions.php index 0be231a35e..b0c74dcfbd 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -1966,4 +1966,20 @@ function update_usermeta( $user_id, $meta_key, $meta_value ) { $wpdb->query("UPDATE $wpdb->usermeta SET meta_value = '$meta_value' WHERE user_id = '$user_id' AND meta_key = '$meta_key'"); } +function register_activation_hook($file, $function) { + $file = plugin_basename($file); + + add_action('activate_' . $file, $function); +} + +function register_deactivation_hook($file, $function) { + $file = plugin_basename($file); + + add_action('deactivate_' . $file, $function); +} + +function plugin_basename($file) { + return preg_replace('/^.*wp-content[\\\\\/]plugins[\\\\\/]/', '', $file); +} + ?> \ No newline at end of file