Server : LiteSpeed System : Linux server 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64 User : alsaif ( 1057) PHP Version : 7.4.33 Disable Function : show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/alsaif/public_html/administrator/components/com_installer/controllers/ |
<?php
/**
* @package Joomla.Administrator
* @subpackage com_installer
*
* @copyright (C) 2014 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
use Joomla\Utilities\ArrayHelper;
/**
* Installer Update Sites Controller
*
* @package Joomla.Administrator
* @subpackage com_installer
* @since 3.4
*/
class InstallerControllerUpdatesites extends JControllerLegacy
{
/**
* Constructor.
*
* @param array $config An optional associative array of configuration settings.
*
* @see JController
* @since 3.4
*/
public function __construct($config = array())
{
parent::__construct($config);
$this->registerTask('unpublish', 'publish');
$this->registerTask('publish', 'publish');
$this->registerTask('delete', 'delete');
$this->registerTask('rebuild', 'rebuild');
}
/**
* Enable/Disable an extension (if supported).
*
* @return void
*
* @since 3.4
*
* @throws Exception on error
*/
public function publish()
{
// Check for request forgeries.
$this->checkToken();
$ids = (array) $this->input->get('cid', array(), 'int');
$values = array('publish' => 1, 'unpublish' => 0);
$task = $this->getTask();
$value = ArrayHelper::getValue($values, $task, 0, 'int');
// Remove zero values resulting from input filter
$ids = array_filter($ids);
if (empty($ids))
{
throw new Exception(JText::_('COM_INSTALLER_ERROR_NO_UPDATESITES_SELECTED'), 500);
}
// Get the model.
$model = $this->getModel('Updatesites');
// Change the state of the records.
if (!$model->publish($ids, $value))
{
throw new Exception(implode('<br />', $model->getErrors()), 500);
}
$ntext = ($value == 0) ? 'COM_INSTALLER_N_UPDATESITES_UNPUBLISHED' : 'COM_INSTALLER_N_UPDATESITES_PUBLISHED';
$this->setMessage(JText::plural($ntext, count($ids)));
$this->setRedirect(JRoute::_('index.php?option=com_installer&view=updatesites', false));
}
/**
* Deletes an update site (if supported).
*
* @return void
*
* @since 3.6
*
* @throws Exception on error
*/
public function delete()
{
// Check for request forgeries.
$this->checkToken();
$ids = (array) $this->input->get('cid', array(), 'int');
// Remove zero values resulting from input filter
$ids = array_filter($ids);
if (empty($ids))
{
throw new Exception(JText::_('COM_INSTALLER_ERROR_NO_UPDATESITES_SELECTED'), 500);
}
// Delete the records.
$this->getModel('Updatesites')->delete($ids);
$this->setRedirect(JRoute::_('index.php?option=com_installer&view=updatesites', false));
}
/**
* Rebuild update sites tables.
*
* @return void
*
* @since 3.6
*/
public function rebuild()
{
// Check for request forgeries.
$this->checkToken();
// Rebuild the update sites.
$this->getModel('Updatesites')->rebuild();
$this->setRedirect(JRoute::_('index.php?option=com_installer&view=updatesites', false));
}
}