[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/modules/mod_users_latest/src/Helper/ -> UsersLatestHelper.php (source)

   1  <?php
   2  
   3  /**
   4   * @package     Joomla.Site
   5   * @subpackage  mod_users_latest
   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\Module\UsersLatest\Site\Helper;
  12  
  13  use Joomla\CMS\Factory;
  14  use Joomla\CMS\Language\Text;
  15  
  16  // phpcs:disable PSR1.Files.SideEffects
  17  \defined('_JEXEC') or die;
  18  // phpcs:enable PSR1.Files.SideEffects
  19  
  20  /**
  21   * Helper for mod_users_latest
  22   *
  23   * @since  1.6
  24   */
  25  class UsersLatestHelper
  26  {
  27      /**
  28       * Get users sorted by activation date
  29       *
  30       * @param   \Joomla\Registry\Registry  $params  module parameters
  31       *
  32       * @return  array  The array of users
  33       *
  34       * @since   1.6
  35       */
  36      public static function getUsers($params)
  37      {
  38          $db    = Factory::getDbo();
  39          $query = $db->getQuery(true)
  40              ->select($db->quoteName(['a.id', 'a.name', 'a.username', 'a.registerDate']))
  41              ->order($db->quoteName('a.registerDate') . ' DESC')
  42              ->from($db->quoteName('#__users', 'a'));
  43          $user = Factory::getUser();
  44  
  45          if (!$user->authorise('core.admin') && $params->get('filter_groups', 0) == 1) {
  46              $groups = $user->getAuthorisedGroups();
  47  
  48              if (empty($groups)) {
  49                  return array();
  50              }
  51  
  52              $query->leftJoin($db->quoteName('#__user_usergroup_map', 'm'), $db->quoteName('m.user_id') . ' = ' . $db->quoteName('a.id'))
  53                  ->leftJoin($db->quoteName('#__usergroups', 'ug'), $db->quoteName('ug.id') . ' = ' . $db->quoteName('m.group_id'))
  54                  ->whereIn($db->quoteName('ug.id'), $groups)
  55                  ->where($db->quoteName('ug.id') . ' <> 1');
  56          }
  57  
  58          $query->setLimit((int) $params->get('shownumber', 5));
  59          $db->setQuery($query);
  60  
  61          try {
  62              return (array) $db->loadObjectList();
  63          } catch (\RuntimeException $e) {
  64              Factory::getApplication()->enqueueMessage(Text::_('JERROR_AN_ERROR_HAS_OCCURRED'), 'error');
  65  
  66              return array();
  67          }
  68      }
  69  }


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