From f3321305690352954b78e8446eddbe26002040f7 Mon Sep 17 00:00:00 2001 From: Tom McFarlin Date: Thu, 8 May 2014 23:34:16 -0400 Subject: [PATCH] moving all bootstrap code into this file, adding some getters for dependencies setting up this file to fire the plugin so that it's prepared to handle any hooks given to the loader --- .../trunk/includes/class-plugin-name.php | 129 +++++++++++++++--- 1 file changed, 109 insertions(+), 20 deletions(-) diff --git a/plugin-name/trunk/includes/class-plugin-name.php b/plugin-name/trunk/includes/class-plugin-name.php index e9fd502..e8de47d 100644 --- a/plugin-name/trunk/includes/class-plugin-name.php +++ b/plugin-name/trunk/includes/class-plugin-name.php @@ -24,37 +24,126 @@ class Plugin_Name { /** - * This class is used to define common functionality that exists between - * both the dashboard and the public-facing side of the website. Think - * of this as a shared class. - * - * If any hooks are defined in this class, then they should be defined - * in their respective Loader classes (that is, Plugin_Name_Admin_Loader - * or Plugin_Name_Public_Loader). - * - * An instance of this class should then be passed to the loader. + * TODO */ - - protected $plugin_slug = 'plugin-name-slug'; - - protected $version = '1.0.0'; - protected $loader; - public function __construct( Plugin_Name_Loader $loader ) { - $this->loader = $loader; + /** + * TODO + */ + protected $plugin_slug; + + /** + * TODO + */ + protected $version; + + /** + * TODO + */ + public function __construct() { + + $this->plugin_slug = 'plugin-name-slug'; + $this->version = '1.0.0'; + + $this->load_dependencies(); + $this->set_locale(); + $this->define_admin_hooks(); + $this->define_public_hooks(); + } + /** + * TODO + */ + private function load_dependencies() { + + /** + * The class responsible for orchestrating the actions and filters of the + * core plugin. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-plugin-name-loader.php'; + + /** + * The class responsible for defining internationalization functionality + * of the plugin. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-plugin-name-i18n.php'; + + /** + * The class responsible for defining all actions that occur in the Dashboard. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-plugin-name-admin.php'; + + /** + * The class responsible for defining all actions that occur in the public-facing + * side of the site. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-plugin-name-public.php'; + + $this->loader = new Plugin_Name_Loader(); + + } + + /** + * TODO + */ + private function set_locale() { + + $plugin_i18n = new Plugin_Name_i18n(); + $plugin_i18n->set_domain( $this->get_slug() ); + $this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' ); + + } + + /** + * TODO + */ + private function define_admin_hooks() { + + $plugin_admin = new Plugin_Name_Admin( $this->get_version() ); + $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' ); + $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' ); + + } + + /** + * TODO + */ + private function define_public_hooks() { + + $plugin_public = new Plugin_Name_Public( $this->get_version() ); + $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' ); + $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' ); + + } + + /** + * TODO + */ public function run() { $this->loader->run(); } - public function get_version() { - return $this->version; - } - + /** + * TODO + */ public function get_slug() { return $this->plugin_slug; } + /** + * TODO + */ + public function get_loader() { + return $this->loader; + } + + /** + * TODO + */ + public function get_version() { + return $this->version; + } + }