4 Commits
test ... devel

Author SHA1 Message Date
a30d6fa099 Upgrade to Twig 3.0 (required for php8.4 support) 2026-01-13 15:11:09 +00:00
b49ce8a895 Update 'README.md' 2024-06-20 16:10:43 +01:00
5094b31ce6 Break up the menu into partials 2023-06-06 15:01:31 +01:00
768318b43a Fixed extension clashes 2023-05-31 16:22:03 +01:00
7 changed files with 44 additions and 47 deletions

View File

@@ -1,3 +1,35 @@
# sprinkle-scheduler
A UserFrosting sprinkle to add scheduled events
A UserFrosting sprinkle to add scheduled events.
Either a crontab set to run once a minute is required or a systemd timer:
Systemd service: /etc/systemd/system/uf-scheduler.service
```systemd
[Unit]
Description=UserFrosting Scheduler
[Service]
Restart=no
Type=simple
ExecStart=/usr/bin/php bakery schedule -n
WorkingDirectory=/srv/UserFrosting
User=www-data
Group=www-data
[Install]
WantedBy=multi-user.target
```
Systemd timer: /etc/systemd/system/uf-scheduler.timer
```systemd
[Unit]
Description=UserFrosting Scheduler trigger
[Timer]
OnCalendar=*-*-* *:*:00
Persistent=true
Unit=uf-scheduler.service
[Install]
WantedBy=multi-user.target
```

View File

@@ -1,38 +0,0 @@
<?php
/*
* AVSDev UF Scheduler (https://avsdev.uk)
*
* @link https://git.avsdev.uk/avsdev/sprinkle-scheduler
* @license https://git.avsdev.uk/avsdev/sprinkle-scheduler/blob/master/LICENSE.md (LGPL-3.0 License)
*/
namespace UserFrosting\Sprinkle\Scheduler\Scheduler\Tasks;
use UserFrosting\Sprinkle\Scheduler\Scheduler\BaseTask;
/**
* Task Class
* Base class for scheduled tasks.
*
* @author Craig Williams (https://avsdev.uk)
*/
class TestTask extends BaseTask
{
/**
* Function used to specify the schedule for the task.
*/
public function schedule()
{
$this->everyMinute();
}
/**
* Function used to specify what the task does.
*/
public function run()
{
$this->ci->debugLogger->debug("running task");
return true;
}
}

View File

@@ -50,7 +50,9 @@ class ServicesProvider
$container->extend('view', function ($view, $c) {
$twig = $view->getEnvironment();
if (!$twig->hasExtension('Twig\Extra\Intl\IntlExtension')) {
$twig->addExtension(new IntlExtension());
}
$twig->addExtension(new FormatCronExtension($c));
return $view;

View File

@@ -57,7 +57,7 @@ class FormatCronExtension extends AbstractExtension implements GlobalsInterface
];
}
public function getGlobals()
public function getGlobals(): array
{
return [];
}

View File

@@ -0,0 +1,5 @@
{% if checkAccess('uri_tasks') %}
<li>
<a href="{{site.uri.public}}/tasks"><i class="fas fa-tasks fa-fw"></i> <span>{{ translate("TASK", 2) }}</span></a>
</li>
{% endif %}

View File

@@ -2,9 +2,5 @@
{% block navigation %}
{{ parent() }}
{% if checkAccess('uri_tasks') %}
<li>
<a href="{{site.uri.public}}/tasks"><i class="fas fa-tasks fa-fw"></i> <span>{{ translate("TASK", 2) }}</span></a>
</li>
{% endif %}
{% include "navigation/partials/sidebar-tasks.html.twig" %}
{% endblock %}