Это может быть одно решение, но не самое чистое.
Сначала нам нужно получить значения из поля include_static_file
, которое находится в таблице sys_template.Итак:
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('sys_template')->createQueryBuilder();
$result = $queryBuilder
->select('include_static_file')
->from('sys_template')
->execute()
->fetch(0);
Нам нужно получить строку и оценить, присутствует ли ваш ключ расширения.Итак:
$extKey = 'your_extension_key';
if (strpos($result['include_static_file'], $extKey) !== false) {
$audits = $this->auditRepository->findAll();
$this->view->assign('arrDetails', $audits);
}
else {
$this->addFlashMessage(
'You forgot to add the static template',
$messageTitle = 'Template is missing',
$severity = \TYPO3\CMS\Core\Messaging\AbstractMessage::WARNING,
$storeInSession = TRUE
);
}
Ваш HTML
<f:if condition="{arrDetails}">
<f:then>
do something with your content
</:then>
<f:else>
<f:flashMessages />
</f:else>
</f:if>
Конечно, вы можете написать статическую функцию для этого или вы можете использовать LocalizationUtility
, чтобы получитьтекст на нескольких языках.Вам решать.
Результат: