diff --git a/admin.php b/admin.php index e6fae3b4..a0e475d2 100644 --- a/admin.php +++ b/admin.php @@ -607,6 +607,7 @@ class AdminPlugin extends Plugin 'onAdminRegisterPermissions' => ['onAdminRegisterPermissions', 0], 'onOutputGenerated' => ['onOutputGenerated', 0], 'onAdminAfterSave' => ['onAdminAfterSave', 0], + 'onAdminData' => ['onAdminData', 0], ]); // Autoload classes @@ -838,10 +839,22 @@ class AdminPlugin extends Plugin */ public function onAdminTools(Event $event) { - $event['tools'] = array_merge($event['tools'], [$this->grav['language']->translate('PLUGIN_ADMIN.DIRECT_INSTALL')]); + $event['tools'] = array_merge($event['tools'], [ + $this->grav['language']->translate('PLUGIN_ADMIN.DIRECT_INSTALL'), + $this->grav['language']->translate('PLUGIN_ADMIN.SCHEDULER') + ]); + return $event; } + public function onAdminData(Event $e) + { + $type = $e['type'] ?? null; + if ($type === 'tools/scheduler') { + $e['data_type'] = 'config/scheduler'; + } + } + public function onAdminDashboard() { $this->grav['twig']->plugins_hooked_dashboard_widgets_top[] = ['template' => 'dashboard-maintenance']; diff --git a/classes/admin.php b/classes/admin.php index b8e110e7..2f790e00 100644 --- a/classes/admin.php +++ b/classes/admin.php @@ -601,7 +601,11 @@ class Admin // Check to see if a data type is plugin-provided, before looking into core ones $event = $this->grav->fireEvent('onAdminData', new Event(['type' => &$type])); if ($event && isset($event['data_type'])) { - return $event['data_type']; + if (is_string($event['data_type'])) { + $type = $event['data_type']; + } else { + return $event['data_type']; + } } /** @var UniformResourceLocator $locator */ diff --git a/languages/en.yaml b/languages/en.yaml index 7663ddc2..c01a0d1e 100644 --- a/languages/en.yaml +++ b/languages/en.yaml @@ -724,7 +724,8 @@ PLUGIN_ADMIN: STRICT_YAML_COMPAT_HELP: "Falls back to Symfony 2.4 YAML parser if Native or 3.4 parser fails" STRICT_TWIG_COMPAT: "Twig Compatibility" STRICT_TWIG_COMPAT_HELP: "Enables deprecated Twig autoescape setting. When disabled, |raw filter is required to output HTML as Twig will autoescape output" - SCHEDULER_SETUP: Scheduler Setup + SCHEDULER: "Scheduler" + SCHEDULER_SETUP: "Scheduler Setup" SCHEDULER_INSTRUCTIONS: "The Grav Scheduler allow you to create and schedule custom jobs. It also provides a method for Grav plugins to integrate programatically and dynamically add jobs to be run periodically." SCHEDULER_POST_INSTRUCTIONS: "To enable the Scheduler's functionality, you must add the Grav Scheduler to your system's crontab file. Run the command above from the terminal to add it automatically. Once saved, refresh this page to see the status Ready." SCHEDULER_JOBS: "Custom Scheduler Jobs" diff --git a/themes/grav/templates/partials/tools-scheduler-titlebar.html.twig b/themes/grav/templates/partials/tools-scheduler-titlebar.html.twig new file mode 100644 index 00000000..49964f8d --- /dev/null +++ b/themes/grav/templates/partials/tools-scheduler-titlebar.html.twig @@ -0,0 +1,6 @@ +
+