Source of file PageFeedbackForm.php
Size: 2,062 Bytes - Last Modified: 2021-12-23T11:00:08+00:00
/var/www/docs.ssmods.com/process/src/src/Forms/PageFeedbackForm.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | <?php namespace Vulcan\PageFeedback\Forms; use SilverStripe\Control\Controller; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\Form; use SilverStripe\Forms\FormAction; use SilverStripe\Forms\OptionsetField; use SilverStripe\Forms\RequiredFields; use SilverStripe\Forms\TextField; use SilverStripe\Forms\TextareaField; /** * Class PageFeedbackForm * @package Vulcan\PageFeedback\Forms */ class PageFeedbackForm extends Form { /** * PageFeedbackForm constructor. * * @param Controller $controller * @param string $name */ public function __construct(Controller $controller, $name) { $fields = FieldList::create([ OptionsetField::create('Rating', 'Rating', $this->getRatingMap())->setTemplate('Vulcan\PageFeedback\Forms\PageFeedbackOptionsetField'), $this->commentField() ]); $actions = FieldList::create([ FormAction::create('processPageFeedback', 'Submit Feedback')->setUseButtonTag(true)->setButtonContent('Submit Feedback') ]); $validator = RequiredFields::create([ 'Rating' ]); $this->extend('updateFormFields', $fields); $this->extend('updateFormActions', $actions); $this->extend('updateFormValidator', $validator); parent::__construct($controller, $name, $fields, $actions, $validator); } /** * Return an appropriate comments form-field, according to userland config. * The default is to return a {@link TextField}. * * @return FormField */ public function commentField() { if ($this->config()->get('comment_field_type') == 'textarea') { return TextareaField::create('Comment', 'Comment') ->setRows(2); } return TextField::create('Comment', 'Comment'); } /** * @return array */ public function getRatingMap() { return [ 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5 ]; } } |