From 107e32c3be7104a1a327843d3faba329a8d377c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carsten=20G=C3=B6tzinger?= Date: Thu, 15 Feb 2018 05:01:49 +0100 Subject: [PATCH] Event-Verarbeitung --- src/Resources/contao/classes/RateIt.php | 28 +++++++++++-------- .../contao/config/event_listeners.php | 19 +++++++++---- 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/Resources/contao/classes/RateIt.php b/src/Resources/contao/classes/RateIt.php index 0abe01e..acdc957 100644 --- a/src/Resources/contao/classes/RateIt.php +++ b/src/Resources/contao/classes/RateIt.php @@ -66,12 +66,16 @@ class RateIt extends \Frontend { * @param integer percent - The rating in percentages. */ public function doVote(SimpleAjax $event) { - if ($this->Input->get('do') == 'rateit') { + $input = $event->getEnvironment()->getInputProvider(); + + if ((true === $input->hasParameter('do')) + && ('rateit' === $input->getParameter('do')) + ) { $ip = $_SERVER['REMOTE_ADDR']; - $rkey = $this->Input->post('id'); - $percent = $this->Input->post('vote'); - $type = $this->Input->post('type'); + $rkey = $input->getParameter('id'); + $percent = $input->getParameter('vote'); + $type = $input->getParameter('type'); //Make sure that the ratable ID is a number and not something crazy. if (strstr($rkey, '|')) { @@ -81,7 +85,7 @@ class RateIt extends \Frontend { $return = [$GLOBALS['TL_LANG']['rateit']['error']['invalid_rating']]; $response = new JsonResponse($return); $event->setResponse($response); - return; + return $event; } $id = $rkey; } @@ -92,7 +96,7 @@ class RateIt extends \Frontend { $return = [$GLOBALS['TL_LANG']['rateit']['error']['invalid_rating']]; $response = new JsonResponse($return); $event->setResponse($response); - return; + return $event; } } @@ -103,7 +107,7 @@ class RateIt extends \Frontend { $return = [$GLOBALS['TL_LANG']['rateit']['error']['invalid_rating']]; $response = new JsonResponse($return); $event->setResponse($response); - return; + return $event; } //Make sure that the ratable type is 'page' or 'ce' or 'module' @@ -111,7 +115,7 @@ class RateIt extends \Frontend { $return = [$GLOBALS['TL_LANG']['rateit']['error']['invalid_type']]; $response = new JsonResponse($return); $event->setResponse($response); - return; + return $event; } $strHash = sha1(session_id() . (!$GLOBALS['TL_CONFIG']['disableIpCheck'] ? \Environment::get('ip') : '') . 'FE_USER_AUTH'); @@ -168,9 +172,10 @@ class RateIt extends \Frontend { ->set($arrSet) ->execute(); } else { - header(RETURN_AJAX_HEADER); - echo $GLOBALS['TL_LANG']['rateit']['error']['duplicate_vote']; - exit; + $return = [$GLOBALS['TL_LANG']['rateit']['error']['duplicate_vote']]; + $response = new JsonResponse($return); + $event->setResponse($response); + return $event; } $rating = $this->rateItFrontend->loadRating($id, $type); @@ -178,6 +183,7 @@ class RateIt extends \Frontend { $return = [$this->rateItFrontend->getStarMessage($rating)]; $response = new JsonResponse($return); $event->setResponse($response); + return $event; } } diff --git a/src/Resources/contao/config/event_listeners.php b/src/Resources/contao/config/event_listeners.php index 0b6d088..6bff0c7 100644 --- a/src/Resources/contao/config/event_listeners.php +++ b/src/Resources/contao/config/event_listeners.php @@ -1,9 +1,18 @@ array( - array(new RateIt(), 'doVote') - ), -); +if (class_exists(SimpleAjax::class)) { + return array + ( + SimpleAjax::NAME => array( + array( + array(new RateIt(), 'doVote'), + RateIt::PRIORITY + ) + ) + ); +} + +return array();