JoomGallery 3.3.4, vetted clean from live; no 3.3.4 tag upstream → deployed files. Excluded temp/ update-staging (data). Signed-off-by: LÁZÁR Imre <imre@illusion.hu> Assisted-by: claude-code@claude-opus-4-8
176 lines
5.1 KiB
PHP
176 lines
5.1 KiB
PHP
<?php
|
|
// $HeadURL: https://joomgallery.org/svn/joomgallery/JG-3/JG/trunk/components/com_joomgallery/controller.php $
|
|
// $Id: controller.php 4157 2013-03-30 02:41:56Z chraneco $
|
|
/****************************************************************************************\
|
|
** JoomGallery 3 **
|
|
** By: JoomGallery::ProjectTeam **
|
|
** Copyright (C) 2008 - 2013 JoomGallery::ProjectTeam **
|
|
** Based on: JoomGallery 1.0.0 by JoomGallery::ProjectTeam **
|
|
** Released under GNU GPL Public License **
|
|
** License: http://www.gnu.org/copyleft/gpl.html or have a look **
|
|
** at administrator/components/com_joomgallery/LICENSE.TXT **
|
|
\****************************************************************************************/
|
|
|
|
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
|
|
|
|
jimport('joomla.application.component.controller');
|
|
|
|
/**
|
|
* JoomGallery Component Controller
|
|
*
|
|
* @package JoomGallery
|
|
* @since 1.5.5
|
|
*/
|
|
class JoomGalleryController extends JControllerLegacy
|
|
{
|
|
/**
|
|
* JApplication object
|
|
*
|
|
* @var object
|
|
*/
|
|
protected $_mainframe;
|
|
|
|
/**
|
|
* JoomConfig object
|
|
*
|
|
* @var object
|
|
*/
|
|
protected $_config;
|
|
|
|
/**
|
|
* JoomAmbit object
|
|
*
|
|
* @var object
|
|
*/
|
|
protected $_ambit;
|
|
|
|
/**
|
|
* JUser object, holds the current user data
|
|
*
|
|
* @var object
|
|
*/
|
|
protected $_user;
|
|
|
|
/**
|
|
* JDatabase object
|
|
*
|
|
* @var object
|
|
*/
|
|
protected $_db;
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* @return void
|
|
* @since 1.5.5
|
|
*/
|
|
public function __construct($config = array())
|
|
{
|
|
parent::__construct($config);
|
|
|
|
$this->_ambit = JoomAmbit::getInstance();
|
|
$this->_config = JoomConfig::getInstance();
|
|
|
|
/*$this->_mainframe = JFactory::getApplication('site');
|
|
$this->_user = JFactory::getUser();*/
|
|
}
|
|
|
|
/**
|
|
* Parent display method for all views
|
|
*
|
|
* @param boolean $cachable If true, the view output will be cached
|
|
* @param array $urlparams An array of safe URL parameters and their variable types, for valid values see {@link JFilterInput::clean()}.
|
|
* @return void
|
|
* @since 1.5.5
|
|
*/
|
|
public function display($cachable = false, $urlparams = false)
|
|
{
|
|
// Set a default view if none exists
|
|
if(!$view = JRequest::getCmd('view'))
|
|
{
|
|
JRequest::setVar('view', 'gallery');
|
|
}
|
|
|
|
// Increase hit counter in detail view if image view isn't used
|
|
if($view == 'detail' && $this->_config->get('jg_use_real_paths'))
|
|
{
|
|
$this->getModel('image')->hit(JRequest::getInt('id'));
|
|
}
|
|
|
|
parent::display($cachable, $urlparams);
|
|
|
|
// Possibly delete zips
|
|
if( $view == 'favourites'
|
|
&&
|
|
$this->_config->get('jg_favourites')
|
|
&&
|
|
( $this->_config->get('jg_zipdownload')
|
|
|| $this->_config->get('jg_usefavouritesforpubliczip')
|
|
)
|
|
)
|
|
{
|
|
$this->_db = JFactory::getDBO();
|
|
$query = $this->_db->getQuery(true)
|
|
->select('uid, uuserid, zipname')
|
|
->from(_JOOM_TABLE_USERS)
|
|
->where('zipname != '.$this->_db->q(''))
|
|
->where('time != '.$this->_db->q(''))
|
|
->where('time < NOW()-INTERVAL 60 SECOND');
|
|
$this->_db->setQuery($query);
|
|
$ziprows = $this->_db->loadObjectList();
|
|
if(count($ziprows))
|
|
{
|
|
jimport('joomla.filesystem.file');
|
|
foreach($ziprows as $row)
|
|
{
|
|
if(JFile::exists($row->zipname))
|
|
{
|
|
JFile::delete($row->zipname);
|
|
}
|
|
if($row->uuserid != 0)
|
|
{
|
|
$query->clear()
|
|
->update(_JOOM_TABLE_USERS)
|
|
->set('zipname = '.$this->_db->q(''))
|
|
->set('time = '.$this->_db->q(''))
|
|
->where('uid = '.(int) $row->uid);
|
|
$this->_db->setQuery($query);
|
|
}
|
|
else
|
|
{
|
|
$query->clear()
|
|
->delete(_JOOM_TABLE_USERS)
|
|
->where('uuserid = 0')
|
|
->where('zipname = '.$this->_db->q($row->zipname));
|
|
$this->_db->setQuery($query);
|
|
}
|
|
$this->_db->query();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Redirects to the image view with the download parameter set to 1.
|
|
* The image will be offered as a downloadable file then.
|
|
*
|
|
* @return void
|
|
* @since 1.5.5
|
|
*/
|
|
public function download()
|
|
{
|
|
// Check permissions
|
|
if( !$this->_config->get('jg_download')
|
|
|| (!$this->_config->get('jg_download_unreg') && !JFactory::getUser()->get('id'))
|
|
)
|
|
{
|
|
$this->setRedirect(JRoute::_('index.php?view=gallery', false), JText::_('COM_JOOMGALLERY_COMMON_MSG_NOT_ALLOWED_VIEW_IMAGE'), 'notice');
|
|
|
|
return;
|
|
}
|
|
|
|
$type = $this->_config->get('jg_downloadfile') ? 'orig' : 'img';
|
|
|
|
$this->setRedirect(JRoute::_('index.php?view=image&format=raw&id='.JRequest::getInt('id').'&download=1&type='.$type, false));
|
|
}
|
|
} |