Provides email notifications for visitor comments
Provides simple email notifications for when new visitor comments are posted.
Install using Composer:
composer require silverstripe/comment-notifications ^2.0
Note: This branch is SilverStripe 4 compatible. For a SilverStripe 3 version please see the 1.x release line.
To configure the default email address to receive notifications, place this in your mysite/_config.yml
SilverStripe\Control\Email\Email:
admin_email: '[email protected]'
Check out the CommentNotifiable class for the list of options you can override
in your project.
To define who receives the comment notification define a updateNotificationRecipients
method and modify the list of
email addresses.
mysite/code/CommentNotificationExtension.php
<?php
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\Comments\Model\Comment;
use SilverStripe\ORM\ArrayList;
use SilverStripe\ORM\DataExtension;
use SilverStripe\Security\Group;
class CommentNotificationExtension extends DataExtension
{
/**
* @param array $existing
* @param Comment $comment
*/
public function updateNotificationRecipients(&$existing, $comment)
{
// send notification of the comment to all administrators in the CMS
$admin = Group::get()->filter('Code', 'admin');
foreach ($admin as $group) {
foreach ($group->Members() as $member) {
$existing[] = $member->Email;
}
}
// or, notify the user who originally created the page
$page = $comment->Parent();
if ($page instanceof SiteTree) {
/** @var ArrayList $pageVersion */
$pageVersion = $page->allVersions('', '', 1); // get the original version
if ($pageVersion && $pageVersion->count()) {
$existing[] = $pageVersion->first()->Author()->Email;
}
}
}
}
Apply the CommentNotificationExtension
to any classes which have commenting enabled (e.g SiteTree)
mysite/_config/extensions.yml
SilverStripe\CMS\Model\SiteTree:
extensions:
- CommentNotificationExtension
Module rating system helping users find modules that are well supported. For more on how the rating system works visit Module standards
Score not correct? Let us know there is a problem