NAME

Mojolicious::Plugin::Notifications::Engine - Abstract Class for Notification Engines

SYNOPSIS

package Mojolicious::Plugin::Notifications::MyEngine;
use Mojo::Base 'Mojolicious::Plugin::Notifications::Engine';

# Define notifications helper
sub notifications {
  my ($self, $c, $notifications) = @_;

  my $string = '';
  foreach (@$notifications) {
    $string .= '<blink class="' . $_->[0] . '">' . $_->[-1] . '</blink>';
  };
  return $c->b($string);
};

DESCRIPTION

Mojolicious::Plugin::Notifications::Engine is an abstract class for creating notification engines. It is meant to be used as the base of notification engine classes.

METHODS

Mojolicious::Plugin::Notifications::Engine inherits all methods from Mojolicious::Plugin and implements the following new ones.

register

sub register {
  my ($self, $app, $param) = @_;
  # ...
};

Called when the engine is registered. This by default does nothing, but the engine may define assets, helpers, hooks etc. overriding this method. The optional parameter will be passed as defined in the registration.

scripts

$self->scripts('/mybasescript.js', '/myscript.js');
print $self->scripts;

Add further script assets, to be used by the scripts helper.

styles

$self->styles('/mystyles.css', '/mycolors.css');
print $self->styles;

Add further style assets, to be used by the styles helper.

notifications

# Define notifications method
sub notifications {
  my ($self, $c, $notifications) = @_;

  my $string = '';
  foreach my $note (@$notifications) {
    $string .= '<blink class="' . $note->[0] . '">' . $note->[-1] . '</blink>';
  };
  return $c->b($string);
};

Create a notification method.

The notifications method will be called whenever notifications are rendered. The first parameter passed is the plugin object, the second parameter is the current controller object and the third parameter is a Mojo::Collection object containing all notifications as array references.

The first element of the notification is the notification type, the last element is the message. An optional second element may contain further parameters in a hash reference.

To support confirmations, it is necessary to support the parameters ok and cancel. If not, it is recommended to log a warning, that confirmations are not supported by the engine.

%= notifications 'MyEngine', -no_include

Possible flags (boolean parameters marked with a dash) are passed as a hash reference. All other parameters passed to the notifications helper are simply appended.

The bundled engines can serve as good examples on how to write an engine, especially the simple HTML engine.

AVAILABILITY

https://github.com/Akron/Mojolicious-Plugin-Notifications

COPYRIGHT AND LICENSE

Copyright (C) 2014-2018, Nils Diewald.

This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.