Sindbad~EG File Manager
<?php
/**
* @package RSDirectory!
* @copyright (c) 2013 - 2021 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License http://www.gnu.org/licenses/gpl-3.0.en.html
*/
// No direct access.
defined('_JEXEC') or die('Restricted access');
/**
* Rating controller.
*/
class RSDirectoryControllerRating extends JControllerForm
{
/**
* Post review ajax task.
*
* @access public
*/
public function postReviewAjax()
{
// Stop the script if the token is invalid.
$this->checkToken();
// Initialize the response array.
$response = array();
// Get the mainframe.
$app = JFactory::getApplication();
// Get the JInput object.
$jinput = $app->input;
// Get the data.
$data = $jinput->get( 'jform', array(), 'array' );
// Get the RSDirectory Config object.
$config = RSDirectoryConfig::getInstance();
if ($config->get('use_consent_checkbox_on_review_form', 1)) {
// Check the consent if user is not logged in
if (!JFactory::getUser()->id && !$jinput->getInt('i_consent_to_privacy_policy_and_submit_my_details', 0)) {
$response['error_messages'] = array(JText::_('COM_RSDIRECTORY_CONSENT_DEFAULT_ERROR'));
$response['error_fields'] = array('submit_consent');
echo json_encode($response);
$app->close();
}
}
// Get the Rating model.
$model = $this->getModel();
// Validate the posted data.
$return = $model->validate(false, $data);
if ($return !== false)
{
// Save the review.
if ( $model->save($return) )
{
// Are reviews enabled?
$enable_reviews = $config->get('enable_reviews');
// Are ratings enabled?
$enable_ratings = $config->get('enable_ratings');
// Can the user post reviews?
$can_post_reviews = RSDirectoryHelper::checkUserPermission('can_post_reviews');
// Can the user cast votes?
$can_cast_votes = RSDirectoryHelper::checkUserPermission('can_cast_votes');
$msg = '';
if ( RSDirectoryHelper::checkUserPermission('auto_publish_reviews') )
{
if ($enable_reviews && $can_post_reviews)
{
$msg = JText::_('COM_RSDIRECTORY_REVIEW_POSTED');
}
else if ($enable_ratings && $can_post_reviews)
{
$msg = JText::_('COM_RSDIRECTORY_VOTE_POSTED');
}
if ($enable_reviews && $can_post_reviews)
{
$response['review'] = RSDirectoryHelper::getReviewHTML( RSDirectoryHelper::getReview( $model->getState('rating.id') ) );
}
if ($enable_ratings && $can_cast_votes)
{
$entry = RSDirectoryHelper::getEntry($data['entry_id']);
$response['rating'] = array(
'avg_rating' => $entry->avg_rating,
'ratings_count' => $entry->ratings_count,
'text' => RSDirectoryHelper::getRatingText($entry->avg_rating, $entry->ratings_count)
);
}
}
else
{
if ($enable_reviews && $can_post_reviews)
{
$msg = JText::_('COM_RSDIRECTORY_REVIEW_SUBMITTED');
}
else if ($enable_ratings && $can_cast_votes)
{
$msg = JText::_('COM_RSDIRECTORY_VOTE_CAST');
}
}
$response['ok'] = $msg;
}
else
{
$response['error_messages'] = $model->getErrorMessages();
}
}
else
{
$response['error_messages'] = $model->getErrorMessages();
$response['error_fields'] = $model->getErrorFields();
}
echo json_encode($response);
$app->close();
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists