heimrichhannot / contao-alert-reminder-bundle
此实用工具包为Contao CMS中现有警报提醒后端用户提供功能。
0.3.3
2023-09-13 11:35 UTC
Requires
- php: ^7.4 || ^8.0
- contao/core-bundle: ^4.9
- heimrichhannot/contao-utils-bundle: ^2.229
- symfony/config: ^4.4||^5.4
- symfony/dependency-injection: ^4.4||^5.4
- symfony/event-dispatcher: ^4.4||^5.4
- symfony/event-dispatcher-contracts: ^1||^2||^3
- symfony/http-kernel: ^4.4||^5.4
- symfony/translation: ^4.4||^5.4
- symfony/translation-contracts: ^1.1.6||^2||^3
README
此实用工具包为Contao CMS中现有警报提醒后端用户提供功能。
功能
- 查找现有(可配置)的contao后端警报(通过钩子
getSystemMessages
添加)并添加后端消息,以便提醒后端用户。
用例
您可能会问这个功能有什么用例?
原始用例是为了提醒后端用户添加缺失的alt
属性到图片(可访问性)。
没有这个功能,用户可能会忘记。由于contao简单的文件上传功能根本不包含该字段,因此强制将alt
属性设置为必填也不是一个选项。
因此,需要提醒后端用户。
安装
- 运行
composer require heimrichhannot/contao-alert-reminder-bundle
并更新数据库。
技术说明
将新的contao警报添加到此捆绑包的上下文中
-
在contao中按常规注册一个
getSystemMessages
钩子// config.php (or use yaml tags in contao 4.9+) $GLOBALS['TL_HOOKS']['getSystemMessages']['myBundle'] = [ \Acme\MyBundle\EventListener\GetSystemMessagesListener::class, '__invoke' ];
// GetSystemMessagesListener.php namespace Acme\MyBundle\EventListener; use Acme\AlertReminderBundle\Manager\AlertReminderManager; use Acme\RequestBundle\Component\HttpFoundation\Request; use Symfony\Contracts\Translation\TranslatorInterface; class GetSystemMessagesListener { /** * @var TranslatorInterface */ private $translator; /** * @var Request */ private $request; /** * @var AlertReminderManager */ private $alertReminderManager; public function __construct(AlertReminderManager $alertReminderManager, TranslatorInterface $translator, Request $request) { $this->translator = $translator; $this->request = $request; $this->alertReminderManager = $alertReminderManager; } public function __invoke() { $message = '<p class="tl_error">My alert message</p>'; return $this->alertReminderManager->prepareSystemMessage($message, 'some_alert_type_alias'); } }
-
为了激活提醒,您需要在项目的
app/config/config.yml
中添加您的警报类型huh_alert_reminder: alert_types: - { name: some_alert_type_alias }
将您的警报添加到警报队列后端模块
此捆绑包引入了AlertQueueModule
。它只是一个消息列表。您可以使用它将您希望用户注意的所有警报的完整列表添加到用户。在提醒用户添加缺失的alt属性的情况下,这是添加具体媒体文件快捷方式的地方。
您可以通过注册一个事件监听器来添加消息,例如监听事件AddAlertsToAlertReminderQueueEvent
,如下所示
public function __invoke(AddAlertsToAlertReminderQueueEvent $event) { if ('alt_issues_existing' !== Input::get('type')) { return; } $messages = $event->getAlerts(); $messages[] = [ 'class' => 'tl_error', // you can use Contao's tl_ classes 'message' => 'My message' ]; $event->setAlerts($messages); }