2017-05-22 12 views
1

私はバックエンドにフラッシュメッセージを作成する方法を知っており、この機能を使用して内部sys_notesへの追加を作成したいと考えています。今の質問はFlashMessageを別のバックエンドユーザに送信

$flashMessage = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Messaging\FlashMessage::class, 'This is some info flash message', '', \TYPO3\CMS\Core\Messaging\FlashMessage::INFO, true); 
/** @var $flashMessageService \TYPO3\CMS\Core\Messaging\FlashMessageService */ 
$flashMessageService = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Messaging\FlashMessageService::class); 
/** @var $defaultFlashMessageQueue \TYPO3\CMS\Core\Messaging\FlashMessageQueue */ 
$defaultFlashMessageQueue = $flashMessageService->getMessageQueueByIdentifier(); 
$defaultFlashMessageQueue->enqueue($flashMessage); 

:私は私の現在のBackendUser以外のFlashMessageキューのフラッシュメッセージを作成することができます私はこのようなものを使用することにより、現在のユーザーのためのフラッシュメッセージを作成することができますか?

答えて

3

私の知る限り、いいえ、あなたはできません。 FlashMessagesはユーザーセッションに格納されます。つまり、別のユーザーのセッションにFlashMessageを格納するには、そのセッションを操作する必要があります。 「ユーザーBAZのセッションにXYZを設定する」APIはありませんが、手動でセッションレコードを変更してFlashMessageをキューに入れることができます(通常のディスパッチ方法の背後にある)。

私はそれをやるとは確信していません。このようにセッションを操作するのは危険です。通常はsys_notesを使用することをおすすめしますが、この正確なコンポーネントを拡張しようとしています。それがあまりにも危険であると判断したら、別のDBテーブルにFlashMessagesをスプールする独自のキューイングを実装し、各メッセージをユーザーまたはユーザーグループに関連付けます。

+0

ええ、私は 'sys_notes'を発見しました。彼らは一般的には正確に私が望むものを行い、いくつかの自動化された機能によって特定のバックエンドユーザのためにリマインダーを作成しますが、sysの注釈はページリストのビュー。私は彼らをトップに移動することができれば、一般に彼らは素晴らしいだろう。フラッシュメッセージのスタイリングはここでうまくいくでしょう。そして、私は本当に自分自身でセッションを混乱させたくない、隠れたAPIがあれば素晴らしいだろう。 –

+0

私は、これらのシステムノートをレンダリングする少なくとも1つの他の方法ではうれしいことに完全に同意します - あなたが言ったように、それらはほとんど見えず、特定の場所でしか見つけられません(あなたが防止しなかったとしても、メモへのアクセス)。おそらくこれを新しい機能として提案するかもしれません。リストされたノートではなく、永続的/ ttlによるフラッシュメッセージとしてノートをディスパッチする? –

関連する問題