[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/administrator/components/com_installer/src/Controller/ -> DiscoverController.php (source)

   1  <?php
   2  
   3  /**
   4   * @package     Joomla.Administrator
   5   * @subpackage  com_installer
   6   *
   7   * @copyright   (C) 2009 Open Source Matters, Inc. <https://www.joomla.org>
   8   * @license     GNU General Public License version 2 or later; see LICENSE.txt
   9   */
  10  
  11  namespace Joomla\Component\Installer\Administrator\Controller;
  12  
  13  use Joomla\CMS\Language\Text;
  14  use Joomla\CMS\MVC\Controller\BaseController;
  15  use Joomla\CMS\Response\JsonResponse;
  16  use Joomla\CMS\Router\Route;
  17  
  18  // phpcs:disable PSR1.Files.SideEffects
  19  \defined('_JEXEC') or die;
  20  // phpcs:enable PSR1.Files.SideEffects
  21  
  22  /**
  23   * Discover Installation Controller
  24   *
  25   * @since  1.6
  26   */
  27  class DiscoverController extends BaseController
  28  {
  29      /**
  30       * Refreshes the cache of discovered extensions.
  31       *
  32       * @return  void
  33       *
  34       * @since   1.6
  35       */
  36      public function refresh()
  37      {
  38          $this->checkToken('request');
  39  
  40          /** @var \Joomla\Component\Installer\Administrator\Model\DiscoverModel $model */
  41          $model = $this->getModel('discover');
  42          $model->discover();
  43  
  44          if (!$model->getTotal()) {
  45              $this->setMessage(Text::_('COM_INSTALLER_ERROR_NO_EXTENSIONS_DISCOVERED'), 'info');
  46          }
  47  
  48          $this->setRedirect(Route::_('index.php?option=com_installer&view=discover', false));
  49      }
  50  
  51      /**
  52       * Install a discovered extension.
  53       *
  54       * @return  void
  55       *
  56       * @since   1.6
  57       */
  58      public function install()
  59      {
  60          $this->checkToken();
  61  
  62          /** @var \Joomla\Component\Installer\Administrator\Model\DiscoverModel $model */
  63          $model = $this->getModel('discover');
  64          $model->discover_install();
  65          $this->setRedirect(Route::_('index.php?option=com_installer&view=discover', false));
  66      }
  67  
  68      /**
  69       * Clean out the discovered extension cache.
  70       *
  71       * @return  void
  72       *
  73       * @since   1.6
  74       */
  75      public function purge()
  76      {
  77          $this->checkToken('request');
  78  
  79          /** @var \Joomla\Component\Installer\Administrator\Model\DiscoverModel $model */
  80          $model = $this->getModel('discover');
  81          $model->purge();
  82          $this->setRedirect(Route::_('index.php?option=com_installer&view=discover', false), $model->_message);
  83      }
  84  
  85      /**
  86       * Provide the data for a badge in a menu item via JSON
  87       *
  88       * @return  void
  89       *
  90       * @since   4.0.0
  91       */
  92      public function getMenuBadgeData()
  93      {
  94          if (!$this->app->getIdentity()->authorise('core.manage', 'com_installer')) {
  95              throw new \Exception(Text::_('JGLOBAL_AUTH_ACCESS_DENIED'));
  96          }
  97  
  98          $model = $this->getModel('Discover');
  99  
 100          echo new JsonResponse($model->getTotal());
 101      }
 102  }


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer