|
2 | 2 | /** |
3 | 3 | * Plugin Name: Advanced Cron Manager |
4 | 4 | * Description: View, pause, remove, edit and add WP Cron events. |
5 | | - * Version: 2.1.2 |
| 5 | + * Version: 2.2.0 |
6 | 6 | * Author: underDEV |
7 | 7 | * Author URI: https://underdev.it |
8 | 8 | * License: GPL3 |
9 | 9 | * Text Domain: advanced-cron-manager |
10 | 10 | */ |
11 | 11 |
|
| 12 | +$plugin_version = '2.2.0'; |
| 13 | +$plugin_file = __FILE__; |
| 14 | +$namespace = 'underDEV\\AdvancedCronManager\\'; |
| 15 | + |
12 | 16 | /** |
13 | 17 | * Fire up Composer's autoloader |
14 | 18 | */ |
@@ -57,12 +61,81 @@ function acm_check_old_plugins( $plugins, $r ) { |
57 | 61 | } |
58 | 62 |
|
59 | 63 | /** |
60 | | - * Fire up dependency injection container |
| 64 | + * Fire up dependency injection container and bootstrap all the classes |
61 | 65 | */ |
62 | | -$container = new tad_DI52_Container(); |
63 | 66 |
|
64 | | -$container->setVar( 'plugin_file', __FILE__ ); |
65 | | -$container->setVar( 'plugin_version', '2.1.2' ); |
| 67 | +$dice = new underDEV\Utils\Dice; |
| 68 | + |
| 69 | +/** |
| 70 | + * Rules |
| 71 | + */ |
| 72 | + |
| 73 | +$dice->addRule( 'underDEV\Utils\Files', array( |
| 74 | + 'shared' => 'true', |
| 75 | + 'constructParams' => array( $plugin_file ) |
| 76 | +) ); |
| 77 | + |
| 78 | +$dice->addRule( $namespace . 'ScreenRegisterer', array( |
| 79 | + 'shared' => 'true', |
| 80 | +) ); |
| 81 | + |
| 82 | +$dice->addRule( $namespace . 'Cron\SchedulesLibrary', array( |
| 83 | + 'shared' => 'true', |
| 84 | +) ); |
| 85 | + |
| 86 | +$dice->addRule( $namespace . 'Assets', array( |
| 87 | + 'shared' => 'true', |
| 88 | + 'constructParams' => array( $plugin_version ) |
| 89 | +) ); |
| 90 | + |
| 91 | +/** |
| 92 | + * Actions |
| 93 | + */ |
| 94 | + |
| 95 | +// Load textdomain |
| 96 | +add_action( 'plugins_loaded', array( $dice->create( $namespace . 'Internationalization' ), 'load_textdomain' ) ); |
| 97 | + |
| 98 | +// Add plugin's screen in the admin |
| 99 | +add_action( 'admin_menu', array( $dice->create( $namespace . 'ScreenRegisterer' ), 'register_screen' ) ); |
| 100 | + |
| 101 | +// Add main section parts on the admin screen |
| 102 | +add_action( 'advanced-cron-manager/screen/main', array( $dice->create( $namespace . 'AdminScreen' ), 'load_searchbox_part' ), 10, 1 ); |
| 103 | +add_action( 'advanced-cron-manager/screen/main', array( $dice->create( $namespace . 'AdminScreen' ), 'load_events_table_part' ), 20, 1 ); |
| 104 | + |
| 105 | +// Add sidebar section parts on the admin screen |
| 106 | +add_action( 'advanced-cron-manager/screen/sidebar', array( $dice->create( $namespace . 'AdminScreen' ), 'load_schedules_table_part' ), 10, 1 ); |
| 107 | + |
| 108 | +// Add general parts on the admin screen |
| 109 | +add_action( 'advanced-cron-manager/screen/wrap/after', array( $dice->create( $namespace . 'AdminScreen' ), 'load_slidebar_part' ), 10, 1 ); |
| 110 | + |
| 111 | +// Add tabs to event details |
| 112 | +add_filter( 'advanced-cron-manager/screen/event/details/tabs', array( $dice->create( $namespace . 'AdminScreen' ), 'add_default_event_details_tabs' ), 10, 1 ); |
| 113 | + |
| 114 | +// Enqueue assets |
| 115 | +add_action( 'admin_enqueue_scripts', array( $dice->create( $namespace . 'Assets' ), 'enqueue_admin' ), 10, 1 ); |
| 116 | + |
| 117 | +// Forms |
| 118 | +add_action( 'wp_ajax_acm/schedule/add/form', array( $dice->create( $namespace . 'FormProvider' ), 'add_schedule' ) ); |
| 119 | +add_action( 'wp_ajax_acm/schedule/edit/form', array( $dice->create( $namespace . 'FormProvider' ), 'edit_schedule' ) ); |
| 120 | +add_action( 'wp_ajax_acm/event/add/form', array( $dice->create( $namespace . 'FormProvider' ), 'add_event' ) ); |
| 121 | + |
| 122 | +// Schedules |
| 123 | +add_filter( 'cron_schedules', array( $dice->create( $namespace . 'Cron\SchedulesLibrary' ), 'register' ), 10, 1 ); |
| 124 | +add_action( 'wp_ajax_acm/rerender/schedules', array( $dice->create( $namespace . 'AdminScreen' ), 'ajax_rerender_schedules_table' ) ); |
| 125 | +add_action( 'wp_ajax_acm/schedule/insert', array( $dice->create( $namespace . 'Cron\SchedulesActions' ), 'insert' ) ); |
| 126 | +add_action( 'wp_ajax_acm/schedule/edit', array( $dice->create( $namespace . 'Cron\SchedulesActions' ), 'edit' ) ); |
| 127 | +add_action( 'wp_ajax_acm/schedule/remove', array( $dice->create( $namespace . 'Cron\SchedulesActions' ), 'remove' ) ); |
| 128 | + |
| 129 | +// Events |
| 130 | +add_filter( 'advanced-cron-manager/events/array', array( $dice->create( $namespace . 'Cron\EventsLibrary' ), 'register_paused' ), 10, 1 ); |
| 131 | +add_action( 'wp_ajax_acm/rerender/events', array( $dice->create( $namespace . 'AdminScreen' ), 'ajax_rerender_events_table' ) ); |
| 132 | +add_action( 'wp_ajax_acm/event/insert', array( $dice->create( $namespace . 'Cron\EventsActions' ), 'insert' ) ); |
| 133 | +add_action( 'wp_ajax_acm/event/run', array( $dice->create( $namespace . 'Cron\EventsActions' ), 'run' ) ); |
| 134 | +add_action( 'wp_ajax_acm/event/remove', array( $dice->create( $namespace . 'Cron\EventsActions' ), 'remove' ) ); |
| 135 | +add_action( 'wp_ajax_acm/event/pause', array( $dice->create( $namespace . 'Cron\EventsActions' ), 'pause' ) ); |
| 136 | +add_action( 'wp_ajax_acm/event/unpause', array( $dice->create( $namespace . 'Cron\EventsActions' ), 'unpause' ) ); |
66 | 137 |
|
67 | | -// Registers all classes and their dependencies |
68 | | -$container->register( 'underDEV\AdvancedCronManager\RuntimeProvider' ); |
| 138 | +// Server scheduler |
| 139 | +add_action( 'advanced-cron-manager/screen/sidebar', array( $dice->create( $namespace . 'Server\Settings' ), 'load_settings_part' ), 10, 1 ); |
| 140 | +add_action( 'wp_ajax_acm/server/settings/save', array( $dice->create( $namespace . 'Server\Settings' ), 'save_settings' ) ); |
| 141 | +add_action( 'plugins_loaded', array( $dice->create( $namespace . 'Server\Processor' ), 'block_cron_executions' ), 10, 1 ); |
0 commit comments