1148 lines
		
	
	
		
			40 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			1148 lines
		
	
	
		
			40 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /*
 | |
|  * @package Joomla
 | |
|  * @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\Factory;
 | |
| use Joomla\CMS\Language\Text;
 | |
| use Joomla\CMS\Router\Route;
 | |
| use Joomla\CMS\Session\Session;
 | |
| use Joomla\CMS\Client\ClientHelper;
 | |
| use Joomla\CMS\Component\ComponentHelper;
 | |
| use Joomla\CMS\Filesystem\Folder;
 | |
| use Joomla\CMS\Plugin\PluginHelper;
 | |
| phocagalleryimport('phocagallery.access.access');
 | |
| jimport( 'joomla.filesystem.file' );
 | |
| jimport( 'joomla.filesystem.folder' );
 | |
| phocagalleryimport('phocagallery.file.file');
 | |
| phocagalleryimport('phocagallery.file.fileupload');
 | |
| phocagalleryimport('phocagallery.file.fileuploadfront');
 | |
| phocagalleryimport('phocagallery.file.filefolder');
 | |
| phocagalleryimport('phocagallery.rate.ratecategory');
 | |
| phocagalleryimport('phocagallery.comment.comment');
 | |
| phocagalleryimport('phocagallery.comment.commentcategory');
 | |
| phocagalleryimport('phocagallery.upload.uploadfront');
 | |
| phocagalleryimport('phocagallery.user.user');
 | |
| phocagalleryimport('phocagallery.youtube.youtube');
 | |
| 
 | |
| class PhocaGalleryControllerCategory extends PhocaGalleryController
 | |
| {
 | |
| 
 | |
| 	function display($cachable = false, $urlparams = false) {
 | |
| 		if ( ! Factory::getApplication()->input->get( 'view' ) ) {
 | |
| 			$this->input->set('view', 'category' );
 | |
| 		}
 | |
| 		parent::display($cachable, $urlparams);
 | |
|     }
 | |
| 
 | |
| 	function remove() {
 | |
| 		$app		= Factory::getApplication();
 | |
| 		$user 		= Factory::getUser();
 | |
| 		$view 		= $this->input->get('view', '');
 | |
| 		$id 		= $this->input->get( 'removeid', '', 'int');
 | |
| 		$catid 		= $this->input->get( 'id', '', 'string');// ID of category
 | |
| 		$Itemid		= $this->input->get('Itemid', '');
 | |
| 		$limitStart	= $this->input->get('limitstart', 0);
 | |
| 
 | |
| 		$catid		= (int)$catid;
 | |
| 		$id 		= (int)$id;
 | |
| 
 | |
| 		$model = $this->getModel('category');
 | |
| 
 | |
| 		// Get catid of an id in case catid will be not send (SEF)
 | |
| 		$catidAlias = $catid; // because of JRoute redirect
 | |
| 		if ($id > 0 && $catid == '') {
 | |
| 			$catidObject 		= $model->getCategoryIdFromImageId($id);
 | |
| 			$catid 				= (int)$catidObject->catid;
 | |
| 			$catidAliasObject 	= $model->getCategoryAlias($catid);
 | |
| 			if ($catidAliasObject->alias !='') {
 | |
| 				$catidAlias		= $catid . ':' . $catidAliasObject->alias;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		// USER RIGHT - DELETE - - - - - - - - -
 | |
| 		// 2, 2 means that user access will be ignored in function getUserRight for display Delete button
 | |
| 		$rightDisplayDelete = 0;
 | |
| 
 | |
| 		$catAccess	= PhocaGalleryAccess::getCategoryAccess((int)$catid);
 | |
| 		if (!empty($catAccess)) {
 | |
| 			$rightDisplayDelete = PhocaGalleryAccess::getUserRight('deleteuserid', $catAccess->deleteuserid, 2, $user->getAuthorisedViewLevels(), $user->get('id', 0), 0);
 | |
| 		}
 | |
| 		// - - - - - - - - - - - - - - - - - - -
 | |
| 
 | |
| 		if ($view != 'category') {
 | |
| 			$app->enqueueMessage( Text::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'), 'error');
 | |
| 			$app->redirect( Route::_('index.php?option=com_phocagallery', false) );
 | |
| 			exit;
 | |
| 		}
 | |
| 
 | |
| 		if ((int)$id  < 1) {
 | |
| 			$app->enqueueMessage( Text::_('COM_PHOCAGALLERY_ERROR_IMAGE_NOT_EXISTS'), 'error');
 | |
| 			$app->redirect( Route::_('index.php?option=com_phocagallery', false) );
 | |
| 			exit;
 | |
| 		}
 | |
| 
 | |
| 		if ($rightDisplayDelete == 1) {
 | |
| 			if(!$model->delete((int)$id)) {
 | |
| 			$msg = Text::_('COM_PHOCAGALLERY_ERROR_DELETING_ITEM');
 | |
| 			} else {
 | |
| 			$msg = Text::_('COM_PHOCAGALLERY_SUCCESS_DELETING_ITEM');
 | |
| 			}
 | |
| 		} else {
 | |
| 			$app->enqueueMessage(Text::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'));
 | |
| 			$app->redirect(Route::_('index.php?option=com_users&view=login', false));
 | |
| 			exit;
 | |
| 		}
 | |
| 
 | |
| 		$countItem = $model->getCountItem((int)$catid, $rightDisplayDelete);
 | |
| 		if ($countItem) {
 | |
| 			if ((int)$countItem[0] == $limitStart) {
 | |
| 				$limitStart = 0;
 | |
| 			}
 | |
| 		} else {
 | |
| 			$limitStart = 0;
 | |
| 		}
 | |
| 
 | |
| 		if ($limitStart > 0) {
 | |
| 			$limitStartUrl	= '&limitstart='.$limitStart;
 | |
| 		} else {
 | |
| 			$limitStartUrl	= '';
 | |
| 		}
 | |
| 		$app->enqueueMessage($msg);
 | |
| 		$this->setRedirect( Route::_('index.php?option=com_phocagallery&view=category&id='.$catidAlias.'&Itemid='. $Itemid . $limitStartUrl, false));
 | |
| 	}
 | |
| 
 | |
| 	function publish() {
 | |
| 		$app	= Factory::getApplication();
 | |
| 
 | |
| 		$user 		= Factory::getUser();
 | |
| 		$view 		= $this->input->get('view', '', 'string');
 | |
| 		$id 		= $this->input->get( 'publishid', '', 'int');
 | |
| 		$catid 		= $this->input->get('id', '', 'string');// ID of category
 | |
| 		$Itemid		= $this->input->get('Itemid', '', 'int');
 | |
| 		$limitStart	= $this->input->get('limitstart', 0, 'int');
 | |
| 		$id 		= (int)$id;
 | |
| 
 | |
| 		$model = $this->getModel('category');
 | |
| 
 | |
| 		// Get catid of an id in case catid will be not send (SEF)
 | |
| 		$catidAlias = $catid; // because of JRoute redirect
 | |
| 		if ($id > 0 && $catid == '') {
 | |
| 		$catidObject 		= $model->getCategoryIdFromImageId($id);
 | |
| 			$catid 				= (int)$catidObject->catid;
 | |
| 			$catidAliasObject 	= $model->getCategoryAlias($catid);
 | |
| 			if ($catidAliasObject->alias !='') {
 | |
| 				$catidAlias		= $catid . ':' . $catidAliasObject->alias;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		// USER RIGHT - DELETE - - - - - -
 | |
| 		// 2, 2 means that user access will be ignored in function getUserRight for display Delete button
 | |
| 		$rightDisplayDelete = 0;
 | |
| 
 | |
| 		$catAccess	= PhocaGalleryAccess::getCategoryAccess((int)$catid);
 | |
| 		if (!empty($catAccess)) {
 | |
| 			$rightDisplayDelete = PhocaGalleryAccess::getUserRight('deleteuserid', $catAccess->deleteuserid, 2, $user->getAuthorisedViewLevels(), $user->get('id', 0), 0);
 | |
| 		}
 | |
| 		// - - - - - - - - - - - - - - - - -
 | |
| 
 | |
| 		if ($view != 'category') {
 | |
| 			$app->enqueueMessage( Text::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'), 'error');
 | |
| 			$app->redirect( Route::_('index.php?option=com_phocagallery', false) );
 | |
| 			exit;
 | |
| 		}
 | |
| 
 | |
| 		if ((int)$id  < 1) {
 | |
| 			$app->enqueueMessage( Text::_('COM_PHOCAGALLERY_ERROR_IMAGE_NOT_EXISTS'), 'error');
 | |
| 			$app->redirect( Route::_('index.php?option=com_phocagallery', false) );
 | |
| 			exit;
 | |
| 		}
 | |
| 
 | |
| 		if ($rightDisplayDelete == 1) {
 | |
| 			if(!$model->publish((int)$id, 1)) {
 | |
| 			$msg = Text::_('COM_PHOCAGALLERY_ERROR_PUBLISHING_ITEM');
 | |
| 			} else {
 | |
| 			$msg = Text::_('COM_PHOCAGALLERY_SUCCESS_PUBLISHING_ITEM');
 | |
| 			}
 | |
| 		} else {
 | |
| 			$app->enqueueMessage(Text::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'));
 | |
| 			$app->redirect(Route::_('index.php?option=com_users&view=login', false));
 | |
| 			exit;
 | |
| 		}
 | |
| 
 | |
| 		if ($limitStart > 0) {
 | |
| 			$limitStartUrl	= '&limitstart='.$limitStart;
 | |
| 		} else {
 | |
| 			$limitStartUrl	= '';
 | |
| 		}
 | |
| 		$app->enqueueMessage($msg);
 | |
| 		$this->setRedirect( Route::_('index.php?option=com_phocagallery&view=category&id='.$catidAlias.'&Itemid='. $Itemid . $limitStartUrl, false));
 | |
| 	}
 | |
| 
 | |
| 	function unpublish() {
 | |
| 		$app	= Factory::getApplication();
 | |
| 		$user 		= Factory::getUser();
 | |
| 		$view 		= $this->input->get('view', '', 'string');
 | |
| 		$id 		= $this->input->get( 'publishid', '', 'int');
 | |
| 		$catid 		= $this->input->get('id', '', 'string');// ID of category
 | |
| 		$Itemid		= $this->input->get('Itemid', '', 'int');
 | |
| 		$limitStart	= $this->input->get('limitstart', 0, 'int');
 | |
| 		$id 		= (int)$id;
 | |
| 		$catid		= (int)$catid;
 | |
| 		$model = $this->getModel('category');
 | |
| 
 | |
| 
 | |
| 
 | |
| 		// Get catid of an id in case catid will be not send (SEF)
 | |
| 		$catidAlias = $catid; // because of JRoute redirect
 | |
| 		if ($id > 0 && $catid == '') {
 | |
| 			$catidObject 		= $model->getCategoryIdFromImageId($id);
 | |
| 			$catid 				= (int)$catidObject->catid;
 | |
| 			$catidAliasObject 	= $model->getCategoryAlias($catid);
 | |
| 			if ($catidAliasObject->alias !='') {
 | |
| 				$catidAlias		= $catid . ':' . $catidAliasObject->alias;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		// USER RIGHT - DELETE - - - - - - - - - -
 | |
| 		// 2, 2 means that user access will be ignored in function getUserRight for display Delete button
 | |
| 		$rightDisplayDelete = 0;
 | |
| 
 | |
| 		$catAccess	= PhocaGalleryAccess::getCategoryAccess((int)$catid);
 | |
| 		if (!empty($catAccess)) {
 | |
| 			$rightDisplayDelete = PhocaGalleryAccess::getUserRight('deleteuserid', $catAccess->deleteuserid, 2, $user->getAuthorisedViewLevels(), $user->get('id', 0), 0);
 | |
| 		}
 | |
| 		// - - - - - - - - - - - - - - - - - - -
 | |
| 
 | |
| 
 | |
| 
 | |
| 		if ($view != 'category') {
 | |
| 			$app->enqueueMessage( Text::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'), 'error');
 | |
| 			$app->redirect( Route::_('index.php?option=com_phocagallery', false) );
 | |
| 			exit;
 | |
| 		}
 | |
| 
 | |
| 		if ((int)$id  < 1) {
 | |
| 			$app->enqueueMessage( Text::_('COM_PHOCAGALLERY_ERROR_IMAGE_NOT_EXISTS'), 'error');
 | |
| 			$app->redirect( Route::_('index.php?option=com_phocagallery', false) );
 | |
| 			exit;
 | |
| 		}
 | |
| 
 | |
| 		if ($rightDisplayDelete == 1) {
 | |
| 			if(!$model->publish((int)$id, 0)) {
 | |
| 				$msg = Text::_('COM_PHOCAGALLERY_ERROR_UNPUBLISHING_ITEM');
 | |
| 			} else {
 | |
| 
 | |
| 				$msg = Text::_('COM_PHOCAGALLERY_SUCCESS_UNPUBLISHING_ITEM');
 | |
| 			}
 | |
| 		} else {
 | |
| 			$app->enqueueMessage( Text::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'));
 | |
| 			$app->redirect(Route::_('index.php?option=com_users&view=login', false));
 | |
| 			exit;
 | |
| 		}
 | |
| 
 | |
| 		if ($limitStart > 0) {
 | |
| 			$limitStartUrl	= '&limitstart='.$limitStart;
 | |
| 		} else {
 | |
| 			$limitStartUrl	= '';
 | |
| 		}
 | |
| 		$app->enqueueMessage($msg);
 | |
| 		$this->setRedirect( Route::_('index.php?option=com_phocagallery&view=category&id='.$catidAlias.'&Itemid='. $Itemid . $limitStartUrl, false) );
 | |
| 	}
 | |
| 
 | |
| 	/*
 | |
| 	 * Java Upload
 | |
| 	 */
 | |
| 	 /*
 | |
| 	function javaupload() {
 | |
| 		$app	= Factory::getApplication();
 | |
| 		Session::checkToken( 'request' ) or jexit( 'Invalid Token' );
 | |
| 		$errUploadMsg	= '';
 | |
| 		$redirectUrl 	= '';
 | |
| 
 | |
| 		if (!$this->_realJavaUpload($errUploadMsg, $redirectUrl)	) {
 | |
| 			exit( 'ERROR: '.$errUploadMsg);
 | |
| 		} else {
 | |
| 			exit( 'SUCCESS');
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	function _realJavaUpload(&$errUploadMsg, &$redirectUrl) {
 | |
| 		$app	= Factory::getApplication();
 | |
| 		Session::checkToken( 'request' ) or jexit( 'Invalid Token' );
 | |
| 		foreach ($ FILES as $file => $fileArray) {
 | |
| 			echo('File key: '. $file . "\n");
 | |
| 			foreach ($fileArray as $item=>$val) {
 | |
| 				echo(' Data received: ' . $item.'=>'.$val . "\n");
 | |
| 			}
 | |
| 			if (!$this->_singleFileUpload($errUploadMsg, $fileArray, $redirectUrl)) {
 | |
| 				$errUploadMsg = Text::_($errUploadMsg);
 | |
| 				return false;
 | |
| 			}
 | |
| 		}
 | |
| 		return true;
 | |
| 	}
 | |
| 	*/
 | |
| /*
 | |
| 	function javaupload() {
 | |
| 
 | |
| 		Session::checkToken( 'request' ) or exit( 'ERROR: '. Text::_('COM_PHOCAGALLERY_INVALID_TOKEN'));
 | |
| 
 | |
| 		jimport('joomla.client.helper');
 | |
| 		$app		= Factory::getApplication();
 | |
| 		$ftp 		= ClientHelper::setCredentialsFromRequest('ftp');
 | |
| 		$user 		= Factory::getUser();
 | |
| 		$path		= PhocaGalleryPath::getPath();
 | |
| 
 | |
| 		$return 	= $this->input->get('return-url', null, 'base64');
 | |
| 		$format 	= $this->input->get('format', 'html', 'cmd');
 | |
| 		$viewBack 	= $this->input->get('viewback', '', 'string');
 | |
| 		$tab 		= $this->input->get('tab', 0, 'int');
 | |
| 		$catid 		= $this->input->get('id', '', 'string');
 | |
| 		$rating		= $this->input->get('rating', '', 'string');
 | |
| 		$Itemid		= $this->input->get('Itemid', 0, 'int');
 | |
| 		$limitStart	= $this->input->get('limitstart', 0, 'int');
 | |
| 		$catid 		= (int)$catid;
 | |
| 
 | |
| 		$paramsC 	= ComponentHelper::getParams('com_phocagallery') ;
 | |
| 
 | |
| 		$model 			= $this->getModel('category');
 | |
| 
 | |
| 
 | |
| 		// USER RIGHT - UPLOAD - - - - - - - - - - -
 | |
| 		// 2, 2 means that user access will be ignored in function getUserRight for display Delete button
 | |
| 		$rightDisplayUpload	= 0;
 | |
| 
 | |
| 		$catAccess	= PhocaGalleryAccess::getCategoryAccess((int)$catid);
 | |
| 		if (!empty($catAccess)) {
 | |
| 			$rightDisplayUpload = PhocaGalleryAccess::getUserRight('uploaduserid', $catAccess->uploaduserid, 2, $user->getAuthorisedViewLevels(), $user->get('id', 0), 0);
 | |
| 		}
 | |
| 		// - - - - - - - - - - - - - - - - - - - - - -
 | |
| 		// USER RIGHT - FOLDER - - - - - - - - - - - -
 | |
| 		$rightFolder = '';
 | |
| 
 | |
| 		if (isset($catAccess->userfolder)) {
 | |
| 			$rightFolder = $catAccess->userfolder;
 | |
| 		}
 | |
| 		// - - - - - - - - - - - - - - - - - - - - - -
 | |
| 
 | |
| 		if ($rightDisplayUpload == 1) {
 | |
| 
 | |
| 			if ($rightFolder == '') {
 | |
| 				exit( 'ERROR: '.Text::_('COM_PHOCAGALLERY_USER_FOLDER_NOT_DEFINED'));
 | |
| 				return false;
 | |
| 			}
 | |
| 			if (!Folder::exists($path->image_abs . $rightFolder . '/')) {
 | |
| 				exit( 'ERROR: '.Text::_('COM_PHOCAGALLERY_USER_FOLDER_NOT_EXISTS'));
 | |
| 				return false;
 | |
| 			}
 | |
| 
 | |
| 			// Check the size of all images by users
 | |
| 		/*	$maxUserImageSize 	= (int)$paramsC->get( 'user_images_max_size', 20971520 );
 | |
| 			$allFileSize		= PhocaGalleryFileUploadFront::getSizeAllOriginalImages($file, $this->_user->id);
 | |
| 
 | |
| 			if ($maxUserImageSize > 0 && (int) $allFileSize > $maxUserImageSize) {
 | |
| 				$errUploadMsg = Text::_('COM_PHOCAGALLERY_WARNING_USERIMAGES_TOOLARGE');
 | |
| 				$app->redirect($redirectUrl);
 | |
| 				return false;
 | |
| 			}*/
 | |
| 
 | |
| 			// Sending and setting data for common realsingleupload function
 | |
| 		/*	$this->input->set('folder', $rightFolder);//Set the right path for uploaded image (category folder included)
 | |
| 			$this->input->set('return-url', base64_encode($return));// set return url
 | |
| 			$fileName = PhocaGalleryFileUpload::realJavaUpload(1);
 | |
| 
 | |
| 			if ($fileName != '') {
 | |
| 				// Saving file name into database with relative path
 | |
| 
 | |
| 				$fileName		= $rightFolder . '/' . strtolower($fileName);
 | |
| 				if(PhocaGalleryControllerCategory::save((int)$catid, $fileName, false, $succeeded, $errUploadMsg, false)) {
 | |
| 					//$app->enqueueMessage(JText::_('COM_PHOCAGALLERY_SUCCESS_FILE_UPLOAD'));
 | |
| 					exit( 'SUCCESS');
 | |
| 					return true;
 | |
| 				} else {
 | |
| 					exit( 'ERROR: '.Text::_('COM_PHOCAGALLERY_ERROR_UNABLE_TO_UPLOAD_FILE'));
 | |
| 					return false;
 | |
| 				}
 | |
| 			}
 | |
| 		} else {
 | |
| 			exit( 'ERROR: '.Text::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'));
 | |
| 			return false;
 | |
| 		}
 | |
| 	}*/
 | |
| 
 | |
| 	function upload() {
 | |
| 
 | |
| 		Session::checkToken() or jexit( 'Invalid Token' );
 | |
| 
 | |
| 		jimport('joomla.client.helper');
 | |
| 		$app		= Factory::getApplication();
 | |
| 		$ftp 		= ClientHelper::setCredentialsFromRequest('ftp');
 | |
| 		$user 		= Factory::getUser();
 | |
| 		$path		= PhocaGalleryPath::getPath();
 | |
| 
 | |
| 		$paramsC 	= ComponentHelper::getParams('com_phocagallery') ;
 | |
| 
 | |
| 		$return 	= $this->input->get('return-url', null, 'base64');
 | |
| 		$format 	= $this->input->get('format', 'html', 'cmd');
 | |
| 		$viewBack 	= $this->input->get('viewback', '', 'string');
 | |
| 		$tab 		= $this->input->get('tab', 0, 'int');
 | |
| 		$catid 		= $this->input->get('id', '', 'string');
 | |
| 		$rating		= $this->input->get('rating', '', 'string');
 | |
| 		$Itemid		= $this->input->get('Itemid', 0, 'int');
 | |
| 		$limitStart	= $this->input->get('limitstart', 0, 'int');
 | |
| 
 | |
| 		$catidAlias	= $catid;// for return
 | |
| 		$catid 		= (int)$catid;
 | |
| 		// Set the limistart (TO DO)
 | |
| 		if ($limitStart > 0) {
 | |
| 			$limitStartUrl	= '&limitstart='.$limitStart;
 | |
| 		} else {
 | |
| 			$limitStartUrl	= '';
 | |
| 		}
 | |
| 
 | |
| 
 | |
| 		$return			= Route::_('index.php?option=com_phocagallery&view=category&id='.$catidAlias.'&tab='.$tab.'&Itemid='.$Itemid.$limitStartUrl, false);
 | |
| 		$redirectUrl 	= $return;
 | |
| 		$model 			= $this->getModel('category');
 | |
| 
 | |
| 		// USER RIGHT - UPLOAD - - - - - - - - - - -
 | |
| 		// 2, 2 means that user access will be ignored in function getUserRight for display Delete button
 | |
| 		$rightDisplayUpload	= 0;
 | |
| 
 | |
| 		$catAccess	= PhocaGalleryAccess::getCategoryAccess((int)$catid);
 | |
| 		if (!empty($catAccess)) {
 | |
| 			$rightDisplayUpload = PhocaGalleryAccess::getUserRight('uploaduserid', $catAccess->uploaduserid, 2, $user->getAuthorisedViewLevels(), $user->get('id', 0), 0);
 | |
| 		}
 | |
| 
 | |
| 		// - - - - - - - - - - - - - - - - - - - - - -
 | |
| 		// USER RIGHT - FOLDER - - - - - - - - - - - -
 | |
| 		$rightFolder = '';
 | |
| 		if (isset($catAccess->userfolder)) {
 | |
| 			$rightFolder = $catAccess->userfolder;
 | |
| 		}
 | |
| 		// - - - - - - - - - - - - - - - - - - - - - -
 | |
| 
 | |
| 		if ($rightDisplayUpload == 1) {
 | |
| 
 | |
| 			if ($rightFolder == '') {
 | |
| 				$errUploadMsg = Text::_('COM_PHOCAGALLERY_USER_FOLDER_NOT_DEFINED');
 | |
| 				$app->enqueueMessage($errUploadMsg, 'error');
 | |
| 				$app->redirect($redirectUrl);
 | |
| 				return false;
 | |
| 			}
 | |
| 			if (!Folder::exists($path->image_abs . $rightFolder . '/')) {
 | |
| 				$errUploadMsg = Text::_('COM_PHOCAGALLERY_USER_FOLDER_NOT_EXISTS');
 | |
| 				$app->enqueueMessage($errUploadMsg, 'error');
 | |
| 				$app->redirect($redirectUrl);
 | |
| 				return false;
 | |
| 			}
 | |
| 
 | |
| 			// Check the size of all images by users
 | |
| 		/*	$maxUserImageSize 	= (int)$paramsC->get( 'user_images_max_size', 20971520 );
 | |
| 			$allFileSize		= PhocaGalleryFileUploadFront::getSizeAllOriginalImages($file, $this->_user->id);
 | |
| 
 | |
| 			if ($maxUserImageSize > 0 && (int) $allFileSize > $maxUserImageSize) {
 | |
| 				$errUploadMsg = Text::_('COM_PHOCAGALLERY_WARNING_USERIMAGES_TOOLARGE');
 | |
| 				$app->redirect($redirectUrl);
 | |
| 				return false;
 | |
| 			}*/
 | |
| 
 | |
| 			// Sending and setting data for common realsingleupload function
 | |
| 			$this->input->set('folder', $rightFolder);//Set the right path for uploaded image (category folder included)
 | |
| 			$this->input->set('return-url', base64_encode($return));// set return url
 | |
| 			$fileName = PhocaGalleryFileUpload::realSingleUpload(1);
 | |
| 
 | |
| 			if ($fileName != '') {
 | |
| 				// Saving file name into database with relative path
 | |
| 				$fileName		= $rightFolder . '/' . strtolower($fileName);
 | |
| 				if(PhocaGalleryControllerCategory::save((int)$catid, $fileName, $return, $succeeded, $errUploadMsg, false)) {
 | |
| 					$app->enqueueMessage($errUploadMsg);
 | |
| 					$app->redirect($redirectUrl);
 | |
| 					return true;
 | |
| 				} else {
 | |
| 					$app->enqueueMessage($errUploadMsg, 'error');
 | |
| 					$app->redirect($redirectUrl);
 | |
| 					return false;
 | |
| 				}
 | |
| 			}
 | |
| 		} else {
 | |
| 			$errUploadMsg = Text::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION');
 | |
| 			$redirectUrl = Route::_('index.php?option=com_users&view=login', false);
 | |
| 			$app->enqueueMessage($errUploadMsg, 'error');
 | |
| 			$app->redirect($redirectUrl);
 | |
| 			return false;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	function ytbupload() {
 | |
| 
 | |
| 		Session::checkToken() or jexit( 'Invalid Token' );
 | |
| 
 | |
| 		jimport('joomla.client.helper');
 | |
| 		$app		= Factory::getApplication();
 | |
| 		$ftp 		= ClientHelper::setCredentialsFromRequest('ftp');
 | |
| 		$user 		= Factory::getUser();
 | |
| 		$path		= PhocaGalleryPath::getPath();
 | |
| 
 | |
| 		$return 	= $this->input->get('return-url', null, 'base64');
 | |
| 		$format 	= $this->input->get('format', 'html', 'cmd');
 | |
| 		$viewBack 	= $this->input->get('viewback', '', 'string');
 | |
| 		$tab 		= $this->input->get('tab', 0, 'int');
 | |
| 		$catid 		= $this->input->get('id', '', 'string');
 | |
| 		$rating		= $this->input->get('rating', '', 'string');
 | |
| 		$Itemid		= $this->input->get('Itemid',0 , 'int');
 | |
| 		$limitStart	= $this->input->get('limitstart', 0, 'int');
 | |
| 
 | |
| 		$paramsC 	= ComponentHelper::getParams('com_phocagallery') ;
 | |
| 		$catid 		= (int)$catid;
 | |
| 
 | |
| 		$return			= Route::_('index.php?option=com_phocagallery&view=category&id='.$catidAlias.'&tab='.$tab.'&Itemid='.$Itemid.$limitStartUrl, false);
 | |
| 		$redirectUrl 	= $return;
 | |
| 
 | |
| 		if ((int)$catid < 1) {
 | |
| 			$app->enqueueMessage(Text::_('COM_PHOCAGALLERY_PLEASE_SELECT_CATEGORY'), 'error');
 | |
| 			$app->redirect($redirectUrl);
 | |
| 			return false;
 | |
| 		}
 | |
| 
 | |
| 		$catidAlias	= $catid;// for return
 | |
| 		// Set the limistart (TO DO)
 | |
| 		if ($limitStart > 0) {
 | |
| 			$limitStartUrl	= '&limitstart='.$limitStart;
 | |
| 		} else {
 | |
| 			$limitStartUrl	= '';
 | |
| 		}
 | |
| 
 | |
| 
 | |
| 
 | |
| 		$model 			= $this->getModel('category');
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 		// USER RIGHT - UPLOAD - - - - - - - - - - -
 | |
| 		// 2, 2 means that user access will be ignored in function getUserRight for display Delete button
 | |
| 		$rightDisplayUpload	= 0;
 | |
| 
 | |
| 		$catAccess	= PhocaGalleryAccess::getCategoryAccess((int)$catid);
 | |
| 
 | |
| 
 | |
| 		if (!empty($catAccess)) {
 | |
| 			$rightDisplayUpload = PhocaGalleryAccess::getUserRight('uploaduserid', $catAccess->uploaduserid, 2, $user->getAuthorisedViewLevels(), $user->get('id', 0), 0);
 | |
| 		}
 | |
| 
 | |
| 		// - - - - - - - - - - - - - - - - - - - - - -
 | |
| 		// USER RIGHT - FOLDER - - - - - - - - - - - -
 | |
| 		$rightFolder = '';
 | |
| 		if (isset($catAccess->userfolder)) {
 | |
| 			$rightFolder = $catAccess->userfolder;
 | |
| 		}
 | |
| 		// - - - - - - - - - - - - - - - - - - - - - -
 | |
| 
 | |
| 
 | |
| 
 | |
| 		if ($rightDisplayUpload == 1) {
 | |
| 
 | |
| 			if ($rightFolder == '') {
 | |
| 				$errUploadMsg = Text::_('COM_PHOCAGALLERY_USER_FOLDER_NOT_DEFINED');
 | |
| 				$app->enqueueMessage($errUploadMsg, 'error');
 | |
| 				$app->redirect($redirectUrl);
 | |
| 				return false;
 | |
| 			}
 | |
| 			if (!Folder::exists($path->image_abs . $rightFolder . '/')) {
 | |
| 				$errUploadMsg = Text::_('COM_PHOCAGALLERY_USER_FOLDER_NOT_EXISTS');
 | |
| 				$app->enqueueMessage($errUploadMsg, 'error');
 | |
| 				$app->redirect($redirectUrl);
 | |
| 				return false;
 | |
| 			}
 | |
| 
 | |
| 
 | |
| 			// Sending and setting data for common realsingleupload function
 | |
| 			$this->input->set('folder', $rightFolder);//Set the right path for uploaded image (category folder included)
 | |
| 			$this->input->set('return-url', base64_encode($return));// set return url
 | |
| 			//$fileName = PhocaGalleryFileUpload::realSingleUpload(2);
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 			$ytbLink	= $this->input->get( 'phocagalleryytbuploadlink', '', 'string');
 | |
| 
 | |
| 			$errorYtbMsg	= '';
 | |
| 			$ytbData	= PhocaGalleryYoutube::importYtb($ytbLink, $rightFolder . '/', $errorYtbMsg);
 | |
| 
 | |
| 
 | |
| 			if ($ytbData && isset($ytbData['filename'])) {
 | |
| 				if(PhocaGalleryControllerCategory::save((int)$catid, $ytbData['filename'], $return, $succeeded, $errUploadMsg, false, $ytbData)) {
 | |
| 					$app->enqueueMessage($errUploadMsg);
 | |
| 					$app->redirect($redirectUrl);
 | |
| 					return true;
 | |
| 				} else {
 | |
| 					$app->enqueueMessage($errUploadMsg, 'error');
 | |
| 					$app->redirect($redirectUrl);
 | |
| 					return false;
 | |
| 				}
 | |
| 			} else {
 | |
| 				$app->enqueueMessage($errorYtbMsg, 'error');
 | |
| 				$app->redirect($redirectUrl);
 | |
| 				return false;
 | |
| 
 | |
| 			}
 | |
| 			if ($fileName != '') {
 | |
| 				// Saving file name into database with relative path
 | |
| 				$fileName		= $rightFolder . '/' . strtolower($fileName);
 | |
| 				if(PhocaGalleryControllerUser::save((int)$catid, $fileName, $return, $succeeded, $errUploadMsg, false)) {
 | |
| 					$app->enqueueMessage($errUploadMsg);
 | |
| 					$app->redirect($redirectUrl);
 | |
| 					return true;
 | |
| 				} else {
 | |
| 					$app->enqueueMessage($errUploadMsg, 'error');
 | |
| 					$app->redirect($redirectUrl);
 | |
| 					return false;
 | |
| 				}
 | |
| 			}
 | |
| 		} else {
 | |
| 			$errUploadMsg = Text::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION');
 | |
| 			$app->enqueueMessage($errUploadMsg, 'error');
 | |
| 			$app->redirect($this->_loginurl);
 | |
| 			return false;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	function multipleupload() {
 | |
| 
 | |
| 
 | |
| 		$app 	= Factory::getApplication();
 | |
| 		$app->allowCache(false);
 | |
| 
 | |
| 
 | |
| 
 | |
| 		// Chunk Files
 | |
| 		header('Content-type: text/plain; charset=UTF-8');
 | |
| 		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
 | |
| 		header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
 | |
| 		header("Cache-Control: no-store, no-cache, must-revalidate");
 | |
| 		header("Cache-Control: post-check=0, pre-check=0", false);
 | |
| 		header("Pragma: no-cache");
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 		Session::checkToken( 'request' ) or jexit(
 | |
| 			json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 100,
 | |
| 			'message' => Text::_('COM_PHOCAGALLERY_ERROR').': ',
 | |
| 			'details' => Text::_('COM_PHOCAGALLERY_INVALID_TOKEN')))
 | |
| 		);
 | |
| 
 | |
| 
 | |
| 
 | |
| 		jimport('joomla.client.helper');
 | |
| 		$app		= Factory::getApplication();
 | |
| 		$ftp 		= ClientHelper::setCredentialsFromRequest('ftp');
 | |
| 		$user 		= Factory::getUser();
 | |
| 		$path		= PhocaGalleryPath::getPath();
 | |
| 		$return 	= $this->input->get('return-url', null, 'base64');
 | |
| 		$format 	= $this->input->get('format', 'html', 'cmd');
 | |
| 		$viewBack 	= $this->input->get('viewback', '', 'string');
 | |
| 		$tab 		= $this->input->get('tab', 0, 'int');
 | |
| 		$catid 		= $this->input->get('id', '', 'string');
 | |
| 		$rating		= $this->input->get('rating', '', 'string');
 | |
| 		$Itemid		= $this->input->get('Itemid', 0, 'int');
 | |
| 		$limitStart	= $this->input->get('limitstart', 0, 'int');
 | |
| 		$paramsC 	= ComponentHelper::getParams('com_phocagallery') ;
 | |
| 
 | |
| 		$model 		= $this->getModel('category');
 | |
| 		$catid 		= (int)$catid;
 | |
| 
 | |
| 
 | |
| 		// USER RIGHT - UPLOAD - - - - - - - - - - -
 | |
| 		// 2, 2 means that user access will be ignored in function getUserRight for display Delete button
 | |
| 		$rightDisplayUpload	= 0;
 | |
| 
 | |
| 		$catAccess	= PhocaGalleryAccess::getCategoryAccess((int)$catid);
 | |
| 		if (!empty($catAccess)) {
 | |
| 			$rightDisplayUpload = PhocaGalleryAccess::getUserRight('uploaduserid', $catAccess->uploaduserid, 2, $user->getAuthorisedViewLevels(), $user->get('id', 0), 0);
 | |
| 		}
 | |
| 		// - - - - - - - - - - - - - - - - - - - - - -
 | |
| 		// USER RIGHT - FOLDER - - - - - - - - - - - -
 | |
| 		$rightFolder = '';
 | |
| 		if (isset($catAccess->userfolder)) {
 | |
| 			$rightFolder = $catAccess->userfolder;
 | |
| 		}
 | |
| 		// - - - - - - - - - - - - - - - - - - - - - -
 | |
| 
 | |
| 
 | |
| 		if ($rightDisplayUpload == 1) {
 | |
| 
 | |
| 
 | |
| 
 | |
| 			if ($rightFolder == '') {
 | |
| 				jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 104,
 | |
| 				'message' => Text::_('COM_PHOCAGALLERY_ERROR').': ',
 | |
| 				'details' => Text::_('COM_PHOCAGALLERY_USER_FOLDER_NOT_DEFINED'))));
 | |
| 				return false;
 | |
| 			}
 | |
| 
 | |
| 
 | |
| 			if (!Folder::exists($path->image_abs . $rightFolder . '/')) {
 | |
| 
 | |
| 
 | |
| 				jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 104,
 | |
| 				'message' => Text::_('COM_PHOCAGALLERY_ERROR').': ',
 | |
| 				'details' => Text::_('COM_PHOCAGALLERY_USER_FOLDER_NOT_EXISTS'))));
 | |
| 				return false;
 | |
| 			}
 | |
| 
 | |
| 
 | |
| 			// Check the size of all images by users
 | |
| 		/*	$maxUserImageSize 	= (int)$paramsC->get( 'user_images_max_size', 20971520 );
 | |
| 			$allFileSize		= PhocaGalleryFileUploadFront::getSizeAllOriginalImages($file, $this->_user->id);
 | |
| 
 | |
| 			if ($maxUserImageSize > 0 && (int) $allFileSize > $maxUserImageSize) {
 | |
| 				$errUploadMsg = Text::_('COM_PHOCAGALLERY_WARNING_USERIMAGES_TOOLARGE');
 | |
| 				$app->red irect($redirectUrl, $errUploadMsg);
 | |
| 				return false;
 | |
| 			}*/
 | |
| 
 | |
| 
 | |
| 			// Sending and setting data for common realsingleupload function
 | |
| 			$this->input->set('folder', $rightFolder);//Set the right path for uploaded image (category folder included)
 | |
| 			$this->input->set('return-url', base64_encode((string)$return));// set return url
 | |
| 			$fileName = PhocaGalleryFileUpload::realMultipleUpload(1);
 | |
| 
 | |
| 
 | |
| 
 | |
| 			if ($fileName != '') {
 | |
| 				// Saving file name into database with relative path
 | |
| 				$fileName		= $rightFolder . '/' . strtolower($fileName);
 | |
| 				if(PhocaGalleryControllerCategory::save((int)$catid, $fileName, false, $succeeded, $errUploadMsg, false)) {
 | |
| 					jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'OK', 'code' => 200,
 | |
| 					'message' => Text::_('COM_PHOCAGALERY_SUCCESS').': ',
 | |
| 					'details' => Text::_('COM_PHOCAGALLERY_IMAGES_UPLOADED'))));
 | |
| 					return true;
 | |
| 				} else {
 | |
| 					jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 104,
 | |
| 					'message' => Text::_('COM_PHOCAGALLERY_ERROR').': ',
 | |
| 					'details' => Text::_('COM_PHOCAGALLERY_ERROR_UNABLE_TO_UPLOAD_FILE'))));
 | |
| 					return false;
 | |
| 				}
 | |
| 			}
 | |
| 		} else {
 | |
| 			jexit(json_encode(array( 'jsonrpc' => '2.0', 'result' => 'error', 'code' => 104,
 | |
| 			'message' => Text::_('COM_PHOCAGALLERY_ERROR').': ',
 | |
| 			'details' => Text::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'))));
 | |
| 			return false;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	function save($catid, $filename, $return, &$succeeded, &$errSaveMsg, $redirect=true, $ytbData = array()) {
 | |
| 
 | |
| 		$app	= Factory::getApplication();
 | |
| 		$user 	= Factory::getUser();
 | |
| 
 | |
| 		$post['filename']		= $filename;
 | |
| 		if (isset($ytbData['link'])) {
 | |
| 			$post['videocode']	= $ytbData['link'];
 | |
| 		}
 | |
| 		if (isset($ytbData['title'])) {
 | |
| 			$post['title']	= $ytbData['title'];
 | |
| 		} else {
 | |
| 			$post['title']			= $this->input->get( 'phocagalleryuploadtitle', '', 'string' );
 | |
| 		}
 | |
| 		if (isset($ytbData['desc'])) {
 | |
| 			$post['description']	= $ytbData['desc'];
 | |
| 		} else {
 | |
| 			$post['description']	= $this->input->get( 'phocagalleryuploaddescription', '', 'string' );
 | |
| 		}
 | |
| 		$post['catid']			= $catid;
 | |
| 		$post['published']		= 1;
 | |
| 
 | |
| 		$paramsC 				= ComponentHelper::getParams('com_phocagallery') ;
 | |
| 		$maxUploadChar			= $paramsC->get( 'max_upload_char', 1000 );
 | |
| 		if (isset($ytbData['desc'])) {
 | |
| 		} else {
 | |
| 			$post['description']	= substr($post['description'], 0, (int)$maxUploadChar);
 | |
| 		}
 | |
| 		$enableUserImageApprove = (int)$paramsC->get( 'enable_userimage_approve', 0 );
 | |
| 
 | |
| 		// Lang
 | |
| 		$userLang			= PhocaGalleryUser::getUserLang();
 | |
| 		$post['language']	= $userLang['lang'];
 | |
| 
 | |
| 		$post['userid']		= $user->id;
 | |
| 
 | |
| 		$post['approved']			= 0;
 | |
| 		if ($enableUserImageApprove == 0) {
 | |
| 			$post['approved']	= 1;
 | |
| 		}
 | |
| 
 | |
| 
 | |
| 		$model = $this->getModel( 'category' );
 | |
| 
 | |
| 
 | |
| 		if ($model->store($post, $return)) {
 | |
| 			$succeeded = true;
 | |
| 			$errSaveMsg = Text::_( 'COM_PHOCAGALLERY_SUCCESS_SAVING_ITEM' );
 | |
| 		} else {
 | |
| 			$succeeded = false;
 | |
| 			$errSaveMsg = Text::_( 'COM_PHOCAGALLERY_ERROR_SAVING_ITEM' );
 | |
| 		}
 | |
| 
 | |
| 		if ($redirect) {
 | |
| 			$app->enqueueMessage( $errSaveMsg);
 | |
| 			$app->redirect($return);
 | |
| 			exit;
 | |
| 		}
 | |
| 
 | |
| 		if ($succeeded) {
 | |
| 			return true;
 | |
| 		} else {
 | |
| 			return false;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 	function rate() {
 | |
| 		$app	= Factory::getApplication();
 | |
| 
 | |
| 		$user 		= Factory::getUser();
 | |
| 		$view 		= $this->input->get('view', '', 'string');
 | |
| 		$catid 		= $this->input->get('id', '', 'string');
 | |
| 		$rating		= $this->input->get('rating', '', 'string');
 | |
| 		$Itemid		= $this->input->get('Itemid', 0, 'int');
 | |
| 		$limitStart	= $this->input->get('limitstart', 0, 'int');
 | |
| 		$tab		= $this->input->get('tab', '', 'int');
 | |
| 		$catid 		= (int)$catid;
 | |
| 
 | |
| 
 | |
| 		$neededAccessLevels	= PhocaGalleryAccess::getNeededAccessLevels();
 | |
| 		$access				= PhocaGalleryAccess::isAccess($user->getAuthorisedViewLevels(), $neededAccessLevels);
 | |
| 
 | |
| 
 | |
| 		$post['catid'] 	= (int)$catid;
 | |
| 		$post['userid']	= $user->id;
 | |
| 		$post['rating']	= (int)$rating;
 | |
| 
 | |
| 		$catidAlias 	= $catid; //Itemid
 | |
| 		if ($view != 'category') {
 | |
| 			$this->setRedirect( Route::_('index.php?option=com_phocagallery', false) );
 | |
| 		}
 | |
| 
 | |
| 
 | |
| 		$model = $this->getModel('category');
 | |
| 
 | |
| 		$checkUserVote	= PhocaGalleryRateCategory::checkUserVote( $post['catid'], $post['userid'] );
 | |
| 
 | |
| 		// User has already rated this category
 | |
| 		if ($checkUserVote) {
 | |
| 			$msg = Text::_('COM_PHOCAGALLERY_RATING_CATEGORY_ALREADY_RATED');
 | |
| 		} else {
 | |
| 			if ((int)$post['rating']  < 1 || (int)$post['rating'] > 5) {
 | |
| 				$app->redirect( Route::_('index.php?option=com_phocagallery', false)  );
 | |
| 				exit;
 | |
| 			}
 | |
| 
 | |
| 			if ($access && $user->id > 0) {
 | |
| 				if(!$model->rate($post)) {
 | |
| 				$msg = Text::_('COM_PHOCAGALLERY_ERROR_RATING_CATEGORY');
 | |
| 				} else {
 | |
| 				$msg = Text::_('COM_PHOCAGALLERY_SUCCESS_RATING_CATEGORY');
 | |
| 				// Features added by Bernard Gilly - alphaplug.com
 | |
| 				// load external plugins
 | |
| 				//$dispatcher = JDispatcher::getInstance();
 | |
| 				PluginHelper::importPlugin('phocagallery');
 | |
| 				$results = Factory::getApplication()->triggerEvent('onVoteCategory', array($catid, $rating, $user->id ) );
 | |
| 				}
 | |
| 			} else {
 | |
| 				$app->enqueueMessage( Text::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'));
 | |
| 				$app->redirect(Route::_('index.php?option=com_users&view=login', false));
 | |
| 				exit;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		// Limit Start
 | |
| 		$countItem = $model->getCountItem((int)$catid);
 | |
| 		if ($countItem) {
 | |
| 			if ((int)$countItem[0] == $limitStart) {
 | |
| 				$limitStart = 0;
 | |
| 			}
 | |
| 		} else {
 | |
| 			$limitStart = 0;
 | |
| 		}
 | |
| 
 | |
| 		if ($limitStart > 0) {
 | |
| 			$limitStartUrl	= '&limitstart='.$limitStart;
 | |
| 		} else {
 | |
| 			$limitStartUrl	= '';
 | |
| 		}
 | |
| 
 | |
| 		$app->enqueueMessage( $msg);
 | |
| 		$this->setRedirect( Route::_('index.php?option=com_phocagallery&view=category&id='.$catidAlias.'&tab='.$tab.'&Itemid='. $Itemid . $limitStartUrl, false) );
 | |
| 	}
 | |
| 
 | |
| 	function comment() {
 | |
| 
 | |
| 		Session::checkToken() or jexit( 'Invalid Token' );
 | |
| 		phocagalleryimport('phocagallery.comment.comment');
 | |
| 		phocagalleryimport('phocagallery.comment.commentcategory');
 | |
| 		$app	= Factory::getApplication();
 | |
| 		$user 			= Factory::getUser();
 | |
| 
 | |
| 
 | |
| 		$catid 		= $this->input->get('catid', '', 'string');
 | |
| 		$post['title']	= $this->input->get('phocagallerycommentstitle', '', 'string' );
 | |
| 		$post['comment']= $this->input->get('phocagallerycommentseditor', '', 'string');
 | |
| 		$view		= $this->input->get('view', '', 'string');
 | |
| 		$return 	= $this->input->get('return-url', null, 'base64');
 | |
| 		$format 	= $this->input->get('format', 'html', 'cmd');
 | |
| 		$viewBack 	= $this->input->get('viewback', '', 'string');
 | |
| 		$tab 		= $this->input->get('tab', 0, 'int');
 | |
| 
 | |
| 		$rating		= $this->input->get('rating', '', 'string');
 | |
| 		$Itemid		= $this->input->get('Itemid', 0, 'int');
 | |
| 
 | |
| 		$limitStart	= $this->input->get('limitstart', 0, 'int');
 | |
| 
 | |
| 		$neededAccessLevels	= PhocaGalleryAccess::getNeededAccessLevels();
 | |
| 		$access				= PhocaGalleryAccess::isAccess($user->getAuthorisedViewLevels(), $neededAccessLevels);
 | |
| 
 | |
| 		$paramsC 		= ComponentHelper::getParams('com_phocagallery') ;
 | |
| 		$maxCommentChar	= $paramsC->get( 'max_comment_char', 1000 );
 | |
| 		// Maximum of character, they will be saved in database
 | |
| 		$post['comment']	= substr($post['comment'], 0, (int)$maxCommentChar);
 | |
| 
 | |
| 		// 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['catid'] 	= (int)$catid;
 | |
| 		$post['userid']	= $user->id;
 | |
| 
 | |
| 		$catidAlias 	= $catid; //Itemid
 | |
| 		if ($view != 'category') {
 | |
| 			$this->setRedirect( Route::_('index.php?option=com_phocagallery', false) );
 | |
| 		}
 | |
| 
 | |
| 		$model = $this->getModel('category');
 | |
| 
 | |
| 		$checkUserComment	= PhocaGalleryCommentCategory::checkUserComment( $post['catid'], $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('onCommentCategory', array($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;
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		// Limit Start
 | |
| 		$countItem = $model->getCountItem((int)$catid);
 | |
| 		if ($countItem) {
 | |
| 			if ((int)$countItem[0] == $limitStart) {
 | |
| 				$limitStart = 0;
 | |
| 			}
 | |
| 		} else {
 | |
| 			$limitStart = 0;
 | |
| 		}
 | |
| 
 | |
| 		if ($limitStart > 0) {
 | |
| 			$limitStartUrl	= '&limitstart='.$limitStart;
 | |
| 		} else {
 | |
| 			$limitStartUrl	= '';
 | |
| 		}
 | |
| 
 | |
| 		$app->enqueueMessage( $msg);
 | |
| 		$this->setRedirect( Route::_('index.php?option=com_phocagallery&view=category&id='.$catidAlias.'&tab='.$tab.'&Itemid='. $Itemid . $limitStartUrl, false) );
 | |
| 	}
 | |
| 
 | |
| 	function createsubcategory() {
 | |
| 
 | |
| 		Session::checkToken() or jexit( 'Invalid Token' );
 | |
| 		$task 						= $this->input->get( 'task', '', 'string');
 | |
| 		$post['title']				= $this->input->get( 'subcategoryname', '', 'string' );
 | |
| 		$post['description']		= $this->input->get( 'phocagallerycreatesubcatdescription', '', 'string' );
 | |
| 		$post['parent_id']			= $this->input->get('parentcategoryid',0, 'int' );
 | |
| 
 | |
| 
 | |
| 		$task		= $this->input->get('task', '', 'string');
 | |
| 		$post['title']	= $this->input->get('subcategoryname', '' , 'string');
 | |
| 		$post['description']= $this->input->get('phocagallerycreatesubcatdescription', '', 'string');
 | |
| 		$post['parent_id']= $this->input->get('parentcategoryid', 0, 'int');
 | |
| 		$catid		= $this->input->get('catid', '', 'string');
 | |
| 		$tab		= $this->input->get('tab', 0, 'int');
 | |
| 		$Itemid		= $this->input->get('Itemid', 0, 'int');
 | |
| 
 | |
| 		$limitStart	= $this->input->get('limitstart', 0, 'int');
 | |
| 		$catid 		= (int)$catid;
 | |
| 
 | |
| 
 | |
| 		$paramsC 					= ComponentHelper::getParams('com_phocagallery') ;
 | |
| 		$maxCreateCatChar			= $paramsC->get( 'max_create_cat_char', 1000 );
 | |
| 		$enableUserSubCatApprove	= $paramsC->get( 'enable_usersubcat_approve', 0 );
 | |
| 		$enableDirectSubCat     	= $paramsC->get( 'enable_direct_subcat', 0 );
 | |
| 		$default_access 			= $paramsC->get( 'default_access', 1 );
 | |
| 		$default_accessuserid 		= $paramsC->get( 'default_accessuserid', '' );
 | |
| 		if (!empty($default_accessuserid)) {
 | |
| 			$default_accessuserid 		= implode(',', $default_accessuserid);
 | |
| 		}
 | |
| 
 | |
| 		$post['description']		= substr($post['description'], 0, (int)$maxCreateCatChar);
 | |
| 		$post['alias'] 				= $post['title'];//PhocaGalleryText::getAliasName($post['title']);
 | |
| 		$post['aliasfolder'] 		= PhocaGalleryText::getAliasName($post['title']);
 | |
| 
 | |
| 		$model 						= $this->getModel('user');
 | |
| 		$userSubCatCount			= $paramsC->get( 'user_subcat_count', 5 );
 | |
| 		$user 						= Factory::getUser();
 | |
| 		$post['approved']			= 0;
 | |
| 		$id                         = $catid;
 | |
| 
 | |
| 
 | |
| 		if ($enableUserSubCatApprove == 0) {
 | |
| 			$post['approved']	= 1;
 | |
| 		}
 | |
| 		if ($limitStart > 0) {
 | |
| 			$limitStartUrl	= '&limitstart='.$limitStart;
 | |
| 		} else {
 | |
| 			$limitStartUrl	= '';
 | |
| 		}
 | |
| 
 | |
| 		// Lang
 | |
| 		$userLang			= PhocaGalleryUser::getUserLang();
 | |
| 		$post['language']	= $userLang['lang'];
 | |
| 
 | |
| 		$neededAccessLevels	= PhocaGalleryAccess::getNeededAccessLevels();
 | |
| 		$access				= PhocaGalleryAccess::isAccess($user->getAuthorisedViewLevels(), $neededAccessLevels);
 | |
| 
 | |
| 		$app	= Factory::getApplication();
 | |
| 		// USER IS NOT LOGGED
 | |
| 		if (!$access) {
 | |
| 			$app->enqueueMessage($this->_loginstr);
 | |
| 			$app->redirect($this->_loginurl);
 | |
| 			exit;
 | |
| 		}
 | |
| 
 | |
| 
 | |
| 
 | |
| 		if ($enableDirectSubCat != 1) {
 | |
| 			$msg = Text::_( 'COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION' );
 | |
| 			$app->enqueueMessage($msg);
 | |
| 			$this->setRedirect( Route::_('index.php?option=com_phocagallery&view=category&id='.$id.'&tab='.$tab.'&Itemid='. $Itemid . $limitStartUrl, false));
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		if ((int)$post['parent_id'] < 1) {
 | |
| 			$msg = Text::_( 'COM_PHOCAGALLERY_PARENT_CATEGORY_NOT_SELECTED' );
 | |
| 			$app->enqueueMessage($msg);
 | |
| 			$this->setRedirect( Route::_('index.php?option=com_phocagallery&view=category&id='.$id.'&tab='.$tab.'&Itemid='. $Itemid . $limitStartUrl, false));
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		// $isOwnerCategory 			= $model->isOwnerCategory($this->_user->id, (int)$post['parent_id']);
 | |
| 		// $limitStartUrl 				= $this->getLimitStartUrl(0, 'subcat', (int)$isOwnerCategory );
 | |
| 		// if(!$isOwnerCategory) {
 | |
| 			// $msg = JText::_( 'COM_PHOCAGALLERY_PARENT_CATEGORY_NOT_ASSIGNED_TO_USER' );
 | |
| 			// $app->redirect(JRoute::_($this->_url. $limitStartUrl->subcat . $limitStartUrl->image, false), $msg);
 | |
| 			// exit;
 | |
| 		// }
 | |
| 
 | |
| 		$subCatCount = $model->getCountUserSubCat($user->id);
 | |
| 		$subCatCount = (int)$subCatCount + 1;
 | |
| 		if ((int)$subCatCount > (int)$userSubCatCount) {
 | |
| 			$msg = Text::_( 'COM_PHOCAGALLERY_MAX_SUBCAT_COUNT_REACHED' );
 | |
| 			$app->enqueueMessage($msg);
 | |
| 			$this->setRedirect( Route::_('index.php?option=com_phocagallery&view=category&id='.$id.'&tab='.$tab.'&Itemid='. $Itemid . $limitStartUrl, false) );
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		$ownerMainCategory	= $model->getOwnerMainCategory($user->id);
 | |
| 
 | |
| 
 | |
| 		if (!$ownerMainCategory) {
 | |
| 			// - - - - -
 | |
| 			// NEW
 | |
| 			// - - - - -
 | |
| 			$msg = '';
 | |
| 			// Create an user folder on the server
 | |
| 			$userFolder	= PhocaGalleryText::getAliasName($user->username) .'-'.substr($post['aliasfolder'], 0, 10) .'-'. substr(md5(uniqid(time())), 0, 4);
 | |
| 			$errorMsg	= '';
 | |
| 			$createdFolder = PhocaGalleryFileFolder::createFolder($userFolder, $errorMsg);
 | |
| 			if ($errorMsg != '') {
 | |
| 				$msg = Text::_('COM_PHOCAGALLERY_ERROR_FOLDER_CREATING'). ': ' . Text::_($errorMsg);
 | |
| 				$app->enqueueMessage($msg);
 | |
| 				$this->setRedirect( Route::_('index.php?option=com_phocagallery&view=category&id='.$id.'&tab='.$tab.'&Itemid='. $Itemid . $limitStartUrl, false));
 | |
| 				return false;
 | |
| 			}
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			$userFolder	= $ownerMainCategory->userfolder;
 | |
| 		}
 | |
| 
 | |
| 		if ($post['title'] != '') {
 | |
| 
 | |
| 			$post['access'] 		= (int)$default_access;
 | |
| 			$post['accessuserid']	= $default_accessuserid;
 | |
| 			//$post['access'] 		= 0;
 | |
| 			$post['image_position']	= 'left';
 | |
| 			$post['published']		= 1;
 | |
| 			//$post['accessuserid']	= '-1';
 | |
| 			$post['uploaduserid']	= $user->id;
 | |
| 			$post['deleteuserid']	= $user->id;
 | |
| 			$post['userfolder']		= $userFolder;
 | |
| 			$post['owner_id']		= $user->id;
 | |
| 
 | |
| 
 | |
| 			$id						= $model->store($post);
 | |
| 			if ($id && $id > 0) {
 | |
| 				$msg = Text::_( 'COM_PHOCAGALLERY_SUCCESS_CREATING_CATEGORY' );
 | |
| 			} else {
 | |
| 				$msg = Text::_( 'COM_PHOCAGALLERY_ERROR_CREATING_CATEGORY' );
 | |
| 			}
 | |
| 		} else {
 | |
| 			$msg = Text::_( 'COM_PHOCAGALLERY_ERROR_TITLE' );
 | |
| 		}
 | |
| 		$app->enqueueMessage($msg);
 | |
| 
 | |
| 
 | |
| 		$this->setRedirect( Route::_('index.php?option=com_phocagallery&view=category&id='.$id.'&Itemid='. $Itemid . $limitStartUrl, false) );
 | |
| 		return;
 | |
| 	}
 | |
| }
 | |
| ?>
 |