119 lines
4.4 KiB
PHP
119 lines
4.4 KiB
PHP
<?php
|
|
/* @package Joomla
|
|
* @copyright Copyright (C) Open Source Matters. All rights reserved.
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
|
|
* @extension Phoca Extension
|
|
* @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\Factory;
|
|
use Joomla\CMS\Session\Session;
|
|
use Joomla\CMS\Router\Route;
|
|
use Joomla\CMS\Language\Text;
|
|
use Joomla\CMS\Plugin\PluginHelper;
|
|
phocagalleryimport('phocagallery.access.access');
|
|
phocagalleryimport('phocagallery.comment.comment');
|
|
phocagalleryimport('phocagallery.comment.commentimage');
|
|
class PhocaGalleryControllerComment extends PhocaGalleryController
|
|
{
|
|
|
|
function display($cachable = false, $urlparams = false) {
|
|
|
|
if ( ! Factory::getApplication()->input->get('view') ) {
|
|
Factory::getApplication()->input->set('view', 'comment' );
|
|
}
|
|
parent::display($cachable, $urlparams);
|
|
}
|
|
|
|
function comment() {
|
|
|
|
Session::checkToken() or jexit( 'Invalid Token' );
|
|
phocagalleryimport('phocagallery.comment.comment');
|
|
phocagalleryimport('phocagallery.comment.commentimage');
|
|
$app = Factory::getApplication();
|
|
$user = Factory::getUser();
|
|
$view = $this->input->get('view', '', 'string');
|
|
$catid = $this->input->get('catid', '', 'string');
|
|
$id = $this->input->get('id', '', 'string' );
|
|
$post['title'] = $this->input->get('phocagallerycommentstitle', '', 'string');
|
|
$post['comment'] = $this->input->get('phocagallerycommentseditor', '', 'string');
|
|
$Itemid = $this->input->get('Itemid', 0, 'int');
|
|
$limitStart = $this->input->get('limitstart', 0, 'int');
|
|
$tab = $this->input->get('tab', 0, 'int' );
|
|
$neededAccessLevels = PhocaGalleryAccess::getNeededAccessLevels();
|
|
$access = PhocaGalleryAccess::isAccess($user->getAuthorisedViewLevels(), $neededAccessLevels);
|
|
$params = $app->getParams();
|
|
$detailWindow = $params->get( 'detail_window', 0 );
|
|
$maxCommentChar = $params->get( 'max_comment_char', 1000 );
|
|
$displayCommentNoPopup = $params->get( 'display_comment_nopup', 0);
|
|
// Maximum of character, they will be saved in database
|
|
$post['comment'] = substr($post['comment'], 0, (int)$maxCommentChar);
|
|
|
|
if ($detailWindow == 7 || $displayCommentNoPopup == 1) {
|
|
$tCom = '';
|
|
} else {
|
|
$tCom = '&tmpl=component';
|
|
}
|
|
|
|
// Close Tags
|
|
$post['comment'] = PhocaGalleryComment::closeTags($post['comment'], '[u]', '[/u]');
|
|
$post['comment'] = PhocaGalleryComment::closeTags($post['comment'], '[i]', '[/i]');
|
|
$post['comment'] = PhocaGalleryComment::closeTags($post['comment'], '[b]', '[/b]');
|
|
|
|
|
|
|
|
$post['imgid'] = (int)$id;
|
|
$post['userid'] = $user->id;
|
|
|
|
$catidAlias = $catid;
|
|
$imgidAlias = $id;
|
|
if ($view != 'comment') {
|
|
$this->setRedirect( Route::_('index.php?option=com_phocagallery', false) );
|
|
}
|
|
|
|
$model = $this->getModel('comment');
|
|
|
|
$checkUserComment = PhocaGalleryCommentImage::checkUserComment( $post['imgid'], $post['userid'] );
|
|
|
|
// User has already submitted a comment
|
|
if ($checkUserComment) {
|
|
$msg = Text::_('COM_PHOCAGALLERY_COMMENT_ALREADY_SUBMITTED');
|
|
} else {
|
|
// If javascript will not protect the empty form
|
|
$msg = '';
|
|
$emptyForm = 0;
|
|
if ($post['title'] == '') {
|
|
$msg .= Text::_('COM_PHOCAGALLERY_ERROR_COMMENT_TITLE') . ' ';
|
|
$emtyForm = 1;
|
|
}
|
|
if ($post['comment'] == '') {
|
|
$msg .= Text::_('COM_PHOCAGALLERY_ERROR_COMMENT_COMMENT');
|
|
$emtyForm = 1;
|
|
}
|
|
if ($emptyForm == 0) {
|
|
if ($access > 0 && $user->id > 0) {
|
|
if(!$model->comment($post)) {
|
|
$msg = Text::_('COM_PHOCAGALLERY_ERROR_COMMENT_SUBMITTING');
|
|
} else {
|
|
$msg = Text::_('COM_PHOCAGALLERY_SUCCESS_COMMENT_SUBMIT');
|
|
// Features by Bernard Gilly - alphaplug.com
|
|
// load external plugins
|
|
//$dispatcher = JDispatcher::getInstance();
|
|
PluginHelper::importPlugin('phocagallery');
|
|
$results = Factory::getApplication()->triggerEvent('onCommentImage', array($id, $catid, $post['title'], $post['comment'], $user->id ) );
|
|
}
|
|
} else {
|
|
$app->enqueueMessage(Text::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'));
|
|
$app->redirect(Route::_('index.php?option=com_users&view=login', false));
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
|
|
$app->enqueueMessage($msg);
|
|
$this->setRedirect( Route::_('index.php?option=com_phocagallery&view=detail&catid='.$catidAlias.'&id='.$imgidAlias.$tCom.'&Itemid='. $Itemid, false));
|
|
}
|
|
}
|
|
?>
|