2014-09-14 20:32:59 +00:00
< ? php
/**
* Includes the main Class of the Plugin .
2020-11-01 05:41:22 +00:00
*
* IMPORTANT : In registerPublic (), keep plugin version # up to date for cache busting.
2014-09-14 20:32:59 +00:00
*
* @ filesource
* @ author Stefan Herndler
* @ since 1.5 . 0 12.09 . 14 10 : 56
2020-11-01 05:41:22 +00:00
*
2020-11-01 18:09:17 +00:00
* Edited for v2 . 0.0 : Added jQueryUI from CDN 2020 - 10 - 26 T1907 + 0100
2020-11-01 05:41:22 +00:00
* Edited for v2 . 0.3 : Added style sheet versioning 2020 - 10 - 29 T1413 + 0100
2020-11-01 18:09:17 +00:00
* Edited for v2 . 0.4 : Added jQuery UI from WordPress 2020 - 11 - 01 T1902 + 0100
2020-11-05 02:34:35 +00:00
*
2020-11-05 18:05:49 +00:00
* Last modified : 2020 - 11 - 05 T1824 + 0100
2014-09-14 20:32:59 +00:00
*/
2020-10-29 13:17:36 +00:00
2014-09-14 20:32:59 +00:00
/**
* Entry point of the Plugin . Loads the Dashboard and executes the Task .
*
* @ author Stefan Herndler
* @ since 1.5 . 0
*/
class MCI_Footnotes {
2020-11-01 05:41:22 +00:00
/**
* Reference to the Plugin Task object .
*
* @ author Stefan Herndler
* @ since 1.5 . 0
* @ var null | MCI_Footnotes_Task
*/
public $a_obj_Task = null ;
2014-09-14 20:32:59 +00:00
2020-11-01 05:41:22 +00:00
/**
* Executes the Plugin .
*
* @ author Stefan Herndler
* @ since 1.5 . 0
*/
public function run () {
// register language
MCI_Footnotes_Language :: registerHooks ();
// register Button hooks
MCI_Footnotes_WYSIWYG :: registerHooks ();
// register general hooks
MCI_Footnotes_Hooks :: registerHooks ();
// initialize the Plugin Dashboard
$this -> initializeDashboard ();
// initialize the Plugin Task
$this -> initializeTask ();
// Register all Public Stylesheets and Scripts
add_action ( 'init' , array ( $this , 'registerPublic' ));
// Enqueue all Public Stylesheets and Scripts
add_action ( 'wp_enqueue_scripts' , array ( $this , 'registerPublic' ));
// Register all Widgets of the Plugin.
add_action ( 'widgets_init' , array ( $this , 'initializeWidgets' ));
}
2014-09-14 20:32:59 +00:00
2020-11-01 05:41:22 +00:00
/**
* Initializes all Widgets of the Plugin .
*
* @ author Stefan Herndler
* @ since 1.5 . 0
2020-11-05 02:34:35 +00:00
*
* Edited for 1.6 . 5 : replaced deprecated function create_function ()
*
* Contributed by Felipe Lavín Z . Thankfully acknowledged .
*
* create_function () was deprecated in PHP 7.2 :
* < https :// wordpress . org / support / topic / deprecated - in - php - 7 - 2 - function - create_function - is - deprecated />
* See also : < https :// wordpress . org / support / topic / deprecated - function - create_function - 14 />
2020-11-01 05:41:22 +00:00
*/
public function initializeWidgets () {
register_widget ( " MCI_Footnotes_Widget_ReferenceContainer " );
}
2014-09-14 20:32:59 +00:00
2020-11-01 05:41:22 +00:00
/**
* Initializes the Dashboard of the Plugin and loads them .
*
* @ author Stefan Herndler
* @ since 1.5 . 0
*/
private function initializeDashboard () {
new MCI_Footnotes_Layout_Init ();
}
2014-09-14 20:32:59 +00:00
2020-11-01 05:41:22 +00:00
/**
* Initializes the Plugin Task and registers the Task hooks .
*
* @ author Stefan Herndler
* @ since 1.5 . 0
*/
private function initializeTask () {
$this -> a_obj_Task = new MCI_Footnotes_Task ();
$this -> a_obj_Task -> registerHooks ();
}
2014-09-14 20:32:59 +00:00
2020-11-01 05:41:22 +00:00
/**
* Registers and enqueues scripts and stylesheets to the public pages .
*
* @ author Stefan Herndler
* @ since 1.5 . 0
*
2020-11-01 18:09:17 +00:00
* Updated for v2 . 0.4 by adding jQueryUI from WordPress following @ check2020de :
2020-11-05 02:34:35 +00:00
* < https :// wordpress . org / support / topic / gdpr - issue - with - jquery />
2020-11-01 18:09:17 +00:00
* See < https :// wordpress . stackexchange . com / questions / 273986 / correct - way - to - enqueue - jquery - ui >
2020-11-01 05:41:22 +00:00
*
* jQueryUI re - enables the tooltip infobox disabled when WPv5 . 5 was released .
*/
public function registerPublic () {
2020-11-05 02:34:35 +00:00
// add the jQuery plugin (already registered by WordPress)
wp_enqueue_script ( 'jquery' );
// Add jQueryUI: 'no need to enqueue -core, because dependencies are set'
wp_enqueue_script ( 'jquery-ui-widget' );
wp_enqueue_script ( 'jquery-ui-mouse' );
wp_enqueue_script ( 'jquery-ui-accordion' );
wp_enqueue_script ( 'jquery-ui-autocomplete' );
wp_enqueue_script ( 'jquery-ui-slider' );
2020-11-01 05:41:22 +00:00
2020-11-01 18:09:17 +00:00
// Add jQuery tools:
wp_enqueue_script ( 'mci-footnotes-js-jquery-tools' , plugins_url ( '../js/jquery.tools.min.js' , __FILE__ ));
2020-11-01 05:41:22 +00:00
// IMPORTANT: up-to-date plugin version number for cache busting.
2020-11-05 18:05:49 +00:00
wp_enqueue_style ( 'mci-footnotes-css-public' , plugins_url ( '../css/public.css' , __FILE__ ), '' , '2.0.6' );
2020-11-01 05:41:22 +00:00
}
2020-06-20 22:08:58 +00:00
}