[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/plugins/quickicon/privacycheck/ -> privacycheck.php (source)

   1  <?php
   2  
   3  /**
   4   * @package     Joomla.Plugin
   5   * @subpackage  Quickicon.privacycheck
   6   *
   7   * @copyright   (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
   8   * @license     GNU General Public License version 2 or later; see LICENSE.txt
   9  
  10   * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
  11   */
  12  
  13  use Joomla\CMS\Component\ComponentHelper;
  14  use Joomla\CMS\Language\Text;
  15  use Joomla\CMS\Plugin\CMSPlugin;
  16  use Joomla\CMS\Session\Session;
  17  use Joomla\CMS\Uri\Uri;
  18  
  19  // phpcs:disable PSR1.Files.SideEffects
  20  \defined('_JEXEC') or die;
  21  // phpcs:enable PSR1.Files.SideEffects
  22  
  23  /**
  24   * Plugin to check privacy requests older than 14 days
  25   *
  26   * @since  3.9.0
  27   */
  28  class PlgQuickiconPrivacyCheck extends CMSPlugin
  29  {
  30      /**
  31       * Load plugin language files automatically
  32       *
  33       * @var    boolean
  34       * @since  3.9.0
  35       */
  36      protected $autoloadLanguage = true;
  37  
  38      /**
  39       * Application object.
  40       *
  41       * @var    \Joomla\CMS\Application\CMSApplication
  42       * @since  4.0.0
  43       */
  44      protected $app;
  45  
  46      /**
  47       * Check privacy requests older than 14 days.
  48       *
  49       * @param   string  $context  The calling context
  50       *
  51       * @return  array   A list of icon definition associative arrays
  52       *
  53       * @since   3.9.0
  54       */
  55      public function onGetIcons($context)
  56      {
  57          if (
  58              $context !== $this->params->get('context', 'update_quickicon')
  59              || !$this->app->getIdentity()->authorise('core.admin', 'com_privacy')
  60              || !ComponentHelper::isEnabled('com_privacy')
  61          ) {
  62              return array();
  63          }
  64  
  65          $token    = Session::getFormToken() . '=' . 1;
  66          $privacy  = 'index.php?option=com_privacy';
  67  
  68          $options  = array(
  69              'plg_quickicon_privacycheck_url'      => Uri::base() . $privacy . '&view=requests&filter[status]=1&list[fullordering]=a.requested_at ASC',
  70              'plg_quickicon_privacycheck_ajax_url' => Uri::base() . $privacy . '&task=getNumberUrgentRequests&format=json&' . $token,
  71              'plg_quickicon_privacycheck_text'     => array(
  72                  "NOREQUEST"            => Text::_('PLG_QUICKICON_PRIVACYCHECK_NOREQUEST'),
  73                  "REQUESTFOUND"         => Text::_('PLG_QUICKICON_PRIVACYCHECK_REQUESTFOUND'),
  74                  "ERROR"                => Text::_('PLG_QUICKICON_PRIVACYCHECK_ERROR'),
  75                  "REQUESTFOUND_MESSAGE" => Text::_('PLG_QUICKICON_PRIVACYCHECK_REQUESTFOUND_MESSAGE'),
  76                  "REQUESTFOUND_BUTTON"  => Text::_('PLG_QUICKICON_PRIVACYCHECK_REQUESTFOUND_BUTTON'),
  77              ),
  78          );
  79  
  80          $this->app->getDocument()->addScriptOptions('js-privacy-check', $options);
  81  
  82          $this->app->getDocument()->getWebAssetManager()
  83              ->registerAndUseScript('plg_quickicon_privacycheck', 'plg_quickicon_privacycheck/privacycheck.js', [], ['defer' => true], ['core']);
  84  
  85          return array(
  86              array(
  87                  'link'  => $privacy . '&view=requests&filter[status]=1&list[fullordering]=a.requested_at ASC',
  88                  'image' => 'icon-users',
  89                  'icon'  => '',
  90                  'text'  => Text::_('PLG_QUICKICON_PRIVACYCHECK_CHECKING'),
  91                  'id'    => 'plg_quickicon_privacycheck',
  92                  'group' => 'MOD_QUICKICON_USERS',
  93              ),
  94          );
  95      }
  96  }


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