2014-09-14 20:32:59 +00:00
< ? php
/**
* Includes the main Class of the Plugin .
2020-11-01 05:41:22 +00:00
*
2020-11-07 15:14:07 +00:00
* ******************************************************************************************************
* IMPORTANT : In registerPublic () line 134 : Please 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-07 13:31:49 +00:00
* Edited for v1 . 6.5 : Replaced deprecated function create_function ()
2020-11-07 15:14:07 +00:00
* Edited for v2 . 0.0 : Added jQueryUI from Cloudflare 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-07 13:31:49 +00:00
* Continual update of version number .
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-06 13:01:07 +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-07 15:14:07 +00:00
* Updated for v2 . 0.0 adding jQuery UI
* Updated for v2 . 0.4 by adding jQuery UI 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-08 21:21:24 +00:00
2020-11-07 15:14:07 +00:00
### SCRIPTS
2020-11-08 21:21:24 +00:00
2020-11-07 15:14:07 +00:00
// add the jQuery plugin registered by WordPress
2020-11-05 02:34:35 +00:00
wp_enqueue_script ( 'jquery' );
2020-11-08 21:21:24 +00:00
2020-11-08 21:52:49 +00:00
// // Add jQuery Tools:
// wp_enqueue_script('mci-footnotes-js-jquery-tools', plugins_url('../js/jquery.tools.min.js', __FILE__));
//
// // Add the jQuery UI libraries registered by WordPress:
// // 'no need to enqueue -core, because dependencies are set'
// // Source: <https://wordpress.stackexchange.com/questions/273986/correct-way-to-enqueue-jquery-ui>
// 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-08 21:21:24 +00:00
2020-11-07 15:14:07 +00:00
// Should that not work, fetch jQuery UI from cdnjs.cloudflare.com:
// Add jQuery UI following @vonpiernik:
// <https://wordpress.org/support/topic/tooltip-hover-not-showing/#post-13456762>:
// This was enabled in Footnotes v2.0.0 through v2.0.3.
2020-11-08 21:52:49 +00:00
// Re-added for 2.0.9d1 / 2.1.1d0 to look whether it can fix a broken tooltip display. 2020-11-07T1601+0100/2020-11-08T2246+0100
2020-11-09 19:09:54 +00:00
wp_register_script ( 'jQueryUI' , 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js' , null , null , false ); // in header 2020-11-09T2003+0100
2020-11-08 21:52:49 +00:00
wp_enqueue_script ( 'jQueryUI' );
2020-11-07 15:14:07 +00:00
2020-11-08 21:52:49 +00:00
// Add jQuery Tools and finish adding jQueryUI: 2020-11-08T1638+0100/2020-11-08T2246+0100
wp_enqueue_script ( 'mci-footnotes-js-jquery-tools' , plugins_url ( '../js/jquery.tools.min.js' , __FILE__ ), [ 'jQueryUI' ]);
2020-11-08 15:57:09 +00:00
2020-11-07 15:14:07 +00:00
### STYLES
// IMPORTANT: up-to-date plugin version number NEEDED for cache busting:
2020-11-06 04:04:30 +00:00
wp_enqueue_style (
2020-11-06 13:01:07 +00:00
'mci-footnotes-css-public' ,
plugins_url ( '../css/public.css' , __FILE__ ),
'' ,
2020-11-09 19:09:54 +00:00
'2.1.1d1'
2020-11-06 13:01:07 +00:00
);
}
2020-06-20 22:08:58 +00:00
}