Sindbad~EG File Manager

Current Path : /var/www/ispania.gr/components/com_rsdirectory/controllers/
Upload File :
Current File : /var/www/ispania.gr/components/com_rsdirectory/controllers/rating.php

<?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