silverstripe / comment-notifications
Provides email notifications for visitor comments
Installs: 135 448
Dependents: 1
Suggesters: 0
Security: 0
Stars: 4
Watchers: 9
Forks: 7
Open Issues: 0
Type:silverstripe-vendormodule
Requires
- php: ^8.1
- silverstripe/comments: ^4
- silverstripe/framework: ^5
Requires (Dev)
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3
This package is auto-updated.
Last update: 2024-10-11 04:54:25 UTC
README
Provides simple email notifications for when new visitor comments are posted.
Installation
composer require silverstripe/comment-notifications
Configuration
To configure the default email address to receive notifications, place this in your mysite/_config.yml
SilverStripe\Control\Email\Email: admin_email: 'will@fullscreen.io'
Check out the CommentNotifiable class for the list of options you can override in your project.
Configuring Recipients
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