153 lines
4.3 KiB
PHP
153 lines
4.3 KiB
PHP
<?php
|
|
/*
|
|
* @package Joomla 1.5
|
|
* @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
|
|
*
|
|
* @component Phoca Component
|
|
* @copyright Copyright (C) Jan Pavelka www.phoca.cz
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
|
|
*/
|
|
defined('_JEXEC') or die();
|
|
use Joomla\CMS\MVC\View\HtmlView;
|
|
use Joomla\CMS\Session\Session;
|
|
use Joomla\CMS\Language\Text;
|
|
use Joomla\CMS\Factory;
|
|
use Joomla\CMS\Component\ComponentHelper;
|
|
jimport( 'joomla.application.component.view');
|
|
|
|
class PhocaDownloadViewRatingFileA extends HtmlView
|
|
{
|
|
|
|
function display($tpl = null){
|
|
|
|
if (!Session::checkToken('request')) {
|
|
$response = array(
|
|
'status' => '0',
|
|
'error' => Text::_('JINVALID_TOKEN')
|
|
);
|
|
echo json_encode($response);
|
|
return;
|
|
}
|
|
|
|
$app = Factory::getApplication();
|
|
$params = $app->getParams();
|
|
|
|
|
|
$ratingVote = $app->input->get( 'ratingVote', 0, 'post', 'int' );
|
|
$ratingId = $app->input->get( 'ratingId', 0, 'post', 'int' );// ID of File
|
|
$format = $app->input->get( 'format', '', 'post', 'string' );
|
|
$task = $app->input->get( 'task', '', 'get', 'string' );
|
|
$view = $app->input->get( 'view', '', 'get', 'string' );
|
|
$small = $app->input->get( 'small', 1, 'get', 'string' );//small or large rating icons
|
|
|
|
$paramsC = ComponentHelper::getParams('com_phocadownload');
|
|
$param['displayratingfile'] = $paramsC->get( 'display_rating_file', 0 );
|
|
|
|
// Check if rating is enabled - if not then user should not be able to rate or to see updated reating
|
|
|
|
|
|
|
|
if ($task == 'refreshrate' && (int)$param['displayratingfile'] > 0) {
|
|
$ratingOutput = PhocaDownloadRate::renderRateFile((int)$ratingId, 1, $small, true);// ID of File
|
|
$response = array(
|
|
'status' => '0',
|
|
'message' => $ratingOutput);
|
|
echo json_encode($response);
|
|
return;
|
|
//return $ratingOutput;
|
|
|
|
} else if ($task == 'rate') {
|
|
|
|
$user = Factory::getUser();
|
|
//$view = $app->input->get( 'view', '', 'get', '', J R EQUEST_NOTRIM );
|
|
//$Itemid = $app->input->get( 'Itemid', 0, 'int');
|
|
|
|
$neededAccessLevels = PhocaDownloadAccess::getNeededAccessLevels();
|
|
$access = PhocaDownloadAccess::isAccess($user->getAuthorisedViewLevels(), $neededAccessLevels);
|
|
|
|
|
|
$post['fileid'] = (int)$ratingId;
|
|
$post['userid'] = $user->id;
|
|
$post['rating'] = (int)$ratingVote;
|
|
|
|
|
|
if ($format != 'json') {
|
|
$msg = Text::_('COM_PHOCADOWNLOAD_ERROR_WRONG_RATING') ;
|
|
$response = array(
|
|
'status' => '0',
|
|
'error' => $msg);
|
|
echo json_encode($response);
|
|
return;
|
|
}
|
|
|
|
if ((int)$post['fileid'] < 1) {
|
|
$msg = Text::_('COM_PHOCADOWNLOAD_ERROR_FILE_NOT_EXISTS');
|
|
$response = array(
|
|
'status' => '0',
|
|
'error' => $msg);
|
|
echo json_encode($response);
|
|
return;
|
|
}
|
|
|
|
$model = $this->getModel();
|
|
|
|
$checkUserVote = PhocaDownloadRate::checkUserVoteFile( $post['fileid'], $post['userid'] );
|
|
|
|
// User has already rated this category
|
|
if ($checkUserVote) {
|
|
$msg = Text::_('COM_PHOCADOWNLOAD_RATING_ALREADY_RATED_FILE');
|
|
$response = array(
|
|
'status' => '0',
|
|
'error' => '',
|
|
'message' => $msg);
|
|
echo json_encode($response);
|
|
return;
|
|
} else {
|
|
if ((int)$post['rating'] < 1 || (int)$post['rating'] > 5) {
|
|
|
|
$msg = Text::_('COM_PHOCADOWNLOAD_ERROR_WRONG_RATING');
|
|
$response = array(
|
|
'status' => '0',
|
|
'error' => $msg);
|
|
echo json_encode($response);
|
|
return;
|
|
}
|
|
|
|
if ($access > 0 && $user->id > 0) {
|
|
if(!$model->rate($post)) {
|
|
$msg = Text::_('COM_PHOCADOWNLOAD_ERROR_RATING_FILE');
|
|
$response = array(
|
|
'status' => '0',
|
|
'error' => $msg);
|
|
echo json_encode($response);
|
|
return;
|
|
} else {
|
|
$msg = Text::_('COM_PHOCADOWNLOAD_SUCCESS_RATING_FILE');
|
|
$response = array(
|
|
'status' => '1',
|
|
'error' => '',
|
|
'message' => $msg);
|
|
echo json_encode($response);
|
|
return;
|
|
}
|
|
} else {
|
|
$msg = Text::_('COM_PHOCADOWNLOAD_NOT_AUTHORISED_ACTION');
|
|
$response = array(
|
|
'status' => '0',
|
|
'error' => $msg);
|
|
echo json_encode($response);
|
|
return;
|
|
}
|
|
}
|
|
} else {
|
|
$msg = Text::_('COM_PHOCADOWNLOAD_NOT_AUTHORISED_ACTION');
|
|
$response = array(
|
|
'status' => '0',
|
|
'error' => $msg);
|
|
echo json_encode($response);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
?>
|