path = plugin_dir_path($this->file); $this->url = plugin_dir_url($this->file); // Load text domain load_plugin_textdomain($this->textDomain, false, $this->path.'/lang'); // Instantiate our SASS manager $this->sass = new scssc(); // Adds Backend scripts and styles add_action('admin_enqueue_scripts', array($this, 'enqueueAdminScripts')); add_action('admin_enqueue_scripts', array($this, 'enqueueAdminStyles')); // Adds Frontend scripts and styles add_action('wp_enqueue_scripts', array($this, 'enqueueFrontendScripts')); add_action('wp_enqueue_scripts', array($this, 'enqueueFrontendStyles')); // Adds Login scripts ans styles add_action('login_enqueue_scripts', array($this, 'enqueueLoginScripts')); add_action('login_enqueue_scripts', array($this, 'enqueueLoginStyles')); // Adds our custom Admin pages hook add_action('init', array(&$this, 'adminPages')); // Run our plugin as soon as possible add_action('init', array(&$this, 'Plugin'), 0); } /** * UTILITY BELT * This is one of the single most important parts of the framework, a utility belt that makes much easier to * get assets, paths, urls, add Advanced Custom Fields and etc. */ /** * Return absolute path to some plugin subdirectory * @return string Absolute path */ public function path($dir) { return $this->path.$dir; } /** * Return url to some plugin subdirectory * @return string Url to passed path */ public function url($dir) { return $this->url.$dir; } /** * Return full URL relative to some file in assets * @return string Full URL to path */ public function getAsset($asset, $assetsDir = 'img') { return $this->url("assets/$assetsDir/$asset"); } /** * Render Views * @param string $view View to be rendered. * @param Array $vars Variables to be made available on the view escope, via extract(). */ public function render($view, $vars = false) { // Make passed variables available if (is_array($vars)) extract($vars); // Load our view include $this->path("views/$view.php"); } /** * Compile SASS code * @param string $sass SASS to be compiled * @return string Compiled CSS */ public function compileSass($sass) { return $this->sass->compile($sass); } /** * Add ACF if need as a dependencie */ public function addACF() { // Change Path add_filter('acf/settings/path', array($this, 'acfPath')); // Change Dir add_filter('acf/settings/dir', array($this, 'acfDir')); // Hide UI, if debug is off if ($this->debug === false) add_filter('acf/settings/show_admin', '__return_false'); // Load Plugin Core include_once $this->path('paradox/inc/acf/acf.php'); } /** * Change ACF Path */ public function acfPath() { return $this->path('paradox/inc/acf/'); } /** * Change ACF Dir */ public function acfDir() { return $this->url('paradox/inc/acf/'); } /** * Wrapper method to the ACF get field function * @param string $field The name of the field. * @param bool $display Either or not to display the content. */ public function getField($field, $display = false) { return $display ? the_field($field, 'option') : get_field($field, 'option'); } /** * Wrapper method to the ACF update field function * @param string $field The name of the field. * @param bool $value The new value of the field. */ public function updateField($field, $value) { return update_field($field, $value, 'option'); } /** * SCRIPTS AND STYLES * The section bellow handles the adding of scripts and css files to the different hooks WordPress offers * such as Admin, Frontend and Login. Calling anyone of these hooks on the child class you automaticaly * add the scripts hooked to the respective hook. */ /** * Enqueue and register Admin JavaScript files here. */ public function enqueueAdminScripts() {} /** * Enqueue and register Admin CSS files here. */ public function enqueueAdminStyles() {} /** * Enqueue and register Frontend JavaScript files here. */ public function enqueueFrontendScripts() {} /** * Enqueue and register Frontend CSS files here. */ public function enqueueFrontendStyles() {} /** * Enqueue and register Login JavaScript files here. */ public function enqueueLoginScripts() {} /** * Enqueue and register Login CSS files here. */ public function enqueueLoginStyles() {} /** * IMPORTANT METHODS * Set bellow are the must important methods of this framework. Without them, none would work. */ /** * Here is where we create and manage our admin pages */ public function adminPages() {} /** * Place code for your plugin's functionality here. */ public function Plugin() {} } endif;