public static function init($str = 'tiny', $menu_title, $title, $fields, $tabs, $parent_class, $file = false, $role = false)
 {
     self::$fields = $fields;
     self::$tabs = $tabs;
     self::$file = $file ? $file : __FILE__;
     self::$id = $str . '_options';
     self::$menu_title = $menu_title;
     self::$title = $title;
     self::$parent_class = $parent_class;
     self::$role = $role ? $role : self::$role;
     self::build_settings();
     add_options_page(self::$title, self::$menu_title, self::$role, self::$file, array('HackRepair_Plugin_Archiver_Options', 'page'));
 }
 public static function admin_init()
 {
     global $pagenow;
     if ('plugins.php' === $pagenow) {
         $dirs = self::get_archive_dirs();
         if (1 < sizeof($dirs)) {
             require_once self::$plugin_dir . 'includes/pointers.php';
             add_action('admin_enqueue_scripts', array('HackRepair_Plugin_Archiver_Pointer', 'enqueue_scripts'));
             add_filter('hackrepair_plugin_archiver_pointers', array('HackRepair_Plugin_Archiver', 'pointer_filter'));
         }
     }
     require_once self::$plugin_dir . 'includes/options.php';
     $archive_dirs = self::get_archive_dirs();
     $fields = array("general" => array('title' => '', 'callback' => '', 'options' => array('archive_dir' => array('title' => __('Current Archive Directory', 'hackrepair-plugin-archiver'), 'args' => array('values' => $archive_dirs, 'description' => __('Name of the directory to store archived plugins in. Relative to <code>WP_CONTENT_DIR</code>.', 'hackrepair-plugin-archiver')), 'callback' => 'select'), 'archive_dir_add' => array('title' => __('New Archive Directory', 'hackrepair-plugin-archiver'), 'args' => array('description' => __('Create a new Plugin Archive directory. Will be prefixed with <code>plugins-</code>.', 'hackrepair-plugin-archiver')), 'callback' => 'text_plugins'), 'deactivate' => array('title' => __('Deactivate Before Archiving', 'hackrepair-plugin-archiver'), 'args' => array('description' => __('Should the plugin be automatically deactivated before moving it to the archive?', 'hackrepair-plugin-archiver')), 'callback' => 'checkbox'))));
     $tabs = array('settings' => array('title' => __('Settings', 'hackrepair-plugin-archiver'), 'href' => admin_url('options-general.php?page=hackrepair-plugin-archiver-settings'), 'class' => '', 'callback' => 'settings'), 'archive' => array('title' => __('Archived Plugins', 'hackrepair-plugin-archiver'), 'href' => admin_url('plugins.php?page=hackrepair-plugin-archiver'), 'class' => ''), 'notes' => array('title' => __('Author Notes', 'hackrepair-plugin-archiver'), 'href' => admin_url('options-general.php?page=hackrepair-plugin-archiver-settings&tab=notes'), 'class' => '', 'callback' => array('HackRepair_Plugin_Archiver', 'notes')));
     HackRepair_Plugin_Archiver_Options::init('hackrepair-plugin-archiver', __('Plugin Archiver', 'hackrepair-plugin-archiver'), __('The Hack Repair Guy\'s Plugin Archiver: Settings', 'hackrepair-plugin-archiver'), $fields, $tabs, 'HackRepair_Plugin_Archiver', 'hackrepair-plugin-archiver-settings');
 }