1 package SL::Helper::Flash;
 
   6 our @ISA       = qw(Exporter);
 
   7 our @EXPORT    = qw(flash flash_later);
 
   8 our @EXPORT_OK = qw(render_flash);
 
  15   $::form->{FLASH} = _store_flash($::form->{FLASH}, @_);
 
  19   $::auth->set_session_value(FLASH => _store_flash($::auth->get_session_value('FLASH'), @_))->save_session();
 
  23   return $::form->parse_html_template('common/flash');
 
  31   my $store    = shift || { };
 
  33   $category    = 'info' if $category eq 'information';
 
  36   $store->{ $category } ||= [ ];
 
  37   push @{ $store->{ $category } }, @_;
 
  48 SL::Helper::Flash - helper functions for storing messages to be
 
  53 The flash is a store for messages that should be displayed to the
 
  54 user. Each message has a category which is usually C<information>,
 
  55 C<warning> or C<error>. The messages in each category are grouped and
 
  56 displayed in colors appropriate for their severity (e.g. errors in
 
  59 Messages are rendered either by calling the function C<render_flash>
 
  60 or by including the flash sub-template from a template with the
 
  63   [%- INCLUDE 'common/flash.html' %]
 
  67 The functions L</flash> and L</flash_later> are always exported.
 
  69 The function L</render_flash> is only exported upon request.
 
  75 =item C<flash $category, @messages>
 
  77 Stores messages for the given category. The category can be either
 
  78 C<information>, C<warning> or C<error>. C<info> can also be used as an
 
  79 alias for C<information>.
 
  81 =item C<flash_later $category, @messages>
 
  83 Stores messages for the given category for the next request. The
 
  84 category can be either C<information>, C<warning> or C<error>. C<info>
 
  85 can also be used as an alias for C<information>.
 
  87 The messages are stored in the user's session and restored upon the
 
  88 next request. Can be used for transmitting information over HTTP
 
  93 Outputs the flash message by parsing the C<common/flash.html> template
 
  96 This function is not exported by default.
 
 102 Moritz Bunkus E<lt>m.bunkus@linet-services.deE<gt>