Download the PHP package heimrichhannot/contao-status-message-bundle without Composer
On this page you can find all versions of the php package heimrichhannot/contao-status-message-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download heimrichhannot/contao-status-message-bundle
More information about heimrichhannot/contao-status-message-bundle
Files in heimrichhannot/contao-status-message-bundle
Package contao-status-message-bundle
Short Description This bundle offers a status message queue for the frontend of the Contao CMS.
License LGPL-3.0-or-later
Informations about the package contao-status-message-bundle
Contao Status Message Bundle
This bundle offers a status message queue for the frontend of the Contao CMS
Features
- display status messages of various types (error, success, warning, ...) in the frontend
- works both synchronously and via ajax
- uses symfony's session flash bags internally (see the symfony documentation for further detail)
- optional pre-styled template for bootstrap 4/5 is shipped within the bundle
Impressions
The status message queue in the frontend
Installation
- Install via composer:
composer require heimrichhannot/contao-status-message-bundle
. - Update your database as usual via migration command or install tool.
Concepts
Message scopes
In order to add a new status message, you need to know the following things:
- What's the text of the message you'd like to output?
- What's the type of the message (success, error, ...)?
- What's the scope of the message (general scope, a specific module or content element, ...)?
Particularly, the third parameter could be not obvious. In the context of this bundle, you can create not only one
"status message queue" but as many as you like. In order to distinguish these in the frontend where you output them,
you need to tell the StatusMessageManager
the scope of the message, you'd like to add.
Currently, the scope can be:
- General -> no specific context
- Module -> a specific frontend module (id must be passed)
- Content element -> a specific frontend content element (id must be passed)
Internally this bundle uses symfony's session flash bag API. If you're not familiar with these, please take a look into the documentation.
Hence, the scope described above is described by the flash bag key. For the sake of ease, we call it scope key in the context of this bundle.
For example, if you like to bind your messages to a specific module, the scope key might be something like
huh_status_message.module.1234
whereas module
is the scope and 1234
is the module id.
Usage
Add status messages
Output messages via the frontend module "status message queue"
In order to output your status messages, you can create a "status message queue" frontend module and include it in your article or layout, for example.
IMPORTANT: Please take care of the order of inclusion for this module. If you add messages before the queue module is rendered, the messages are displayed after a site reload only (messages are stored in the session).
Programmatically output messages in twig templates
Simply pass the scope key (which is the flash bag key internally) to your twig template and use symfony's flash message API to output the messages
(scopeKey
might be something huh_status_message.module.1234
whereas module
is the scope and 1234
is the module id):
Programmatically output messages in traditional html5 templates
At first, so the necessary logic in your module (or content element) controller:
Then in your template, use the data as follows:
Developer notes
Why not use the Contao\Message class?
Of course, we use core classes if they're suiting our needs. One disadvantage is that the scope of a message is always
determined by the scope string and the message type (see static::getFlashBagKey($strType, $strScope)
):
This way, we couldn't have message queues with messages of mixed types.
All versions of contao-status-message-bundle with dependencies
contao/core-bundle Version ^4.9
heimrichhannot/contao-utils-bundle Version ^2.204
symfony/config Version ^4.4||^5.0
symfony/event-dispatcher Version ^4.4||^5.0
symfony/http-kernel Version ^4.4||^5.0
symfony/http-foundation Version ^4.4||^5.0
terminal42/service-annotation-bundle Version ^1.1