Changeset 8049 for trunk/wp-admin/includes/plugin.php
- Timestamp:
- 06/04/2008 06:09:31 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/wp-admin/includes/plugin.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/includes/plugin.php
r7999 r8049 133 133 } 134 134 135 function deactivate_all_plugins() { 136 $current = get_option('active_plugins'); 137 if ( empty($current) ) 138 return; 139 140 deactivate_plugins($current); 141 142 update_option('deactivated_plugins', $current); 143 } 144 145 function reactivate_all_plugins($redirect = '') { 146 $plugins = get_option('deactivated_plugins'); 147 148 if ( empty($plugins) ) 149 return; 150 151 if ( !empty($redirect) ) 152 wp_redirect(add_query_arg('_error_nonce', wp_create_nonce('plugin-activation-error_' . $plugin), $redirect)); 135 //Replaces reactivate_all_plugins() / deactivate_all_plugins() = 'deactivated_plugins' is now useless 136 function activate_plugins($plugins, $redirect = '') { 137 if ( !is_array($plugins) ) 138 $plugins = array($plugins); 153 139 154 140 $errors = array(); 155 141 foreach ( (array) $plugins as $plugin ) { 156 $result = activate_plugin($plugin); 142 if ( !empty($redirect) ) 143 $redirect = add_query_arg('plugin', $plugin, $redirect); 144 $result = activate_plugin($plugin, $redirect); 157 145 if ( is_wp_error($result) ) 158 146 $errors[$plugin] = $result; 159 147 } 160 148 161 delete_option('deactivated_plugins');162 163 149 if ( !empty($errors) ) 164 150 return new WP_Error('plugins_invalid', __('One of the plugins is invalid.'), $errors); 165 151 152 return true; 153 } 154 155 function delete_plugins($plugins, $redirect = '' ) { 156 global $wp_filesystem; 157 158 if( empty($plugins) ) 159 return false; 160 161 $checked = array(); 162 foreach( $plugins as $plugin ) 163 $checked[] = 'checked[]=' . $plugin; 164 165 ob_start(); 166 $url = wp_nonce_url('plugins.php?action=delete-selected&' . implode('&', $checked), 'mass-manage-plugins'); 167 if ( false === ($credentials = request_filesystem_credentials($url)) ) { 168 $data = ob_get_contents(); 169 ob_end_clean(); 170 if( ! empty($data) ){ 171 include_once( ABSPATH . 'wp-admin/admin-header.php'); 172 echo $data; 173 include( ABSPATH . 'wp-admin/admin-footer.php'); 174 exit; 175 } 176 return; 177 } 178 179 if ( ! WP_Filesystem($credentials) ) { 180 request_filesystem_credentials($url, '', true); //Failed to connect, Error and request again 181 $data = ob_get_contents(); 182 ob_end_clean(); 183 if( ! empty($data) ){ 184 include_once( ABSPATH . 'wp-admin/admin-header.php'); 185 echo $data; 186 include( ABSPATH . 'wp-admin/admin-footer.php'); 187 exit; 188 } 189 return; 190 } 191 192 if ( $wp_filesystem->errors->get_error_code() ) { 193 return $wp_filesystem->errors; 194 } 195 196 if ( ! is_object($wp_filesystem) ) 197 return new WP_Error('fs_unavailable', __('Could not access filesystem.')); 198 199 if ( $wp_filesystem->errors->get_error_code() ) 200 return new WP_Error('fs_error', __('Filesystem error'), $wp_filesystem->errors); 201 202 //Get the base plugin folder 203 $plugins_dir = $wp_filesystem->wp_plugins_dir(); 204 if ( empty($plugins_dir) ) 205 return new WP_Error('fs_no_plugins_dir', __('Unable to locate WordPress Plugin directory.')); 206 207 $plugins_dir = trailingslashit( $plugins_dir ); 208 209 $errors = array(); 210 211 foreach( $plugins as $plugin_file ) { 212 $this_plugin_dir = trailingslashit( dirname($plugins_dir . $plugin_file) ); 213 // If plugin is in its own directory, recursively delete the directory. 214 if ( strpos($plugin_file, '/') && $this_plugin_dir != $plugins_dir ) //base check on if plugin includes directory seperator AND that its not the root plugin folder 215 $deleted = $wp_filesystem->delete($this_plugin_dir, true); 216 else 217 $deleted = $wp_filesystem->delete($plugins_dir . $plugin_file); 218 219 if ( ! $deleted ) 220 $errors[] = $plugin_file; 221 } 222 223 if( ! empty($errors) ) 224 return new WP_Error('could_not_remove_plugin', sprintf(__('Could not fully remove the plugin(s) %s'), implode(', ', $errors)) ); 225 166 226 return true; 167 227 }
Note: See TracChangeset
for help on using the changeset viewer.