__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php /** * @package Regular Labs Library * @version 25.6.10828 * * @author Peter van Westen <[email protected]> * @link https://regularlabs.com * @copyright Copyright © 2025 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\Form\Field\CheckboxesField as JCheckboxesField; use Joomla\CMS\Form\FormHelper; use Joomla\CMS\Language\Text as JText; use SimpleXMLElement; use UnexpectedValueException; use function count; class CheckboxesField extends JCheckboxesField { /** * Name of the layout being used to render the field * * @var string */ protected $layout = 'regularlabs.form.field.checkboxes'; protected function getLayoutPaths() { $paths = parent::getLayoutPaths(); $paths[] = JPATH_LIBRARIES . '/regularlabs/layouts'; return $paths; } protected function getOptions() { $groups = $this->getGroups(); return self::flattenGroups($groups); } private static function flattenGroups(array $groups): array { $options = []; foreach ($groups as $group_name => $group) { if ($group_name !== 0) { $options[] = $group_name; } foreach ($group as $option) { $options[] = $option; } } return $options; } private function getGroups(): array { $fieldname = preg_replace('/[^a-zA-Z0-9_\-]/', '_', $this->fieldname); $groups = []; $label = 0; foreach ($this->element->children() as $element) { switch ($element->getName()) { // The element is an <option /> case 'option': if (!isset($groups[$label])) { $groups[$label] = []; } $groups[$label][] = $this->getOption($element, $fieldname); break; // The element is a <group /> case 'group': // Get the group label. $groupLabel = (string) $element['label']; if ($groupLabel) { $label = JText::_($groupLabel); } // Initialize the group if necessary. if (!isset($groups[$label])) { $groups[$label] = []; } // Iterate through the children and build an array of options. foreach ($element->children() as $option) { // Only add <option /> elements. if ($option->getName() !== 'option') { continue; } $groups[$label][] = $this->getOption($option, $fieldname); } if ($groupLabel) { $label = count($groups); } break; // Unknown element type. default: throw new UnexpectedValueException(sprintf('Unsupported element %s in GroupedlistField', $element->getName()), 500); } } reset($groups); return $groups; } private function getOption(SimpleXMLElement $option, string $fieldname): object { $value = (string) $option['value']; $text = trim((string) $option) != '' ? trim((string) $option) : $value; $disabled = (string) $option['disabled']; $disabled = $disabled === 'true' || $disabled === 'disabled' || $disabled === '1'; $disabled = $disabled || $this->readonly && $value != $this->value; $checked = (string) $option['checked']; $checked = $checked === 'true' || $checked === 'checked' || $checked === '1'; $selected = (string) $option['selected']; $selected = $selected === 'true' || $selected === 'selected' || $selected === '1'; $tmp = ['value' => $value, 'text' => JText::alt($text, $fieldname), 'disable' => $disabled, 'class' => (string) $option['class'], 'selected' => $checked || $selected, 'checked' => $checked || $selected]; // Set some event handler attributes. But really, should be using unobtrusive js. $tmp['onclick'] = (string) $option['onclick']; $tmp['onchange'] = (string) $option['onchange']; if ((string) $option['showon']) { $encodedConditions = json_encode(FormHelper::parseShowOnConditions((string) $option['showon'], $this->formControl, $this->group)); $tmp['optionattr'] = " data-showon='" . $encodedConditions . "'"; } return (object) $tmp; } }
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| AccessLevelsField.php | File | 1.29 KB | 0664 |
|
| AgentsField.php | File | 3.43 KB | 0664 |
|
| AjaxField.php | File | 2.66 KB | 0664 |
|
| BlockField.php | File | 1.75 KB | 0664 |
|
| CheckboxesField.php | File | 4.72 KB | 0664 |
|
| ComponentsField.php | File | 4.86 KB | 0664 |
|
| ContentArticlesField.php | File | 2.6 KB | 0664 |
|
| ContentCategoriesField.php | File | 2.03 KB | 0664 |
|
| CustomOptionsField.php | File | 1.27 KB | 0664 |
|
| DependencyField.php | File | 824 B | 0664 |
|
| DependencyFieldHelper.php | File | 1.17 KB | 0664 |
|
| DownloadKeyField.php | File | 1010 B | 0664 |
|
| FieldField.php | File | 2.57 KB | 0664 |
|
| GeoField.php | File | 64.84 KB | 0664 |
|
| GeoInformationField.php | File | 1.53 KB | 0664 |
|
| HeaderField.php | File | 4.03 KB | 0664 |
|
| HeaderLibraryField.php | File | 1.75 KB | 0664 |
|
| IconToggleField.php | File | 1019 B | 0664 |
|
| IconsField.php | File | 3.7 KB | 0664 |
|
| ImageField.php | File | 1.25 KB | 0664 |
|
| IsInstalledField.php | File | 971 B | 0664 |
|
| JCompatibilityField.php | File | 1.27 KB | 0664 |
|
| LanguagesField.php | File | 1.63 KB | 0664 |
|
| LicenseField.php | File | 829 B | 0664 |
|
| LoadLanguageField.php | File | 1.04 KB | 0664 |
|
| LoadMediaField.php | File | 1.01 KB | 0664 |
|
| MenuItemsField.php | File | 3.54 KB | 0664 |
|
| MiniColorField.php | File | 1.66 KB | 0664 |
|
| NoteField.php | File | 1.54 KB | 0664 |
|
| OnlyProField.php | File | 2.22 KB | 0664 |
|
| RangeField.php | File | 1.58 KB | 0664 |
|
| ShowOnField.php | File | 1.41 KB | 0664 |
|
| SimpleCategoryField.php | File | 2.55 KB | 0664 |
|
| SubformField.php | File | 3.75 KB | 0664 |
|
| TagsField.php | File | 1.55 KB | 0664 |
|
| TemplatesField.php | File | 4.05 KB | 0664 |
|
| TextAreaField.php | File | 1.13 KB | 0664 |
|
| UserGroupsField.php | File | 1.5 KB | 0664 |
|
| UsersField.php | File | 2.69 KB | 0664 |
|
| VersionField.php | File | 1.63 KB | 0664 |
|