__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ 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 23.12.10783 * * @author Peter van Westen <[email protected]> * @link https://regularlabs.com * @copyright Copyright © 2023 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ namespace RegularLabs\Library\Form\Field; use InvalidArgumentException; use Joomla\CMS\Form\Field\SubformField as JSubformField; use Joomla\CMS\Form\Form; use RuntimeException; use function count; defined('_JEXEC') or die; class SubformField extends JSubformField { /** * @var string */ protected $layout = 'regularlabs.form.field.subform.repeatable'; /** * @param string $name The property name for which to set the value. * @param mixed $value The value of the property. */ public function __set($name, $value) { switch ($name) { case 'layout': $this->layout = (string) $value; if ( ! $this->layout) { $this->layout = ! $this->multiple ? 'joomla.form.field.subform.default' : 'regularlabs.form.field.subform.repeatable'; } break; default: parent::__set($name, $value); } } /** * Loads the form instance for the subform. * * @return Form The form instance. * * @throws InvalidArgumentException if no form provided. * @throws RuntimeException if the form could not be loaded. */ public function loadSubForm() { $control = $this->name; if ($this->multiple) { $control .= '[' . $this->fieldname . 'X]'; } // Prepare the form template $formname = 'subform.' . str_replace(['jform[', '[', ']'], ['', '.', ''], $this->name); return $this->loadSubFormByName($formname, $control); } protected function getLayoutPaths() { $paths = parent::getLayoutPaths(); $paths[] = JPATH_LIBRARIES . '/regularlabs/layouts'; return $paths; } /** * Loads the form instance for the subform by given name and control. * * @param string $name The name of the form. * @param string $control The control name of the form. * * @return Form The form instance. * * @throws InvalidArgumentException if no form provided. * @throws RuntimeException if the form could not be loaded. */ protected function loadSubFormByName($name, $control) { // Prepare the form template return Form::getInstance($name, $this->formsource, ['control' => $control]); } /** * Binds given data to the subform and its elements. * * @param Form $subForm Form instance of the subform. * * @return Form[] Array of Form instances for the rows. */ protected function loadSubFormData(Form $subForm) { $value = $this->value ? (array) $this->value : []; // Simple form, just bind the data and return one row. if ( ! $this->multiple) { $subForm->bind($value); return [$subForm]; } // Multiple rows possible: Construct array and bind values to their respective forms. $forms = []; $value = array_values($value); // Show as many rows as we have values, but at least min and at most max. $c = max($this->min, min(count($value), $this->max)); for ($i = 0; $i < $c; $i++) { $control = $this->name . '[' . $this->fieldname . $i . ']'; $itemForm = $this->loadSubFormByName($subForm->getName() . $i, $control); if ( ! empty($value[$i])) { $itemForm->bind($value[$i]); } $forms[] = $itemForm; } return $forms; } }
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| AccessLevelsField.php | File | 1.4 KB | 0664 |
|
| AgentsField.php | File | 3.55 KB | 0664 |
|
| AjaxField.php | File | 2.87 KB | 0664 |
|
| BlockField.php | File | 1.9 KB | 0664 |
|
| CheckboxesField.php | File | 5.08 KB | 0664 |
|
| ComponentsField.php | File | 5.46 KB | 0664 |
|
| ContentArticlesField.php | File | 2.73 KB | 0664 |
|
| ContentCategoriesField.php | File | 2.13 KB | 0664 |
|
| CustomOptionsField.php | File | 1.39 KB | 0664 |
|
| DependencyField.php | File | 799 B | 0664 |
|
| DependencyFieldHelper.php | File | 1.22 KB | 0664 |
|
| DownloadKeyField.php | File | 1.11 KB | 0664 |
|
| FieldField.php | File | 2.61 KB | 0664 |
|
| GeoField.php | File | 94.25 KB | 0664 |
|
| GeoInformationField.php | File | 1.66 KB | 0664 |
|
| HeaderField.php | File | 4.41 KB | 0664 |
|
| HeaderLibraryField.php | File | 1.74 KB | 0664 |
|
| IconToggleField.php | File | 1.2 KB | 0664 |
|
| IconsField.php | File | 5.89 KB | 0664 |
|
| ImageField.php | File | 1.32 KB | 0664 |
|
| IsInstalledField.php | File | 999 B | 0664 |
|
| JCompatibilityField.php | File | 1.33 KB | 0664 |
|
| LanguagesField.php | File | 1.77 KB | 0664 |
|
| LicenseField.php | File | 842 B | 0664 |
|
| LoadLanguageField.php | File | 1.06 KB | 0664 |
|
| LoadMediaField.php | File | 1.03 KB | 0664 |
|
| MenuItemsField.php | File | 3.86 KB | 0664 |
|
| MiniColorField.php | File | 1.74 KB | 0664 |
|
| NoteField.php | File | 1.6 KB | 0664 |
|
| OnlyProField.php | File | 2.34 KB | 0664 |
|
| RangeField.php | File | 1.66 KB | 0664 |
|
| ShowOnField.php | File | 1.5 KB | 0664 |
|
| SimpleCategoryField.php | File | 2.78 KB | 0664 |
|
| SubformField.php | File | 3.84 KB | 0664 |
|
| TagsField.php | File | 1.73 KB | 0664 |
|
| TemplatesField.php | File | 4.5 KB | 0664 |
|
| TextAreaField.php | File | 1.18 KB | 0664 |
|
| UserGroupsField.php | File | 1.65 KB | 0664 |
|
| UsersField.php | File | 3.03 KB | 0664 |
|
| VersionField.php | File | 1.72 KB | 0664 |
|