x

Main chapters

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. LimeSurvey Cloud - Quick start guide
  3. LimeSurvey CE - Installation
  4. How to design a good survey (Guide)
  5. Getting started
  6. LimeSurvey configuration
  7. Introduction - Surveys
  8. View survey settings
  9. View survey menu
  10. View survey structure
  11. Introduction - Questions
  12. Introduction - Question Groups
  13. Introduction - Surveys - Management
  14. Survey toolbar options
  15. Multilingual survey
  16. Quick start guide - ExpressionScript
  17. Advanced features
  18. General FAQ
  19. Troubleshooting
  20. Workarounds
  21. License
  22. Version change log
  23. Plugins - Advanced
 Actions

Notifications: Difference between revisions

From LimeSurvey Manual

Line 28: Line 28:
* title, title of message (shown in dropdown and overview)
* title, title of message (shown in dropdown and overview)
* message, the actual message
* message, the actual message
* modal_class, success, danger, default
* display_class, success, danger, default
* type, important, log
* importance, 1 = normal, 3 = high/popup on page load
* status, new, read
* status, new, read
* created, datetime
* created, datetime
* read, datetime
* first_read, datetime


== Examples ==
== Examples ==

Revision as of 15:20, 4 August 2016

Have an icon in top menu about notifications to user. Can be bound to user or survey.

Also need an 'irritating' message type that will be 'new' until a certain condition is fulfilled (like survey must be activated).

GUI

  • Bell icon
  • List of all messages in menu where you can can see which messages are new
  • Delete all messages

Usage

All notifications are created on server side with PHP. A page reload is always necessary to see new notifications.

A notification can either be of type 'important' or the default type 'log'. Important messages will show a modal popup at page load. Default messages will only show a notification at the bell in the admin menu.

See examples below for more information.

Database

New database table required to make notifications persist between login/logout.

Fields:

  • id
  • entity, like survey, user, ...
  • entity_id, survey id, user id, ...
  • title, title of message (shown in dropdown and overview)
  • message, the actual message
  • display_class, success, danger, default
  • importance, 1 = normal, 3 = high/popup on page load
  • status, new, read
  • created, datetime
  • first_read, datetime

Examples

Create a new notification for a survey

This notification will be visible for all users who visit the survey.

$not = new Notification(array(
  'survey_id' => 316222,
  'title' => 'My title',
  'message' => 'Hello, and welcome to LimeSurvey! Anyone who can see this survey can see this message.'
));
$not->save();


Send an important notification

Visible on page load.

$not = new Notification(array(
  'survey_id' => 316222,
  'title' => 'My title',
  'importance' => Notification::HIGH_IMPORTANCE,
  'message' => 'This notification will be a pop-up modal automaticall opened at load'
));
$not->save();


Notification to a specific user

Only this user can see this notification.

$user = ...
$not = new Notification(array(
  'user_id' => $user->id,
  'title' => 'My title',
  'message' => 'This is a love letter only Marge can see.'
));
$not->save();


Broadcast

All users will get this notification.

Notification::broadcast(array(
  'title' => 'To all users',
  'message' => 'I\'m in love with Marge. I don\'t care if everyone knows.'
));


Broadcast to superadmin

This is how your broadcast a message to all superadmins. Also using localization.

$superadmins = User::model()->getSuperAdmins();
Notification::broadcast(array(
    'title' => gT('Database update'),
    'message' => gT('The database has been updated to version 259. New version includes notification system.')
), $superadmins);


Display class

You can change the modal class of the modal popup using display_class.

$not = new Notification(array(
  'survey_id' => 316222,
  'title' => 'Error',
  'message' => 'This modal will have a red panel header, because it\'s an error.',
  'display_class' => 'warning'
));
$not->save();

Open issues

  • Merge with Yii flash system?
  • More plugin friendly? E.g. having a message history page, adding soft delete.