Make WordPress Core

Ticket #4048: get_plugin_data.pre_activate-hooks.patch

File get_plugin_data.pre_activate-hooks.patch, 1.3 KB (added by darkdragon, 17 years ago)

Combines get_plugin_data hook and before_activate_ hooks

  • plugin.php

     
    2828                $author = '<a href="' . trim( $author_uri[1] ) . '" title="'.__( 'Visit author homepage' ).'">' . trim( $author_name[1] ) . '</a>';
    2929        }
    3030
    31         return array('Name' => $name, 'Title' => $plugin, 'Description' => $description, 'Author' => $author, 'Version' => $version);
     31        $plugin_data = apply_filters( 'get_plugin_data', array('Name' => $name, 'Title' => $plugin, 'Description' => $description, 'Author' => $author, 'Version' => $version) );
     32
     33        return $plugin_data;
    3234}
    3335
    3436function get_plugins() {
     
    99101                        wp_redirect(add_query_arg('_error_nonce', wp_create_nonce('plugin-activation-error_' . $plugin), 'plugins.php?error=true&plugin=' . $plugin)); // we'll override this later if the plugin can be included without fatal error
    100102                        ob_start();
    101103                        @include(ABSPATH . PLUGINDIR . '/' . $plugin);
    102                         $current[] = $plugin;
    103                         sort($current);
    104                         update_option('active_plugins', $current);
    105                         do_action('activate_' . $plugin);
     104                        $can_activate = apply_filters( 'before_activate_' . $plugin, true );
     105                        if( $can_activate ) {
     106                                $current[] = $plugin;
     107                                sort($current);
     108                                update_option('active_plugins', $current);
     109                                do_action('activate_' . $plugin);
     110                        }
    106111                        ob_end_clean();
    107112                }
    108113