, (*1)
silverstripe-pagefeedback
This module allows you to add a form to any page type for the purpose of accruing feedback about how a user perceives that page., (*2)
Commonly found on help desk pages under a label similar to "How helpful did you find this page?"., (*3)
It allows the user to rate the page out of five (5) and allows them to optionally provide a comment, (*4)
The users IP address and their PHP Session ID is recorded on a per-page basis so that a user can only submit feedback once for that specific page., (*5)
Requirements
Installation
Installation is supported via composer only:, (*6)
composer require vulcandigital/silverstripe-pagefeedback "^2"
Configuration
This module is predominantly both a DataExtension
and a Extension
. You must apply them on the page type(s) and their respective controller(s) where you wish to be able to render the feedback form., (*7)
If you wanted to enable it's functionality on all pages you would:, (*8)
Page:
extensions:
- Vulcan\PageFeedback\Extensions\PageFeedbackExtensions
PageController:
extensions:
- Vulcan\PageFeedback\Extensions\PageFeedbackControllerExtensions
or for a specific page type, (*9)
Vulcan\UserDocs\UserDocsPage:
extensions:
- Vulcan\PageFeedback\Extensions\PageFeedbackExtension
Vulcan\UserDocs\UserDocsPageController:
extensions:
- Vulcan\PageFeedback\Extensions\PageFeedbackControllerExtensions
Modes
By default, the mode is set to "form" which will generate a form allowing a user to rate between 1-5 and optionally provide a comment
An alternate mode, "thumbs" is available which will generate a form containing two buttons +1
and -1
, which can be beautifully styled:, (*10)
, (*11)
You can change the mode via YML on the controllers of the pages you desire, (*12)
Vulcan\UserDocs\UserDocsPageController:
pagefeedback_mode: "thumbs"
In order for the form to show you will need to add $PageFeedbackForm
into your template, in the location you wish for it to display., (*13)
e.g., (*14)
<div id='myfeedbackform'>
$PageFeedbackForm
</div>
If you wish to hide the form if feedback has already been supplied by the user:, (*15)
<% if not $GivenFeedback %>
<div id='myfeedbackform'>
$PageFeedbackForm
</div>
<% end_if %>
If you wish to display information about the feedback the user has provided:, (*16)
<% if $GivenFeedback %>
<% with $GivenFeedback %>
<div id='myprovidedfeedback'>
<% if not $Rating %>
Rating: $Rating<br/>
Comment: $Comment
<% else %>
You gave this page a thumbs <strong>$Thumbs</strong>
<% end_if %>
</div>
<% end_with %>
<% end_if %>
Features
- Adds a "Page Rating" section to the CMS Page Editor
- Adds a "Page Feedback" tab containing a
GridField
of all feedback for that specific page
Inspiration
The form is provided to you unstyled, but each of the five radio buttons on the form have a class of pagefeedback-option-n
where n
is 1
through to 5
for easier customisation (ie swap the radio buttons with smiley faces that have different expressions; sad through to happy), (*17)
, (*18)
(inspiration courtesy of shopify docs), (*19)
License
BSD-3-Clause - Vulcan Digital Ltd, (*20)