[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/api/components/com_users/src/View/Users/ -> JsonapiView.php (source)

   1  <?php
   2  
   3  /**
   4   * @package     Joomla.API
   5   * @subpackage  com_users
   6   *
   7   * @copyright   (C) 2019 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\Users\Api\View\Users;
  12  
  13  use Joomla\CMS\MVC\View\JsonApiView as BaseApiView;
  14  use Joomla\CMS\Router\Exception\RouteNotFoundException;
  15  use Joomla\Component\Fields\Administrator\Helper\FieldsHelper;
  16  
  17  // phpcs:disable PSR1.Files.SideEffects
  18  \defined('_JEXEC') or die;
  19  // phpcs:enable PSR1.Files.SideEffects
  20  
  21  /**
  22   * The users view
  23   *
  24   * @since  4.0.0
  25   */
  26  class JsonapiView extends BaseApiView
  27  {
  28      /**
  29       * The fields to render item in the documents
  30       *
  31       * @var  array
  32       * @since  4.0.0
  33       */
  34      protected $fieldsToRenderItem = [
  35          'id',
  36          'groups',
  37          'name',
  38          'username',
  39          'email',
  40          'registerDate',
  41          'lastvisitDate',
  42          'lastResetTime',
  43          'resetCount',
  44          'sendEmail',
  45          'block',
  46      ];
  47  
  48      /**
  49       * The fields to render items in the documents
  50       *
  51       * @var  array
  52       * @since  4.0.0
  53       */
  54      protected $fieldsToRenderList = [
  55          'id',
  56          'name',
  57          'username',
  58          'email',
  59          'group_count',
  60          'group_names',
  61          'registerDate',
  62          'lastvisitDate',
  63          'lastResetTime',
  64          'resetCount',
  65          'sendEmail',
  66          'block',
  67      ];
  68  
  69      /**
  70       * Execute and display a template script.
  71       *
  72       * @param   array|null  $items  Array of items
  73       *
  74       * @return  string
  75       *
  76       * @since   4.0.0
  77       */
  78      public function displayList(array $items = null)
  79      {
  80          foreach (FieldsHelper::getFields('com_users.user') as $field) {
  81              $this->fieldsToRenderList[] = $field->name;
  82          }
  83  
  84          return parent::displayList();
  85      }
  86  
  87      /**
  88       * Execute and display a template script.
  89       *
  90       * @param   object  $item  Item
  91       *
  92       * @return  string
  93       *
  94       * @since   4.0.0
  95       */
  96      public function displayItem($item = null)
  97      {
  98          foreach (FieldsHelper::getFields('com_users.user') as $field) {
  99              $this->fieldsToRenderItem[] = $field->name;
 100          }
 101  
 102          return parent::displayItem();
 103      }
 104  
 105      /**
 106       * Prepare item before render.
 107       *
 108       * @param   object  $item  The model item
 109       *
 110       * @return  object
 111       *
 112       * @since   4.0.0
 113       */
 114      protected function prepareItem($item)
 115      {
 116          if (empty($item->username)) {
 117              throw new RouteNotFoundException('Item does not exist');
 118          }
 119  
 120          foreach (FieldsHelper::getFields('com_users.user', $item, true) as $field) {
 121              $item->{$field->name} = $field->apivalue ?? $field->rawvalue;
 122          }
 123  
 124          return parent::prepareItem($item);
 125      }
 126  }


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