37 lines
1.7 KiB
PHP
37 lines
1.7 KiB
PHP
|
|
<?php
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
use Core\Http\Router;
|
||
|
|
use Core\Services\Shortcodes;
|
||
|
|
use Plugins\Support\SupportController;
|
||
|
|
|
||
|
|
require_once __DIR__ . '/SupportController.php';
|
||
|
|
|
||
|
|
Shortcodes::register('support-link', static function (array $attrs = []): string {
|
||
|
|
$label = trim((string)($attrs['label'] ?? 'Support'));
|
||
|
|
if ($label === '') {
|
||
|
|
$label = 'Support';
|
||
|
|
}
|
||
|
|
return '<a class="ac-shortcode-link ac-shortcode-link-support" href="/contact">' . htmlspecialchars($label, ENT_QUOTES, 'UTF-8') . '</a>';
|
||
|
|
});
|
||
|
|
|
||
|
|
return function (Router $router): void {
|
||
|
|
$controller = new SupportController();
|
||
|
|
|
||
|
|
$router->get('/contact', [$controller, 'contactForm']);
|
||
|
|
$router->post('/contact', [$controller, 'contactSubmit']);
|
||
|
|
|
||
|
|
$router->get('/admin/support', [$controller, 'adminIndex']);
|
||
|
|
$router->post('/admin/support/install', [$controller, 'adminInstall']);
|
||
|
|
$router->get('/admin/support/settings', [$controller, 'adminSettings']);
|
||
|
|
$router->post('/admin/support/settings', [$controller, 'adminSaveSettings']);
|
||
|
|
$router->post('/admin/support/settings/regenerate-key', [$controller, 'adminRegenerateCronKey']);
|
||
|
|
$router->post('/admin/support/settings/test-imap', [$controller, 'adminTestImap']);
|
||
|
|
$router->post('/admin/support/settings/run-sync', [$controller, 'adminRunImapSync']);
|
||
|
|
$router->get('/support/imap-sync', [$controller, 'cronImapSync']);
|
||
|
|
$router->get('/admin/support/ticket', [$controller, 'adminTicket']);
|
||
|
|
$router->post('/admin/support/ticket/reply', [$controller, 'adminReply']);
|
||
|
|
$router->post('/admin/support/ticket/status', [$controller, 'adminSetStatus']);
|
||
|
|
$router->post('/admin/support/ticket/delete', [$controller, 'adminDeleteTicket']);
|
||
|
|
};
|