Source of file ControllerExtension.php
Size: 1,519 Bytes - Last Modified: 2021-12-24T06:35:28+00:00
/var/www/docs.ssmods.com/process/src/code/ControllerExtension.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | <?php namespace Reviewable; use \Reviewable; class ControllerExtension extends \DataExtension { private static $review_message = "Thanks for your review."; private static $allowed_actions = array( 'ReviewForm' ); public function ReviewForm(){ $fields = \FieldList::create( \TextareaField::create('Content'), \Reviewable\RatingField::create('Rating') ); $actions = \FieldList::create( \FormAction::create('processReview') ); return \Form::create($this->owner,'ReviewForm',$fields,$actions); } public function processReview($data, \Form $form){ $review = Review::create(); $review->ObjectID = $this->owner->ID; $review->ObjectClass = $this->owner->ClassName; $review->Content = $data['Content']; $review->Rating = $data['score']; $review->write(); $form->sessionMessage($this->owner->config()->get('review_message'),'good'); $this->owner->redirectBack(); } public function averageRating() { if($reviews = \Reviewable\Review::get()->filter('ObjectID', $this->owner->ID)){ $countRating = $reviews->Count(); $reviewsTotal = 0; foreach($reviews as $review) { $reviewsTotal += $review->Rating; } return round($reviewsTotal / $countRating); }else { return 0; } } } |