Location: PHPKode > scripts > CSS Crush > peteboere-css-crush-0b51f2e/lib/Plugin.php
<?php
/**
 * 
 *  Plugin API
 * 
 */
class csscrush_plugin {

    // The required prefix to all plugin function names
    static public $prefix = 'csscrush__';

    // The current loaded plugins
    static protected $associated_hooks = array();

    // Externally associate a hook with the plugin
    static public function registerHook ( $plugin_name, $hook ) {

        self::$associated_hooks[ $plugin_name ] = $hook;
    }

    static public function enable ( $plugin_name ) {

        $plugin_function = self::$prefix . $plugin_name;

        // Require the plugin file if it hasn't been already
        if ( ! function_exists( $plugin_function ) ) {

            $path = csscrush::$config->location . "/plugins/$plugin_name.php";

            if ( ! file_exists( $path ) ) {

                trigger_error( __METHOD__ .
                    ": <b>$plugin_name</b> plugin not found.\n", E_USER_NOTICE );
                return false;
            }
            require_once $path;
        }

        // If the plugin is associated with a hook, we make sure it is hooked
        if ( isset( self::$associated_hooks[ $plugin_name ] ) ) {

            csscrush_hook::add(
                self::$associated_hooks[ $plugin_name ],
                $plugin_function );
        }
        return true;
    }

    static public function disable ( $plugin_name ) {

        // If the plugin is associated with a hook, we 'un-hook' it
        if ( isset( self::$associated_hooks[ $plugin_name ] ) ) {

            csscrush_hook::remove(
                self::$associated_hooks[ $plugin_name ],
                self::$prefix . str_replace( '-', '_', $plugin_name ) );
        }
    }
}
Return current item: CSS Crush