在 Typo3 7.x 中,我需要在重定向到其他扩展程序后显示flashmessage。不知何故,消息没有显示在那里:
// in powermail_extended:
$this->addFlashMessage('Some message', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::NOTICE);
$uri = $this->uriBuilder->uriFor('form', [], 'Form', 'powermail', 'pi1');
$this->redirectToURI($uri);
如果重定向后显示相同的前端插件,是否仅显示Flash消息?如果是这样,我怎么能显示“外国”闪光信息呢?
答案 0 :(得分:3)
是的,根据前端插件,闪存消息位于不同的队列中。在重定向后的Controller中,添加以下行:
protected function emitBeforeCallActionMethodSignal(array $preparedArguments) {
parent::emitBeforeCallActionMethodSignal($preparedArguments);
$this->addMessagesToDefaultQueue('extbase.flashmessages.tx_powermailextended_pi1' /* depending on your frontend plugin name */);
}
protected function addMessagesToDefaultQueue($queueId) {
$queue = $this->controllerContext->getFlashMessageQueue($queueId);
$msg = $queue->getAllMessagesAndFlush();
if ($msg) {
$defaultQueue = $this->controllerContext->getFlashMessageQueue();
foreach ($msg as $m) {
$defaultQueue->enqueue($m);
}
}
}
这将在重定向之前删除插件中的消息,并将其添加到“正确”队列。