<?php if ( ! defined( 'ABSPATH' ) ) exit; class autoshortcoder { /** * The single instance of autoshortcoder. * @var object * @access private * @since 1.0.0 */ private static $_instance = null; /** * Settings class object * @var object * @access public * @since 1.0.0 */ public $settings = null; /** * The version number. * @var string * @access public * @since 1.0.0 */ public $_version; /** * The token. * @var string * @access public * @since 1.0.0 */ public $_token; /** * The main plugin file. * @var string * @access public * @since 1.0.0 */ public $file; /** * The main plugin directory. * @var string * @access public * @since 1.0.0 */ public $dir; /** * The plugin assets directory. * @var string * @access public * @since 1.0.0 */ public $assets_dir; /** * The plugin assets URL. * @var string * @access public * @since 1.0.0 */ public $assets_url; /** * Suffix for Javascripts. * @var string * @access public * @since 1.0.0 */ public $script_suffix; /** * Constructor function. * @access public * @since 1.0.0 * @return void */ public function __construct ( $file = '', $version = '1.0.0' ) { $this->_version = $version; $this->_token = 'autoshortcoder'; // Load plugin environment variables $this->file = $file; $this->dir = dirname( $this->file ); $this->assets_dir = trailingslashit( $this->dir ) . 'assets'; $this->assets_url = esc_url( trailingslashit( plugins_url( '/assets/', $this->file ) ) ); $this->script_suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; register_activation_hook( $this->file, array( $this, 'install' ) ); // Load admin JS & CSS add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ), 10, 1 ); add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_styles' ), 10, 1 ); // Load API for generic admin functions if ( is_admin() ) { $this->admin = new autoshortcoder_Admin_API(); } //add_action( 'init', array( $this, 'load_localisation' ), 0 ); } // End __construct () /** * Load admin CSS. * @access public * @since 1.0.0 * @return void */ public function admin_enqueue_styles ( $hook = '' ) { wp_register_style( $this->_token . '-admin', esc_url( $this->assets_url ) . 'css/admin.css', array(), $this->_version ); wp_enqueue_style( $this->_token . '-admin' ); } // End admin_enqueue_styles () /** * Load admin Javascript. * @access public * @since 1.0.0 * @return void */ public function admin_enqueue_scripts ( $hook = '' ) { wp_register_script( $this->_token . '-admin', esc_url( $this->assets_url ) . 'js/admin' . $this->script_suffix . '.js', array( 'jquery' ), $this->_version ); wp_enqueue_script( $this->_token . '-admin' ); } // End admin_enqueue_scripts () /** * Main autoshortcoder Instance * * Ensures only one instance of autoshortcoder is loaded or can be loaded. * * @since 1.0.0 * @static * @see autoshortcoder() * @return Main autoshortcoder instance */ public static function instance ( $file = '', $version = '1.0.0' ) { if ( is_null( self::$_instance ) ) { self::$_instance = new self( $file, $version ); } return self::$_instance; } // End instance () /** * Cloning is forbidden. * * @since 1.0.0 */ public function __clone () { _doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?' ), $this->_version ); } // End __clone () /** * Unserializing instances of this class is forbidden. * * @since 1.0.0 */ public function __wakeup () { _doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?' ), $this->_version ); } // End __wakeup () /** * Installation. Runs on activation. * @access public * @since 1.0.0 * @return void */ public function install () { $this->_log_version_number(); } // End install () /** * Log the plugin version number. * @access public * @since 1.0.0 * @return void */ private function _log_version_number () { update_option( $this->_token . '_version', $this->_version ); } // End _log_version_number () }