diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ff183ee1..2dfc8a405 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# v5.1.3 + +- Stability update addressing a post-release field issue. #1262 +- Fix a security vulnerability in custom code redirect URL validation. +- Add an alert to the Compiler view when no Components exist. #1263 + # v5.1.2 - Fix the template and layout linker for packages. diff --git a/ComponentbuilderInstallerScript.php b/ComponentbuilderInstallerScript.php index 99eb1c963..11a36e676 100644 --- a/ComponentbuilderInstallerScript.php +++ b/ComponentbuilderInstallerScript.php @@ -3292,7 +3292,7 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface echo '
-

Upgrade to Version 5.1.2 Was Successful! Let us know if anything is not working as expected.

'; +

Upgrade to Version 5.1.3 Was Successful! Let us know if anything is not working as expected.

'; // Add/Update component in the action logs extensions table. $this->setActionLogsExtensions(); diff --git a/README.md b/README.md index 8f2e078b0..3fd7b0847 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This is a professional-grade [Joomla 5.x](https://extensions.joomla.org/extensio JCB generates native Joomla components, plugins, and modules for Joomla 3.x, 4.x, and 5.x - and is already prepared for Joomla 6. Every compiled project is tailored for the specific version without needing backward compatibility plugins. With integrated version-aware compiling, smart boilerplating, and Git-powered project syncing, JCB is much more than a code generator-it's a **full-stack development pipeline for Joomla extensions**. -You can install this component easily. The latest release (**5.1.2**) is available on [Releases](https://git.vdm.dev/joomla/pkg-component-builder/releases) and updated frequently with full source access. +You can install this component easily. The latest release (**5.1.3**) is available on [Releases](https://git.vdm.dev/joomla/pkg-component-builder/releases) and updated frequently with full source access. Upgrades are seamless through Joomla's built-in extension update mechanism. @@ -229,9 +229,9 @@ JCB is developed by developers for developers. Its purpose is to democratize hig * **Company:** [Vast Development Method](https://dev.vdm.io) * **Author:** [Llewellyn van der Merwe](mailto:joomla@vdm.io) * **Component:** [Component Builder](https://git.vdm.dev/joomla/Component-Builder) -* **Created:** 30th April, 2015 · **Last Build:** 15th October, 2025 · **Version:** 5.1.2 +* **Created:** 30th April, 2015 · **Last Build:** 17th October, 2025 · **Version:** 5.1.3 * **License:** GNU General Public License version 2 or later; see LICENSE.txt · **Copyright:** Copyright (C) 2015 Vast Development Method. All rights reserved. -* **Lines:** 1204398 · **Fields:** 2098 · **Files:** 8077 · **Folders:** 753 +* **Lines:** 1205520 · **Fields:** 2098 · **Files:** 8080 · **Folders:** 753 > Generated with [JCB](https://www.joomlacomponentbuilder.com) — The Smartest Way to Build Joomla Extensions. diff --git a/admin/README.txt b/admin/README.txt index 8f2e078b0..3fd7b0847 100644 --- a/admin/README.txt +++ b/admin/README.txt @@ -9,7 +9,7 @@ This is a professional-grade [Joomla 5.x](https://extensions.joomla.org/extensio JCB generates native Joomla components, plugins, and modules for Joomla 3.x, 4.x, and 5.x - and is already prepared for Joomla 6. Every compiled project is tailored for the specific version without needing backward compatibility plugins. With integrated version-aware compiling, smart boilerplating, and Git-powered project syncing, JCB is much more than a code generator-it's a **full-stack development pipeline for Joomla extensions**. -You can install this component easily. The latest release (**5.1.2**) is available on [Releases](https://git.vdm.dev/joomla/pkg-component-builder/releases) and updated frequently with full source access. +You can install this component easily. The latest release (**5.1.3**) is available on [Releases](https://git.vdm.dev/joomla/pkg-component-builder/releases) and updated frequently with full source access. Upgrades are seamless through Joomla's built-in extension update mechanism. @@ -229,9 +229,9 @@ JCB is developed by developers for developers. Its purpose is to democratize hig * **Company:** [Vast Development Method](https://dev.vdm.io) * **Author:** [Llewellyn van der Merwe](mailto:joomla@vdm.io) * **Component:** [Component Builder](https://git.vdm.dev/joomla/Component-Builder) -* **Created:** 30th April, 2015 · **Last Build:** 15th October, 2025 · **Version:** 5.1.2 +* **Created:** 30th April, 2015 · **Last Build:** 17th October, 2025 · **Version:** 5.1.3 * **License:** GNU General Public License version 2 or later; see LICENSE.txt · **Copyright:** Copyright (C) 2015 Vast Development Method. All rights reserved. -* **Lines:** 1204398 · **Fields:** 2098 · **Files:** 8077 · **Folders:** 753 +* **Lines:** 1205520 · **Fields:** 2098 · **Files:** 8080 · **Folders:** 753 > Generated with [JCB](https://www.joomlacomponentbuilder.com) — The Smartest Way to Build Joomla Extensions. diff --git a/admin/assets/css/field.css b/admin/assets/css/field.css index 657d6a5f5..b2b4f51c5 100644 --- a/admin/assets/css/field.css +++ b/admin/assets/css/field.css @@ -12,4 +12,5 @@ .uk-scrollable-box { height: 380px !important; } -.subform-table-sublayout-section .controls { margin-left: 0px; } +.subform-table-sublayout-section .controls { margin-left: 0px; } +.full-column-in-subform { width: 100% !important; } diff --git a/admin/compiler/joomla_4/default_custom_admin_template.php b/admin/compiler/joomla_4/default_custom_admin_template.php index 5601278f7..a257f1357 100644 --- a/admin/compiler/joomla_4/default_custom_admin_template.php +++ b/admin/compiler/joomla_4/default_custom_admin_template.php @@ -16,6 +16,7 @@ defined('_JCB_TEMPLATE') or die; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; +use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\HTML\HTMLHelper as Html; // No direct access to this file diff --git a/admin/compiler/joomla_4/default_site_template.php b/admin/compiler/joomla_4/default_site_template.php index 13daeb11f..0f6ebb5f1 100644 --- a/admin/compiler/joomla_4/default_site_template.php +++ b/admin/compiler/joomla_4/default_site_template.php @@ -15,8 +15,9 @@ defined('_JCB_TEMPLATE') or die; ###BOM### use Joomla\CMS\Language\Text; -use Joomla\CMS\HTML\HTMLHelper as Html; +use Joomla\CMS\Router\Route; use Joomla\CMS\Layout\LayoutHelper; +use Joomla\CMS\HTML\HTMLHelper as Html; // No direct access to this file defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED######SITE_TEMPLATE_CODE_BODY### diff --git a/admin/forms/field.xml b/admin/forms/field.xml index 5ea9f5882..899558128 100644 --- a/admin/forms/field.xml +++ b/admin/forms/field.xml @@ -119,10 +119,10 @@ name="fieldtype" label="COM_COMPONENTBUILDER_FIELD_FIELDTYPE_LABEL" description="COM_COMPONENTBUILDER_FIELD_FIELDTYPE_DESCRIPTION" + class="list_class" layout="joomla.form.field.list-fancy-select" multiple="false" required="true" - button="true" /> diff --git a/admin/forms/fieldtype.xml b/admin/forms/fieldtype.xml index f48e4b063..ca79c34ea 100644 --- a/admin/forms/fieldtype.xml +++ b/admin/forms/fieldtype.xml @@ -158,7 +158,7 @@ type="list" name="indexes" label="COM_COMPONENTBUILDER_FIELDTYPE_INDEXES_LABEL" - class="btn-group" + class="list_class" layout="joomla.form.field.list-fancy-select" multiple="false" filter="INT" @@ -194,7 +194,7 @@ name="datadefault" label="COM_COMPONENTBUILDER_FIELDTYPE_DATADEFAULT_LABEL" description="COM_COMPONENTBUILDER_FIELDTYPE_DATADEFAULT_DESCRIPTION" - class="btn-group" + class="list_class" layout="joomla.form.field.list-fancy-select" multiple="false" default=""> @@ -234,7 +234,7 @@ name="datatype" label="COM_COMPONENTBUILDER_FIELDTYPE_DATATYPE_LABEL" description="COM_COMPONENTBUILDER_FIELDTYPE_DATATYPE_DESCRIPTION" - class="btn-group" + class="list_class" layout="joomla.form.field.list-fancy-select" multiple="false" required="true" @@ -401,7 +401,7 @@ name="datalenght" label="COM_COMPONENTBUILDER_FIELDTYPE_DATALENGHT_LABEL" description="COM_COMPONENTBUILDER_FIELDTYPE_DATALENGHT_DESCRIPTION" - class="btn-group" + class="list_class" layout="joomla.form.field.list-fancy-select" multiple="false" required="true" diff --git a/admin/language/en-GB/en-GB.com_componentbuilder.ini b/admin/language/en-GB/en-GB.com_componentbuilder.ini index f590db7cb..edd02ec2b 100644 --- a/admin/language/en-GB/en-GB.com_componentbuilder.ini +++ b/admin/language/en-GB/en-GB.com_componentbuilder.ini @@ -1274,7 +1274,7 @@ COM_COMPONENTBUILDER_ALL_IS_GOOD_THERE_IS_NO_NOTICE_AT_THIS_TIME="All is good, t COM_COMPONENTBUILDER_ALL_OF_THESE_PACKAGES_ARE_A_FULLY_DEVELOPEDMAPPED_COMPONENTS_FOR_JCB_THEY_CAN_BE_SEEN_AS_DEMO_CONTENT_OR_BASE_IMAGES_FROM_WHICH_TO_START_YOUR_PROJECTBR_ALWAYS_MAKE_SURE_YOU_ARE_ON_THE_LATEST_VERSION_OF_JCB_BEFORE_IMPORTING_ANY_OF_THESE_PACKAGES_SHOULD_ANY_OF_THEM_FAIL_TO_IMPORT_A_S_PLEASE_LET_US_KNOWA="All of these packages are a fully developed/mapped components for JCB. They can be seen as demo content, or base images from which to start your project.
Always make sure you are on the latest version of JCB before importing any of these packages, should any of them fail to import please let us know." COM_COMPONENTBUILDER_ALL_THE_FIELDS_AND_VIEWS_FROM_YOUR_SQL_DUMP_HAS_BEEN_CREATED_AND_LINKED_TO_THIS_COMPONENT="All the fields and views from your sql dump has been created and linked to this component." COM_COMPONENTBUILDER_ALL_THE_LANGUAGES_FOUND_IN_JOOMLA_WERE_SUCCESSFULLY_IMPORTED="All the languages found in Joomla were successfully imported." -COM_COMPONENTBUILDER_ALL_UNSAVED_WORK_ON_THIS_PAGE_WILL_BE_LOST_ARE_YOU_SURE_YOU_WANT_TO_CONTINUE="All unsaved work on this page will be lost, are you sure you want to continue?" +COM_COMPONENTBUILDER_ALL_UNSAVED_WORK_ON_THIS_PAGE_WILL_BE_LOST_ARE_YOU_SURE_YOU_WANT_TO_CONTINUE="All unsaved work on this page will be lost. Are you sure you want to continue?" COM_COMPONENTBUILDER_ALREADY_SELECTED_TRY_ANOTHER="Already selected, try another." COM_COMPONENTBUILDER_ALREADY_TRANSLATED_INTO="Already translated into" COM_COMPONENTBUILDER_ALWAYS_ADD="Always Add" @@ -3627,6 +3627,7 @@ COM_COMPONENTBUILDER_COULD_NOT_INSTALL_EXTENSIONS="Could not install extensions! COM_COMPONENTBUILDER_COULD_NOT_INSTALL_MODULE="Could not install module!" COM_COMPONENTBUILDER_COULD_NOT_INSTALL_PLUGIN="Could not install plugin!" COM_COMPONENTBUILDER_CREATE="Create" +COM_COMPONENTBUILDER_CREATE_A_COMPONENT="Create a Component" COM_COMPONENTBUILDER_CREATE_A_SNIPPET="create a snippet" COM_COMPONENTBUILDER_CREATE_NEW_S="Create new %s" COM_COMPONENTBUILDER_CREATE_S_FOR_THIS_S="Create %s for this %s" @@ -7677,6 +7678,7 @@ COM_COMPONENTBUILDER_NO_ADMIN_VIEWS_FOUND="No Admin Views Found" COM_COMPONENTBUILDER_NO_BRANCHES_SET="No Branches Set" COM_COMPONENTBUILDER_NO_CHANGE_S_ITEM_S_IN_REPO_S_IS_ALREADY_IN_SYNC="NO CHANGE: %s item [%s] in repo (%s) is already in sync." COM_COMPONENTBUILDER_NO_COMPONENTS_FOUND="No Components Found" +COM_COMPONENTBUILDER_NO_COMPONENTS_TO_COMPILE="No Components to Compile" COM_COMPONENTBUILDER_NO_COMPONENT_DETAILS_FOUND_SO_IT_IS_NOT_SAFE_TO_CONTINUE="No component details found, so it is not safe to continue!" COM_COMPONENTBUILDER_NO_DESCRIPTION_FOUND="No description found." COM_COMPONENTBUILDER_NO_FIELDS_WHERE_SELECTED="No fields where selected!" @@ -7697,7 +7699,7 @@ COM_COMPONENTBUILDER_NO_ROWS_WERE_PROCESSED="No rows were processed." COM_COMPONENTBUILDER_NO_SEARCH_VALUES_FOUND_IN_ROWS_FOR_THIS_TARGET_AREA="No search values found in rows for this target area" COM_COMPONENTBUILDER_NO_SELECTION_DETECTED="No selection detected" COM_COMPONENTBUILDER_NO_S_FOUND="No %s Found" -COM_COMPONENTBUILDER_NO_S_HAVE_BEEN_LINKED_TO_THIS_VIEW_SOON_AS_THIS_IS_DONE_IT_WILL_BE_DISPLAYED_HERE="No %s have been linked to this view. Soon as this is done it will be displayed here." +COM_COMPONENTBUILDER_NO_S_HAVE_BEEN_LINKED_TO_THIS_VIEW_AS_SOON_AS_THEY_ARE_THEY_WILL_BE_DISPLAYED_HERE="No %s have been linked to this view. As soon as they are, they will be displayed here." COM_COMPONENTBUILDER_NO_TYPE="No Type" COM_COMPONENTBUILDER_NO_UPLOAD_SELECTED="No upload selected" COM_COMPONENTBUILDER_NO_VALIDATION_RULES_FOUND="No validation rules found." @@ -7822,6 +7824,7 @@ COM_COMPONENTBUILDER_PLANNING="planning" COM_COMPONENTBUILDER_PLEASE_ADD_FILES_TO_S="Please add files to (%s)" COM_COMPONENTBUILDER_PLEASE_ADD_FOLDERS_TO_S="Please add folders to (%s)" COM_COMPONENTBUILDER_PLEASE_CHECK_AGAIN_LATER="Please check again later" +COM_COMPONENTBUILDER_PLEASE_CREATE_ONE_OR_MORE_COMPONENTS_BEFORE_ATTEMPTING_TO_COMPILE="Please create one or more components before attempting to compile." COM_COMPONENTBUILDER_PLEASE_FIRST_MAKE_A_SELECTION_FROM_THE_LIST="Please first make a selection from the list." COM_COMPONENTBUILDER_PLEASE_NOTE_THAT_THIS_PACKAGE_BHAS_NOB_CHECKSUM_VALIDATION="Please note that this package has no checksum validation!" COM_COMPONENTBUILDER_PLEASE_SELECT_A_COMPONENT_THAT_YOU_WOULD_LIKE_TO_COMPILE="Please select a component that you would like to compile." @@ -9225,7 +9228,8 @@ COM_COMPONENTBUILDER_TEMPLATE_VERSION_DESC="A count of the number of times this COM_COMPONENTBUILDER_TEMPLATE_VERSION_LABEL="Version" COM_COMPONENTBUILDER_TEMPLATE_YES="Yes" COM_COMPONENTBUILDER_THANK_YOU_FOR_TESTING_THE_S_RELEASE_YOURE_A_JCB_HERO="Thank you for testing the %s release — you're a JCB hero!" -COM_COMPONENTBUILDER_THERE_HAS_BEEN_AN_ERROR_IF_THIS_CONTINUES_PLEASE_INFORM_YOUR_SYSTEM_ADMINISTRATOR_OF_A_TYPE_ERROR_IN_THE_FIELDS_DISPLAY_REQUEST="There has been an error, if this continues please inform your system administrator of a type error in the fields display request!" +COM_COMPONENTBUILDER_THERE_ARE_CURRENTLY_NO_COMPONENTS_AVAILABLE_FOR_COMPILATION="There are currently no components available for compilation." +COM_COMPONENTBUILDER_THERE_HAS_BEEN_AN_ERROR_IF_THIS_CONTINUES_PLEASE_INFORM_YOUR_SYSTEM_ADMINISTRATOR_OF_A_TYPE_ERROR_IN_THE_FIELDS_DISPLAY_REQUEST="There has been an error. If this continues, please inform your system administrator of a type error in the fields display request!" COM_COMPONENTBUILDER_THERE_HAS_BEEN_AN_ERROR_PLEASE_TRY_AGAIN="There has been an error please try again" COM_COMPONENTBUILDER_THERE_WAS_AN_ERROR="There was an error" COM_COMPONENTBUILDER_THERE_WAS_AN_ERROR_GETTING_THE_PACKAGE_INFO="There was an error getting the package info." diff --git a/admin/sql/install.mysql.utf8.sql b/admin/sql/install.mysql.utf8.sql index 48ed1f74f..94ab3f6bd 100644 --- a/admin/sql/install.mysql.utf8.sql +++ b/admin/sql/install.mysql.utf8.sql @@ -2305,10 +2305,10 @@ INSERT INTO `#__componentbuilder_power` (`id`, `guid`, `system_name`, `name`, `t -- Batch 1 of 1 (13 rows) INSERT INTO `#__componentbuilder_admin_view` (`id`, `add_category_submenu`, `add_css_view`, `add_css_views`, `add_custom_button`, `add_fadein`, `add_javascript_view_file`, `add_javascript_view_footer`, `add_javascript_views_file`, `add_javascript_views_footer`, `add_php_after_cancel`, `add_php_after_delete`, `add_php_after_publish`, `add_php_ajax`, `add_php_allowadd`, `add_php_allowedit`, `add_php_batchcopy`, `add_php_batchmove`, `add_php_before_cancel`, `add_php_before_delete`, `add_php_before_publish`, `add_php_before_save`, `add_php_document`, `add_php_getform`, `add_php_getitem`, `add_php_getitems`, `add_php_getitems_after_all`, `add_php_getlistquery`, `add_php_postsavehook`, `add_php_save`, `add_sql`, `addlinked_views`, `addpermissions`, `addtables`, `addtabs`, `ajax_input`, `alias_builder`, `alias_builder_type`, `css_view`, `css_views`, `custom_button`, `description`, `guid`, `icon`, `icon_add`, `icon_category`, `javascript_view_file`, `javascript_view_footer`, `javascript_views_file`, `javascript_views_footer`, `mysql_table_charset`, `mysql_table_collate`, `mysql_table_engine`, `mysql_table_row_format`, `name_list`, `name_single`, `php_after_cancel`, `php_after_delete`, `php_after_publish`, `php_ajaxmethod`, `php_allowadd`, `php_allowedit`, `php_batchcopy`, `php_batchmove`, `php_before_cancel`, `php_before_delete`, `php_before_publish`, `php_before_save`, `php_controller`, `php_controller_list`, `php_document`, `php_getform`, `php_getitem`, `php_getitems`, `php_getitems_after_all`, `php_getlistquery`, `php_model`, `php_model_list`, `php_postsavehook`, `php_save`, `short_description`, `source`, `sql`, `system_name`, `type`, `params`, `published`, `created`, `modified`, `version`, `hits`, `access`, `ordering`) VALUES (109, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, '{}', '{\"addpermissions0\":{\"action\":\"view.edit\",\"implementation\":3},\"addpermissions1\":{\"action\":\"view.edit.own\",\"implementation\":3},\"addpermissions2\":{\"action\":\"view.edit.state\",\"implementation\":3},\"addpermissions3\":{\"action\":\"view.edit.created_by\",\"implementation\":3},\"addpermissions4\":{\"action\":\"view.edit.created\",\"implementation\":3},\"addpermissions5\":{\"action\":\"view.create\",\"implementation\":3},\"addpermissions6\":{\"action\":\"view.delete\",\"implementation\":3},\"addpermissions7\":{\"action\":\"view.access\",\"implementation\":3}}', '{}', '{\"addtabs0\":{\"name\":\"Details\"},\"addtabs1\":{\"name\":\"Media\"},\"addtabs2\":{\"name\":\"Participants\"},\"addtabs3\":{\"name\":\"More\"}}', '{}', '{\"0\":\"\"}', 1, 'LmNvbnRyb2wtd3JhcHBlci1tb3JlIC5jb250cm9sLWxhYmVsIHsNCiAgICBkaXNwbGF5OiBub25lOyAvLyBqdXN0IGZvciBmdW4gOikNCn0=', '', '{}', '', 'c1053952-8a84-4398-aef1-41726f7c0043', 'images/vdm/icon/look.png', 'images/vdm/icon/look_add.png', '', '', '', '', '', 'utf8mb4', 'utf8mb4_unicode_ci', 'InnoDB', 'DYNAMIC', 'Looks', 'Look', '', '', '', '', '', '', '', '', '', '', '', 'IFtDVVNUT01DT0RFPXNhdmVHVUlEUG93ZXJd', '', '', 'W0NVU1RPTUNPREU9dmRtVXBsb2FkZXJDb25maWcrdmRtLXVpa2l0LXVwbG9hZGVyLGZpbGVfdmRtX3VwbG9hZGVyLGdldEZpbGVUeXBlRGV0YWlscyx1cGxvYWRGaWxlLGRpc3BsYXlGaWxlcyxkZWxldGVGaWxlXQ0KW0NVU1RPTUNPREU9YWRkVWlraXRUaHJlZVRvQWRtaW5WaWV3c10=', 'W0NVU1RPTUNPREU9c2V0R1VJREZvcm1Qb3dlcl0=', '', '', '', '', '', '', '', '', 'The demo view', 0, '', 'Look', 1, '{\"privacy\":{\"activate\":\"1\",\"permissions\":\"1\",\"anonymize\":\"0\",\"anonymize_fields\":[],\"user_link\":\"1\",\"custom_link\":\"$query->where($db->quoteName(\'created_by\') . \' = \' . $db->quote($user->id));\",\"other_user_field\":\"14d5c69e-2f6c-4b63-af2a-2b493ac427c9\"},\"fieldordering\":{\"add_admin_ordering\":\"0\",\"admin_ordering_fields\":{\"admin_ordering_fields0\":{\"field\":\"\",\"direction\":\"asc\"}},\"add_linked_ordering\":\"0\",\"linked_ordering_fields\":{\"linked_ordering_fields0\":{\"field\":\"0\",\"direction\":\"asc\"}}},\"admin_view_headers\":{\"add_admin_view_model\":\"0\",\"admin_view_model\":\"\",\"power_admin_view_model\":[],\"add_admin_view_html\":\"0\",\"admin_view_html\":\"\",\"power_admin_view_html\":[],\"add_admin_view\":\"0\",\"admin_view\":\"\",\"power_admin_view\":[],\"add_admin_view_controller\":\"0\",\"admin_view_controller\":\"\",\"power_admin_view_controller\":[],\"add_admin_views_model\":\"0\",\"admin_views_model\":\"\",\"power_admin_views_model\":[],\"add_admin_views_html\":\"0\",\"admin_views_html\":\"\",\"power_admin_views_html\":[],\"add_admin_views\":\"0\",\"admin_views\":\"\",\"power_admin_views\":[],\"add_admin_views_controller\":\"0\",\"admin_views_controller\":\"\",\"power_admin_views_controller\":[],\"add_site_admin_view_model\":\"0\",\"site_admin_view_model\":\"\",\"power_site_admin_view_model\":[],\"add_site_admin_view_html\":\"0\",\"site_admin_view_html\":\"\",\"power_site_admin_view_html\":[],\"add_site_admin_view\":\"0\",\"site_admin_view\":\"\",\"power_site_admin_view\":[],\"add_import_custom_controller\":\"0\",\"import_custom_controller\":\"\",\"power_import_custom_controller\":[],\"add_import_custom_model\":\"0\",\"import_custom_model\":\"\",\"power_import_custom_model\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, '2016-10-18 11:44:46', '2025-10-14 22:30:24', 43, 0, 1, 110), -(283, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, '{}', '{\"addpermissions0\":{\"action\":\"view.edit\",\"implementation\":3},\"addpermissions1\":{\"action\":\"view.edit.own\",\"implementation\":3},\"addpermissions2\":{\"action\":\"view.edit.state\",\"implementation\":3},\"addpermissions3\":{\"action\":\"view.edit.access\",\"implementation\":3},\"addpermissions4\":{\"action\":\"view.edit.created_by\",\"implementation\":3},\"addpermissions5\":{\"action\":\"view.edit.created\",\"implementation\":3},\"addpermissions6\":{\"action\":\"view.create\",\"implementation\":3},\"addpermissions7\":{\"action\":\"view.delete\",\"implementation\":3},\"addpermissions8\":{\"action\":\"view.access\",\"implementation\":3}}', '{}', '{}', '{\"ajax_input0\":{\"value_name\":\"guid\",\"task_name\":\"getFileTypeDetails\",\"input_default\":\"NULL\",\"input_filter\":\"STRING\",\"method_name\":\"getFileTypeDetails\",\"user_check\":\"1\"},\"ajax_input1\":{\"value_name\":\"target\",\"task_name\":\"getFileTypeDetails\",\"input_default\":\"NULL\",\"input_filter\":\"BASE64\",\"method_name\":\"getFileTypeDetails\",\"user_check\":\"1\"},\"ajax_input2\":{\"value_name\":\"guid\",\"task_name\":\"uploadFile\",\"input_default\":\"NULL\",\"input_filter\":\"STRING\",\"method_name\":\"uploadFile\",\"user_check\":\"1\"},\"ajax_input3\":{\"value_name\":\"entity\",\"task_name\":\"uploadFile\",\"input_default\":\"NULL\",\"input_filter\":\"STRING\",\"method_name\":\"uploadFile\",\"user_check\":\"1\"},\"ajax_input4\":{\"value_name\":\"target\",\"task_name\":\"uploadFile\",\"input_default\":\"NULL\",\"input_filter\":\"BASE64\",\"method_name\":\"uploadFile\",\"user_check\":\"1\"},\"ajax_input5\":{\"value_name\":\"guid\",\"task_name\":\"deleteFile\",\"input_default\":\"NULL\",\"input_filter\":\"STRING\",\"method_name\":\"deleteFile\",\"user_check\":\"1\"},\"ajax_input6\":{\"value_name\":\"entity\",\"task_name\":\"displayFiles\",\"input_default\":\"NULL\",\"input_filter\":\"STRING\",\"method_name\":\"displayFiles\",\"user_check\":\"1\"},\"ajax_input7\":{\"value_name\":\"target\",\"task_name\":\"displayFiles\",\"input_default\":\"NULL\",\"input_filter\":\"BASE64\",\"method_name\":\"displayFiles\",\"user_check\":\"1\"}}', '', 0, '', '', '{}', '', '19a973ea-cdfa-4c79-bbbd-1b8a37286b27', '', '', '', '', '', '', '', 'utf8mb4', 'utf8mb4_unicode_ci', 'InnoDB', 'DYNAMIC', 'File Types', 'File Type', '', '', '', 'CS8qKg0KCSAqIEdldCB0aGUgZmlsZSB0eXBlIGRldGFpbHMsIGlmIGl0IGV4aXN0cy4NCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGd1aWQgICAgVGhlIGZpbGUgdHlwZSBndWlkDQoJICogQHBhcmFtIHN0cmluZyAkdGFyZ2V0ICBUaGUgdGFyZ2V0IGVudGl0eSBuYW1lDQoJICoNCgkgKiBAcmV0dXJuIGFycmF5DQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldEZpbGVUeXBlRGV0YWlscyhzdHJpbmcgJGd1aWQsIHN0cmluZyAkdGFyZ2V0KTogYXJyYXkNCgl7DQoJCWlmIChTdXBlcl9fXzljNTEzYmFmX2IyNzlfNDNmZF9hZTI5X2E1ODVjOGNiYzRmMF9fX1Bvd2VyOjp2YWxpZCgkZ3VpZCkpDQoJCXsNCgkJCXRyeQ0KCQkJew0KCQkJCSR0YXJnZXQgPSBiYXNlNjRfZGVjb2RlKCR0YXJnZXQpOw0KCQkJCSR0eXBlID0gU3VwZXJfX184ODRlY2E3OF8yODFmXzRlYWJfYjk2Ml9kOTdlMzU1YWYxNmRfX19Qb3dlcjo6XygnRmlsZS5UeXBlJyktPmdldCgkZ3VpZCwgJHRhcmdldCk7DQoJCQl9DQoJCQljYXRjaCAoXEV4Y2VwdGlvbiAkZXJyb3IpDQoJCQl7DQoJCQkJcmV0dXJuIFsnZXJyb3InID0+ICRlcnJvci0+Z2V0TWVzc2FnZSgpXTsNCgkJCX0NCg0KCQkJaWYgKCR0eXBlICE9PSBudWxsKQ0KCQkJew0KCQkJCXJldHVybiBbJ2RhdGEnID0+ICR0eXBlXTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiBbJ2Vycm9yJyA9PiBUZXh0OjpfKCdGaWxlIHR5cGUgZGV0YWlscyBjb3VsZCBub3QgYmUgZm91bmQnKV07DQoJfQ0KDQoJLyoqDQoJICogVXBsb2FkIGEgZmlsZSwgb2YgYSBnaXZlbiBmaWxlIHR5cGUgYW5kIGxpbmsgaXQgdG8gYW4gZW50aXR5Lg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkZ3VpZCAgICBUaGUgZmlsZSB0eXBlIGd1aWQNCgkgKiBAcGFyYW0gc3RyaW5nICRlbnRpdHkgIFRoZSBlbnRpdHkgZ3VpZA0KCSAqIEBwYXJhbSBzdHJpbmcgJHRhcmdldCAgVGhlIHRhcmdldCBlbnRpdHkgbmFtZQ0KCSAqDQoJICogQHJldHVybiBhcnJheQ0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB1cGxvYWRGaWxlKHN0cmluZyAkZ3VpZCwgc3RyaW5nICRlbnRpdHksIHN0cmluZyAkdGFyZ2V0KTogYXJyYXkNCgl7DQoJCWlmIChTdXBlcl9fXzljNTEzYmFmX2IyNzlfNDNmZF9hZTI5X2E1ODVjOGNiYzRmMF9fX1Bvd2VyOjp2YWxpZCgkZ3VpZCkNCgkJCSYmIFN1cGVyX19fOWM1MTNiYWZfYjI3OV80M2ZkX2FlMjlfYTU4NWM4Y2JjNGYwX19fUG93ZXI6OnZhbGlkKCRlbnRpdHkpKQ0KCQl7DQoJCQl0cnkNCgkJCXsNCgkJCQkkdGFyZ2V0ID0gYmFzZTY0X2RlY29kZSgkdGFyZ2V0KTsNCgkJCQlTdXBlcl9fXzg4NGVjYTc4XzI4MWZfNGVhYl9iOTYyX2Q5N2UzNTVhZjE2ZF9fX1Bvd2VyOjpfKCdGaWxlLk1hbmFnZXInKS0+dXBsb2FkKCRndWlkLCAkZW50aXR5LCAkdGFyZ2V0KTsNCgkJCX0NCgkJCWNhdGNoIChcRXhjZXB0aW9uICRlcnJvcikNCgkJCXsNCgkJCQlyZXR1cm4gWydlcnJvcicgPT4gJGVycm9yLT5nZXRNZXNzYWdlKCldOw0KCQkJfQ0KDQoJCQlyZXR1cm4gWydzdWNjZXNzJyA9PiBUZXh0OjpfKCdUaGUgZmlsZSB3YXMgc3VjY2Vzc2Z1bGx5IHVwbG9hZGVkJyldOw0KCQl9DQoNCgkJcmV0dXJuIFsnZXJyb3InID0+IFRleHQ6Ol8oJ1RoZSBmaWxlIGZhaWxlZCB0byB1cGxvYWQnKV07DQoJfQ0KDQoJLyoqDQoJICogRGVsZXRlIGEgZmlsZSBvZiBhIGdpdmVuIGVudGl0eS4NCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGd1aWQgICAgVGhlIGZpbGUgZ3VpZA0KCSAqDQoJICogQHJldHVybiBhcnJheQ0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBkZWxldGVGaWxlKHN0cmluZyAkZ3VpZCk6IGFycmF5DQoJew0KCQlpZiAoU3VwZXJfX185YzUxM2JhZl9iMjc5XzQzZmRfYWUyOV9hNTg1YzhjYmM0ZjBfX19Qb3dlcjo6dmFsaWQoJGd1aWQpKQ0KCQl7DQoJCQl0cnkNCgkJCXsNCgkJCQlTdXBlcl9fXzg4NGVjYTc4XzI4MWZfNGVhYl9iOTYyX2Q5N2UzNTVhZjE2ZF9fX1Bvd2VyOjpfKCdGaWxlLk1hbmFnZXInKS0+ZGVsZXRlKCRndWlkKTsNCgkJCX0NCgkJCWNhdGNoIChcRXhjZXB0aW9uICRlcnJvcikNCgkJCXsNCgkJCQlyZXR1cm4gWydlcnJvcicgPT4gJGVycm9yLT5nZXRNZXNzYWdlKCldOw0KCQkJfQ0KDQoJCQlyZXR1cm4gWydzdWNjZXNzJyA9PiBUZXh0OjpfKCdUaGUgZmlsZSB3YXMgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQnKV07DQoJCX0NCg0KCQlyZXR1cm4gWydlcnJvcicgPT4gVGV4dDo6XygnVGhlIGZpbGUgY291bGQgbm90IGJlIGRlbGV0ZWQnKV07DQoJfQ0KDQoJLyoqDQoJICogTG9hZCB0aGUgZGlzcGxheSBvZiB0aGUgZmlsZXMgbGlua2VkIHRoaXMgZW50aXR5Lg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkZW50aXR5ICBUaGUgZW50aXR5IGd1aWQNCgkgKiBAcGFyYW0gc3RyaW5nICR0YXJnZXQgIFRoZSB0YXJnZXQgZW50aXR5IG5hbWUNCgkgKg0KCSAqIEByZXR1cm4gYXJyYXkNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZGlzcGxheUZpbGVzKHN0cmluZyAkZW50aXR5LCBzdHJpbmcgJHRhcmdldCk6IGFycmF5DQoJew0KCQlpZiAoU3VwZXJfX185YzUxM2JhZl9iMjc5XzQzZmRfYWUyOV9hNTg1YzhjYmM0ZjBfX19Qb3dlcjo6dmFsaWQoJGVudGl0eSkpDQoJCXsNCgkJCSRkaXNwbGF5ID0gbnVsbDsNCg0KCQkJdHJ5DQoJCQl7DQoJCQkJJHRhcmdldCA9IGJhc2U2NF9kZWNvZGUoJHRhcmdldCk7DQoJCQkJJGRhdGEgPSBTdXBlcl9fXzg4NGVjYTc4XzI4MWZfNGVhYl9iOTYyX2Q5N2UzNTVhZjE2ZF9fX1Bvd2VyOjpfKCdGaWxlLkRpc3BsYXknKS0+Z2V0KCRlbnRpdHksICR0YXJnZXQpOw0KDQoJCQkJaWYgKCRkYXRhICE9PSBudWxsKQ0KCQkJCXsNCgkJCQkJJGRpc3BsYXlEYXRhID0gIFsnZGF0YScgPT4gJGRhdGEsICdlbnRpdHknID0+ICRlbnRpdHksICd0YXJnZXQnID0+ICR0YXJnZXRdOw0KCQkJCQkkZGlzcGxheSA9IEpvb21sYV9fXzdhYjgyMjcyXzBiM2RfNGJiMV9hZjM1X2U2M2EwOTZjZmUwYl9fX1Bvd2VyOjpyZW5kZXIoJ2RlbW9sb29rZmlsZWRpc3BsYXknLCAkZGlzcGxheURhdGEpOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQlyZXR1cm4gWydkYXRhJyA9PiAnPGI+JyAuIFRleHQ6OnNwcmludGYoJ05vIGZpbGVzIGxpbmtlZCB0byAlcy4nLCAkdGFyZ2V0KSAuICc8L2I+J107DQoJCQkJfQ0KCQkJfQ0KCQkJY2F0Y2ggKFxFeGNlcHRpb24gJGVycm9yKQ0KCQkJew0KCQkJCXJldHVybiBbJ2Vycm9yJyA9PiAkZXJyb3ItPmdldE1lc3NhZ2UoKV07DQoJCQl9DQoNCgkJCWlmICghZW1wdHkoJGRpc3BsYXkpKQ0KCQkJew0KCQkJCXJldHVybiBbJ2RhdGEnID0+ICRkaXNwbGF5XTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiBbJ2Vycm9yJyA9PiBUZXh0OjpfKCdUaGUgZmlsZSBkaXNwbGF5IGNvdWxkIG5vdCBiZSBsb2FkZWQnKV07DQoJfQ==', '', '', '', '', '', '', '', 'W0NVU1RPTUNPREU9c2F2ZUdVSURQb3dlcl0=', '', '', 'Ly8gSm9vbWxhX19fN2FiODIyNzJfMGIzZF80YmIxX2FmMzVfZTYzYTA5NmNmZTBiX19fUG93ZXI6OnJlbmRlcignZGVtb2xvb2tmaWxlZGlzcGxheScsICRkaXNwbGF5RGF0YSk7', 'W0NVU1RPTUNPREU9c2V0R1VJREZvcm1Qb3dlcl0=', '', '', '', '', '', '', '', '', 'File Type', 2, 'LS0NCi0tIER1bXBpbmcgZGF0YSBmb3IgdGFibGUgYCNfX1tbW2NvbXBvbmVudF1dXV9maWxlX3R5cGVgDQotLQ0KDQpJTlNFUlQgSU5UTyBgI19fW1tbY29tcG9uZW50XV1dX2ZpbGVfdHlwZWAgKGBpZGAsIGBjcm9wYCwgYGRvY3VtZW50X2Zvcm1hdHNgLCBgZG93bmxvYWRfYWNjZXNzYCwgYGZpbGVfZm9ybWF0c2AsIGBndWlkYCwgYGltYWdlX2Zvcm1hdHNgLCBgbWVkaWFfZm9ybWF0c2AsIGBuYW1lYCwgYHBhdGhgLCBgdGFyZ2V0YCwgYHR5cGVgLCBgcGFyYW1zYCwgYHB1Ymxpc2hlZGAsIGBjcmVhdGVkYCwgYG1vZGlmaWVkYCwgYHZlcnNpb25gLCBgaGl0c2AsIGBhY2Nlc3NgLCBgb3JkZXJpbmdgLCBgbWV0YWtleWAsIGBtZXRhZGVzY2AsIGBtZXRhZGF0YWAsYHF1YW50aXR5YCkgVkFMVUVTDQooMSwgJycsICd7XCIwXCI6XCJwZGZcIn0nLCAxLCAnJywgJzYwODM0ZTAyLWJkMGItNDBhYS1iMGZlLWE0MGJiYTIyNTU2OCcsICcnLCAnJywgJ0RvY3VtZW50JywgJy9kb2N1bWVudHMnLCAne1wiMFwiOlwibG9va1wifScsIDIsICcnLCAxLCAnMjAxOS0wOS0wMyAyMjozOToyMScsICcyMDE5LTA5LTAzIDIyOjQ0OjIzJywgMSwgJycsIDEsIDEsICcnLCAnJywgJ3tcInJvYm90c1wiOlwiXCIsXCJhdXRob3JcIjpcIlwiLFwicmlnaHRzXCI6XCJcIn0nLCAwKSwNCigyLCAnJywgJ3tcIjBcIjpcIm9kc1wiLFwiMVwiOlwieGxzXCIsXCIyXCI6XCJ4bHN4XCIsXCIzXCI6XCJjc3ZcIixcIjRcIjpcInRzdlwifScsIDEsICcnLCAnY2RiMTk3YjctZjQ3Yy00NTc3LThhOTQtMDMwMGY1NTk5MzZiJywgJycsICcnLCAnSW1wb3J0JywgJy9pbXBvcnRzJywgJ3tcIjBcIjpcImltcG9ydGVyXCJ9JywgMiwgJycsIDEsICcyMDE5LTA5LTAzIDIyOjM5OjIxJywgJzIwMTktMDktMDMgMjI6NDQ6MjMnLCAxLCAnJywgMSwgMSwgJycsICcnLCAne1wicm9ib3RzXCI6XCJcIixcImF1dGhvclwiOlwiXCIsXCJyaWdodHNcIjpcIlwifScsIDApOw==', 'File Types (demo-look)', 1, '{\"privacy\":{\"activate\":\"0\",\"permissions\":\"1\",\"anonymize\":\"0\",\"anonymize_fields\":[],\"user_link\":\"1\",\"custom_link\":\"$query->where($db->quoteName(\'created_by\') . \' = \' . $db->quote($user->id));\",\"other_user_field\":\"019c6ed4-b16f-452c-8db5-288f9c35a171\"},\"fieldordering\":{\"add_admin_ordering\":\"0\",\"admin_ordering_fields\":{\"admin_ordering_fields0\":{\"field\":\"\",\"direction\":\"asc\"}},\"add_linked_ordering\":\"0\",\"linked_ordering_fields\":{\"linked_ordering_fields0\":{\"field\":\"0\",\"direction\":\"asc\"}}},\"admin_view_headers\":{\"add_admin_view_model\":\"0\",\"admin_view_model\":\"\",\"power_admin_view_model\":[],\"add_admin_view_html\":\"0\",\"admin_view_html\":\"\",\"power_admin_view_html\":[],\"add_admin_view\":\"0\",\"admin_view\":\"\",\"power_admin_view\":[],\"add_admin_view_controller\":\"0\",\"admin_view_controller\":\"\",\"power_admin_view_controller\":[],\"add_admin_views_model\":\"0\",\"admin_views_model\":\"\",\"power_admin_views_model\":[],\"add_admin_views_html\":\"0\",\"admin_views_html\":\"\",\"power_admin_views_html\":[],\"add_admin_views\":\"0\",\"admin_views\":\"\",\"power_admin_views\":[],\"add_admin_views_controller\":\"0\",\"admin_views_controller\":\"\",\"power_admin_views_controller\":[],\"add_site_admin_view_model\":\"0\",\"site_admin_view_model\":\"\",\"power_site_admin_view_model\":[],\"add_site_admin_view_html\":\"0\",\"site_admin_view_html\":\"\",\"power_site_admin_view_html\":[],\"add_site_admin_view\":\"0\",\"site_admin_view\":\"\",\"power_site_admin_view\":[],\"add_import_custom_controller\":\"0\",\"import_custom_controller\":\"\",\"power_import_custom_controller\":[],\"add_import_custom_model\":\"0\",\"import_custom_model\":\"\",\"power_import_custom_model\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, '2020-09-08 21:58:20', '2025-10-15 07:37:54', 44, 0, 1, 245), +(283, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, '{}', '{\"addpermissions0\":{\"action\":\"view.edit\",\"implementation\":3},\"addpermissions1\":{\"action\":\"view.edit.own\",\"implementation\":3},\"addpermissions2\":{\"action\":\"view.edit.state\",\"implementation\":3},\"addpermissions3\":{\"action\":\"view.edit.access\",\"implementation\":3},\"addpermissions4\":{\"action\":\"view.edit.created_by\",\"implementation\":3},\"addpermissions5\":{\"action\":\"view.edit.created\",\"implementation\":3},\"addpermissions6\":{\"action\":\"view.create\",\"implementation\":3},\"addpermissions7\":{\"action\":\"view.delete\",\"implementation\":3},\"addpermissions8\":{\"action\":\"view.access\",\"implementation\":3}}', '{}', '{}', '{\"ajax_input0\":{\"value_name\":\"guid\",\"task_name\":\"getFileTypeDetails\",\"input_default\":\"NULL\",\"input_filter\":\"STRING\",\"method_name\":\"getFileTypeDetails\",\"user_check\":\"1\"},\"ajax_input1\":{\"value_name\":\"target\",\"task_name\":\"getFileTypeDetails\",\"input_default\":\"NULL\",\"input_filter\":\"BASE64\",\"method_name\":\"getFileTypeDetails\",\"user_check\":\"1\"},\"ajax_input2\":{\"value_name\":\"guid\",\"task_name\":\"uploadFile\",\"input_default\":\"NULL\",\"input_filter\":\"STRING\",\"method_name\":\"uploadFile\",\"user_check\":\"1\"},\"ajax_input3\":{\"value_name\":\"entity\",\"task_name\":\"uploadFile\",\"input_default\":\"NULL\",\"input_filter\":\"STRING\",\"method_name\":\"uploadFile\",\"user_check\":\"1\"},\"ajax_input4\":{\"value_name\":\"target\",\"task_name\":\"uploadFile\",\"input_default\":\"NULL\",\"input_filter\":\"BASE64\",\"method_name\":\"uploadFile\",\"user_check\":\"1\"},\"ajax_input5\":{\"value_name\":\"guid\",\"task_name\":\"deleteFile\",\"input_default\":\"NULL\",\"input_filter\":\"STRING\",\"method_name\":\"deleteFile\",\"user_check\":\"1\"},\"ajax_input6\":{\"value_name\":\"entity\",\"task_name\":\"displayFiles\",\"input_default\":\"NULL\",\"input_filter\":\"STRING\",\"method_name\":\"displayFiles\",\"user_check\":\"1\"},\"ajax_input7\":{\"value_name\":\"target\",\"task_name\":\"displayFiles\",\"input_default\":\"NULL\",\"input_filter\":\"BASE64\",\"method_name\":\"displayFiles\",\"user_check\":\"1\"}}', '', 0, '', '', '{}', '', '19a973ea-cdfa-4c79-bbbd-1b8a37286b27', '', '', '', '', '', '', '', 'utf8mb4', 'utf8mb4_unicode_ci', 'InnoDB', 'DYNAMIC', 'File Types', 'File Type', '', '', '', 'CS8qKg0KCSAqIEdldCB0aGUgZmlsZSB0eXBlIGRldGFpbHMsIGlmIGl0IGV4aXN0cy4NCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGd1aWQgICAgVGhlIGZpbGUgdHlwZSBndWlkDQoJICogQHBhcmFtIHN0cmluZyAkdGFyZ2V0ICBUaGUgdGFyZ2V0IGVudGl0eSBuYW1lDQoJICoNCgkgKiBAcmV0dXJuIGFycmF5DQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldEZpbGVUeXBlRGV0YWlscyhzdHJpbmcgJGd1aWQsIHN0cmluZyAkdGFyZ2V0KTogYXJyYXkNCgl7DQoJCWlmIChTdXBlcl9fXzljNTEzYmFmX2IyNzlfNDNmZF9hZTI5X2E1ODVjOGNiYzRmMF9fX1Bvd2VyOjp2YWxpZCgkZ3VpZCkpDQoJCXsNCgkJCXRyeQ0KCQkJew0KCQkJCSR0YXJnZXQgPSBiYXNlNjRfZGVjb2RlKCR0YXJnZXQpOw0KCQkJCSR0eXBlID0gU3VwZXJfX184ODRlY2E3OF8yODFmXzRlYWJfYjk2Ml9kOTdlMzU1YWYxNmRfX19Qb3dlcjo6XygnRmlsZS5UeXBlJyktPmdldCgkZ3VpZCwgJHRhcmdldCk7DQoJCQl9DQoJCQljYXRjaCAoXEV4Y2VwdGlvbiAkZXJyb3IpDQoJCQl7DQoJCQkJcmV0dXJuIFsnZXJyb3InID0+ICRlcnJvci0+Z2V0TWVzc2FnZSgpXTsNCgkJCX0NCg0KCQkJaWYgKCR0eXBlICE9PSBudWxsKQ0KCQkJew0KCQkJCXJldHVybiBbJ2RhdGEnID0+ICR0eXBlXTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiBbJ2Vycm9yJyA9PiBUZXh0OjpfKCdGaWxlIHR5cGUgZGV0YWlscyBjb3VsZCBub3QgYmUgZm91bmQnKV07DQoJfQ0KDQoJLyoqDQoJICogVXBsb2FkIGEgZmlsZSwgb2YgYSBnaXZlbiBmaWxlIHR5cGUgYW5kIGxpbmsgaXQgdG8gYW4gZW50aXR5Lg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkZ3VpZCAgICBUaGUgZmlsZSB0eXBlIGd1aWQNCgkgKiBAcGFyYW0gc3RyaW5nICRlbnRpdHkgIFRoZSBlbnRpdHkgZ3VpZA0KCSAqIEBwYXJhbSBzdHJpbmcgJHRhcmdldCAgVGhlIHRhcmdldCBlbnRpdHkgbmFtZQ0KCSAqDQoJICogQHJldHVybiBhcnJheQ0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB1cGxvYWRGaWxlKHN0cmluZyAkZ3VpZCwgc3RyaW5nICRlbnRpdHksIHN0cmluZyAkdGFyZ2V0KTogYXJyYXkNCgl7DQoJCWlmIChTdXBlcl9fXzljNTEzYmFmX2IyNzlfNDNmZF9hZTI5X2E1ODVjOGNiYzRmMF9fX1Bvd2VyOjp2YWxpZCgkZ3VpZCkNCgkJCSYmIFN1cGVyX19fOWM1MTNiYWZfYjI3OV80M2ZkX2FlMjlfYTU4NWM4Y2JjNGYwX19fUG93ZXI6OnZhbGlkKCRlbnRpdHkpKQ0KCQl7DQoJCQl0cnkNCgkJCXsNCgkJCQkkdGFyZ2V0ID0gYmFzZTY0X2RlY29kZSgkdGFyZ2V0KTsNCgkJCQlTdXBlcl9fXzg4NGVjYTc4XzI4MWZfNGVhYl9iOTYyX2Q5N2UzNTVhZjE2ZF9fX1Bvd2VyOjpfKCdGaWxlLk1hbmFnZXInKS0+dXBsb2FkKCRndWlkLCAkZW50aXR5LCAkdGFyZ2V0KTsNCgkJCX0NCgkJCWNhdGNoIChcRXhjZXB0aW9uICRlcnJvcikNCgkJCXsNCgkJCQlyZXR1cm4gWydlcnJvcicgPT4gJGVycm9yLT5nZXRNZXNzYWdlKCldOw0KCQkJfQ0KDQoJCQlyZXR1cm4gWydzdWNjZXNzJyA9PiBUZXh0OjpfKCdUaGUgZmlsZSB3YXMgc3VjY2Vzc2Z1bGx5IHVwbG9hZGVkJyldOw0KCQl9DQoNCgkJcmV0dXJuIFsnZXJyb3InID0+IFRleHQ6Ol8oJ1RoZSBmaWxlIGZhaWxlZCB0byB1cGxvYWQnKV07DQoJfQ0KDQoJLyoqDQoJICogRGVsZXRlIGEgZmlsZSBvZiBhIGdpdmVuIGVudGl0eS4NCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGd1aWQgICAgVGhlIGZpbGUgZ3VpZA0KCSAqDQoJICogQHJldHVybiBhcnJheQ0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBkZWxldGVGaWxlKHN0cmluZyAkZ3VpZCk6IGFycmF5DQoJew0KCQlpZiAoU3VwZXJfX185YzUxM2JhZl9iMjc5XzQzZmRfYWUyOV9hNTg1YzhjYmM0ZjBfX19Qb3dlcjo6dmFsaWQoJGd1aWQpKQ0KCQl7DQoJCQl0cnkNCgkJCXsNCgkJCQlTdXBlcl9fXzg4NGVjYTc4XzI4MWZfNGVhYl9iOTYyX2Q5N2UzNTVhZjE2ZF9fX1Bvd2VyOjpfKCdGaWxlLk1hbmFnZXInKS0+ZGVsZXRlKCRndWlkKTsNCgkJCX0NCgkJCWNhdGNoIChcRXhjZXB0aW9uICRlcnJvcikNCgkJCXsNCgkJCQlyZXR1cm4gWydlcnJvcicgPT4gJGVycm9yLT5nZXRNZXNzYWdlKCldOw0KCQkJfQ0KDQoJCQlyZXR1cm4gWydzdWNjZXNzJyA9PiBUZXh0OjpfKCdUaGUgZmlsZSB3YXMgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQnKV07DQoJCX0NCg0KCQlyZXR1cm4gWydlcnJvcicgPT4gVGV4dDo6XygnVGhlIGZpbGUgY291bGQgbm90IGJlIGRlbGV0ZWQnKV07DQoJfQ0KDQoJLyoqDQoJICogTG9hZCB0aGUgZGlzcGxheSBvZiB0aGUgZmlsZXMgbGlua2VkIHRoaXMgZW50aXR5Lg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkZW50aXR5ICBUaGUgZW50aXR5IGd1aWQNCgkgKiBAcGFyYW0gc3RyaW5nICR0YXJnZXQgIFRoZSB0YXJnZXQgZW50aXR5IG5hbWUNCgkgKg0KCSAqIEByZXR1cm4gYXJyYXkNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZGlzcGxheUZpbGVzKHN0cmluZyAkZW50aXR5LCBzdHJpbmcgJHRhcmdldCk6IGFycmF5DQoJew0KCQlpZiAoU3VwZXJfX185YzUxM2JhZl9iMjc5XzQzZmRfYWUyOV9hNTg1YzhjYmM0ZjBfX19Qb3dlcjo6dmFsaWQoJGVudGl0eSkpDQoJCXsNCgkJCSRkaXNwbGF5ID0gbnVsbDsNCg0KCQkJdHJ5DQoJCQl7DQoJCQkJJHRhcmdldCA9IGJhc2U2NF9kZWNvZGUoJHRhcmdldCk7DQoJCQkJJGRhdGEgPSBTdXBlcl9fXzg4NGVjYTc4XzI4MWZfNGVhYl9iOTYyX2Q5N2UzNTVhZjE2ZF9fX1Bvd2VyOjpfKCdGaWxlLkRpc3BsYXknKS0+Z2V0KCRlbnRpdHksICR0YXJnZXQpOw0KDQoJCQkJaWYgKCRkYXRhICE9PSBudWxsKQ0KCQkJCXsNCgkJCQkJJGRpc3BsYXlEYXRhID0gIFsnZGF0YScgPT4gJGRhdGEsICdlbnRpdHknID0+ICRlbnRpdHksICd0YXJnZXQnID0+ICR0YXJnZXRdOw0KCQkJCQkkZGlzcGxheSA9IEpvb21sYV9fXzdhYjgyMjcyXzBiM2RfNGJiMV9hZjM1X2U2M2EwOTZjZmUwYl9fX1Bvd2VyOjpyZW5kZXIoJ2RlbW9sb29rZmlsZWRpc3BsYXknLCAkZGlzcGxheURhdGEpOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQlyZXR1cm4gWydkYXRhJyA9PiAnPGI+JyAuIFRleHQ6OnNwcmludGYoJ05vIGZpbGVzIGxpbmtlZCB0byAlcy4nLCAkdGFyZ2V0KSAuICc8L2I+J107DQoJCQkJfQ0KCQkJfQ0KCQkJY2F0Y2ggKFxFeGNlcHRpb24gJGVycm9yKQ0KCQkJew0KCQkJCXJldHVybiBbJ2Vycm9yJyA9PiAkZXJyb3ItPmdldE1lc3NhZ2UoKV07DQoJCQl9DQoNCgkJCWlmICghZW1wdHkoJGRpc3BsYXkpKQ0KCQkJew0KCQkJCXJldHVybiBbJ2RhdGEnID0+ICRkaXNwbGF5XTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiBbJ2Vycm9yJyA9PiBUZXh0OjpfKCdUaGUgZmlsZSBkaXNwbGF5IGNvdWxkIG5vdCBiZSBsb2FkZWQnKV07DQoJfQ==', '', '', '', '', '', '', '', 'W0NVU1RPTUNPREU9c2F2ZUdVSURQb3dlcl0=', '', '', 'Ly8gSm9vbWxhX19fN2FiODIyNzJfMGIzZF80YmIxX2FmMzVfZTYzYTA5NmNmZTBiX19fUG93ZXI6OnJlbmRlcignZGVtb2xvb2tmaWxlZGlzcGxheScsICRkaXNwbGF5RGF0YSk7', 'W0NVU1RPTUNPREU9c2V0R1VJREZvcm1Qb3dlcl0=', '', '', '', '', '', '', '', '', 'File Type', 2, 'LS0NCi0tIER1bXBpbmcgZGF0YSBmb3IgdGFibGUgYCNfX1tbW2NvbXBvbmVudF1dXV9maWxlX3R5cGVgDQotLQ0KDQpJTlNFUlQgSU5UTyBgI19fW1tbY29tcG9uZW50XV1dX2ZpbGVfdHlwZWAgKGBpZGAsIGBjcm9wYCwgYGRvY3VtZW50X2Zvcm1hdHNgLCBgZG93bmxvYWRfYWNjZXNzYCwgYGZpbGVfZm9ybWF0c2AsIGBndWlkYCwgYGltYWdlX2Zvcm1hdHNgLCBgbWVkaWFfZm9ybWF0c2AsIGBuYW1lYCwgYHBhdGhgLCBgcXVhbnRpdHlgLCBgdGFyZ2V0YCwgYHR5cGVgLCBgcGFyYW1zYCwgYHB1Ymxpc2hlZGAsIGBjcmVhdGVkYCwgYG1vZGlmaWVkYCwgYHZlcnNpb25gLCBgaGl0c2AsIGBhY2Nlc3NgLCBgb3JkZXJpbmdgLCBgbWV0YWtleWAsIGBtZXRhZGVzY2AsIGBtZXRhZGF0YWApIFZBTFVFUw0KKDEsICcnLCAne1wiMFwiOlwicGRmXCJ9JywgMSwgJycsICc2MDgzNGUwMi1iZDBiLTQwYWEtYjBmZS1hNDBiYmEyMjU1NjgnLCAnJywgJycsICdEb2N1bWVudCcsICcvZG9jdW1lbnRzJywgMCwgJ3tcIjBcIjpcImxvb2tcIn0nLCAyLCAnJywgMSwgJzIwMTktMDktMDMgMjI6Mzk6MjEnLCAnMjAxOS0wOS0wMyAyMjo0NDoyMycsIDEsIDAsIDEsIDEsICcnLCAnJywgJ3tcInJvYm90c1wiOlwiXCIsXCJhdXRob3JcIjpcIlwiLFwicmlnaHRzXCI6XCJcIn0nKSwNCigyLCAnJywgJ3tcIjBcIjpcIm9kc1wiLFwiMVwiOlwieGxzXCIsXCIyXCI6XCJ4bHN4XCIsXCIzXCI6XCJjc3ZcIixcIjRcIjpcInRzdlwifScsIDEsICcnLCAnY2RiMTk3YjctZjQ3Yy00NTc3LThhOTQtMDMwMGY1NTk5MzZiJywgJycsICcnLCAnSW1wb3J0JywgJy9pbXBvcnRzJywgMCwgJ3tcIjBcIjpcImltcG9ydGVyXCJ9JywgMiwgJycsIDEsICcyMDE5LTA5LTAzIDIyOjM5OjIxJywgJzIwMTktMDktMDMgMjI6NDQ6MjMnLCAxLCAwLCAxLCAxLCAnJywgJycsICd7XCJyb2JvdHNcIjpcIlwiLFwiYXV0aG9yXCI6XCJcIixcInJpZ2h0c1wiOlwiXCJ9JyksDQooMywgJ3tcImNyb3AwXCI6e1wibmFtZVwiOlwibWFpbl9fe251bWJlcn1fe3JhbmRvbX0ue2V4dGVuc2lvbn1cIixcImhlaWdodFwiOjEwODAsXCJ3aWR0aFwiOjEwODB9LFwiY3JvcDFcIjp7XCJuYW1lXCI6XCJ0aHVtYl9fe251bWJlcn1fe3JhbmRvbX0ue2V4dGVuc2lvbn1cIixcImhlaWdodFwiOjQwMCxcIndpZHRoXCI6NDAwfSxcImNyb3AyXCI6e1wibmFtZVwiOlwiaWNvbl9fe251bWJlcn1fe3JhbmRvbX0ue2V4dGVuc2lvbn1cIixcImhlaWdodFwiOjUwLFwid2lkdGhcIjo1MH19JywgJycsIDEsICcnLCAnMDMyNjc2MTItYTg4NC00ZGQyLWE4MzEtODZmMmJjMmY5ZTJhJywgJ3tcIjBcIjpcImpwZWdcIixcIjFcIjpcImpwZ1wiLFwiMlwiOlwicG5nXCJ9JywgJycsICdJbWFnZXMnLCAnL2ltYWdlcycsIDEsICd7XCIwXCI6XCJsb29rXCJ9JywgMSwgTlVMTCwgMSwgJzIwMjUtMTAtMTcgMTQ6Mjc6MDMnLCBOVUxMLCAxLCAwLCAxLCAyLCAnJywgJycsICd7XCJyb2JvdHNcIjpcIlwiLFwiYXV0aG9yXCI6XCJcIixcInJpZ2h0c1wiOlwiXCJ9Jyk7', 'File Types (demo-look)', 1, '{\"privacy\":{\"activate\":\"0\",\"permissions\":\"1\",\"anonymize\":\"0\",\"anonymize_fields\":[],\"user_link\":\"1\",\"custom_link\":\"$query->where($db->quoteName(\'created_by\') . \' = \' . $db->quote($user->id));\",\"other_user_field\":\"019c6ed4-b16f-452c-8db5-288f9c35a171\"},\"fieldordering\":{\"add_admin_ordering\":\"0\",\"admin_ordering_fields\":{\"admin_ordering_fields0\":{\"field\":\"\",\"direction\":\"asc\"}},\"add_linked_ordering\":\"0\",\"linked_ordering_fields\":{\"linked_ordering_fields0\":{\"field\":\"0\",\"direction\":\"asc\"}}},\"admin_view_headers\":{\"add_admin_view_model\":\"0\",\"admin_view_model\":\"\",\"power_admin_view_model\":[],\"add_admin_view_html\":\"0\",\"admin_view_html\":\"\",\"power_admin_view_html\":[],\"add_admin_view\":\"0\",\"admin_view\":\"\",\"power_admin_view\":[],\"add_admin_view_controller\":\"0\",\"admin_view_controller\":\"\",\"power_admin_view_controller\":[],\"add_admin_views_model\":\"0\",\"admin_views_model\":\"\",\"power_admin_views_model\":[],\"add_admin_views_html\":\"0\",\"admin_views_html\":\"\",\"power_admin_views_html\":[],\"add_admin_views\":\"0\",\"admin_views\":\"\",\"power_admin_views\":[],\"add_admin_views_controller\":\"0\",\"admin_views_controller\":\"\",\"power_admin_views_controller\":[],\"add_site_admin_view_model\":\"0\",\"site_admin_view_model\":\"\",\"power_site_admin_view_model\":[],\"add_site_admin_view_html\":\"0\",\"site_admin_view_html\":\"\",\"power_site_admin_view_html\":[],\"add_site_admin_view\":\"0\",\"site_admin_view\":\"\",\"power_site_admin_view\":[],\"add_import_custom_controller\":\"0\",\"import_custom_controller\":\"\",\"power_import_custom_controller\":[],\"add_import_custom_model\":\"0\",\"import_custom_model\":\"\",\"power_import_custom_model\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, '2020-09-08 21:58:20', '2025-10-17 14:34:26', 46, 0, 1, 245), (284, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '{}', '{\"addpermissions0\":{\"action\":\"view.edit\",\"implementation\":3},\"addpermissions1\":{\"action\":\"view.edit.own\",\"implementation\":3},\"addpermissions2\":{\"action\":\"view.edit.state\",\"implementation\":3},\"addpermissions3\":{\"action\":\"view.edit.access\",\"implementation\":3},\"addpermissions4\":{\"action\":\"view.edit.created_by\",\"implementation\":3},\"addpermissions5\":{\"action\":\"view.edit.created\",\"implementation\":3},\"addpermissions6\":{\"action\":\"view.create\",\"implementation\":3},\"addpermissions7\":{\"action\":\"view.delete\",\"implementation\":3},\"addpermissions8\":{\"action\":\"view.access\",\"implementation\":3}}', '{}', '{}', '{}', '', 0, '', '', '{}', '', '595ba2c9-21fa-43a4-9af7-93c9cfb21b82', 'images/vdm/icon/detail.png', '', '', '', '', '', '', 'utf8mb4', 'utf8mb4_unicode_ci', 'InnoDB', 'DYNAMIC', 'Details', 'Detail', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Add More Details', 0, '', 'Details (look)', 1, '{\"privacy\":{\"activate\":\"0\",\"permissions\":\"1\",\"anonymize\":\"0\",\"anonymize_fields\":[],\"user_link\":\"1\",\"custom_link\":\"$query->where($db->quoteName(\'created_by\') . \' = \' . $db->quote($user->id));\",\"other_user_field\":\"3429\"},\"fieldordering\":{\"add_admin_ordering\":\"0\",\"admin_ordering_fields\":{\"admin_ordering_fields0\":{\"field\":\"\",\"direction\":\"asc\"}},\"add_linked_ordering\":\"0\",\"linked_ordering_fields\":{\"linked_ordering_fields0\":{\"field\":\"\",\"direction\":\"asc\"}}},\"admin_view_headers\":{\"add_admin_view_model\":\"0\",\"admin_view_model\":\"\",\"power_admin_view_model\":[],\"add_admin_view_html\":\"0\",\"admin_view_html\":\"\",\"power_admin_view_html\":[],\"add_admin_view\":\"0\",\"admin_view\":\"\",\"power_admin_view\":[],\"add_admin_view_controller\":\"0\",\"admin_view_controller\":\"\",\"power_admin_view_controller\":[],\"add_admin_views_model\":\"0\",\"admin_views_model\":\"\",\"power_admin_views_model\":[],\"add_admin_views_html\":\"0\",\"admin_views_html\":\"\",\"power_admin_views_html\":[],\"add_admin_views\":\"0\",\"admin_views\":\"\",\"power_admin_views\":[],\"add_admin_views_controller\":\"0\",\"admin_views_controller\":\"\",\"power_admin_views_controller\":[],\"add_site_admin_view_model\":\"0\",\"site_admin_view_model\":\"\",\"power_site_admin_view_model\":[],\"add_site_admin_view_html\":\"0\",\"site_admin_view_html\":\"\",\"power_site_admin_view_html\":[],\"add_site_admin_view\":\"0\",\"site_admin_view\":\"\",\"power_site_admin_view\":[],\"add_import_custom_controller\":\"0\",\"import_custom_controller\":\"\",\"power_import_custom_controller\":[],\"add_import_custom_model\":\"0\",\"import_custom_model\":\"\",\"power_import_custom_model\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, '2020-09-07 22:09:41', '2024-09-19 22:29:45', 7, 0, 1, 246), (285, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '{}', '{\"addpermissions0\":{\"action\":\"view.edit\",\"implementation\":3},\"addpermissions1\":{\"action\":\"view.edit.own\",\"implementation\":3},\"addpermissions2\":{\"action\":\"view.edit.state\",\"implementation\":3},\"addpermissions3\":{\"action\":\"view.edit.access\",\"implementation\":3},\"addpermissions4\":{\"action\":\"view.edit.created_by\",\"implementation\":3},\"addpermissions5\":{\"action\":\"view.edit.created\",\"implementation\":3},\"addpermissions6\":{\"action\":\"view.create\",\"implementation\":3},\"addpermissions7\":{\"action\":\"view.delete\",\"implementation\":3},\"addpermissions8\":{\"action\":\"view.access\",\"implementation\":3}}', '{}', '{}', '{}', '', 0, '', '', '{}', 'Files', '224eb9c7-8b40-48cf-bf77-2afa291fd54a', 'images/vdm/icon/file.png', '', '', '', '', '', '', 'utf8mb4', 'utf8mb4_unicode_ci', 'InnoDB', 'DYNAMIC', 'Files', 'File', '', 'CQlmb3JlYWNoICgkZmlsZVBhdGhzIGFzICRmaWxlUGF0aCkNCgkJew0KCQkJaWYgKGlzX2ZpbGUoJGZpbGVQYXRoKSAmJiBpc193cml0YWJsZSgkZmlsZVBhdGgpKQ0KCQkJew0KCQkJCUpvb21sYV9fXzU1ZTllOGYwXzNjNWVfNDgzYV9hMDYzXzdjNzU2NWIwMGVkN19fX1Bvd2VyOjpkZWxldGUoJGZpbGVQYXRoKTsgLy8gcmVtb3ZlIGZyb20gZmlsZSBzeXN0ZW0NCgkJCX0NCgkJfQ==', '', '', '', '', '', '', '', 'CQkkZmlsZVBhdGhzID0gU3VwZXJfX185ZDc2YjhkY18zODgzXzQ3NTVfYjExY18xMzFkMTljYThhNTNfX19Qb3dlcjo6XygnRGF0YS5JdGVtcycpLT50YWJsZSgnW1tbdmlld11dXScpLT52YWx1ZXMoJHBrcywgJ2lkJywgJ2ZpbGVfcGF0aCcpID8/IFtdOw==', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Files', 0, '', 'Files', 1, '{\"privacy\":{\"activate\":\"0\",\"permissions\":\"1\",\"anonymize\":\"0\",\"anonymize_fields\":[],\"user_link\":\"1\",\"custom_link\":\"$query->where($db->quoteName(\'created_by\') . \' = \' . $db->quote($user->id));\",\"other_user_field\":\"65341477-33f1-4d58-9b3c-c371168809da\"},\"fieldordering\":{\"add_admin_ordering\":\"0\",\"admin_ordering_fields\":{\"admin_ordering_fields0\":{\"field\":\"\",\"direction\":\"asc\"}},\"add_linked_ordering\":\"0\",\"linked_ordering_fields\":{\"linked_ordering_fields0\":{\"field\":\"0\",\"direction\":\"asc\"}}},\"admin_view_headers\":{\"add_admin_view_model\":\"0\",\"admin_view_model\":\"\",\"power_admin_view_model\":[],\"add_admin_view_html\":\"0\",\"admin_view_html\":\"\",\"power_admin_view_html\":[],\"add_admin_view\":\"0\",\"admin_view\":\"\",\"power_admin_view\":[],\"add_admin_view_controller\":\"0\",\"admin_view_controller\":\"\",\"power_admin_view_controller\":[],\"add_admin_views_model\":\"0\",\"admin_views_model\":\"\",\"power_admin_views_model\":[],\"add_admin_views_html\":\"0\",\"admin_views_html\":\"\",\"power_admin_views_html\":[],\"add_admin_views\":\"0\",\"admin_views\":\"\",\"power_admin_views\":[],\"add_admin_views_controller\":\"0\",\"admin_views_controller\":\"\",\"power_admin_views_controller\":[],\"add_site_admin_view_model\":\"0\",\"site_admin_view_model\":\"\",\"power_site_admin_view_model\":[],\"add_site_admin_view_html\":\"0\",\"site_admin_view_html\":\"\",\"power_site_admin_view_html\":[],\"add_site_admin_view\":\"0\",\"site_admin_view\":\"\",\"power_site_admin_view\":[],\"add_import_custom_controller\":\"0\",\"import_custom_controller\":\"\",\"power_import_custom_controller\":[],\"add_import_custom_model\":\"0\",\"import_custom_model\":\"\",\"power_import_custom_model\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, '2020-09-07 22:38:14', '2025-03-28 10:18:59', 18, 0, 1, 247), -(286, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, '{}', '{\"addpermissions0\":{\"action\":\"view.edit\",\"implementation\":1},\"addpermissions1\":{\"action\":\"view.edit.own\",\"implementation\":1},\"addpermissions2\":{\"action\":\"view.edit.state\",\"implementation\":1},\"addpermissions3\":{\"action\":\"view.edit.access\",\"implementation\":1},\"addpermissions4\":{\"action\":\"view.edit.created_by\",\"implementation\":1},\"addpermissions5\":{\"action\":\"view.edit.created\",\"implementation\":1},\"addpermissions6\":{\"action\":\"view.create\",\"implementation\":1},\"addpermissions7\":{\"action\":\"view.delete\",\"implementation\":1},\"addpermissions8\":{\"action\":\"view.access\",\"implementation\":1}}', '{}', '{}', '{}', '', 0, '', '', '{}', '', '60b7b30d-9229-4ce2-b055-9efbb7ac4cea', '', '', '', '', '', '', '', 'utf8mb4', 'utf8mb4_unicode_ci', 'InnoDB', 'DYNAMIC', 'User Entity Maps', 'User Entity Map', '', '', '', '', '', '', '', '', '', '', '', 'W0NVU1RPTUNPREU9c2F2ZUdVSURQb3dlcl0=', '', '', '', 'W0NVU1RPTUNPREU9c2V0R1VJREZvcm1Qb3dlcl0=', '', '', '', '', '', '', '', '', 'User Entity Maps', 0, '', 'User Entity Map', 1, '{\"privacy\":{\"activate\":\"0\",\"permissions\":\"1\",\"anonymize\":\"0\",\"anonymize_fields\":[],\"user_link\":\"1\",\"custom_link\":\"$query->where($db->quoteName(\'created_by\') . \' = \' . $db->quote($user->id));\",\"other_user_field\":\"f9b94931-2255-449d-aeab-60bfaa69c449\"},\"fieldordering\":{\"add_admin_ordering\":\"0\",\"admin_ordering_fields\":{\"admin_ordering_fields0\":{\"field\":\"\",\"direction\":\"asc\"}},\"add_linked_ordering\":\"0\",\"linked_ordering_fields\":{\"linked_ordering_fields0\":{\"field\":\"0\",\"direction\":\"asc\"}}},\"admin_view_headers\":{\"add_admin_view_model\":\"0\",\"admin_view_model\":\"\",\"power_admin_view_model\":[],\"add_admin_view_html\":\"0\",\"admin_view_html\":\"\",\"power_admin_view_html\":[],\"add_admin_view\":\"0\",\"admin_view\":\"\",\"power_admin_view\":[],\"add_admin_view_controller\":\"0\",\"admin_view_controller\":\"\",\"power_admin_view_controller\":[],\"add_admin_views_model\":\"0\",\"admin_views_model\":\"\",\"power_admin_views_model\":[],\"add_admin_views_html\":\"0\",\"admin_views_html\":\"\",\"power_admin_views_html\":[],\"add_admin_views\":\"0\",\"admin_views\":\"\",\"power_admin_views\":[],\"add_admin_views_controller\":\"0\",\"admin_views_controller\":\"\",\"power_admin_views_controller\":[],\"add_site_admin_view_model\":\"0\",\"site_admin_view_model\":\"\",\"power_site_admin_view_model\":[],\"add_site_admin_view_html\":\"0\",\"site_admin_view_html\":\"\",\"power_site_admin_view_html\":[],\"add_site_admin_view\":\"0\",\"site_admin_view\":\"\",\"power_site_admin_view\":[],\"add_import_custom_controller\":\"0\",\"import_custom_controller\":\"\",\"power_import_custom_controller\":[],\"add_import_custom_model\":\"0\",\"import_custom_model\":\"\",\"power_import_custom_model\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, '2020-09-07 22:49:46', '2025-09-16 10:30:20', 5, 0, 1, 248), +(286, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, '{}', '{\"addpermissions0\":{\"action\":\"view.edit\",\"implementation\":1},\"addpermissions1\":{\"action\":\"view.edit.own\",\"implementation\":1},\"addpermissions2\":{\"action\":\"view.edit.state\",\"implementation\":1},\"addpermissions3\":{\"action\":\"view.edit.access\",\"implementation\":1},\"addpermissions4\":{\"action\":\"view.edit.created_by\",\"implementation\":1},\"addpermissions5\":{\"action\":\"view.edit.created\",\"implementation\":1},\"addpermissions6\":{\"action\":\"view.create\",\"implementation\":1},\"addpermissions7\":{\"action\":\"view.delete\",\"implementation\":1},\"addpermissions8\":{\"action\":\"view.access\",\"implementation\":1}}', '{}', '{}', '{}', '', 0, '', '', '{}', '', '60b7b30d-9229-4ce2-b055-9efbb7ac4cea', '', '', '', '', '', '', '', 'utf8mb4', 'utf8mb4_unicode_ci', 'InnoDB', 'DYNAMIC', 'User Entity Maps', 'User Entity Map', '', '', '', '', '', '', '', '', '', '', '', 'W0NVU1RPTUNPREU9c2F2ZUdVSURQb3dlcl0=', '', '', '', 'W0NVU1RPTUNPREU9c2V0R1VJREZvcm1Qb3dlcl0=', '', '', '', '', '', '', '', '', 'User Entity Maps', 0, '', 'User Entity Map', 1, '{\"privacy\":{\"activate\":\"0\",\"permissions\":\"1\",\"anonymize\":\"0\",\"anonymize_fields\":[],\"user_link\":\"1\",\"custom_link\":\"$query->where($db->quoteName(\'created_by\') . \' = \' . $db->quote($user->id));\",\"other_user_field\":\"f9b94931-2255-449d-aeab-60bfaa69c449\"},\"fieldordering\":{\"add_admin_ordering\":\"0\",\"admin_ordering_fields\":{\"admin_ordering_fields0\":{\"field\":\"\",\"direction\":\"asc\"}},\"add_linked_ordering\":\"0\",\"linked_ordering_fields\":{\"linked_ordering_fields0\":{\"field\":\"0\",\"direction\":\"asc\"}}},\"admin_view_headers\":{\"add_admin_view_model\":\"0\",\"admin_view_model\":\"\",\"power_admin_view_model\":[],\"add_admin_view_html\":\"0\",\"admin_view_html\":\"\",\"power_admin_view_html\":[],\"add_admin_view\":\"0\",\"admin_view\":\"\",\"power_admin_view\":[],\"add_admin_view_controller\":\"0\",\"admin_view_controller\":\"\",\"power_admin_view_controller\":[],\"add_admin_views_model\":\"0\",\"admin_views_model\":\"\",\"power_admin_views_model\":[],\"add_admin_views_html\":\"0\",\"admin_views_html\":\"\",\"power_admin_views_html\":[],\"add_admin_views\":\"0\",\"admin_views\":\"\",\"power_admin_views\":[],\"add_admin_views_controller\":\"0\",\"admin_views_controller\":\"\",\"power_admin_views_controller\":[],\"add_site_admin_view_model\":\"0\",\"site_admin_view_model\":\"\",\"power_site_admin_view_model\":[],\"add_site_admin_view_html\":\"0\",\"site_admin_view_html\":\"\",\"power_site_admin_view_html\":[],\"add_site_admin_view\":\"0\",\"site_admin_view\":\"\",\"power_site_admin_view\":[],\"add_import_custom_controller\":\"0\",\"import_custom_controller\":\"\",\"power_import_custom_controller\":[],\"add_import_custom_model\":\"0\",\"import_custom_model\":\"\",\"power_import_custom_model\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, '2020-09-07 22:49:46', '2025-10-17 11:06:06', 6, 0, 1, 248), (293, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '{}', '{\"addpermissions0\":{\"action\":\"view.edit\",\"implementation\":3},\"addpermissions1\":{\"action\":\"view.edit.own\",\"implementation\":3},\"addpermissions2\":{\"action\":\"view.edit.state\",\"implementation\":3},\"addpermissions3\":{\"action\":\"view.edit.access\",\"implementation\":3},\"addpermissions4\":{\"action\":\"view.edit.created_by\",\"implementation\":3},\"addpermissions5\":{\"action\":\"view.edit.created\",\"implementation\":3},\"addpermissions6\":{\"action\":\"view.create\",\"implementation\":3},\"addpermissions7\":{\"action\":\"view.delete\",\"implementation\":3},\"addpermissions8\":{\"action\":\"view.access\",\"implementation\":3}}', '{}', '{}', '{}', '', 0, '', '', '{}', '', 'ab2bbdfc-c0a0-4ffc-9556-67d5af8bec64', '', '', '', '', '', '', '', 'utf8mb4', 'utf8mb4_unicode_ci', 'InnoDB', 'DYNAMIC', 'Importer Message Logs', 'Importer Message Log', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Importer Message Logs', 0, '', 'Importer Message Logs', 1, '{\"privacy\":{\"activate\":\"0\",\"permissions\":\"1\",\"anonymize\":\"0\",\"anonymize_fields\":[],\"user_link\":\"1\",\"custom_link\":\"$query->where($db->quoteName(\'created_by\') . \' = \' . $db->quote($user->id));\",\"other_user_field\":\"2c74c3f5-2bfc-4916-b105-4f5d5e2bea25\"},\"fieldordering\":{\"add_admin_ordering\":\"0\",\"admin_ordering_fields\":{\"admin_ordering_fields0\":{\"field\":\"\",\"direction\":\"asc\"}},\"add_linked_ordering\":\"0\",\"linked_ordering_fields\":{\"linked_ordering_fields0\":{\"field\":\"0\",\"direction\":\"asc\"}}},\"admin_view_headers\":{\"add_admin_view_model\":\"0\",\"admin_view_model\":\"\",\"power_admin_view_model\":[],\"add_admin_view_html\":\"0\",\"admin_view_html\":\"\",\"power_admin_view_html\":[],\"add_admin_view\":\"0\",\"admin_view\":\"\",\"power_admin_view\":[],\"add_admin_view_controller\":\"0\",\"admin_view_controller\":\"\",\"power_admin_view_controller\":[],\"add_admin_views_model\":\"0\",\"admin_views_model\":\"\",\"power_admin_views_model\":[],\"add_admin_views_html\":\"0\",\"admin_views_html\":\"\",\"power_admin_views_html\":[],\"add_admin_views\":\"0\",\"admin_views\":\"\",\"power_admin_views\":[],\"add_admin_views_controller\":\"0\",\"admin_views_controller\":\"\",\"power_admin_views_controller\":[],\"add_site_admin_view_model\":\"0\",\"site_admin_view_model\":\"\",\"power_site_admin_view_model\":[],\"add_site_admin_view_html\":\"0\",\"site_admin_view_html\":\"\",\"power_site_admin_view_html\":[],\"add_site_admin_view\":\"0\",\"site_admin_view\":\"\",\"power_site_admin_view\":[],\"add_import_custom_controller\":\"0\",\"import_custom_controller\":\"\",\"power_import_custom_controller\":[],\"add_import_custom_model\":\"0\",\"import_custom_model\":\"\",\"power_import_custom_model\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, '2020-02-06 17:25:28', '2025-02-17 10:13:58', 6, 0, 1, 249), (294, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, '{}', '{\"addpermissions0\":{\"action\":\"view.edit\",\"implementation\":3},\"addpermissions1\":{\"action\":\"view.edit.own\",\"implementation\":3},\"addpermissions2\":{\"action\":\"view.edit.state\",\"implementation\":3},\"addpermissions3\":{\"action\":\"view.edit.access\",\"implementation\":3},\"addpermissions4\":{\"action\":\"view.edit.created_by\",\"implementation\":3},\"addpermissions5\":{\"action\":\"view.edit.created\",\"implementation\":3},\"addpermissions6\":{\"action\":\"view.create\",\"implementation\":3},\"addpermissions7\":{\"action\":\"view.delete\",\"implementation\":3},\"addpermissions8\":{\"action\":\"view.access\",\"implementation\":3}}', '{}', '{}', '{}', '', 0, '', '', '{}', 'The item import queue', 'a9f19a16-fadb-44ea-a9b6-41130aad05ec', '', '', '', '', '', '', '', 'utf8mb4', 'utf8mb4_unicode_ci', 'InnoDB', 'DYNAMIC', 'Items Import Queue', 'Item Import', '', 'CQlpZiAoIWVtcHR5KCRmaWxlcykpDQoJCXsNCgkJCSRmaWxlcyA9IFN1cGVyX19fOWQ3NmI4ZGNfMzg4M180NzU1X2IxMWNfMTMxZDE5Y2E4YTUzX19fUG93ZXI6Ol8oJ0RhdGEuSXRlbXMnKS0+dGFibGUoJ2ZpbGUnKS0+dmFsdWVzKCRmaWxlcywgJ2d1aWQnLCAnaWQnKTsNCgkJCWlmICghZW1wdHkoJGZpbGVzKSkNCgkJCXsNCgkJCQkkbW9kZWwgPSBTdXBlcl9fXzY0MGI1MzUyX2ZiMDlfNDI1Zl9hMjZlX2NkNDRlZGEwM2YxNV9fX1Bvd2VyOjpnZXRNb2RlbCgnZmlsZScpOw0KCQkJCSRtb2RlbC0+ZGVsZXRlKCRmaWxlcyk7DQoJCQl9DQoJCX0=', 'CQlpZiAoIWVtcHR5KCRmaWxlcykpDQoJCXsNCgkJCSR1cGRhdGUgPSBbXTsNCgkJCWZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkNCgkJCXsNCgkJCQkkdXBkYXRlW10gPSAob2JqZWN0KSBbJ2d1aWQnID0+ICRmaWxlLCAncHVibGlzaGVkJyA9PiAkdmFsdWVdOw0KCQkJfQ0KCQkJU3VwZXJfX185ZDc2YjhkY18zODgzXzQ3NTVfYjExY18xMzFkMTljYThhNTNfX19Qb3dlcjo6XygnRGF0YS5JdGVtcycpLT50YWJsZSgnZmlsZScpLT5zZXQoJHVwZGF0ZSwgJ2d1aWQnKTsNCgkJfQ==', '', '', '', '', '', '', 'CQkkZmlsZXMgPSBTdXBlcl9fXzlkNzZiOGRjXzM4ODNfNDc1NV9iMTFjXzEzMWQxOWNhOGE1M19fX1Bvd2VyOjpfKCdEYXRhLkl0ZW1zJyktPnRhYmxlKCdbW1t2aWV3XV1dJyktPnZhbHVlcygkcGtzLCAnaWQnLCAnZmlsZScpOw==', 'CQkkZmlsZXMgPSBTdXBlcl9fXzlkNzZiOGRjXzM4ODNfNDc1NV9iMTFjXzEzMWQxOWNhOGE1M19fX1Bvd2VyOjpfKCdEYXRhLkl0ZW1zJyktPnRhYmxlKCdbW1t2aWV3XV1dJyktPnZhbHVlcygkcGtzLCAnaWQnLCAnZmlsZScpOw==', 'W0NVU1RPTUNPREU9c2F2ZUdVSURQb3dlcl0=', '', '', '', 'W0NVU1RPTUNPREU9c2V0R1VJREZvcm1Qb3dlcl0=', '', '', '', '', '', '', 'CQkkZmlsZSA9IChvYmplY3QpIFsnZ3VpZCcgPT4gJHZhbGlkRGF0YVsnZmlsZSddLCAncHVibGlzaGVkJyA9PiAkdmFsaWREYXRhWydwdWJsaXNoZWQnXV07DQoJCVN1cGVyX19fOWQ3NmI4ZGNfMzg4M180NzU1X2IxMWNfMTMxZDE5Y2E4YTUzX19fUG93ZXI6Ol8oJ0RhdGEuSXRlbScpLT50YWJsZSgnZmlsZScpLT5zZXQoJGZpbGUsICdndWlkJywgJ3VwZGF0ZScpOw==', '', 'Item Import Queue', 0, '', 'Item Import', 1, '{\"privacy\":{\"activate\":\"0\",\"permissions\":\"1\",\"anonymize\":\"0\",\"anonymize_fields\":[],\"user_link\":\"1\",\"custom_link\":\"$query->where($db->quoteName(\'created_by\') . \' = \' . $db->quote($user->id));\",\"other_user_field\":\"2c74c3f5-2bfc-4916-b105-4f5d5e2bea25\"},\"fieldordering\":{\"add_admin_ordering\":\"0\",\"admin_ordering_fields\":{\"admin_ordering_fields0\":{\"field\":\"\",\"direction\":\"asc\"}},\"add_linked_ordering\":\"0\",\"linked_ordering_fields\":{\"linked_ordering_fields0\":{\"field\":\"0\",\"direction\":\"asc\"}}},\"admin_view_headers\":{\"add_admin_view_model\":\"0\",\"admin_view_model\":\"\",\"power_admin_view_model\":[],\"add_admin_view_html\":\"0\",\"admin_view_html\":\"\",\"power_admin_view_html\":[],\"add_admin_view\":\"0\",\"admin_view\":\"\",\"power_admin_view\":[],\"add_admin_view_controller\":\"0\",\"admin_view_controller\":\"\",\"power_admin_view_controller\":[],\"add_admin_views_model\":\"0\",\"admin_views_model\":\"\",\"power_admin_views_model\":[],\"add_admin_views_html\":\"0\",\"admin_views_html\":\"\",\"power_admin_views_html\":[],\"add_admin_views\":\"0\",\"admin_views\":\"\",\"power_admin_views\":[],\"add_admin_views_controller\":\"0\",\"admin_views_controller\":\"\",\"power_admin_views_controller\":[],\"add_site_admin_view_model\":\"0\",\"site_admin_view_model\":\"\",\"power_site_admin_view_model\":[],\"add_site_admin_view_html\":\"0\",\"site_admin_view_html\":\"\",\"power_site_admin_view_html\":[],\"add_site_admin_view\":\"0\",\"site_admin_view\":\"\",\"power_site_admin_view\":[],\"add_import_custom_controller\":\"0\",\"import_custom_controller\":\"\",\"power_import_custom_controller\":[],\"add_import_custom_model\":\"0\",\"import_custom_model\":\"\",\"power_import_custom_model\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, '2020-11-05 18:35:12', '2025-03-03 09:01:55', 10, 0, 1, 250), (296, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, '{}', '{\"addpermissions0\":{\"action\":\"view.edit\",\"implementation\":3},\"addpermissions1\":{\"action\":\"view.edit.own\",\"implementation\":3},\"addpermissions2\":{\"action\":\"view.edit.state\",\"implementation\":3},\"addpermissions3\":{\"action\":\"view.edit.created_by\",\"implementation\":3},\"addpermissions4\":{\"action\":\"view.edit.created\",\"implementation\":3},\"addpermissions5\":{\"action\":\"view.create\",\"implementation\":3},\"addpermissions6\":{\"action\":\"view.delete\",\"implementation\":3},\"addpermissions7\":{\"action\":\"view.access\",\"implementation\":3}}', '{}', '{\"addtabs0\":{\"name\":\"Details\"},\"addtabs1\":{\"name\":\"Cities\"}}', '{}', '', 1, '', '', '{}', '', '6c6345a1-e3e4-4840-8918-831034e95b19', 'images/vdm/icon/state.png#joomlaImage://local-images/vdm/icon/state.png?width=128&height=128', '', '', '', '', '', '', 'utf8mb4', 'utf8mb4_unicode_ci', 'InnoDB', 'DYNAMIC', 'States', 'State', '', '', '', '', '', '', '', '', '', '', '', 'W0NVU1RPTUNPREU9c2F2ZUdVSURQb3dlcl0=', 'W0NVU1RPTUNPREU9Zm9ybUNvbnRyb2xsZXJFZGl0XQ==', '', '', 'W0NVU1RPTUNPREU9c2V0R1VJREZvcm1Qb3dlcl0=', '', '', '', '', '', '', '', '', 'States', 2, 'LS0NCi0tIER1bXBpbmcgZGF0YSBmb3IgdGFibGUgYCNfX1tbW2NvbXBvbmVudF1dXV9zdGF0ZWANCi0tDQoNCklOU0VSVCBJTlRPIGAjX19bW1tjb21wb25lbnRdXV1fc3RhdGVgIChgaWRgLCBgY291bnRyeWAsIGBmaXBzX2NvZGVgLCBgbmFtZWAsIGB0eXBlYCwgYHdpa2lkYXRhaWRgLCBgbGF0aXR1ZGVgLCBgbG9uZ2l0dWRlYCwgYG1ldGFrZXlgLCBgbWV0YWRlc2NgLCBgbWV0YWRhdGFgLCBgb3JkZXJpbmdgLCBgcHVibGlzaGVkYCwgYG1vZGlmaWVkYCwgYGNyZWF0ZWRgLCBgaGl0c2AsIGB2ZXJzaW9uYCwgYHBhcmFtc2AsIGBndWlkYCwgYGlzbzJgKSBWQUxVRVMNCigxLCAnNjJiNTAzOTItNTRlMi00NDkwLWFkOTQtOGRlMDc3MzVhNTg0JywgMjEsICdLaG9tYXMnLCAncmVnaW9uJywgJ1E4MzQ1MDgnLCAtMjIuNjM3Nzg1NDAsIDE3LjEwMTE5MzEwLCAnJywgJycsICd7XCJyb2JvdHNcIjpcIlwiLFwiYXV0aG9yXCI6XCJcIixcInJpZ2h0c1wiOlwiXCJ9JywgMSwgMSwgJzIwMjUtMDMtMjYgMTk6NTU6NDcnLCAnMjAyNS0wMy0yNSAxNjoyMzozNCcsICcnLCAxMSwgJycsICdjODQwYzVhZS1kMzg0LTQ4NDctYjUwZC1hODJlZjI5ODNjNGQnLCAnTkEnKSwNCigyLCAnMmZjYTllNzktYzhjOS00NTdmLWEyYTItOTNiZTc5MjA3ZWRlJywgMTEsICdXZXRlcm4gQ2FwZScsICdwcm92aW5jZScsICdRMTI3MTY3JywgLTMzLjIyNzc5MTgwLCAyMS44NTY4NTg2MCwgJycsICcnLCAne1wicm9ib3RzXCI6XCJcIixcImF1dGhvclwiOlwiXCIsXCJyaWdodHNcIjpcIlwifScsIDIsIDEsICcyMDI1LTAzLTI2IDE1OjU1OjQ2JywgJzIwMjUtMDMtMjYgMTU6MjA6MDUnLCAnJywgMywgJycsICdhMjAxNWRlZC0wZmVkLTQwNjQtOGU2My04M2E0OTVlMWEwOWInLCAnV0MnKSwNCigzLCAnNjJiNTAzOTItNTRlMi00NDkwLWFkOTQtOGRlMDc3MzVhNTg0JywgMTUyLCAnT3Rqb3pvbmRqdXBhJywgJ3JlZ2lvbicsICdRODc2NTA2JywgLTIwLjU0ODY5MTYwLCAxNy42Njg4ODcwMCwgJycsICcnLCAne1wicm9ib3RzXCI6XCJcIixcImF1dGhvclwiOlwiXCIsXCJyaWdodHNcIjpcIlwifScsIDMsIDEsICcyMDI1LTAzLTI2IDE5OjU2OjQ0JywgJzIwMjUtMDMtMjYgMTU6NDQ6MTEnLCAnJywgMywgJycsICdkZTU3NzMyNS0xZGVkLTQ2ZDktYTAyYy0yMzFiY2Q4YTQ2MWUnLCAnT0QnKSwNCig0LCAnNjJiNTAzOTItNTRlMi00NDkwLWFkOTQtOGRlMDc3MzVhNTg0JywgMTUyLCAnRXJvbmdvJywgJ3JlZ2lvbicsICdRNjQ4NzUzJywgLTIyLjI1NjU2ODIwLCAxNS40MDY4MDc5MCwgJycsICcnLCAne1wicm9ib3RzXCI6XCJcIixcImF1dGhvclwiOlwiXCIsXCJyaWdodHNcIjpcIlwifScsIDQsIDEsICcyMDI1LTAzLTI2IDE5OjU1OjA4JywgJzIwMjUtMDMtMjYgMTU6NTA6NTAnLCAnJywgNCwgJycsICcyYzAzNzdjNy1kZDMwLTRhNjctYjhiOS03Y2UxYWZmNGZmOWInLCAnRVInKSwNCig5LCAnNjJiNTAzOTItNTRlMi00NDkwLWFkOTQtOGRlMDc3MzVhNTg0JywgMTUyLCAnSGFyZGFwJywgJ3JlZ2lvbicsICdRNzUyNjc2JywgLTI2Ljg0Mjk2NDUwLCAxNy4yOTAyODM5MCwgJycsICcnLCAne1wicm9ib3RzXCI6XCJcIixcImF1dGhvclwiOlwiXCIsXCJyaWdodHNcIjpcIlwifScsICcnLCAxLCAnMjAyNS0wMy0yNyAwNjoyMToxNycsICcyMDI1LTAzLTI2IDIxOjIxOjU1JywgJycsIDIsICcnLCAnYTZlN2Y5NjMtNTI4OC00MjNhLWI5ZmItNmU5MmI5ZmJhMjQxJywgJ0tBJyksDQooMTEsICcyZmNhOWU3OS1jOGM5LTQ1N2YtYTJhMi05M2JlNzkyMDdlZGUnLCAwNiwgJ0dhdXRlbmcnLCAncHJvdmluY2UnLCAnUTEzMzA4MycsIC0yNi4yNzA3NTkzMCwgMjguMTEyMjY3OTAsICcnLCAnJywgJ3tcInJvYm90c1wiOlwiXCIsXCJhdXRob3JcIjpcIlwiLFwicmlnaHRzXCI6XCJcIn0nLCA2LCAxLCAnMjAyNS0wMy0yNyAyMDowNDozMScsICcyMDI1LTAzLTI3IDEyOjQwOjIzJywgJycsIDE1LCAnJywgJzlmZGNlODc1LTA2ZWQtNDQ5OC05NjRlLTBmNzIzNjMxZmUxZicsICdHUCcpLA0KKDEyLCAnNjJiNTAzOTItNTRlMi00NDkwLWFkOTQtOGRlMDc3MzVhNTg0JywgMzEsICdLYXJhcycsICdyZWdpb24nLCAnUTU3MzQ2NycsIC0yNi44NDI5NjQ1MCwgMTcuMjkwMjgzOTAsICcnLCAnJywgJycsICcnLCAxLCAnJywgJzIwMjUtMDMtMjggMDg6MzY6MzAnLCAnJywgMSwgJycsICdjYzA3YzU1Yi1mZmU0LTQzYjMtOTdiNy0yM2I1NzQ2YzA5ZjknLCAnS0EnKSwNCigxMywgJzYyYjUwMzkyLTU0ZTItNDQ5MC1hZDk0LThkZTA3NzM1YTU4NCcsIDQwLCAnS2F2YW5nbyBFYXN0JywgJ3JlZ2lvbicsICdRMTQ4MjQwMzInLCAxOC4yNzEwNDgwMCwgMTguNDI3NjA0NzAsICcnLCAnJywgJycsICcnLCAxLCAnJywgJzIwMjUtMDMtMjggMDg6NDQ6MzknLCAnJywgMSwgJycsICdkNTNjZjQxNy04NGJjLTRhNzItOGFjYi0yODM2N2Y0MWJmYmInLCAnS0UnKSwNCigxNCwgJzYyYjUwMzkyLTU0ZTItNDQ5MC1hZDk0LThkZTA3NzM1YTU4NCcsIDMyLCAnS3VuZW5lJywgJ3JlZ2lvbicsICdRODM0NTEzJywgLTE5LjQwODYzMTcwLCAxMy45MTQzOTkwMCwgJycsICcnLCAnJywgJycsIDEsICcnLCAnMjAyNS0wMy0yOCAwODo0Nzo1NycsICcnLCAxLCAnJywgJ2E1NWY4ZDVhLWY0MWYtNGIwZC1iNmE0LTY5NzI2NDc3ZmM1MicsICdLVScpLA0KKDE1LCAnNjJiNTAzOTItNTRlMi00NDkwLWFkOTQtOGRlMDc3MzVhNTg0JywgMzMsICdPaGFuZ3dlbmEnLCAncmVnaW9uJywgJ1E4NDU3MDInLCAtMTcuNTk3OTI5MTAsIDE2LjgxNzgzNzcwLCAnJywgJycsICcnLCAnJywgMSwgJycsICcyMDI1LTAzLTI4IDA4OjUzOjU5JywgJycsIDEsICcnLCAnM2VlNWIxMGUtNjBkNC00ZWIwLWE1ZWEtYWU5OGRiNDViZWJlJywgJ09XJyksDQooMTYsICc2MmI1MDM5Mi01NGUyLTQ0OTAtYWQ5NC04ZGUwNzczNWE1ODQnLCAzNSwgJ09tYWhla2UnLCAncmVnaW9uJywgJ1E4Mzg3NzUnLCAxOS4xODgwMDQ3MCwgLTIxLjg0NjY2NTEwLCAnJywgJycsICd7XCJyb2JvdHNcIjpcIlwiLFwiYXV0aG9yXCI6XCJcIixcInJpZ2h0c1wiOlwiXCJ9JywgNywgMSwgJzIwMjUtMDMtMjggMDg6NTk6NDYnLCAnMjAyNS0wMy0yOCAwODo1ODowNycsICcnLCAzLCAnJywgJ2FiODg4NDJmLTBlNjYtNDdjZC05NzEyLTZkNWFhZDNiMTc5YicsICdPSCcpLA0KKDE3LCAnNjJiNTAzOTItNTRlMi00NDkwLWFkOTQtOGRlMDc3MzVhNTg0JywgMzYsICdPbXVzYXRpJywgJ3JlZ2lvbicsICdRNzY0Mzg1JywgMTQuODQ1NDYxOTAsIC0xOC40MDcwMjk0MCwgJycsICcnLCAne1wicm9ib3RzXCI6XCJcIixcImF1dGhvclwiOlwiXCIsXCJyaWdodHNcIjpcIlwifScsIDgsIDEsICcyMDI1LTAzLTI4IDA5OjAxOjU4JywgJzIwMjUtMDMtMjggMDk6MDE6MDInLCAnJywgMiwgJycsICdkZDAxNWZlNy01MGI5LTRhMWUtYmU2Ni0yZTVkZWI2ZWEwNWUnLCAnT1MnKSwNCigxOCwgJzYyYjUwMzkyLTU0ZTItNDQ5MC1hZDk0LThkZTA3NzM1YTU4NCcsIDM3LCAnT3NoYW5hJywgJ3JlZ2lvbicsICdRNTM0NTI4JywgMTUuNjg4MTc4ODAsIC0xOC40MzA1MDY0MCwgJycsICcnLCAne1wicm9ib3RzXCI6XCJcIixcImF1dGhvclwiOlwiXCIsXCJyaWdodHNcIjpcIlwifScsIDksIDEsICcyMDI1LTAzLTI4IDA5OjA1OjU1JywgJzIwMjUtMDMtMjggMDk6MDQ6MjEnLCAnJywgMywgJycsICc2ZjExNGQxMy1jZTdmLTQ3NTEtODAyOS1mZjc3MjNhOTMyYTInLCAnT04nKSwNCigxOSwgJzYyYjUwMzkyLTU0ZTItNDQ5MC1hZDk0LThkZTA3NzM1YTU4NCcsIDM4LCAnT3NoaWtvdG8nLCAncmVnaW9uJywgJ1E4NzY1MTInLCAxNi45MTIyNTEwMCwgLTE4LjQxNTI1NzUwLCAnJywgJycsICd7XCJyb2JvdHNcIjpcIlwiLFwiYXV0aG9yXCI6XCJcIixcInJpZ2h0c1wiOlwiXCJ9JywgMTAsIDEsICcyMDI1LTAzLTI4IDA5OjA5OjIzJywgJzIwMjUtMDMtMjggMDk6MDg6MDgnLCAnJywgMiwgJycsICdiMDY1MGE2ZC01NmQ4LTQ3NjUtYjU2Ni1mNmI5MzI1NWY3ZjQnLCAnT1QnKSwNCigyMCwgJzYyYjUwMzkyLTU0ZTItNDQ5MC1hZDk0LThkZTA3NzM1YTU4NCcsIDI4LCAnWmFtYmV6aScsICdyZWdpb24nLCAnUTQ3MzE5MCcsIDIzLjk1MzY0NjYwLCAtMTcuODE5MzQxOTAsICcnLCAnJywgJ3tcInJvYm90c1wiOlwiXCIsXCJhdXRob3JcIjpcIlwiLFwicmlnaHRzXCI6XCJcIn0nLCAxMSwgMSwgJzIwMjUtMDMtMjggMDk6MTM6MzEnLCAnMjAyNS0wMy0yOCAwOToxMDo1MicsICcnLCAyLCAnJywgJ2VkYzNhZGQ2LTE5NzctNDQzZS1hZjQwLTM2ZjcwMGFkMzFjMCcsICdDQScpOw==', 'States', 1, '{\"privacy\":{\"activate\":\"0\",\"permissions\":\"1\",\"anonymize\":\"0\",\"anonymize_fields\":[],\"user_link\":\"1\",\"custom_link\":\"$query->where($db->quoteName(\'created_by\') . \' = \' . $db->quote($user->id));\",\"other_user_field\":\"abaff633-2a9f-4be1-b057-241f657953a1\"},\"fieldordering\":{\"add_admin_ordering\":\"0\",\"admin_ordering_fields\":{\"admin_ordering_fields0\":{\"field\":\"\",\"direction\":\"asc\"}},\"add_linked_ordering\":\"0\",\"linked_ordering_fields\":{\"linked_ordering_fields0\":{\"field\":\"0\",\"direction\":\"asc\"}}},\"admin_view_headers\":{\"add_admin_view_model\":\"0\",\"admin_view_model\":\"\",\"power_admin_view_model\":[],\"add_admin_view_html\":\"0\",\"admin_view_html\":\"\",\"power_admin_view_html\":[],\"add_admin_view\":\"0\",\"admin_view\":\"\",\"power_admin_view\":[],\"add_admin_view_controller\":\"0\",\"admin_view_controller\":\"\",\"power_admin_view_controller\":[],\"add_admin_views_model\":\"0\",\"admin_views_model\":\"\",\"power_admin_views_model\":[],\"add_admin_views_html\":\"0\",\"admin_views_html\":\"\",\"power_admin_views_html\":[],\"add_admin_views\":\"0\",\"admin_views\":\"\",\"power_admin_views\":[],\"add_admin_views_controller\":\"0\",\"admin_views_controller\":\"\",\"power_admin_views_controller\":[],\"add_site_admin_view_model\":\"0\",\"site_admin_view_model\":\"\",\"power_site_admin_view_model\":[],\"add_site_admin_view_html\":\"0\",\"site_admin_view_html\":\"\",\"power_site_admin_view_html\":[],\"add_site_admin_view\":\"0\",\"site_admin_view\":\"\",\"power_site_admin_view\":[],\"add_import_custom_controller\":\"0\",\"import_custom_controller\":\"\",\"power_import_custom_controller\":[],\"add_import_custom_model\":\"0\",\"import_custom_model\":\"\",\"power_import_custom_model\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, '2025-03-24 08:26:24', '2025-07-24 08:28:45', 41, 0, 1, 170), @@ -2383,8 +2383,8 @@ INSERT INTO `#__componentbuilder_layout` (`id`, `add_php_view`, `alias`, `descri -- Batch 1 of 1 (5 rows) INSERT INTO `#__componentbuilder_dynamic_get` (`id`, `add_php_after_getitem`, `add_php_before_getitem`, `add_php_after_getitems`, `add_php_before_getitems`, `add_php_getlistquery`, `php_after_getitem`, `php_before_getitem`, `php_before_getitems`, `php_getlistquery`, `php_after_getitems`, `pagination`, `addcalculation`, `db_selection`, `db_table_main`, `filter`, `getcustom`, `gettype`, `global`, `join_db_table`, `join_view_table`, `main_source`, `name`, `order`, `php_calculation`, `php_custom_get`, `view_selection`, `view_table_main`, `where`, `php_router_parse`, `group`, `params`, `published`, `version`, `hits`, `ordering`, `guid`) VALUES -(36, 0, 0, 1, 0, 0, '', '', '', '', 'CQkvLyBkbyBhIHF1aWNrIGJ1aWxkIG9mIGFsbCBlZGl0IGxpbmtzIGxpbmtzDQoJCWlmIChpc3NldCgkaXRlbXMpICYmICRpdGVtcykNCgkJew0KCQkJZm9yZWFjaCAoJGl0ZW1zIGFzICRuciA9PiAmJGl0ZW0pDQoJCQl7DQoJCQkJJGNhbkRvID0gW1tbQ29tcG9uZW50XV1dSGVscGVyOjpnZXRBY3Rpb25zKCdsb29rJywkaXRlbSwnbG9va3MnKTsNCgkJCQlpZiAoJGNhbkRvLT5nZXQoJ2xvb2suZWRpdCcpKQ0KCQkJCXsNCgkJCQkJJGl0ZW0tPmVkaXRMaW5rID0gJzxiciAvPjxiciAvPjxhIGNsYXNzPSJ1ay1idXR0b24gdWstYnV0dG9uLXByaW1hcnkgdWstd2lkdGgtMS0xIiBocmVmPSInOw0KCQkJCQkkaXRlbS0+ZWRpdExpbmsgLj0gSm9vbWxhX19fZDRjNzYwOTlfNGMzMl80MDhhXzg3MDFfZDBhNzI0NDg0ZGZkX19fUG93ZXI6Ol8oJ2luZGV4LnBocD9vcHRpb249Y29tX1tbW2NvbXBvbmVudF1dXSZ2aWV3PWxvb2smdGFzaz1sb29rLmVkaXQmaWQ9JyAuICRpdGVtLT5pZCk7DQoJCQkJCSRpdGVtLT5lZGl0TGluayAuPSAnIj48aSBjbGFzcz0idWstaWNvbi1wZW5jaWwiPjwvaT48c3BhbiBjbGFzcz0idWstaGlkZGVuLXNtYWxsIj4nOw0KCQkJCQkkaXRlbS0+ZWRpdExpbmsgLj0gVGV4dDo6XygnRWRpdCBMb29rJyk7DQoJCQkJCSRpdGVtLT5lZGl0TGluayAuPSAnPC9zcGFuPjwvYT4nOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkkaXRlbS0+ZWRpdExpbmsgPSAnJzsNCgkJCQl9DQoJCQl9DQoJCX0=', 1, 0, '', '', '{}', '', 2, '{}', '{}', '{}', 1, 'Looks', '{\"order0\":{\"table_key\":\"a.name\",\"direction\":\"ASC\"}}', '', '', 'a.*', 'c1053952-8a84-4398-aef1-41726f7c0043', '{\"where0\":{\"table_key\":\"a.published\",\"operator\":1,\"value_key\":\"1\"}}', '', '{}', '{\"dynamic_get_headers\":{\"add_site_view_model\":\"0\",\"site_view_model\":\"\",\"power_site_view_model\":[],\"add_site_view_html\":\"0\",\"site_view_html\":\"\",\"power_site_view_html\":[],\"add_site_view\":\"0\",\"site_view\":\"\",\"power_site_view\":[],\"add_site_view_controller\":\"0\",\"site_view_controller\":\"\",\"power_site_view_controller\":[],\"add_site_views_model\":\"0\",\"site_views_model\":\"\",\"power_site_views_model\":[],\"add_site_views_html\":\"0\",\"site_views_html\":\"\",\"power_site_views_html\":[],\"add_site_views\":\"0\",\"site_views\":\"\",\"power_site_views\":[],\"add_site_views_controller\":\"0\",\"site_views_controller\":\"\",\"power_site_views_controller\":[],\"add_custom_admin_view_model\":\"0\",\"custom_admin_view_model\":\"\",\"power_custom_admin_view_model\":[],\"add_custom_admin_view_html\":\"0\",\"custom_admin_view_html\":\"\",\"power_custom_admin_view_html\":[],\"add_custom_admin_view\":\"0\",\"custom_admin_view\":\"\",\"power_custom_admin_view\":[],\"add_custom_admin_view_controller\":\"0\",\"custom_admin_view_controller\":\"\",\"power_custom_admin_view_controller\":[],\"add_custom_admin_views_model\":\"0\",\"custom_admin_views_model\":\"\",\"power_custom_admin_views_model\":[],\"add_custom_admin_views_html\":\"0\",\"custom_admin_views_html\":\"\",\"power_custom_admin_views_html\":[],\"add_custom_admin_views\":\"0\",\"custom_admin_views\":\"\",\"power_custom_admin_views\":[],\"add_custom_admin_views_controller\":\"0\",\"custom_admin_views_controller\":\"\",\"power_custom_admin_views_controller\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, 14, 0, 13, '32b3ae7d-8aa8-47f1-ab2e-30076ddaa029'), -(39, 0, 0, 0, 0, 0, '', '', '', '', '', 1, 0, '', '', '{\"filter0\":{\"filter_type\":1,\"state_key\":\"id\",\"operator\":1,\"table_key\":\"a.id\"}}', '', 1, '{}', '{}', '{\"join_view_table0\":{\"view_table\":\"595ba2c9-21fa-43a4-9af7-93c9cfb21b82\",\"row_type\":2,\"as\":\"d\",\"type\":1,\"on_field\":\"a.guid\",\"operator\":1,\"join_field\":\"d.entity\",\"selection\":\"d.email AS email\\r\\nd.mobile_phone AS mobile_phone\\r\\nd.dateofbirth AS dateofbirth\\r\\nd.website AS website\"}}', 1, 'Looking', '{}', '', '', 'a.*', 'c1053952-8a84-4398-aef1-41726f7c0043', '{}', '', '{}', '{\"dynamic_get_headers\":{\"add_site_view_model\":\"0\",\"site_view_model\":\"\",\"power_site_view_model\":[],\"add_site_view_html\":\"0\",\"site_view_html\":\"\",\"power_site_view_html\":[],\"add_site_view\":\"0\",\"site_view\":\"\",\"power_site_view\":[],\"add_site_view_controller\":\"0\",\"site_view_controller\":\"\",\"power_site_view_controller\":[],\"add_site_views_model\":\"0\",\"site_views_model\":\"\",\"power_site_views_model\":[],\"add_site_views_html\":\"0\",\"site_views_html\":\"\",\"power_site_views_html\":[],\"add_site_views\":\"0\",\"site_views\":\"\",\"power_site_views\":[],\"add_site_views_controller\":\"0\",\"site_views_controller\":\"\",\"power_site_views_controller\":[],\"add_custom_admin_view_model\":\"0\",\"custom_admin_view_model\":\"\",\"power_custom_admin_view_model\":[],\"add_custom_admin_view_html\":\"0\",\"custom_admin_view_html\":\"\",\"power_custom_admin_view_html\":[],\"add_custom_admin_view\":\"0\",\"custom_admin_view\":\"\",\"power_custom_admin_view\":[],\"add_custom_admin_view_controller\":\"0\",\"custom_admin_view_controller\":\"\",\"power_custom_admin_view_controller\":[],\"add_custom_admin_views_model\":\"0\",\"custom_admin_views_model\":\"\",\"power_custom_admin_views_model\":[],\"add_custom_admin_views_html\":\"0\",\"custom_admin_views_html\":\"\",\"power_custom_admin_views_html\":[],\"add_custom_admin_views\":\"0\",\"custom_admin_views\":\"\",\"power_custom_admin_views\":[],\"add_custom_admin_views_controller\":\"0\",\"custom_admin_views_controller\":\"\",\"power_custom_admin_views_controller\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, 17, 0, 0, '98e6ea56-0911-4d89-b1f4-8f0bb1e4aa5a'), +(36, 0, 0, 1, 0, 0, '', '', '', '', 'CQkvLyBkbyBhIHF1aWNrIGJ1aWxkIG9mIGFsbCBlZGl0IGxpbmtzIGxpbmtzDQoJCWlmIChpc3NldCgkaXRlbXMpICYmICRpdGVtcykNCgkJew0KCQkJZm9yZWFjaCAoJGl0ZW1zIGFzICRuciA9PiAmJGl0ZW0pDQoJCQl7DQoJCQkJJGNhbkRvID0gW1tbQ29tcG9uZW50XV1dSGVscGVyOjpnZXRBY3Rpb25zKCdsb29rJywkaXRlbSwnbG9va3MnKTsNCgkJCQlpZiAoJGNhbkRvLT5nZXQoJ2xvb2suZWRpdCcpKQ0KCQkJCXsNCgkJCQkJJGl0ZW0tPmVkaXRMaW5rID0gJzxiciAvPjxiciAvPjxhIGNsYXNzPSJ1ay1idXR0b24gdWstYnV0dG9uLXByaW1hcnkgdWstd2lkdGgtMS0xIiBocmVmPSInOw0KCQkJCQkkaXRlbS0+ZWRpdExpbmsgLj0gSm9vbWxhX19fZDRjNzYwOTlfNGMzMl80MDhhXzg3MDFfZDBhNzI0NDg0ZGZkX19fUG93ZXI6Ol8oJ2luZGV4LnBocD9vcHRpb249Y29tX1tbW2NvbXBvbmVudF1dXSZ2aWV3PWxvb2smdGFzaz1sb29rLmVkaXQmaWQ9JyAuICRpdGVtLT5pZCk7DQoJCQkJCSRpdGVtLT5lZGl0TGluayAuPSAnIj48aSBjbGFzcz0idWstaWNvbi1wZW5jaWwiPjwvaT48c3BhbiBjbGFzcz0idWstaGlkZGVuLXNtYWxsIj4nOw0KCQkJCQkkaXRlbS0+ZWRpdExpbmsgLj0gVGV4dDo6XygnRWRpdCBMb29rJyk7DQoJCQkJCSRpdGVtLT5lZGl0TGluayAuPSAnPC9zcGFuPjwvYT4nOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkkaXRlbS0+ZWRpdExpbmsgPSAnJzsNCgkJCQl9DQoJCQl9DQoJCX0=', 1, 0, '', '', '{}', '', 2, '{}', '{}', '{}', 1, 'Looks', '{\"order0\":{\"table_key\":\"a.name\",\"direction\":\"ASC\"}}', '', '', 'a.*', 'c1053952-8a84-4398-aef1-41726f7c0043', '{\"where0\":{\"table_key\":\"a.published\",\"operator\":1,\"value_key\":\"1\"}}', '', '{}', '{\"dynamic_get_headers\":{\"add_site_view_model\":\"0\",\"site_view_model\":\"\",\"power_site_view_model\":[],\"add_site_view_html\":\"0\",\"site_view_html\":\"\",\"power_site_view_html\":[],\"add_site_view\":\"0\",\"site_view\":\"\",\"power_site_view\":[],\"add_site_view_controller\":\"0\",\"site_view_controller\":\"\",\"power_site_view_controller\":[],\"add_site_views_model\":\"0\",\"site_views_model\":\"\",\"power_site_views_model\":[],\"add_site_views_html\":\"0\",\"site_views_html\":\"\",\"power_site_views_html\":[],\"add_site_views\":\"0\",\"site_views\":\"\",\"power_site_views\":[],\"add_site_views_controller\":\"0\",\"site_views_controller\":\"\",\"power_site_views_controller\":[],\"add_custom_admin_view_model\":\"0\",\"custom_admin_view_model\":\"\",\"power_custom_admin_view_model\":[],\"add_custom_admin_view_html\":\"0\",\"custom_admin_view_html\":\"\",\"power_custom_admin_view_html\":[],\"add_custom_admin_view\":\"0\",\"custom_admin_view\":\"\",\"power_custom_admin_view\":[],\"add_custom_admin_view_controller\":\"0\",\"custom_admin_view_controller\":\"\",\"power_custom_admin_view_controller\":[],\"add_custom_admin_views_model\":\"0\",\"custom_admin_views_model\":\"\",\"power_custom_admin_views_model\":[],\"add_custom_admin_views_html\":\"0\",\"custom_admin_views_html\":\"\",\"power_custom_admin_views_html\":[],\"add_custom_admin_views\":\"0\",\"custom_admin_views\":\"\",\"power_custom_admin_views\":[],\"add_custom_admin_views_controller\":\"0\",\"custom_admin_views_controller\":\"\",\"power_custom_admin_views_controller\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, 16, 0, 13, '32b3ae7d-8aa8-47f1-ab2e-30076ddaa029'), +(39, 0, 0, 0, 0, 0, '', '', '', '', '', 1, 0, '', '', '{\"filter0\":{\"filter_type\":1,\"state_key\":\"id\",\"operator\":1,\"table_key\":\"a.id\"}}', '', 1, '{}', '{}', '{\"join_view_table0\":{\"view_table\":\"595ba2c9-21fa-43a4-9af7-93c9cfb21b82\",\"row_type\":2,\"as\":\"d\",\"type\":1,\"on_field\":\"a.guid\",\"operator\":1,\"join_field\":\"d.entity\",\"selection\":\"d.email AS email\\r\\nd.mobile_phone AS mobile_phone\\r\\nd.dateofbirth AS dateofbirth\\r\\nd.website AS website\"}}', 1, 'Looking', '{}', '', '', 'a.*', 'c1053952-8a84-4398-aef1-41726f7c0043', '{}', '', '{}', '{\"dynamic_get_headers\":{\"add_site_view_model\":\"0\",\"site_view_model\":\"\",\"power_site_view_model\":[],\"add_site_view_html\":\"0\",\"site_view_html\":\"\",\"power_site_view_html\":[],\"add_site_view\":\"0\",\"site_view\":\"\",\"power_site_view\":[],\"add_site_view_controller\":\"0\",\"site_view_controller\":\"\",\"power_site_view_controller\":[],\"add_site_views_model\":\"0\",\"site_views_model\":\"\",\"power_site_views_model\":[],\"add_site_views_html\":\"0\",\"site_views_html\":\"\",\"power_site_views_html\":[],\"add_site_views\":\"0\",\"site_views\":\"\",\"power_site_views\":[],\"add_site_views_controller\":\"0\",\"site_views_controller\":\"\",\"power_site_views_controller\":[],\"add_custom_admin_view_model\":\"0\",\"custom_admin_view_model\":\"\",\"power_custom_admin_view_model\":[],\"add_custom_admin_view_html\":\"0\",\"custom_admin_view_html\":\"\",\"power_custom_admin_view_html\":[],\"add_custom_admin_view\":\"0\",\"custom_admin_view\":\"\",\"power_custom_admin_view\":[],\"add_custom_admin_view_controller\":\"0\",\"custom_admin_view_controller\":\"\",\"power_custom_admin_view_controller\":[],\"add_custom_admin_views_model\":\"0\",\"custom_admin_views_model\":\"\",\"power_custom_admin_views_model\":[],\"add_custom_admin_views_html\":\"0\",\"custom_admin_views_html\":\"\",\"power_custom_admin_views_html\":[],\"add_custom_admin_views\":\"0\",\"custom_admin_views\":\"\",\"power_custom_admin_views\":[],\"add_custom_admin_views_controller\":\"0\",\"custom_admin_views_controller\":\"\",\"power_custom_admin_views_controller\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, 18, 0, 0, '98e6ea56-0911-4d89-b1f4-8f0bb1e4aa5a'), (139, 0, 0, 0, 0, 0, '', '', '', '', '', 1, 0, NULL, '', '{}', '', 1, '{}', '{}', '{}', 3, 'Item Importer', '{}', '', 'CQkJCSRndWlkID0gU3VwZXJfX180N2E2MzcyOF9jZDVkXzRkNTNfOTljZl8yNDA5YmQxYzc0NGNfX19Qb3dlcjo6Z2V0KCdbW1tjb21wb25lbnRdXV1faW1wb3J0ZXJfZ3VpZCcsIFN1cGVyX19fOWM1MTNiYWZfYjI3OV80M2ZkX2FlMjlfYTU4NWM4Y2JjNGYwX19fUG93ZXI6OmdldCgpKTsNCgkJCQkkZmlsZV90eXBlID0gU3VwZXJfX185ZDc2YjhkY18zODgzXzQ3NTVfYjExY18xMzFkMTljYThhNTNfX19Qb3dlcjo6XygnTG9hZCcpLT52YWx1ZShbJ2EuZ3VpZCcgPT4gJ2d1aWQnXSwgWydhJyA9PiAnZmlsZV90eXBlJ10sIFsndGFyZ2V0JyA9PiBbJ3ZhbHVlJyA9PiAnJSJbW1tzdmlld11dXSIlJywgJ29wZXJhdG9yJyA9PiAnTElLRSddXSk7DQoNCgkJCQkkZGF0YSA9IChvYmplY3QpIFsNCgkJCQkJJ2d1aWQnID0+ICRndWlkLA0KCQkJCQknZmlsZV90eXBlJyA9PiAkZmlsZV90eXBlDQoJCQkJXTs=', NULL, '', '{}', NULL, '{}', '{\"dynamic_get_headers\":{\"add_site_view_model\":\"0\",\"site_view_model\":\"\",\"power_site_view_model\":[],\"add_site_view_html\":\"0\",\"site_view_html\":\"\",\"power_site_view_html\":[],\"add_site_view\":\"0\",\"site_view\":\"\",\"power_site_view\":[],\"add_site_view_controller\":\"0\",\"site_view_controller\":\"\",\"power_site_view_controller\":[],\"add_site_views_model\":\"0\",\"site_views_model\":\"\",\"power_site_views_model\":[],\"add_site_views_html\":\"0\",\"site_views_html\":\"\",\"power_site_views_html\":[],\"add_site_views\":\"0\",\"site_views\":\"\",\"power_site_views\":[],\"add_site_views_controller\":\"0\",\"site_views_controller\":\"\",\"power_site_views_controller\":[],\"add_custom_admin_view_model\":\"0\",\"custom_admin_view_model\":\"\",\"power_custom_admin_view_model\":[],\"add_custom_admin_view_html\":\"0\",\"custom_admin_view_html\":\"\",\"power_custom_admin_view_html\":[],\"add_custom_admin_view\":\"0\",\"custom_admin_view\":\"\",\"power_custom_admin_view\":[],\"add_custom_admin_view_controller\":\"0\",\"custom_admin_view_controller\":\"\",\"power_custom_admin_view_controller\":[],\"add_custom_admin_views_model\":\"0\",\"custom_admin_views_model\":\"\",\"power_custom_admin_views_model\":[],\"add_custom_admin_views_html\":\"0\",\"custom_admin_views_html\":\"\",\"power_custom_admin_views_html\":[],\"add_custom_admin_views\":\"0\",\"custom_admin_views\":\"\",\"power_custom_admin_views\":[],\"add_custom_admin_views_controller\":\"0\",\"custom_admin_views_controller\":\"\",\"power_custom_admin_views_controller\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, 3, 0, 58, 'ebfab0ae-d368-4d2a-807b-c9d2d0809a60'), (140, 0, 0, 0, 0, 0, '', '', '', '', '', 1, 0, NULL, '', '{}', 'getMessages', 3, '{}', '{}', '{}', 1, 'ImportLogMessages', '{}', '', '', 'a.message AS message\r\na.message_status AS message_status', 'ab2bbdfc-c0a0-4ffc-9556-67d5af8bec64', '{\"where0\":{\"table_key\":\"a.published\",\"operator\":1,\"value_key\":\"1\"},\"where1\":{\"table_key\":\"a.entity_type\",\"operator\":1,\"value_key\":\"$entity_type\"},\"where2\":{\"table_key\":\"a.entity\",\"operator\":1,\"value_key\":\"$entity\"}}', NULL, '{}', '{\"dynamic_get_headers\":{\"add_site_view_model\":\"0\",\"site_view_model\":\"\",\"power_site_view_model\":[],\"add_site_view_html\":\"0\",\"site_view_html\":\"\",\"power_site_view_html\":[],\"add_site_view\":\"0\",\"site_view\":\"\",\"power_site_view\":[],\"add_site_view_controller\":\"0\",\"site_view_controller\":\"\",\"power_site_view_controller\":[],\"add_site_views_model\":\"0\",\"site_views_model\":\"\",\"power_site_views_model\":[],\"add_site_views_html\":\"0\",\"site_views_html\":\"\",\"power_site_views_html\":[],\"add_site_views\":\"0\",\"site_views\":\"\",\"power_site_views\":[],\"add_site_views_controller\":\"0\",\"site_views_controller\":\"\",\"power_site_views_controller\":[],\"add_custom_admin_view_model\":\"0\",\"custom_admin_view_model\":\"\",\"power_custom_admin_view_model\":[],\"add_custom_admin_view_html\":\"0\",\"custom_admin_view_html\":\"\",\"power_custom_admin_view_html\":[],\"add_custom_admin_view\":\"0\",\"custom_admin_view\":\"\",\"power_custom_admin_view\":[],\"add_custom_admin_view_controller\":\"0\",\"custom_admin_view_controller\":\"\",\"power_custom_admin_view_controller\":[],\"add_custom_admin_views_model\":\"0\",\"custom_admin_views_model\":\"\",\"power_custom_admin_views_model\":[],\"add_custom_admin_views_html\":\"0\",\"custom_admin_views_html\":\"\",\"power_custom_admin_views_html\":[],\"add_custom_admin_views\":\"0\",\"custom_admin_views\":\"\",\"power_custom_admin_views\":[],\"add_custom_admin_views_controller\":\"0\",\"custom_admin_views_controller\":\"\",\"power_custom_admin_views_controller\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, 8, 0, 59, 'c3542e52-cba1-42de-9ffa-0919c0082285'), (141, 1, 0, 1, 0, 0, '', '', '', '', 'CQlpZiAoIWVtcHR5KCRpdGVtcykpDQoJCXsNCgkJCSRtb2RlbCA9IFN1cGVyX19fNjQwYjUzNTJfZmIwOV80MjVmX2EyNmVfY2Q0NGVkYTAzZjE1X19fUG93ZXI6OmdldE1vZGVsKCdpdGVtc19pbXBvcnRfcXVldWUnKTsNCgkJCSRudW1iZXIgPSBjb3VudCgkaXRlbXMpOw0KCQkJZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKQ0KCQkJew0KCQkJCSRpdGVtLT50YXJnZXQgPSAnaXRlbV9pbXBvcnQnOw0KCQkJCSRpdGVtLT5pbXBvcnRfc3RhdHVzID0gVGV4dDo6XygkbW9kZWwtPnNlbGVjdGlvblRyYW5zbGF0aW9uKCRpdGVtLT5pbXBvcnRfc3RhdHVzLCAnaW1wb3J0X3N0YXR1cycpKTsNCgkJCQkkaXRlbS0+Y3JlYXRlZCA9IFN1cGVyX19fOTkzZmU5MTNfOGUzNl80ODAwX2E1ZjdfNTQ0YWE3MjhlZTQ4X19fUG93ZXI6OmZhbmN5RGF0ZSgkaXRlbS0+Y3JlYXRlZCk7DQoJCQkJJGl0ZW0tPm51bWJlciA9ICRudW1iZXI7DQoJCQkJJG51bWJlci0tOw0KCQkJfQ0KCQl9', 1, 0, NULL, '', '{\"filter0\":{\"filter_type\":2,\"state_key\":\"$this->user->id\",\"operator\":1,\"table_key\":\"a.created_by\"}}', 'getQueue', 4, '{}', '{}', '{\"join_view_table0\":{\"view_table\":\"224eb9c7-8b40-48cf-bf77-2afa291fd54a\",\"row_type\":1,\"as\":\"f\",\"type\":1,\"on_field\":\"a.file\",\"operator\":1,\"join_field\":\"f.guid\",\"selection\":\"f.name AS file_name\"}}', 1, 'Item Import Queue', '{\"order0\":{\"table_key\":\"a.id\",\"direction\":\"DESC\"}}', '', '', 'a.import_status AS import_status\r\na.created AS created\r\na.guid AS guid', 'a9f19a16-fadb-44ea-a9b6-41130aad05ec', '{\"where0\":{\"table_key\":\"a.published\",\"operator\":1,\"value_key\":\"1\"}}', NULL, '{}', '{\"dynamic_get_headers\":{\"add_site_view_model\":\"0\",\"site_view_model\":\"\",\"power_site_view_model\":[],\"add_site_view_html\":\"0\",\"site_view_html\":\"\",\"power_site_view_html\":[],\"add_site_view\":\"0\",\"site_view\":\"\",\"power_site_view\":[],\"add_site_view_controller\":\"0\",\"site_view_controller\":\"\",\"power_site_view_controller\":[],\"add_site_views_model\":\"0\",\"site_views_model\":\"\",\"power_site_views_model\":[],\"add_site_views_html\":\"0\",\"site_views_html\":\"\",\"power_site_views_html\":[],\"add_site_views\":\"0\",\"site_views\":\"\",\"power_site_views\":[],\"add_site_views_controller\":\"0\",\"site_views_controller\":\"\",\"power_site_views_controller\":[],\"add_custom_admin_view_model\":\"0\",\"custom_admin_view_model\":\"\",\"power_custom_admin_view_model\":[],\"add_custom_admin_view_html\":\"0\",\"custom_admin_view_html\":\"\",\"power_custom_admin_view_html\":[],\"add_custom_admin_view\":\"0\",\"custom_admin_view\":\"\",\"power_custom_admin_view\":[],\"add_custom_admin_view_controller\":\"0\",\"custom_admin_view_controller\":\"\",\"power_custom_admin_view_controller\":[],\"add_custom_admin_views_model\":\"0\",\"custom_admin_views_model\":\"\",\"power_custom_admin_views_model\":[],\"add_custom_admin_views_html\":\"0\",\"custom_admin_views_html\":\"\",\"power_custom_admin_views_html\":[],\"add_custom_admin_views\":\"0\",\"custom_admin_views\":\"\",\"power_custom_admin_views\":[],\"add_custom_admin_views_controller\":\"0\",\"custom_admin_views_controller\":\"\",\"power_custom_admin_views_controller\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, 8, 0, 60, '0ac7277b-8f9f-4119-b22b-26f8c22e988b'); @@ -2954,55 +2954,55 @@ INSERT INTO `#__componentbuilder_field` (`id`, `add_css_view`, `add_css_views`, -- -------------------------------------------------------- -- Batch 1 of 1 (48 rows) -INSERT INTO `#__componentbuilder_fieldtype` (`id`, `description`, `name`, `properties`, `short_description`, `params`, `published`, `version`, `hits`, `ordering`, `guid`) VALUES -(1, 'The calendar form field type provides a text box for entry of a date. An icon next to the text box provides a link to a pop-up calendar, which can also be used to enter the date value. If the field has a saved value this is shown in the text box.', 'Calendar', '{\"properties0\":{\"name\":\"type\",\"example\":\"calendar\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be calendar.\"},\"properties1\":{\"name\":\"name\",\"example\":\"date\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a date\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"NOW\",\"adjustable\":\"1\",\"description\":\"(optional) is the default date. This must be given in the same format as specified by the format argument. You can put \\\"NOW\\\" to have current time.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the text box.\"},\"properties5\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is whether the text box is read-only (true or false). If the text box is read-only, the date cannot be changed, but can be selected and copied. No calendar icon will be shown.\"},\"properties6\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is whether the text box is disabled (true or false). If the text box is disabled, the date cannot be changed, selected or copied.\"},\"properties7\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties8\":{\"name\":\"format\",\"example\":\"%d-%m-%Y\",\"adjustable\":\"1\",\"description\":\"(optional) is the date format to be used. This is in the format used by PHP to specify date string formats (see below). If no format argument is given, \'%Y-%m-%d\' is assumed (giving dates like \'2008-04-16\').\"},\"properties9\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is time zone to be used. There are two values; server_utc and user_utc. The first one is server time zone and the later is user time zone as configured in global configuration and user information respectively.\"},\"properties10\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties11\":{\"name\":\"message\",\"example\":\"Error! Please add some text here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties12\":{\"name\":\"size\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional)\"},\"properties13\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties14\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties15\":{\"name\":\"translateformat\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): If set to true, the calendar will use a language string to determine the format. The `format` attribute is ignored. If false, the `format` attribute is used (same behaviour as today). (starting with 3.7.0)\"},\"properties16\":{\"name\":\"showtime\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): If set to true and translateformat is true, the language key DATE_FORMAT_CALENDAR_DATETIME is used, otherwise DATE_FORMAT_CALENDAR_DATE. (starting with 3.7.0)\"},\"properties17\":{\"name\":\"timeformat\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): can be set to 12 (and specify AM or PM) or 24 (starting with 3.7.0)\"},\"properties18\":{\"name\":\"singleheader\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to false, the year and the month selection will be set on two separates lines, with independant selection (starting with 3.7.0)\"},\"properties19\":{\"name\":\"todaybutton\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to true, a button is added at the bottom of the datePicker to select the date of the current day (starting with 3.7.0)\"},\"properties20\":{\"name\":\"weeknumbers\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to true, a column is added at the left of the datePicker to display the number of the week in the current year (starting with 3.7.0)\"},\"properties21\":{\"name\":\"filltable\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to true, dates of the previous and next month is added at the top and the bottom of the current month to fill the grid (starting with 3.7.0)\"},\"properties22\":{\"name\":\"minyear\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): set a signed integer for a number of years (-10, -2, 0, 7, 12, ...) to define the relative lower limit for the year selection. The user could not select a year before your limit (starting with 3.7.0)\"},\"properties23\":{\"name\":\"maxyear\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): set a signed integer for a number of years (-10, -2, 0, 7, 12, ...) to define the relative upper limit for the year selection. The user could not select a year after your limit (starting with 3.7.0)\"}}', 'Text box for entry of a date.', '{\"source\":{\"618e8916-4028-4d5b-b85c-970304685913-settings\":\"6ae1ea0dac5b29ee5cb356c6f17fe14562366587\",\"618e8916-4028-4d5b-b85c-970304685913-readme\":\"c9eeddeadaced241e8e7289a1c7ac591d731043f\"}}', 1, 13, 0, 0, '6cf5a33f-cb25-4a58-bfec-7e1511896402'), -(2, 'The category form field type provides a drop down list of all published categories for a certain extension. If the parameter has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Category', '{\"properties0\":{\"name\":\"type\",\"example\":\"category\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be category.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mycategory\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a category\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"extension\",\"example\":\"com_content\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the name of the extension for which the categories will be retrieved. For example, to list content categories, use the value \'com_content\'. You can add also target one view, use the value \'com_component.view\'.\"},\"properties4\":{\"name\":\"scope\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is an alias for extension.\"},\"properties5\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"show_root\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) is whether a choice representing the root category will be shown. Remove completely if it is not to be shown.\"},\"properties7\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default category ID number.\"},\"properties8\":{\"name\":\"description\",\"example\":\"select one of the following categories\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties9\":{\"name\":\"class\",\"example\":\"inputbox\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties10\":{\"name\":\"published\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) (1\\/0\\/2\\/-2) is whether the drop down will show only published (1), unpublished (0), archived (2) or trashed (-2) categories. It is possible to combine different publishing status by entering the list of the corresponding numbers separated by comma (e.g. \\\"0,2,-2\\\" will display only unpublished, archived and trashed categories in the drop-down).\"},\"properties11\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Drop down list of categories.', '', 1, 15, 0, 0, 'f70346b3-2096-4f44-8b26-01ab87da7d1e'), -(3, 'The checkbox form field type provides a single checkbox. If the parameter has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Checkbox', '{\"properties0\":{\"name\":\"type\",\"example\":\"checkbox\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be checkbox\"},\"properties1\":{\"name\":\"name\",\"example\":\"show_title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Show title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"value\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) is the value of the parameter if this checkbox is set (usually 1).\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value (usually 0 or 1).\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Show the title of the item\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties7\":{\"name\":\"class\",\"example\":\"inputbox\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties9\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (JavaScript use)\"}}', 'A single checkbox.', '', 1, 10, 0, 0, '10066262-b6e3-4f82-941e-cbe4f61ddd6c'), -(4, 'The checkboxes form field type provides a set of checkboxes. Note: unlike most standard form field types, such as textfield or checkbox, this field is not an \"out of the box\" solution. It will create checkboxes for you, and submit their values in form of an array.', 'Checkboxes', '{\"properties0\":{\"name\":\"type\",\"example\":\"checkboxes\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be checkboxs\"},\"properties1\":{\"name\":\"name\",\"example\":\"toppings\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select Toppings\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"option\",\"example\":\"anch|Anchovies,chor|Chorizo,on|Onions,mush|Mushrooms\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value.\"},\"properties5\":{\"name\":\"description\",\"example\":\"Select the topping of your choice\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Checkboxes that can be used for multi-select.', '', 1, 5, 0, 0, 'ac10859b-58da-4584-9682-36a6c2c8d04d'), -(5, 'Provides a color picker input that allows users to select a color from a visual palette or enter a hexadecimal color code, such as #ff00ff.', 'Color', '{\"properties0\":{\"name\":\"type\",\"example\":\"color\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be color.\"},\"properties1\":{\"name\":\"name\",\"example\":\"backgroundcolor\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"default\",\"example\":\"#FFFFFF\",\"adjustable\":\"1\",\"description\":\"(optional) provides a color when not set.\"},\"properties3\":{\"name\":\"label\",\"example\":\"Background\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties4\":{\"name\":\"description\",\"example\":\"Select the background color here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) tooltip for the form field.\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Color picker when clicking the input box.', '', 1, 6, 0, 0, '7f60f198-53e7-4fe9-813f-d1b6c553680e'), -(6, 'The list form field type provides a drop down list or a list box of other current component table entries. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Custom', '{\"properties0\":{\"name\":\"type\",\"example\":\"subjects\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a Subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"list_class\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties6\":{\"name\":\"layout\",\"example\":\"joomla.form.field.list-fancy-select\",\"adjustable\":\"1\",\"description\":\"(optional) New layout field added in Joomla 4\"},\"properties7\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties8\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties9\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties10\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties11\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties12\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties14\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties15\":{\"name\":\"extends\",\"example\":\"list\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The JFormField sub class that should be extended. The options are (\'list\',\'radio\',\'checkboxes\')\"},\"properties16\":{\"name\":\"button\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) to add new button next to field in edit view\"},\"properties17\":{\"name\":\"table\",\"example\":\"#__###component###_subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The table being linked to. The ###TABLE### placeholder holds the table in the php.\"},\"properties18\":{\"name\":\"component\",\"example\":\"com_###component###\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the component where this table is found. Must be com_users\"},\"properties19\":{\"name\":\"entity\",\"example\":\"###view###\",\"adjustable\":\"1\",\"description\":\"(optional) The area\\/entity this custom field is loaded. This value can be used in the field custom code.\"},\"properties20\":{\"name\":\"view\",\"example\":\"subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The single view name if the place this field is added.\"},\"properties21\":{\"name\":\"views\",\"example\":\"subjects\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The list view name if the place this field is added.\"},\"properties22\":{\"name\":\"value_field\",\"example\":\"name\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the text field in table linked to. The ###TEXT### placeholder holds the value_field in the php.\"},\"properties23\":{\"name\":\"key_field\",\"example\":\"id\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The field from the linked table to save in this table as the unique key. The ###ID### placeholder holds the key_field in the php.\"},\"properties24\":{\"name\":\"prime_php\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"This field makes sure that the PHP used here is used to build the field type, and other are custom fields with the same field type are ignored. So to avoid that they over write the PHP added here. You should only have one prime per\\/type. To disable remove the field or set to 0\"},\"properties25\":{\"name\":\"type_php_1\",\"example\":\"\\/\\/ Get the user object.\\r\\n\\t\\t$user = Factory::getApplication()->getIdentity();\\r\\n\\t\\t\\/\\/ Get the databse object.\\r\\n\\t\\t$db = Factory::getContainer()->get(DatabaseInterface::class);\\r\\n\\t\\t$query = $db->getQuery(true);\\r\\n\\t\\t$query->select($db->quoteName(array(\'a.###ID###\',\'a.###TEXT###\'),array(\'###ID###\',\'###CODE_TEXT###\')));\\r\\n\\t\\t$query->from($db->quoteName(\'###TABLE###\', \'a\'));\\r\\n\\t\\t$query->where($db->quoteName(\'a.published\') . \' = 1\');\\r\\n\\t\\t$query->order(\'a.###TEXT### ASC\');\\r\\n\\t\\t\\/\\/ Implement View Level Access (if set in table)\\r\\n\\t\\tif (!$user->authorise(\'core.options\', \'[[[com_component]]]\'))\\r\\n\\t\\t{\\r\\n\\t\\t\\t$columns = $db->getTableColumns(\'###TABLE###\');\\r\\n\\t\\t\\tif(isset($columns[\'access\']))\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$groups = implode(\',\', $user->getAuthorisedViewLevels());\\r\\n\\t\\t\\t\\t$query->where(\'a.access IN (\' . $groups . \')\');\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t\\t$db->setQuery((string)$query);\\r\\n\\t\\t$items = $db->loadObjectList();\\r\\n\\t\\t$options = [];\\r\\n\\t\\tif ($items)\\r\\n\\t\\t{\\r\\n\\t\\t\\tif ($this->multiple === false)\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$options[] = Html::_(\'select.option\', \'\', Text::_(\'Select an option\'));\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tforeach($items as $item)\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$options[] = Html::_(\'select.option\', $item->###ID###, $item->###CODE_TEXT###);\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t\\treturn $options;\",\"adjustable\":\"1\",\"description\":\"The php for the getOptions method.\"}}', 'Custom drop down list of items entries.', '', 1, 36, 0, 0, 'dd2e1f4b-f5db-45e8-85fa-efd27bae7b6a'), -(7, 'A CustomUser fieldtype displays a filtered list of users based on selected user groups. It can exclude users already linked to items in the current view, making it useful for assigning unique users within specific contexts.', 'CustomUser', '{\"properties0\":{\"name\":\"type\",\"example\":\"staffusers\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type.\"},\"properties1\":{\"name\":\"name\",\"example\":\"staff\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Staff\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties5\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties8\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties9\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"\"},\"properties10\":{\"name\":\"hint\",\"example\":\"select a user\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties12\":{\"name\":\"extends\",\"example\":\"user\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The JFormField sub class that should be extended. The options are (\'list\',\'radio\',\'checkboxes\')\"},\"properties13\":{\"name\":\"table\",\"example\":\"#__users\",\"mandatory\":\"1\",\"description\":\"(mandatory) The table being linked to. Must be #__users\"},\"properties14\":{\"name\":\"component\",\"example\":\"com_users\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the component where this table is found. Must be com_users\"},\"properties15\":{\"name\":\"view\",\"example\":\"###view###\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The single view name if the place this field is added.\"},\"properties16\":{\"name\":\"views\",\"example\":\"###views###\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The list view name if the place this field is added.\"},\"properties17\":{\"name\":\"value_field\",\"example\":\"name\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the text field in table linked to.\"},\"properties18\":{\"name\":\"key_field\",\"example\":\"id\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The field from the linked table to save in this table as the unique key.\"},\"properties19\":{\"name\":\"type_php_1\",\"example\":\"\\t\\t\\/\\/ set the groups array\\r\\n\\t\\treturn ComponentHelper::getParams(\'com_###component###\')->get(\'###type###\');\",\"adjustable\":\"1\",\"description\":\"The php for the getGroups method.\"},\"properties20\":{\"name\":\"type_phpx_1\",\"example\":\"\\t\\t\\/\\/ To ensure that there is only one record per user\\r\\n\\t\\t\\/\\/ Get a db connection.\\r\\n\\t\\t$db = Factory::getDbo();\\r\\n\\t\\t\\/\\/ Create a new query object.\\r\\n\\t\\t$query = $db->getQuery(true);\\r\\n\\t\\t\\/\\/ Select all records from the #__###component###_###view### table from ###CODE### column\\\".\\r\\n\\t\\t$query->select($db->quoteName(\'###CODE###\'));\\r\\n\\t\\t$query->from($db->quoteName(\'#__###component###_###view###\'));\\r\\n\\t\\t$db->setQuery($query);\\r\\n\\t\\t$db->execute();\\r\\n\\t\\t$found = $db->getNumRows();\\r\\n\\t\\tif ($found)\\r\\n\\t\\t{\\r\\n\\t\\t\\t\\/\\/ return all users already used\\r\\n\\t\\t\\treturn array_unique($db->loadColumn());\\r\\n\\t\\t}\\r\\n\\t\\treturn null;\",\"adjustable\":\"1\",\"description\":\"The php for the getExcluded method.\"}}', 'List of users.', '', 1, 7, 0, 0, 'a4a39f70-070f-459c-be4b-0ac103a29b9a'), -(8, 'The Editor field type provides a WYSIWYG (What You See Is What You Get) editor for rich text input, allowing users to format content visually without writing HTML.', 'Editor', '{\"properties0\":{\"name\":\"type\",\"example\":\"editor\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be editor.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mytextblock\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Test Field\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"Some text\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties5\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties6\":{\"name\":\"width\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the width (in pixels) of the wysiwyg editor and defaults to 100%.\"},\"properties7\":{\"name\":\"height\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the height (in pixels) of the wysiwyg editor and defaults to 250px.\"},\"properties8\":{\"name\":\"cols\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the width of the editor (in columns).\"},\"properties9\":{\"name\":\"rows\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the height of the editor (in rows).\"},\"properties10\":{\"name\":\"buttons\",\"example\":\"no\",\"adjustable\":\"1\",\"description\":\"(optional) can be an array of plugin buttons to be excluded or set to false. The default editors-xtd are: article, image, pagebreak and readmore.\"},\"properties11\":{\"name\":\"syntax\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) can be used to set the code syntax matching for this field.\"},\"properties12\":{\"name\":\"hide\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) array of plugin buttons to be hidden. eg... set buttons=\\\"true\\\" hide=\\\"readmore,pagebreak\\\"\"},\"properties13\":{\"name\":\"editor\",\"example\":\"codemirror|none\",\"adjustable\":\"1\",\"description\":\"specifies the editor to be used and can include two options (editor=\\\"desired|alternative\\\")\"},\"properties14\":{\"name\":\"filter\",\"example\":\"safehtml\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties15\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties16\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties17\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Editor area field.', '', 1, 13, 0, 0, '51f288d2-6eaa-42bc-a182-a6f69b3032b8'), -(9, 'The hidden form field type provides a hidden field for saving a field whose value cannot be altered directly by a user in the Administrator (it can be altered in code or by editing the params.ini file). If the parameter has a saved value, this is entered; otherwise, the default value (if defined) will be used.', 'Hidden', '{\"properties0\":{\"name\":\"type\",\"example\":\"hidden\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be hidden.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mysecretvariable\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"default\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the data which needs to be collected.\"},\"properties3\":{\"name\":\"filter\",\"example\":\"STRING\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties4\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"}}', 'Hidden field for storing fixed values.', '', 1, 3, 0, 0, '82f1b5ca-bb9b-44d7-9a7a-9a03fb2a31dd'), -(10, 'The integer form field type provides a select box with a range of integer values. If the field has a value saved, this value is displayed when the page is first loaded. If not, the default value (if any) is selected.', 'Integer', '{\"properties0\":{\"name\":\"type\",\"example\":\"integer\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be integer.\"},\"properties1\":{\"name\":\"name\",\"example\":\"size\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Size\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties7\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties9\":{\"name\":\"first\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the lowest on the list.\"},\"properties10\":{\"name\":\"last\",\"example\":\"20\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the highest on the list.\"},\"properties11\":{\"name\":\"step\",\"example\":\"5\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this integer, starting with the first value until the last value is reached.\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties13\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Dropdown of integers in a set range.', '', 1, 7, 0, 0, 'fdbb50ea-35d2-45b2-a0bc-076fdf1544b8'), -(11, 'The list form field type provides a drop down list or a list box of custom-defined entries. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'List', '{\"properties0\":{\"name\":\"type\",\"example\":\"list\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be list.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mylist\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an option\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"list_class\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties6\":{\"name\":\"layout\",\"example\":\"joomla.form.field.list-fancy-select\",\"adjustable\":\"1\",\"description\":\"(optional) New layout field added in Joomla 4\"},\"properties7\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties8\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) filter options\"},\"properties9\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties10\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties11\":{\"name\":\"option\",\"example\":\"0|Option 1,1|Option 2,2|Option 1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties12\":{\"name\":\"useglobal\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) if set to true, it will show the value that is set in the global configuration if found in the database.\"},\"properties13\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default list item value.\"},\"properties14\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties15\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Dropdown list of a custom-defined entries.', '', 1, 14, 0, 0, 'a51dfc06-1b9b-4d0a-86ba-f705bcd40d4d'), -(12, 'The media form field type provides modal access to the media manager for the choice of an image or other kind of media, e.g. video. Users with appropriate permissions will be able to upload files.', 'Media', '{\"properties0\":{\"name\":\"type\",\"example\":\"media\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be media.\"},\"properties1\":{\"name\":\"name\",\"example\":\"media\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Media\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"directory\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the directory from which the user will be able to choose a file. This attribute should be relative to the top level \\/images\\/ folder. The default is that the user will be confined to the top level \\/images\\/ folder.\"},\"properties5\":{\"name\":\"preview\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) shows or hides the preview of the currently chosen image. (\\\"true\\\": Show always, \\\"tooltip\\\": Show as tooltip, \\\"false\\\": Show never). Default is \\\"tooltip\\\".\"},\"properties6\":{\"name\":\"preview_width\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) sets the max-width of preview image (default: \\\"200\\\")\"},\"properties7\":{\"name\":\"preview_height\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) sets the max-height of preview image (default: \\\"200\\\")\"},\"properties8\":{\"name\":\"types\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a comma-separated list of file types (images, audios, videos, documents, directories). Default is images. This list decides which of the allowed file extensions from Media Manager configuration are used. For example, images,documents means only files with an allowed images extension or an allowed documents extension are available for selection. When the type directories is used then the field will allow selection of a directory; this can be useful in setting extension parameters, to define an upload destination for example.\"},\"properties9\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties10\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Select or upload media via modal.', '', 1, 9, 0, 0, '69957007-e3d4-4976-a32b-611d02dbad71'), -(13, 'The Meter form field type displays a visual indicator representing a numeric value within a specified range. It is useful for showing progress, performance, or any measurable quantity with optional thresholds for low, high, and optimum values.', 'Meter', '{\"properties0\":{\"name\":\"type\",\"example\":\"meter\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be meter.\"},\"properties1\":{\"name\":\"name\",\"example\":\"meter\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Meter\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"width\",\"example\":\"330px\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of meter box\"},\"properties4\":{\"name\":\"color\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The background color\"},\"properties5\":{\"name\":\"default\",\"example\":\"9\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"animated\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) lets the bar have strips\"},\"properties7\":{\"name\":\"active\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) lets the strips on the bar move\"},\"properties8\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties9\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties10\":{\"name\":\"min\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the min on the meter.\"},\"properties11\":{\"name\":\"max\",\"example\":\"20\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the max on meter.\"},\"properties12\":{\"name\":\"step\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this integer, starting with the first value until the last value is reached.\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Displays a value within a defined range.', '', 1, 4, 0, 0, '81668284-e572-4e17-927b-ba697fc64bd0'), -(14, 'This form field makes it possible to create titles, texts, descriptions and even alert boxes. It also allows you to bring order in the settings for extensions, by separating them with useful titles. Or adding descriptions for certain settings (without having to rely on the tooltips). Or adding any other text you want.', 'Note', '{\"properties0\":{\"name\":\"type\",\"example\":\"note\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be note\"},\"properties1\":{\"name\":\"name\",\"example\":\"note_one\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"The notice\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory or optional if using description) (translatable) is the descriptive title of the note \"},\"properties3\":{\"name\":\"description\",\"example\":\"The notice description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional if using label)(translatable) the description\\/text of the note \"},\"properties4\":{\"name\":\"heading\",\"example\":\"h4\",\"adjustable\":\"1\",\"description\":\"(optional) the type of heading element to use for the label (default: h4)\"},\"properties5\":{\"name\":\"class\",\"example\":\"alert\",\"adjustable\":\"1\",\"description\":\"(optional) a class name (or class names), like these examples ( alert, alert alert-info, alert alert-success, alert alert-error )\"},\"properties6\":{\"name\":\"close\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) a value of \'true\' (for alerts) or the value for the data-dismiss of the bootstrap close icon\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Displays custom text or headings in forms.', '', 1, 6, 0, 0, 'f9ecacd0-8481-4157-8c71-d7aaefc2b7c3'), -(15, 'The number form field type provides a single-line input for numeric values, typically displayed with up/down step controls (spinner). It supports attributes such as minimum, maximum, and step values, allowing you to define numeric ranges and precision for user input.', 'Number', '{\"properties0\":{\"name\":\"type\",\"example\":\"number\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be number.\"},\"properties1\":{\"name\":\"name\",\"example\":\"number\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Number\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"min\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the lowest on the list.\"},\"properties8\":{\"name\":\"max\",\"example\":\"40\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the highest on the list.\"},\"properties9\":{\"name\":\"step\",\"example\":\"5\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this number, starting with the first value until the last value is reached.\"},\"properties10\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Javascript that should run on changing of the value.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Single-line number input with step controls.', '', 1, 6, 0, 0, '5abd2b73-643b-4273-841a-787991aad968'), -(16, 'The password form field type provides a text box for entry of a password. The password characters will be obscured as they are entered. If the field has a saved value this is entered (in obscured form) into the text box. If not, the default value (if any)', 'Password', '{\"properties0\":{\"name\":\"type\",\"example\":\"password\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be password.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mypassword\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter A Password\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"default\",\"example\":\"secret\",\"adjustable\":\"1\",\"description\":\"(optional) is the default password.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"message\",\"example\":\"Error! Please add password here.\",\"adjustable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties12\":{\"name\":\"rules\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) determines whether the password should adhere to certain rules.\"},\"properties13\":{\"name\":\"field\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) used in validation of \\\"equals\\\" to link the field to match.\"},\"properties14\":{\"name\":\"filter\",\"example\":\"raw\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties15\":{\"name\":\"hint\",\"example\":\"Password Here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties16\":{\"name\":\"autocomplete\",\"example\":\"off\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties17\":{\"name\":\"strengthmeter\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) measures the strength of the password.\"},\"properties18\":{\"name\":\"force\",\"example\":\"off\",\"adjustable\":\"1\",\"description\":\"(optional) forces a password to be set.\"},\"properties19\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties20\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Text box for entry of a password.', '', 1, 12, 0, 0, '0022598d-0ee1-44f2-aa94-c2eb47595f73'), -(17, 'The radio form field type displays a set of radio buttons for selecting one option from a predefined list. If the field has a saved value, that option is selected when the page loads; otherwise, the default value (if any) is used.', 'Radio', '{\"properties0\":{\"name\":\"type\",\"example\":\"radio\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be radio.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myradiovalue\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an option\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) New in Joomla 3, if set to class=\\\"btn-group btn-group-yesno\\\" will show the nice coloured buttons\"},\"properties15\":{\"name\":\"layout\",\"example\":\"joomla.form.field.radio.switcher\",\"adjustable\":\"1\",\"description\":\"(optional) New layout field added in Joomla 4 layout=\\\"joomla.form.field.radio.switcher\\\" will show the nice switcher\"},\"properties5\":{\"name\":\"option\",\"example\":\"1|Yes,0|No\",\"adjustable\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties6\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default radio button item value.\"},\"properties7\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties8\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties14\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties9\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties10\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties11\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties13\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Radio buttons for option selection.', '', 1, 20, 0, 0, 'b868ed59-4208-4206-8504-95a35a74a11c'), -(18, 'The Range form field type displays a horizontal slider that allows users to select a numeric value within a defined range. It supports attributes such as minimum, maximum, and step values to control the slider’s behavior and precision. This field offers a user-friendly alternative to numeric input fields when selecting values from a fixed interval.', 'Range', '{\"properties0\":{\"name\":\"type\",\"example\":\"range\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be range.\"},\"properties1\":{\"name\":\"name\",\"example\":\"range\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Range\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"9\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties6\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties7\":{\"name\":\"min\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the min on the meter.\"},\"properties8\":{\"name\":\"max\",\"example\":\"20\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the max on meter.\"},\"properties9\":{\"name\":\"step\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this integer, starting with the first value until the last value is reached.\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties12\":{\"name\":\"onchange\",\"example\":\"jQuery(\'#jform_range\').closest(\'.controls\').find(\'span\').remove(); var value = jQuery(\'#jform_range\').val();jQuery(\'#jform_range\').closest(\'.controls\').append(\' \'+value+\'\');\",\"adjustable\":\"1\",\"description\":\"(optional) javascript to run when the range is changed\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Slider to select a value within a range.', '', 1, 7, 0, 0, '627d3845-7273-4f75-8e63-7b3a319a42c8'), -(19, 'Provides a modal interface containing rows of form fields that you define. Users can add as many entries as needed, with each row repeating the specified field set. This field type relies on a jQuery-based JavaScript file for its dynamic functionality.', 'Repeatable', '{\"properties0\":{\"name\":\"type\",\"example\":\"repeatable\",\"adjustable\":\"1\",\"description\":\"(mandatory) must be repeatable.\"},\"properties1\":{\"name\":\"name\",\"example\":\"repeatable_list\",\"adjustable\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter\"},\"properties2\":{\"name\":\"label\",\"example\":\"The Repeatable List\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) description text for the form field. Displays at the top of the modal with the name as well as in the usual position in the form\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The default value for the form field if the field is left empty. Note this has to be a json string compatible with the contents of the form field.\"},\"properties5\":{\"name\":\"id\",\"example\":\"aid\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) id of the hidden from field. (the modal will have this id with an added suffix of \\\"_modal\\\" and the table within the modal will have this id with a suffix of _modal_table\\\")\"},\"properties6\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) class of the table.\"},\"properties7\":{\"name\":\"select\",\"example\":\"Click here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) The text to show on the modal button.\"},\"properties8\":{\"name\":\"icon\",\"example\":\"list\",\"adjustable\":\"1\",\"description\":\"(optional) The icon to show on the select button (is prefixed with \\\"icon-\\\").\"},\"properties9\":{\"name\":\"maximum\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) The maximum number of rows of fields allowed (by default 999 to be effectively infinite)\"},\"properties10\":{\"name\":\"fields\",\"example\":\"1,2,3\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The fields to add to the modal. All fields must first be created in component builder as a field before you can add them here, since you must use the id of the field. Separate the field ids with commas. Do not add custom fields that are not also used in this component.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Use only if you would like to save raw data, since the default is best.\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Form fields with repeatable rows of inputs.', '', 1, 7, 0, 0, '05bf68d4-52f9-4705-8ae7-cba137fce0ad'), -(20, 'The spacer form field type provides a visual separator between groups of form fields. It serves purely as a visual aid to organize the layout of the form and does not store any value.', 'Spacer', '{\"properties0\":{\"name\":\"type\",\"example\":\"spacer\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be spacer.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myspacer\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"The notice\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is the text to use as a spacer.\"},\"properties3\":{\"name\":\"description\",\"example\":\"The notice description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"hr\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is whether to display a horizontal rule (\'true\' or \'false\'). If this attribute is \'true\', the label attribute will be ignored.\"},\"properties5\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"}}', 'Visual divider with no stored value.', '', 1, 2, 0, 0, '626d0cba-a908-4a4f-a447-96d781aeaa0b'), -(21, 'Using this generic form field type forces you to write SQL in an XML file and is rather limited. For more flexibility, consider using a Custom FieldType.\r\n\r\nThe sql form field type provides a drop down list of entries obtained by running a query on the Joomla database. The first column returned by the query is used as the option value, and the second column (if present) is used as the label displayed in the dropdown.', 'SQL', '{\"properties0\":{\"name\":\"type\",\"example\":\"sql\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be sql.\"},\"properties1\":{\"name\":\"name\",\"example\":\"title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an article\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"query\",\"example\":\"SELECT id, concat( title, \' (\', created, \')\') AS title FROM #__content\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the SQL query which will provide the data for the drop-down list. The query must return two columns; one called \'value\' (unless overridden by the key_field attribute) which will hold the values of the list items; the other called the same as the value of the name attribute (unless overridden by the value_field attribute) containing the text to be shown in the drop-down list.\"},\"properties4\":{\"name\":\"default\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value. This is the value of the \'value\' field, unless overridden by the key_field attribute.\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties7\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties8\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties9\":{\"name\":\"key_field\",\"example\":\"id\",\"adjustable\":\"1\",\"description\":\"(optional) is the name of the column that will contain values for the parameter. If omitted then the column called \'value\' will be used, if it exists.\"},\"properties10\":{\"name\":\"value_field\",\"example\":\"title\",\"adjustable\":\"1\",\"description\":\"(optional) is the name of the column that will contain values to be shown to the user in the drop-down list. If omitted then the column with the same name as the name attribute will be used, if it exists.\"},\"properties11\":{\"name\":\"translate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) will translate the output of the value_field if set to true. It defaults to false.\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Dropdown list populated by a database query.', '', 1, 4, 0, 0, 'd4c16f1e-fd6e-4714-90eb-f9d97edd9c32'), -(22, 'The tag field type provides an input for assigning tags to an item. Tags can be selected or created using an AJAX-powered interface or chosen from a nested list of existing tags, depending on configuration. This allows for flexible and consistent tagging within Joomla.', 'Tag', '{\"properties0\":{\"name\":\"type\",\"example\":\"tag\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be tag.\"},\"properties1\":{\"name\":\"name\",\"example\":\"tags\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"mode\",\"example\":\"ajax\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the way the tags will be loaded, the options are ( ajax or nested )\"},\"properties3\":{\"name\":\"label\",\"example\":\"Tags\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties4\":{\"name\":\"description\",\"example\":\"Assign tags to ###VIEW### items. Tag names must be unique.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is the description of the field.\"},\"properties5\":{\"name\":\"id\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the id to add to the field. Note if none is set this will be the name of the field.\"},\"properties6\":{\"name\":\"class\",\"example\":\"inputbox small\",\"adjustable\":\"1\",\"description\":\"(optional) is the class to add to the field.\"},\"properties7\":{\"name\":\"published\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) determines if non published tags should be allowed.\"},\"properties8\":{\"name\":\"language\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is language to filter the existing tags by.\"},\"properties9\":{\"name\":\"multiple\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) is the ability to add more than 1 tag to the form field.\"},\"properties10\":{\"name\":\"custom\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) if the ajax mode is chosen setting this to [deny] will prevent users from adding in new tags.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Entry point for tags (either AJAX or Nested).', '', 1, 4, 0, 0, '48cba89e-8fcb-481e-a7d3-2e41773e452d'), -(23, 'The tel field type is a text input specifically intended for telephone numbers. It functions as an alias of the standard text field but can be enhanced with the tel validation rule and input filter to ensure proper formatting and sanitation of phone number inputs.', 'Tel', '{\"properties0\":{\"name\":\"type\",\"example\":\"text\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be text.\"},\"properties1\":{\"name\":\"name\",\"example\":\"phone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Phone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter phone number\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"tel\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties12\":{\"name\":\"validated\",\"example\":\"tel\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to validated the input data.\"},\"properties13\":{\"name\":\"message\",\"example\":\"Error! Please add phone number here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties14\":{\"name\":\"hint\",\"example\":\"Your Phone Number\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties15\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties16\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Input field for telephone numbers.', '', 1, 7, 0, 0, '1c6c519c-3bc8-4914-8940-3e9591b0bce6'), -(24, 'The text form field type provides a single-line input box for entering textual data. If a saved value exists, it is displayed when the page loads; otherwise, the default value (if specified) is used. This field is commonly used for short, free-form text entries such as names, titles, or labels.', 'Text', '{\"properties0\":{\"name\":\"type\",\"example\":\"text\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be text.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mytextvalue\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties19\":{\"name\":\"charcounter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"Does this field support a character counter? (true or false)\"},\"properties5\":{\"name\":\"default\",\"example\":\"Some text\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"STRING\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties12\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties13\":{\"name\":\"field\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) used in validation of \\\"equals\\\" to link the field to match.\"},\"properties14\":{\"name\":\"message\",\"example\":\"Error! Please add some text here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties15\":{\"name\":\"hint\",\"example\":\"Your Name Here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties16\":{\"name\":\"autocomplete\",\"example\":\"on\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties17\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties18\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Single-line text input field.', '', 1, 12, 0, 0, '201327fe-3067-4316-a155-3fe2a52e05c0'), -(25, 'The textarea form field type provides a multi-line input area for entering larger blocks of text. If a saved value exists, it is displayed when the page first loads; otherwise, the default value (if specified) is used. This field is ideal for content such as descriptions, comments, or notes.', 'Textarea', '{\"properties0\":{\"name\":\"type\",\"example\":\"textarea\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be textarea.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mytextarea\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"rows\",\"example\":\"10\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the height of the visible text area in lines. If omitted the width is determined by the browser. The value of rows does not limit the number of lines that may be entered.\"},\"properties4\":{\"name\":\"cols\",\"example\":\"5\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the width of the visible text area in characters. If omitted the width is determined by the browser. The value of cols does not limit the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"default text\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Text Area\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties7\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties8\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties9\":{\"name\":\"filter\",\"example\":\"raw\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties10\":{\"name\":\"hint\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the textarea.\"},\"properties11\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties12\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties13\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties14\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties15\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties16\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Multi-line text input area.', '', 1, 10, 0, 0, '76fe1250-6fa7-49e5-a0ee-f06d8d4c9f99'), -(26, 'The timezone form field type provides a dropdown list of available time zones for selection. If a saved value exists, it is displayed when the page is first loaded; otherwise, the default value (if specified) is shown. This field is useful for allowing users to set or adjust time zone preferences.', 'Timezone', '{\"properties0\":{\"name\":\"type\",\"example\":\"timezone\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be timezone.\"},\"properties1\":{\"name\":\"name\",\"example\":\"timezone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Timezone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default time zone. For example, use \'-10\' for \'(UTC -10:00) Hawaii\'.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Dropdown list of time zones.', '', 1, 5, 0, 0, 'ed8d8cf4-cb05-49cc-95ef-4ef275f539f9'), -(27, 'The URL field type is a text input specifically intended for entering web addresses. It functions like a standard text field but uses the url input type to enable browser-level validation. If a fully qualified URL (one with a scheme and domain, such as http://example.com) includes internationalized domain names (IDNs) with non-ASCII characters (e.g., ê or Ψ), it will be automatically converted to a valid ASCII-compatible format (Punycode) for proper handling and storage.', 'URL', '{\"properties0\":{\"name\":\"type\",\"example\":\"url\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be url.\"},\"properties1\":{\"name\":\"name\",\"example\":\"website\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Website\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter website address\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"relative\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) set to true for relative URLs\"},\"properties12\":{\"name\":\"filter\",\"example\":\"url\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties13\":{\"name\":\"validated\",\"example\":\"url\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties14\":{\"name\":\"scheme\",\"example\":\"http,https,mailto\",\"adjustable\":\"1\",\"description\":\"(optional) Validates that the value is a URL with a valid scheme (which can be restricted by the optional comma-separated field \'scheme\'), and passes a basic syntax check.\"},\"properties15\":{\"name\":\"message\",\"example\":\"Error! Please add website here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties16\":{\"name\":\"hint\",\"example\":\"Your Website Here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties17\":{\"name\":\"autocomplete\",\"example\":\"on\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties18\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties19\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Text input for a valid URL.', '', 1, 11, 0, 0, '8df6e07e-2b16-43ed-a18d-2059fa44cdf1'), -(28, 'The user form field type provides a modal-based selection interface for choosing a Joomla user. It allows administrators to browse and select users from the system through a searchable pop-up dialog.', 'User', '{\"properties0\":{\"name\":\"type\",\"example\":\"user\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be user.\"},\"properties1\":{\"name\":\"name\",\"example\":\"user\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute.\"},\"properties2\":{\"name\":\"label\",\"example\":\"User\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties5\":{\"name\":\"size\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Modal selector for Joomla users.', '', 1, 5, 0, 0, 'b0641980-5e78-42f6-972f-86aa607db23e'), -(29, 'The usergrouplist form field type provides a dropdown list of all available Joomla user groups. It allows selection of a single group from the site\'s access control system for use in configuration or assignment settings.', 'Usergrouplist', '{\"properties0\":{\"name\":\"type\",\"example\":\"usergrouplist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be usergrouplist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"usergroup\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Group\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties11\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the usergroup id of the default selection in the dropdown list.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Select a group\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties5\":{\"name\":\"layout\",\"example\":\"joomla.form.field.list-fancy-select\",\"adjustable\":\"1\",\"description\":\"(optional) (translatable) is the layout, for example joomla.form.field.list-fancy-select.\"},\"properties6\":{\"name\":\"size\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties7\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the field required true if yes.\"},\"properties8\":{\"name\":\"checksuperusergroup\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) is boolean to omit Super User groups. Values 1 or 0.\"},\"properties9\":{\"name\":\"multiple\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) If set to multiple then allows more than one usergroup to be selected.\"},\"properties10\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Dropdown list of Joomla user groups.', '', 1, 8, 0, 0, 'e2f31181-fbb3-4c3a-859d-72b6b0cff308'), -(30, 'The Filelist form field type provides a drop down list of files from a specified directory. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Filelist', '{\"properties0\":{\"name\":\"type\",\"example\":\"filelist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be filelist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myfile\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a file\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"directory\",\"example\":\"images\\/stories\",\"adjustable\":\"1\",\"description\":\"(optional) is the filesystem path to the directory containing the files to be listed. If omitted the directory given by JPATH_ROOT is assumed.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default file name.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of files selected for inclusion in the drop-down list. If omitted, all files in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties7\":{\"name\":\"exclude\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to exclude files from the list. The exclude argument expression is applied after the filter argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties8\":{\"name\":\"stripext\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true then file name extensions will be stripped from the file names listed. Also note that the file name will be saved without the extension too.\"},\"properties9\":{\"name\":\"hide_none\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Do not use -\' item is omitted from the drop-down list.\"},\"properties10\":{\"name\":\"hide_default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Use default -\' item is omitted from the drop-down list.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'File dropdown from directory.', '', 1, 7, 0, 1, '0c80df15-52c6-4647-983b-4bb4888a2edf'), -(31, 'The Folderlist form field type provides a drop down list of folders from a specified directory. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Folderlist', '{\"properties0\":{\"name\":\"type\",\"example\":\"folderlist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be folderlist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myfolder\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a folder\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"directory\",\"example\":\"images\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the filesystem path to the directory containing the folders to be listed.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default folder name.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of folders selected for inclusion in the drop-down list. If omitted, all folders in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties7\":{\"name\":\"exclude\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to exclude folders from the list. The exclude argument expression is applied after the filter argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties8\":{\"name\":\"hide_none\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Do not use -\' item is omitted from the drop-down list.\"},\"properties9\":{\"name\":\"hide_default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Use default -\' item is omitted from the drop-down list.\"},\"properties10\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Folder dropdown from directory.', '', 1, 6, 0, 2, 'd3ab2ae4-9370-4497-ae6d-dee2e0b74b7a'), -(32, 'Note: When using the file input type you should always add the attribute enctype=\"multipart/form-data\" to your form tag. Otherwise, the uploaded files will not be attached correctly.\r\n\r\nNote 2: You can put a soft limit file size by adding a hidden field with name=\"MAX_FILE_SIZE\" and value the maximum allowed bytes which is handled by php, but you must also handle it in your code with or without it.', 'File', '{\"properties0\":{\"name\":\"type\",\"example\":\"file\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be file.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myfilevalue\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Choose an image from your computer with maximum 100KB\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value, but doesn\'t mean much for a file.\"},\"properties5\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the file box in characters.\"},\"properties6\":{\"name\":\"accept\",\"example\":\"image\\/*\",\"adjustable\":\"1\",\"description\":\"(optional) Tells the browser what MIME types your form will allow to be uploaded.\"},\"properties7\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties8\":{\"name\":\"labelclass\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) adds a CSS class for form field\'s label; for Joomla 2.5.4+\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute\"},\"properties10\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties11\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) For Joomla form validating it to be filled in\"},\"properties12\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Whether to Joomla validate the field according to rules\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Input field for files', '', 1, 10, 0, 3, '6da71c1e-119c-4e0d-a309-f3e52ecfa1d1'), -(33, 'The Menuitem form field type provides a grouped dropdown list of available menu items from your Joomla site, organized by their respective menus for easier selection.', 'Menuitem', '{\"properties0\":{\"name\":\"type\",\"example\":\"menuitem\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be menuitem.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mymenuitem\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a menu item\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default menu item. Note that this is the ItemID number of the menu item.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"published\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) determines whether all menu items are listed or only published menu items. If state is \'0\' then all menu items will be listed. If state is \'1\' then only published menu items will be listed.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"int\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Dropdown list of items within a selected menu.', '', 1, 7, 0, 4, 'f183b0e2-017f-48bd-8dba-d332ce1b8d9e'), -(34, 'Remember all views already have [accesslevel] added by default, only add this if you need more custom access selection! Provides a dropdown list of accesslevel options with the current option selected.', 'Accesslevel', '{\"properties0\":{\"name\":\"type\",\"example\":\"accesslevel\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be accesslevel\"},\"properties1\":{\"name\":\"name\",\"example\":\"accesstwo\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute. \"},\"properties2\":{\"name\":\"label\",\"example\":\"Access Two\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Select an access level to this concept.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the field required true if yes.\"},\"properties6\":{\"name\":\"multiple\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) If set to multiple then allows more than one usergroup to be selected.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'List of user accesslevels.', '', 1, 8, 0, 5, '913ed2ce-836c-48e8-97af-e482441f47df'), -(35, 'Provides a form containing repeatable rows of nested fields that you define. Users can add as many entries as needed, with each row replicating the specified field structure. This field type relies on a jQuery-based JavaScript file to handle dynamic behaviour and is ideal for managing structured, multi-value input.', 'Subform', '{\"properties0\":{\"name\":\"type\",\"example\":\"subform\",\"description\":\"(mandatory) must be subform.\"},\"properties1\":{\"name\":\"name\",\"example\":\"options\",\"adjustable\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter\"},\"properties2\":{\"name\":\"label\",\"example\":\"The Option List\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"layout\",\"example\":\"joomla.form.field.subform.repeatable-table\",\"adjustable\":\"1\",\"description\":\"(mandatory) The layout for the repeatable table.\"},\"properties4\":{\"name\":\"component\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) To change the component where it should search for layout\"},\"properties5\":{\"name\":\"client\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Function to initialise the application clientFrontend: site or 0Backend: admin or 1\"},\"properties6\":{\"name\":\"multiple\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The rows to be multiple.\"},\"properties7\":{\"name\":\"buttons\",\"example\":\"add,remove,move\",\"adjustable\":\"1\",\"description\":\"(optional) Which buttons to show if multiple mode is true.Options: add,remove,move\"},\"properties8\":{\"name\":\"fields\",\"example\":\"guid,guid,guid\",\"adjustable\":\"1\",\"description\":\"(mandatory) The fields to add to the modal. All fields must first be created in component builder as a field before you can add them here, since you must use the id of the field. Separate the field ids\\/guids with commas. Do not add custom fields that are not also used in this component.\"},\"properties9\":{\"name\":\"formsource\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) you can add a path to a xml file containing the fields.\"},\"properties10\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) description text for the form field. Displays at the top of the modal with the name as well as in the usual position in the form\"},\"properties11\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The default value for the form field if the field is left empty. Note this has to be a json string compatible with the contents of the form field.\"},\"properties12\":{\"name\":\"icon\",\"example\":\"list\",\"adjustable\":\"1\",\"description\":\"(optional) The icon to show on the select button (is prefixed with \\\"icon-\\\").\"},\"properties13\":{\"name\":\"max\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) The maximum number of rows of fields allowed (by default 999 to be effectively infinite)\"},\"properties14\":{\"name\":\"min\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The minimum number of rows of fields required\"},\"properties15\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Use only if you would like to save raw data, since the default is best.\"},\"properties16\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Repeating sets of nested form fields.', '', 1, 16, 0, 6, '7139f2c8-a70a-46a6-bbe3-4eefe54ca515'), -(36, 'A field type that provides an input for entering an email address. It includes basic validation to ensure the input matches the standard email format, helping to prevent invalid entries.', 'Email', '{\"properties0\":{\"name\":\"type\",\"example\":\"email\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be email.\"},\"properties1\":{\"name\":\"name\",\"example\":\"email\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Email Address\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"inputbox\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"STRING\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties12\":{\"name\":\"validate\",\"example\":\"email\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties13\":{\"name\":\"unique\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) Used in validation, to check if we should test for uniqueness, to insure that this email does not already belong to another user. Check line 99 in \\/libraries\\/src\\/Form\\/Rule\\/EmailRule.php\"},\"properties14\":{\"name\":\"field\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) used in validation of \\\"equals\\\" to link the field to match.\"},\"properties15\":{\"name\":\"message\",\"example\":\"Error! Please add some text here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties16\":{\"name\":\"hint\",\"example\":\"your@email.com\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties17\":{\"name\":\"autocomplete\",\"example\":\"on\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties18\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties19\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Email form field type.', '', 1, 8, 0, 7, '35948af5-9e79-4454-8dfa-682ee4fdf650'), -(37, 'The Plugins form field type provides a dropdown list of available plugins from a specified plugin folder. It allows selection from plugins grouped under a particular type (folder), making it useful when an extension needs to reference or configure specific plugin functionality within Joomla. The list is dynamically populated based on the plugins installed in the defined folder.', 'Plugins', '{\"properties0\":{\"name\":\"type\",\"example\":\"plugins\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be editors.\"},\"properties1\":{\"name\":\"name\",\"example\":\"editor\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an editor\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties5\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties6\":{\"name\":\"folder\",\"example\":\"editors\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) editors or captcha.\"},\"properties7\":{\"name\":\"filter\",\"example\":\"cmd\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Dropdown of plugins from a specified folder.', '', 1, 10, 0, 8, '37fa4e1d-b7ca-4a8f-aa4b-d8085c135233'), -(38, 'The Captcha field type that integrates with a Joomla captcha plugin to present a human verification challenge, typically used to distinguish between human users and automated systems.', 'Captcha', '{\"properties0\":{\"name\":\"type\",\"example\":\"captcha\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be captcha.\"},\"properties1\":{\"name\":\"name\",\"example\":\"captcha\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"validate\",\"example\":\"captcha\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be captcha.\"},\"properties3\":{\"name\":\"label\",\"example\":\"Captcha\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties4\":{\"name\":\"description\",\"example\":\"We do not like spam, please show us you are human\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"namespace\",\"example\":\"componentbuilder\",\"description\":\"(optional) the component name seems to work\"}}', 'Captcha robot check.', '', 1, 4, 0, 9, '206fdad4-14d0-45f1-9c84-3d09abf48a39'), -(39, 'The groupedlist form field type provides a drop down list or list box of custom-defined entries, organized into labeled groups. If the field has a saved value, this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Groupedlist', '{\"properties0\":{\"name\":\"type\",\"example\":\"groupedlist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be groupedlist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mygrouplist\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an option\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"list_class\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties6\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties7\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) filter options\"},\"properties8\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties9\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties10\":{\"name\":\"option\",\"example\":\"Group Name@@1,1|Option 1|1,2|Option 2|1,Group Name 2@@2,3|Option 3|2\",\"adjustable\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties11\":{\"name\":\"useglobal\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) if set to true, it will show the value that is set in the global configuration if found in the database.\"},\"properties12\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default list item value.\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties14\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Dropdown list of grouped custom entries.', '', 1, 5, 0, 10, '088d47c0-b058-4894-b92e-dcf1b9d5a722'), -(40, 'The Modulelayout form field type provides a drop down list of all available layouts for a module, grouped by core and template. If the parameter has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Modulelayout', '{\"properties0\":{\"name\":\"type\",\"example\":\"modulelayout\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be modulelayout.\"},\"properties1\":{\"name\":\"name\",\"example\":\"layout\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Layout\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Module layout\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"module\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a specific module name (e.g. mod_articles_category).\"},\"properties5\":{\"name\":\"client_id\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional). If 0 (site): Forces searching for layouts only in directories \\/modules\\/[MODULENAME]\\/tmpl\\/ and all \\/templates\\/[TEMPLATENAME]\\/html\\/[MODULENAME]\\/. If 1 (administrator): Forces searching for layouts only in directories \\/administrator\\/modules\\/[MODULENAME]\\/tmpl\\/ and all \\/administrator\\/templates\\/[TEMPLATENAME]\\/html\\/[MODULENAME]\\/.\\r\\n\"},\"properties6\":{\"name\":\"template\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a template name (e.g. protostar or isis). If set forces searching for module template overrides only in this template.\"}}', 'Dropdown of module layouts.', '', 1, 4, 0, 11, '7520c8f4-543d-4c7a-8e4f-e2da71c3b1cd'), -(41, 'The privacy field type in Joomla is a specialized custom form field introduced to assist extensions in handling privacy-related features; most notably, export and deletion requests in compliance with privacy regulations like the GDPR (General Data Protection Regulation).', 'Privacy@', '{\"properties0\":{\"name\":\"type\",\"example\":\"privacy\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"privacy\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Privacy Policy\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Read the full privacy policy.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"filter\",\"example\":\"integer\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties5\":{\"name\":\"option\",\"example\":\"1|I agree,0|No\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties6\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties7\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties9\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties10\":{\"name\":\"extends\",\"example\":\"radio\",\"mandatory\":\"1\",\"description\":\"Must be radio\"},\"properties11\":{\"name\":\"type_phpHEADER_1\",\"example\":\"use Joomla\\\\CMS\\\\Factory;\\r\\nuse Joomla\\\\CMS\\\\Language\\\\Text;\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The Header USE options\"},\"properties12\":{\"name\":\"type_php_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field input markup.\\r\\n\\t *\\r\\n\\t * @return string The field input markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getInput()\\r\\n\\t{\\r\\n\\t\\t\\/\\/ Display the message before the field\\r\\n\\t\\techo $this->getRenderer(\'plugins.system.privacyconsent.message\')->render($this->getLayoutData());\\r\\n\\r\\n\\t\\treturn parent::getInput();\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getInput method.\"},\"properties13\":{\"name\":\"type_phpa_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field label markup.\\r\\n\\t *\\r\\n\\t * @return string The field label markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getLabel()\\r\\n\\t{\\r\\n\\t\\tif ($this->hidden)\\r\\n\\t\\t{\\r\\n\\t\\t\\treturn \'\';\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn $this->getRenderer(\'plugins.system.privacyconsent.label\')->render($this->getLayoutData());\\r\\n\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLabel method.\"},\"properties14\":{\"name\":\"type_phpb_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the data to be passed to the layout for rendering.\\r\\n\\t *\\r\\n\\t * @return array\\r\\n\\t *\\r\\n\\t * @since 3.9.4\\r\\n\\t *\\/\\r\\n\\tprotected function getLayoutData()\\r\\n\\t{\\r\\n\\t\\t$data = parent::getLayoutData();\\r\\n\\r\\n\\t\\t$article = false;\\r\\n\\t\\t$privacyArticle = $this->element[\'article\'] > 0 ? (int) $this->element[\'article\'] : 0;\\r\\n\\r\\n\\t\\tif ($privacyArticle && Factory::getApplication()->isClient(\'site\'))\\r\\n\\t\\t{\\r\\n\\t\\t\\t$db = Factory::getDbo();\\r\\n\\t\\t\\t$query = $db->getQuery(true)\\r\\n\\t\\t\\t\\t->select($db->quoteName(array(\'id\', \'alias\', \'catid\', \'language\')))\\r\\n\\t\\t\\t\\t->from($db->quoteName(\'#__content\'))\\r\\n\\t\\t\\t\\t->where($db->quoteName(\'id\') . \' = \' . (int) $privacyArticle);\\r\\n\\t\\t\\t$db->setQuery($query);\\r\\n\\t\\t\\t$article = $db->loadObject();\\r\\n\\r\\n\\t\\t\\tJLoader::register(\'ContentHelperRoute\', JPATH_BASE . \'\\/components\\/com_content\\/helpers\\/route.php\');\\r\\n\\r\\n\\t\\t\\t$slug = $article->alias ? ($article->id . \':\' . $article->alias) : $article->id;\\r\\n\\t\\t\\t$article->link = ContentHelperRoute::getArticleRoute($slug, $article->catid, $article->language);\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t$extraData = array(\\r\\n\\t\\t\\t\'privacynote\' => !empty($this->element[\'note\']) ? $this->element[\'note\'] : Text::_(\'By signing up to this web site and agreeing to the Privacy Policy you agree to this web site storing your information.\'),\\r\\n\\t\\t\\t\'options\' => $this->getOptions(),\\r\\n\\t\\t\\t\'value\' => (string) $this->value,\\r\\n\\t\\t\\t\'translateLabel\' => $this->translateLabel,\\r\\n\\t\\t\\t\'translateDescription\' => $this->translateDescription,\\r\\n\\t\\t\\t\'translateHint\' => $this->translateHint,\\r\\n\\t\\t\\t\'privacyArticle\' => $privacyArticle,\\r\\n\\t\\t\\t\'article\' => $article,\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\treturn array_merge($data, $extraData);\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLayoutData method.\"}}', 'Joomla privacy field display.', '', 1, 10, 0, 12, '60c1d674-8bb7-4b31-97ed-ee1f16bc412a'), -(42, 'The terms field type displays Joomla\'s terms and conditions agreement checkbox, typically used in user registration or other consent-based forms. It ensures that users acknowledge and accept the site\'s legal terms before proceeding, in compliance with privacy or legal requirements. The terms content is managed through Joomla\'s configuration.', 'Terms@', '{\"properties0\":{\"name\":\"type\",\"example\":\"terms\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"terms\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Terms & Conditions\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Read the full terms and conditions.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"filter\",\"example\":\"integer\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties5\":{\"name\":\"option\",\"example\":\"1|I agree,0|No\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties6\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties7\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties9\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties10\":{\"name\":\"extends\",\"example\":\"radio\",\"mandatory\":\"1\",\"description\":\"Must be radio\"},\"properties11\":{\"name\":\"type_phpHEADER_1\",\"example\":\"use Joomla\\\\CMS\\\\Factory;\\r\\nuse Joomla\\\\CMS\\\\Form\\\\FormHelper;\\r\\nuse Joomla\\\\CMS\\\\Language\\\\Associations;\\r\\nuse Joomla\\\\CMS\\\\Language\\\\Text;\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The Header USE options\"},\"properties12\":{\"name\":\"type_php_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field input markup.\\r\\n\\t *\\r\\n\\t * @return string The field input markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getInput()\\r\\n\\t{\\r\\n\\t\\t\\/\\/ Display the message before the field\\r\\n\\t\\techo $this->getRenderer(\'plugins.user.terms.message\')->render($this->getLayoutData());\\r\\n\\r\\n\\t\\treturn parent::getInput();\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getInput method.\"},\"properties13\":{\"name\":\"type_phpa_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field label markup.\\r\\n\\t *\\r\\n\\t * @return string The field label markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getLabel()\\r\\n\\t{\\r\\n\\t\\tif ($this->hidden)\\r\\n\\t\\t{\\r\\n\\t\\t\\treturn \'\';\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn $this->getRenderer(\'plugins.user.terms.label\')->render($this->getLayoutData());\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLabel method.\"},\"properties14\":{\"name\":\"type_phpb_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the data to be passed to the layout for rendering.\\r\\n\\t *\\r\\n\\t * @return array\\r\\n\\t *\\r\\n\\t * @since 3.9.4\\r\\n\\t *\\/\\r\\n\\tprotected function getLayoutData()\\r\\n\\t{\\r\\n\\t\\t$data = parent::getLayoutData();\\r\\n\\r\\n\\t\\t$article = false;\\r\\n\\t\\t$termsArticle = $this->element[\'article\'] > 0 ? (int) $this->element[\'article\'] : 0;\\r\\n\\r\\n\\t\\tif ($termsArticle && Factory::getApplication()->isClient(\'site\'))\\r\\n\\t\\t{\\r\\n\\t\\t\\t$db = Factory::getDbo();\\r\\n\\t\\t\\t$query = $db->getQuery(true)\\r\\n\\t\\t\\t\\t->select($db->quoteName(array(\'id\', \'alias\', \'catid\', \'language\')))\\r\\n\\t\\t\\t\\t->from($db->quoteName(\'#__content\'))\\r\\n\\t\\t\\t\\t->where($db->quoteName(\'id\') . \' = \' . (int) $termsArticle);\\r\\n\\t\\t\\t$db->setQuery($query);\\r\\n\\t\\t\\t$article = $db->loadObject();\\r\\n\\r\\n\\t\\t\\tJLoader::register(\'ContentHelperRoute\', JPATH_BASE . \'\\/components\\/com_content\\/helpers\\/route.php\');\\r\\n\\r\\n\\t\\t\\tif (Associations::isEnabled())\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$termsAssociated = Associations::getAssociations(\'com_content\', \'#__content\', \'com_content.item\', $termsArticle);\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t$currentLang = Factory::getLanguage()->getTag();\\r\\n\\r\\n\\t\\t\\tif (isset($termsAssociated) && $currentLang !== $article->language && array_key_exists($currentLang, $termsAssociated))\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$article->link = ContentHelperRoute::getArticleRoute(\\r\\n\\t\\t\\t\\t\\t$termsAssociated[$currentLang]->id,\\r\\n\\t\\t\\t\\t\\t$termsAssociated[$currentLang]->catid,\\r\\n\\t\\t\\t\\t\\t$termsAssociated[$currentLang]->language\\r\\n\\t\\t\\t\\t);\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\telse\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$slug = $article->alias ? ($article->id . \':\' . $article->alias) : $article->id;\\r\\n\\t\\t\\t\\t$article->link = ContentHelperRoute::getArticleRoute($slug, $article->catid, $article->language);\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t$extraData = array(\\r\\n\\t\\t\\t\'termsnote\' => !empty($this->element[\'note\']) ? $this->element[\'note\'] : Text::_(\'By signing up to this web site you accept the Terms & Conditions.\'),\\r\\n\\t\\t\\t\'options\' => $this->getOptions(),\\r\\n\\t\\t\\t\'value\' => (string) $this->value,\\r\\n\\t\\t\\t\'translateLabel\' => $this->translateLabel,\\r\\n\\t\\t\\t\'translateDescription\' => $this->translateDescription,\\r\\n\\t\\t\\t\'translateHint\' => $this->translateHint,\\r\\n\\t\\t\\t\'termsArticle\' => $termsArticle,\\r\\n\\t\\t\\t\'article\' => $article,\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\treturn array_merge($data, $extraData);\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLayoutData method.\"}}', 'Displays Joomla terms and conditions.', '', 1, 8, 0, 12, '20e88943-08db-49e6-a571-dba70cdf4cca'), -(43, 'A field type that combines a standard text input with a dropdown list of predefined options. Users can either type a custom value or choose from the available selections, offering flexibility in data entry.', 'Combo', '{\"properties0\":{\"name\":\"type\",\"example\":\"combo\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be combo.\"},\"properties1\":{\"name\":\"name\",\"example\":\"type\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Type\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) tooltip for the form field.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"combobox\",\"adjustable\":\"1\",\"description\":\"(optional) specify your own classes for additonal markup, defaults to \\\"combobox\\\".\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) filter options\"},\"properties7\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties9\":{\"name\":\"option\",\"example\":\"0|Option 1,1|Option 2,2|Option 1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties10\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default list item value.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties12\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Combobox list field, allows free text.', '', 1, 4, 0, 13, '2c8b128f-7da2-4f55-b1d7-3613f902f590'), -(44, 'The imagelist form field type provides a drop down list of image files in a specified directory. Only files with .png, .gif, .jpg, .bmp, .ico extensions are listed. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.\r\n\r\nBy default, the first item on the list is \'- Do not use -\' (which is translatable) and is given the value \'-1\' and this is followed by \'- Use default -\' (also translatable) given the value \'0\'.', 'Imagelist', '{\"properties0\":{\"name\":\"type\",\"example\":\"imagelist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be imagelist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myimagelist\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an image\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"directory\",\"example\":\"images\\/stories\",\"adjustable\":\"1\",\"description\":\"(optional) is the filesystem path to the directory containing the image files to be listed. If omitted the directory given by JPATH_ROOT is assumed.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default image file name.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of image files selected for inclusion in the drop-down list. If omitted, all image files in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties7\":{\"name\":\"exclude\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to exclude image files from the list. The exclude argument expression is applied after the filter argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties8\":{\"name\":\"stripext\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true then file name extensions will be stripped from the image file names listed. Also note that the file name will be saved without the extension too.\"},\"properties9\":{\"name\":\"hide_none\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Do not use -\' item is omitted from the drop-down list.\"},\"properties10\":{\"name\":\"hide_default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Use default -\' item is omitted from the drop-down list.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Image file dropdown from directory.', '', 1, 4, 0, 14, '72680e92-2859-49c6-ad92-c2329c52f9f8'), -(45, ' The Modal menu form field type provides a styled drop-down list of Joomla menu items, visually matching Joomla\'s modal UI patterns. Unlike the modal select field type, it does not open a modal window for selection but instead presents menu items in a compact, dropdown format consistent with the modal design language used in Joomla\'s administrator interface.', 'Modal Menu', '{\"properties0\":{\"name\":\"type\",\"example\":\"modal_menu\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be modal_menu.\"},\"properties1\":{\"name\":\"name\",\"example\":\"base\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Base Item\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"option\",\"example\":\"Current\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties4\":{\"name\":\"select\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) show select options\"},\"properties5\":{\"name\":\"new\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory)\"},\"properties6\":{\"name\":\"edit\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory)\"},\"properties7\":{\"name\":\"description\",\"example\":\"Select a menu item to always be used as the base for the menu display. You must set the Start Level to the same level or higher than the level of the base item. This will cause the module to be displayed on all assigned pages. If Current is selected the active item is used as the base. This causes the module to only display when the parent menu item is active.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties8\":{\"name\":\"clear\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory)\"},\"properties9\":{\"name\":\"disable\",\"example\":\"separator,alias,heading,url\",\"adjustable\":\"1\",\"description\":\"(optional)\"},\"properties10\":{\"name\":\"filter\",\"example\":\"integer\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of image files selected for inclusion in the drop-down list. If omitted, all image files in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\\r\\n\"}}', 'Styled dropdown of menu items.', '', 1, 8, 0, 15, '715256a4-8cc2-4d66-9d08-31e58ca5b036'), -(46, 'The menu form field type provides a drop down list of the available menus from your Joomla! site. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected. ', 'Menu', '{\"properties0\":{\"name\":\"type\",\"example\":\"menu\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be menu.\"},\"properties1\":{\"name\":\"name\",\"example\":\"menutype\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the filed.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Menu to Show\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Choose which menu should be rendered with this instance of module.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) tooltip for the form field.\"},\"properties4\":{\"name\":\"clientid\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default menu. Note that this is the name of the menu shown in the Type column on the Menu Manager screen and not the menu ID number.\"},\"properties6\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties7\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Dropdown list of Joomla menus.', '', 1, 6, 0, 16, '6349f152-8ef5-43bd-a89b-ce18f33ac5e5'), -(47, 'Dynamic Checkboxes generates a list of checkboxes dynamically based on data retrieved at runtime, such as from a database query or external source. Useful for displaying variable options that may change depending on context or configuration.', 'DynamicCheckboxes@', '{\"properties0\":{\"name\":\"type\",\"example\":\"change_this\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"dynamic_checkboxes\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Dynamic Checkboxes\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"The checkbox linked to global subform of the same name\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"option\",\"example\":\"1|Default\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this checkboxes. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties5\":{\"name\":\"default\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties8\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties9\":{\"name\":\"extends\",\"example\":\"checkboxes\",\"mandatory\":\"1\",\"description\":\"Must be checkboxes\"},\"properties10\":{\"name\":\"type_phpHEADER_1\",\"example\":\"FormHelper::loadFieldClass(\'checkboxes\');\\r\\nuse VDM\\\\Joomla\\\\Utilities\\\\Component\\\\Helper;\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The Header USE options\"},\"properties11\":{\"name\":\"type_php_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the data to be passed to the layout for rendering.\\r\\n\\t *\\r\\n\\t * @return array\\r\\n\\t *\\r\\n\\t * @since 3.5\\r\\n\\t *\\/\\r\\n\\tprotected function getLayoutData()\\r\\n\\t{\\r\\n\\t\\t$data = parent::getLayoutData();\\r\\n\\r\\n\\t\\t\\/\\/ True if the field has \'value\' set. In other words, it has been stored, don\'t use the default values.\\r\\n\\t\\t$hasValue = (isset($this->value) && !empty($this->value));\\r\\n\\r\\n\\t\\t\\/\\/ If a value has been stored, use it. Otherwise, use the defaults.\\r\\n\\t\\t$checkedOptions = $hasValue ? $this->value : $this->checkedOptions;\\r\\n\\r\\n\\t\\t\\/\\/ get the form options\\r\\n\\t\\t$options = $this->getOptions();\\r\\n\\r\\n\\t\\t\\/\\/ get the component params\\r\\n\\t\\t$params = Helper::getParams();\\r\\n\\t\\t$subform = $params->get($this->fieldname);\\r\\n\\r\\n\\t\\t\\/\\/ add the paths found in global settings\\r\\n\\t\\tif (is_array($subform) && $subform !== [])\\r\\n\\t\\t{\\r\\n\\t\\t\\tforeach ($subform as $value)\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tif (isset($value->path) && strlen($value->path) > 3)\\r\\n\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t$tmp = new \\\\stdClass;\\r\\n\\t\\t\\t\\t\\t$tmp->value = $value->set_me;\\r\\n\\t\\t\\t\\t\\t$tmp->text = $value->set_me;\\r\\n\\t\\t\\t\\t\\t$tmp->checked = false;\\r\\n\\r\\n\\t\\t\\t\\t\\t$options[] = $tmp;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t$extraData = array(\\r\\n\\t\\t\\t\'checkedOptions\' => is_array($checkedOptions) ? $checkedOptions : explode(\',\', (string) $checkedOptions),\\r\\n\\t\\t\\t\'hasValue\' => $hasValue,\\r\\n\\t\\t\\t\'options\' => $options\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\treturn array_merge($data, $extraData);\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLayoutData method.\"}}', 'Super Power Repository Paths', '', 1, 15, 0, 12, '7ed21e79-cbc5-48e3-9ed0-ca72b0f2f1a1'), -(48, 'The ModalSelectField offers an intuitive, user-friendly modal popup interface within Joomla\'s administrator forms. It enables users to select existing records, create new records, edit existing records, or clear selected records directly from within the form. The field retrieves and displays the selected record\'s title dynamically, based on configurable database parameters. It simplifies relational data handling, enhancing the user experience by minimizing page transitions and streamlining record management tasks in Joomla administration interfaces.', 'ModalSelect', '{\"properties0\":{\"name\":\"type\",\"example\":\"ModalSelect\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be ModalSelect.\"},\"properties1\":{\"name\":\"name\",\"example\":\"targetview\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"sql_title_table\",\"example\":\"#__###component###_targetview\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"Database table (with prefix) used for retrieving title.\"},\"properties4\":{\"name\":\"sql_title_column\",\"example\":\"title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"Column used for the title display in the modal input field.\"},\"properties5\":{\"name\":\"sql_title_key\",\"example\":\"id\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"Primary key column name of the selected item (usually id).\"},\"properties6\":{\"name\":\"urlSelect\",\"example\":\"index.php?option=com_###component###&view=targetviews&layout=modal&tmpl=component&titleKey=id\",\"adjustable\":\"1\",\"description\":\"URL for opening modal to select an existing record. Important note, the [titleKey] in the url must be equal to [sql_title_key]\"},\"properties7\":{\"name\":\"urlNew\",\"example\":\"index.php?option=com_###component###&task=targetview.add&layout=modal&tmpl=component\",\"adjustable\":\"1\",\"description\":\"URL for opening modal to create a new record.\"},\"properties8\":{\"name\":\"urlEdit\",\"example\":\"index.php?option=com_###component###&task=targetview.edit&id={id}&layout=modal&tmpl=component\",\"adjustable\":\"1\",\"description\":\"URL for editing selected record. {id} dynamically replaced with the [sql_title_key] valiue.\"},\"properties9\":{\"name\":\"titleSelect\",\"example\":\"Select Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"Modal title for the record selection window.\"},\"properties10\":{\"name\":\"titleNew\",\"example\":\"New Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"Modal title displayed when creating a new record.\"},\"properties11\":{\"name\":\"titleEdit\",\"example\":\"Edit Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"Modal title displayed when editing existing record.\"},\"properties12\":{\"name\":\"iconSelect\",\"example\":\"icon-copy\",\"adjustable\":\"1\",\"description\":\"CSS icon class from Icomoon or FontAwesome for select button.\"},\"properties13\":{\"name\":\"select\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"Allow users to select a record (true\\/false). Default: true.\"},\"properties14\":{\"name\":\"new\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"Allow users to create a new record (true\\/false). Default: false.\"},\"properties15\":{\"name\":\"edit\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"Allow editing of selected record (true\\/false). Default: false.\"},\"properties16\":{\"name\":\"clear\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"Allow clearing of the current selection (true\\/false). Default: true.\"},\"properties17\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties25\":{\"name\":\"filter\",\"example\":\"STRING\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties26\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties18\":{\"name\":\"class\",\"example\":\"input-large\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'input-large\'.\"},\"properties19\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties20\":{\"name\":\"hint\",\"example\":\"Select a Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties21\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value of the field (item ID).\"},\"properties22\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties23\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties24\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Modal Select to manage a database record. (J5+ only)', NULL, 1, 34, 0, 17, 'a1cdb0a5-517c-425c-998a-333e92af3e32'); +INSERT INTO `#__componentbuilder_fieldtype` (`id`, `datadefault`, `datadefault_other`, `datalenght`, `datalenght_other`, `datatype`, `description`, `guid`, `has_defaults`, `indexes`, `null_switch`, `name`, `properties`, `short_description`, `store`, `params`, `published`) VALUES +(1, 'Other', '0000-00-00 00:00:00', '', '', 'DATETIME', 'The calendar form field type provides a text box for entry of a date. An icon next to the text box provides a link to a pop-up calendar, which can also be used to enter the date value. If the field has a saved value this is shown in the text box.', '6cf5a33f-cb25-4a58-bfec-7e1511896402', 1, 0, 'NOT NULL', 'Calendar', '{\"properties0\":{\"name\":\"type\",\"example\":\"calendar\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be calendar.\"},\"properties1\":{\"name\":\"name\",\"example\":\"date\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a date\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"NOW\",\"adjustable\":\"1\",\"description\":\"(optional) is the default date. This must be given in the same format as specified by the format argument. You can put \\\"NOW\\\" to have current time.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the text box.\"},\"properties5\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is whether the text box is read-only (true or false). If the text box is read-only, the date cannot be changed, but can be selected and copied. No calendar icon will be shown.\"},\"properties6\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is whether the text box is disabled (true or false). If the text box is disabled, the date cannot be changed, selected or copied.\"},\"properties7\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties8\":{\"name\":\"format\",\"example\":\"%d-%m-%Y\",\"adjustable\":\"1\",\"description\":\"(optional) is the date format to be used. This is in the format used by PHP to specify date string formats (see below). If no format argument is given, \'%Y-%m-%d\' is assumed (giving dates like \'2008-04-16\').\"},\"properties9\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is time zone to be used. There are two values; server_utc and user_utc. The first one is server time zone and the later is user time zone as configured in global configuration and user information respectively.\"},\"properties10\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties11\":{\"name\":\"message\",\"example\":\"Error! Please add some text here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties12\":{\"name\":\"size\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional)\"},\"properties13\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties14\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties15\":{\"name\":\"translateformat\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): If set to true, the calendar will use a language string to determine the format. The `format` attribute is ignored. If false, the `format` attribute is used (same behaviour as today). (starting with 3.7.0)\"},\"properties16\":{\"name\":\"showtime\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): If set to true and translateformat is true, the language key DATE_FORMAT_CALENDAR_DATETIME is used, otherwise DATE_FORMAT_CALENDAR_DATE. (starting with 3.7.0)\"},\"properties17\":{\"name\":\"timeformat\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): can be set to 12 (and specify AM or PM) or 24 (starting with 3.7.0)\"},\"properties18\":{\"name\":\"singleheader\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to false, the year and the month selection will be set on two separates lines, with independant selection (starting with 3.7.0)\"},\"properties19\":{\"name\":\"todaybutton\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to true, a button is added at the bottom of the datePicker to select the date of the current day (starting with 3.7.0)\"},\"properties20\":{\"name\":\"weeknumbers\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to true, a column is added at the left of the datePicker to display the number of the week in the current year (starting with 3.7.0)\"},\"properties21\":{\"name\":\"filltable\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to true, dates of the previous and next month is added at the top and the bottom of the current month to fill the grid (starting with 3.7.0)\"},\"properties22\":{\"name\":\"minyear\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): set a signed integer for a number of years (-10, -2, 0, 7, 12, ...) to define the relative lower limit for the year selection. The user could not select a year before your limit (starting with 3.7.0)\"},\"properties23\":{\"name\":\"maxyear\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): set a signed integer for a number of years (-10, -2, 0, 7, 12, ...) to define the relative upper limit for the year selection. The user could not select a year after your limit (starting with 3.7.0)\"}}', 'Text box for entry of a date.', 0, '{\"source\":{\"618e8916-4028-4d5b-b85c-970304685913-settings\":\"6ae1ea0dac5b29ee5cb356c6f17fe14562366587\",\"618e8916-4028-4d5b-b85c-970304685913-readme\":\"c9eeddeadaced241e8e7289a1c7ac591d731043f\"}}', 1), +(2, '', '', '', '', '', 'The category form field type provides a drop down list of all published categories for a certain extension. If the parameter has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'f70346b3-2096-4f44-8b26-01ab87da7d1e', 0, 0, 'NOT NULL', 'Category', '{\"properties0\":{\"name\":\"type\",\"example\":\"category\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be category.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mycategory\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a category\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"extension\",\"example\":\"com_content\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the name of the extension for which the categories will be retrieved. For example, to list content categories, use the value \'com_content\'. You can add also target one view, use the value \'com_component.view\'.\"},\"properties4\":{\"name\":\"scope\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is an alias for extension.\"},\"properties5\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"show_root\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) is whether a choice representing the root category will be shown. Remove completely if it is not to be shown.\"},\"properties7\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default category ID number.\"},\"properties8\":{\"name\":\"description\",\"example\":\"select one of the following categories\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties9\":{\"name\":\"class\",\"example\":\"inputbox\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties10\":{\"name\":\"published\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) (1\\/0\\/2\\/-2) is whether the drop down will show only published (1), unpublished (0), archived (2) or trashed (-2) categories. It is possible to combine different publishing status by entering the list of the corresponding numbers separated by comma (e.g. \\\"0,2,-2\\\" will display only unpublished, archived and trashed categories in the drop-down).\"},\"properties11\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Drop down list of categories.', 0, '', 1), +(3, 0, '', 1, '', 'TINYINT', 'The checkbox form field type provides a single checkbox. If the parameter has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', '10066262-b6e3-4f82-941e-cbe4f61ddd6c', 1, 0, 'NOT NULL', 'Checkbox', '{\"properties0\":{\"name\":\"type\",\"example\":\"checkbox\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be checkbox\"},\"properties1\":{\"name\":\"name\",\"example\":\"show_title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Show title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"value\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) is the value of the parameter if this checkbox is set (usually 1).\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value (usually 0 or 1).\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Show the title of the item\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties7\":{\"name\":\"class\",\"example\":\"inputbox\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties9\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (JavaScript use)\"}}', 'A single checkbox.', 0, '', 1), +(4, '', '', '', '', 'TEXT', 'The checkboxes form field type provides a set of checkboxes. Note: unlike most standard form field types, such as textfield or checkbox, this field is not an \"out of the box\" solution. It will create checkboxes for you, and submit their values in form of an array.', 'ac10859b-58da-4584-9682-36a6c2c8d04d', 1, 0, 'NOT NULL', 'Checkboxes', '{\"properties0\":{\"name\":\"type\",\"example\":\"checkboxes\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be checkboxs\"},\"properties1\":{\"name\":\"name\",\"example\":\"toppings\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select Toppings\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"option\",\"example\":\"anch|Anchovies,chor|Chorizo,on|Onions,mush|Mushrooms\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value.\"},\"properties5\":{\"name\":\"description\",\"example\":\"Select the topping of your choice\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Checkboxes that can be used for multi-select.', 0, '', 1), +(5, '', '', 10, '', 'VARCHAR', 'Provides a color picker input that allows users to select a color from a visual palette or enter a hexadecimal color code, such as #ff00ff.', '7f60f198-53e7-4fe9-813f-d1b6c553680e', 1, 0, 'NOT NULL', 'Color', '{\"properties0\":{\"name\":\"type\",\"example\":\"color\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be color.\"},\"properties1\":{\"name\":\"name\",\"example\":\"backgroundcolor\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"default\",\"example\":\"#FFFFFF\",\"adjustable\":\"1\",\"description\":\"(optional) provides a color when not set.\"},\"properties3\":{\"name\":\"label\",\"example\":\"Background\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties4\":{\"name\":\"description\",\"example\":\"Select the background color here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) tooltip for the form field.\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Color picker when clicking the input box.', 0, '', 1), +(6, '', '', '', '', '', 'The list form field type provides a drop down list or a list box of other current component table entries. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'dd2e1f4b-f5db-45e8-85fa-efd27bae7b6a', 0, 0, 'NOT NULL', 'Custom', '{\"properties0\":{\"name\":\"type\",\"example\":\"subjects\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a Subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"list_class\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties6\":{\"name\":\"layout\",\"example\":\"joomla.form.field.list-fancy-select\",\"adjustable\":\"1\",\"description\":\"(optional) New layout field added in Joomla 4\"},\"properties7\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties8\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties9\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties10\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties11\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties12\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties14\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties15\":{\"name\":\"extends\",\"example\":\"list\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The JFormField sub class that should be extended. The options are (\'list\',\'radio\',\'checkboxes\')\"},\"properties16\":{\"name\":\"button\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) to add new button next to field in edit view\"},\"properties17\":{\"name\":\"table\",\"example\":\"#__###component###_subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The table being linked to. The ###TABLE### placeholder holds the table in the php.\"},\"properties18\":{\"name\":\"component\",\"example\":\"com_###component###\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the component where this table is found. Must be com_users\"},\"properties19\":{\"name\":\"entity\",\"example\":\"###view###\",\"adjustable\":\"1\",\"description\":\"(optional) The area\\/entity this custom field is loaded. This value can be used in the field custom code.\"},\"properties20\":{\"name\":\"view\",\"example\":\"subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The single view name if the place this field is added.\"},\"properties21\":{\"name\":\"views\",\"example\":\"subjects\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The list view name if the place this field is added.\"},\"properties22\":{\"name\":\"value_field\",\"example\":\"name\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the text field in table linked to. The ###TEXT### placeholder holds the value_field in the php.\"},\"properties23\":{\"name\":\"key_field\",\"example\":\"id\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The field from the linked table to save in this table as the unique key. The ###ID### placeholder holds the key_field in the php.\"},\"properties24\":{\"name\":\"prime_php\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"This field makes sure that the PHP used here is used to build the field type, and other are custom fields with the same field type are ignored. So to avoid that they over write the PHP added here. You should only have one prime per\\/type. To disable remove the field or set to 0\"},\"properties25\":{\"name\":\"type_php_1\",\"example\":\"\\/\\/ Get the user object.\\r\\n\\t\\t$user = Factory::getApplication()->getIdentity();\\r\\n\\t\\t\\/\\/ Get the databse object.\\r\\n\\t\\t$db = Factory::getContainer()->get(DatabaseInterface::class);\\r\\n\\t\\t$query = $db->getQuery(true);\\r\\n\\t\\t$query->select($db->quoteName(array(\'a.###ID###\',\'a.###TEXT###\'),array(\'###ID###\',\'###CODE_TEXT###\')));\\r\\n\\t\\t$query->from($db->quoteName(\'###TABLE###\', \'a\'));\\r\\n\\t\\t$query->where($db->quoteName(\'a.published\') . \' = 1\');\\r\\n\\t\\t$query->order(\'a.###TEXT### ASC\');\\r\\n\\t\\t\\/\\/ Implement View Level Access (if set in table)\\r\\n\\t\\tif (!$user->authorise(\'core.options\', \'[[[com_component]]]\'))\\r\\n\\t\\t{\\r\\n\\t\\t\\t$columns = $db->getTableColumns(\'###TABLE###\');\\r\\n\\t\\t\\tif(isset($columns[\'access\']))\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$groups = implode(\',\', $user->getAuthorisedViewLevels());\\r\\n\\t\\t\\t\\t$query->where(\'a.access IN (\' . $groups . \')\');\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t\\t$db->setQuery((string)$query);\\r\\n\\t\\t$items = $db->loadObjectList();\\r\\n\\t\\t$options = [];\\r\\n\\t\\tif ($items)\\r\\n\\t\\t{\\r\\n\\t\\t\\tif ($this->multiple === false)\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$options[] = Html::_(\'select.option\', \'\', Text::_(\'Select an option\'));\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tforeach($items as $item)\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$options[] = Html::_(\'select.option\', $item->###ID###, $item->###CODE_TEXT###);\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t\\treturn $options;\",\"adjustable\":\"1\",\"description\":\"The php for the getOptions method.\"}}', 'Custom drop down list of items entries.', 0, '', 1), +(7, 0, '', 11, '', 'INT', 'A CustomUser fieldtype displays a filtered list of users based on selected user groups. It can exclude users already linked to items in the current view, making it useful for assigning unique users within specific contexts.', 'a4a39f70-070f-459c-be4b-0ac103a29b9a', 1, 0, 'NOT NULL', 'CustomUser', '{\"properties0\":{\"name\":\"type\",\"example\":\"staffusers\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type.\"},\"properties1\":{\"name\":\"name\",\"example\":\"staff\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Staff\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties5\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties8\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties9\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"\"},\"properties10\":{\"name\":\"hint\",\"example\":\"select a user\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties12\":{\"name\":\"extends\",\"example\":\"user\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The JFormField sub class that should be extended. The options are (\'list\',\'radio\',\'checkboxes\')\"},\"properties13\":{\"name\":\"table\",\"example\":\"#__users\",\"mandatory\":\"1\",\"description\":\"(mandatory) The table being linked to. Must be #__users\"},\"properties14\":{\"name\":\"component\",\"example\":\"com_users\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the component where this table is found. Must be com_users\"},\"properties15\":{\"name\":\"view\",\"example\":\"###view###\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The single view name if the place this field is added.\"},\"properties16\":{\"name\":\"views\",\"example\":\"###views###\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The list view name if the place this field is added.\"},\"properties17\":{\"name\":\"value_field\",\"example\":\"name\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the text field in table linked to.\"},\"properties18\":{\"name\":\"key_field\",\"example\":\"id\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The field from the linked table to save in this table as the unique key.\"},\"properties19\":{\"name\":\"type_php_1\",\"example\":\"\\t\\t\\/\\/ set the groups array\\r\\n\\t\\treturn ComponentHelper::getParams(\'com_###component###\')->get(\'###type###\');\",\"adjustable\":\"1\",\"description\":\"The php for the getGroups method.\"},\"properties20\":{\"name\":\"type_phpx_1\",\"example\":\"\\t\\t\\/\\/ To ensure that there is only one record per user\\r\\n\\t\\t\\/\\/ Get a db connection.\\r\\n\\t\\t$db = Factory::getDbo();\\r\\n\\t\\t\\/\\/ Create a new query object.\\r\\n\\t\\t$query = $db->getQuery(true);\\r\\n\\t\\t\\/\\/ Select all records from the #__###component###_###view### table from ###CODE### column\\\".\\r\\n\\t\\t$query->select($db->quoteName(\'###CODE###\'));\\r\\n\\t\\t$query->from($db->quoteName(\'#__###component###_###view###\'));\\r\\n\\t\\t$db->setQuery($query);\\r\\n\\t\\t$db->execute();\\r\\n\\t\\t$found = $db->getNumRows();\\r\\n\\t\\tif ($found)\\r\\n\\t\\t{\\r\\n\\t\\t\\t\\/\\/ return all users already used\\r\\n\\t\\t\\treturn array_unique($db->loadColumn());\\r\\n\\t\\t}\\r\\n\\t\\treturn null;\",\"adjustable\":\"1\",\"description\":\"The php for the getExcluded method.\"}}', 'List of users.', 0, '', 1), +(8, '', '', '', '', 'TEXT', 'The Editor field type provides a WYSIWYG (What You See Is What You Get) editor for rich text input, allowing users to format content visually without writing HTML.', '51f288d2-6eaa-42bc-a182-a6f69b3032b8', 1, 0, 'NULL', 'Editor', '{\"properties0\":{\"name\":\"type\",\"example\":\"editor\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be editor.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mytextblock\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Test Field\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"Some text\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties5\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties6\":{\"name\":\"width\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the width (in pixels) of the wysiwyg editor and defaults to 100%.\"},\"properties7\":{\"name\":\"height\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the height (in pixels) of the wysiwyg editor and defaults to 250px.\"},\"properties8\":{\"name\":\"cols\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the width of the editor (in columns).\"},\"properties9\":{\"name\":\"rows\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the height of the editor (in rows).\"},\"properties10\":{\"name\":\"buttons\",\"example\":\"no\",\"adjustable\":\"1\",\"description\":\"(optional) can be an array of plugin buttons to be excluded or set to false. The default editors-xtd are: article, image, pagebreak and readmore.\"},\"properties11\":{\"name\":\"syntax\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) can be used to set the code syntax matching for this field.\"},\"properties12\":{\"name\":\"hide\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) array of plugin buttons to be hidden. eg... set buttons=\\\"true\\\" hide=\\\"readmore,pagebreak\\\"\"},\"properties13\":{\"name\":\"editor\",\"example\":\"codemirror|none\",\"adjustable\":\"1\",\"description\":\"specifies the editor to be used and can include two options (editor=\\\"desired|alternative\\\")\"},\"properties14\":{\"name\":\"filter\",\"example\":\"safehtml\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties15\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties16\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties17\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Editor area field.', 0, '', 1), +(9, '', '', '', '', '', 'The hidden form field type provides a hidden field for saving a field whose value cannot be altered directly by a user in the Administrator (it can be altered in code or by editing the params.ini file). If the parameter has a saved value, this is entered; otherwise, the default value (if defined) will be used.', '82f1b5ca-bb9b-44d7-9a7a-9a03fb2a31dd', 0, '', '', 'Hidden', '{\"properties0\":{\"name\":\"type\",\"example\":\"hidden\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be hidden.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mysecretvariable\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"default\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the data which needs to be collected.\"},\"properties3\":{\"name\":\"filter\",\"example\":\"STRING\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties4\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"}}', 'Hidden field for storing fixed values.', 0, '', 1), +(10, 0, '', 11, '', 'INT', 'The integer form field type provides a select box with a range of integer values. If the field has a value saved, this value is displayed when the page is first loaded. If not, the default value (if any) is selected.', 'fdbb50ea-35d2-45b2-a0bc-076fdf1544b8', 1, 0, 'NOT NULL', 'Integer', '{\"properties0\":{\"name\":\"type\",\"example\":\"integer\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be integer.\"},\"properties1\":{\"name\":\"name\",\"example\":\"size\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Size\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties7\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties9\":{\"name\":\"first\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the lowest on the list.\"},\"properties10\":{\"name\":\"last\",\"example\":\"20\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the highest on the list.\"},\"properties11\":{\"name\":\"step\",\"example\":\"5\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this integer, starting with the first value until the last value is reached.\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties13\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Dropdown of integers in a set range.', 0, '', 1), +(11, '', '', '', '', '', 'The list form field type provides a drop down list or a list box of custom-defined entries. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'a51dfc06-1b9b-4d0a-86ba-f705bcd40d4d', 0, 0, 'NOT NULL', 'List', '{\"properties0\":{\"name\":\"type\",\"example\":\"list\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be list.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mylist\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an option\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"list_class\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties6\":{\"name\":\"layout\",\"example\":\"joomla.form.field.list-fancy-select\",\"adjustable\":\"1\",\"description\":\"(optional) New layout field added in Joomla 4\"},\"properties7\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties8\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) filter options\"},\"properties9\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties10\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties11\":{\"name\":\"option\",\"example\":\"0|Option 1,1|Option 2,2|Option 1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties12\":{\"name\":\"useglobal\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) if set to true, it will show the value that is set in the global configuration if found in the database.\"},\"properties13\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default list item value.\"},\"properties14\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties15\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Dropdown list of a custom-defined entries.', 0, '', 1), +(12, '', '', 255, '', 'VARCHAR', 'The media form field type provides modal access to the media manager for the choice of an image or other kind of media, e.g. video. Users with appropriate permissions will be able to upload files.', '69957007-e3d4-4976-a32b-611d02dbad71', 1, 0, 'NOT NULL', 'Media', '{\"properties0\":{\"name\":\"type\",\"example\":\"media\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be media.\"},\"properties1\":{\"name\":\"name\",\"example\":\"media\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Media\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"directory\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the directory from which the user will be able to choose a file. This attribute should be relative to the top level \\/images\\/ folder. The default is that the user will be confined to the top level \\/images\\/ folder.\"},\"properties5\":{\"name\":\"preview\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) shows or hides the preview of the currently chosen image. (\\\"true\\\": Show always, \\\"tooltip\\\": Show as tooltip, \\\"false\\\": Show never). Default is \\\"tooltip\\\".\"},\"properties6\":{\"name\":\"preview_width\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) sets the max-width of preview image (default: \\\"200\\\")\"},\"properties7\":{\"name\":\"preview_height\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) sets the max-height of preview image (default: \\\"200\\\")\"},\"properties8\":{\"name\":\"types\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a comma-separated list of file types (images, audios, videos, documents, directories). Default is images. This list decides which of the allowed file extensions from Media Manager configuration are used. For example, images,documents means only files with an allowed images extension or an allowed documents extension are available for selection. When the type directories is used then the field will allow selection of a directory; this can be useful in setting extension parameters, to define an upload destination for example.\"},\"properties9\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties10\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Select or upload media via modal.', 0, '', 1), +(13, '', '', '', '', '', 'The Meter form field type displays a visual indicator representing a numeric value within a specified range. It is useful for showing progress, performance, or any measurable quantity with optional thresholds for low, high, and optimum values.', '81668284-e572-4e17-927b-ba697fc64bd0', 0, 0, 'NOT NULL', 'Meter', '{\"properties0\":{\"name\":\"type\",\"example\":\"meter\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be meter.\"},\"properties1\":{\"name\":\"name\",\"example\":\"meter\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Meter\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"width\",\"example\":\"330px\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of meter box\"},\"properties4\":{\"name\":\"color\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The background color\"},\"properties5\":{\"name\":\"default\",\"example\":\"9\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"animated\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) lets the bar have strips\"},\"properties7\":{\"name\":\"active\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) lets the strips on the bar move\"},\"properties8\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties9\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties10\":{\"name\":\"min\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the min on the meter.\"},\"properties11\":{\"name\":\"max\",\"example\":\"20\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the max on meter.\"},\"properties12\":{\"name\":\"step\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this integer, starting with the first value until the last value is reached.\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Displays a value within a defined range.', 0, '', 1), +(14, '', '', '', '', '', 'This form field makes it possible to create titles, texts, descriptions and even alert boxes. It also allows you to bring order in the settings for extensions, by separating them with useful titles. Or adding descriptions for certain settings (without having to rely on the tooltips). Or adding any other text you want.', 'f9ecacd0-8481-4157-8c71-d7aaefc2b7c3', 0, 0, 'NOT NULL', 'Note', '{\"properties0\":{\"name\":\"type\",\"example\":\"note\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be note\"},\"properties1\":{\"name\":\"name\",\"example\":\"note_one\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"The notice\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory or optional if using description) (translatable) is the descriptive title of the note \"},\"properties3\":{\"name\":\"description\",\"example\":\"The notice description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional if using label)(translatable) the description\\/text of the note \"},\"properties4\":{\"name\":\"heading\",\"example\":\"h4\",\"adjustable\":\"1\",\"description\":\"(optional) the type of heading element to use for the label (default: h4)\"},\"properties5\":{\"name\":\"class\",\"example\":\"alert\",\"adjustable\":\"1\",\"description\":\"(optional) a class name (or class names), like these examples ( alert, alert alert-info, alert alert-success, alert alert-error )\"},\"properties6\":{\"name\":\"close\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) a value of \'true\' (for alerts) or the value for the data-dismiss of the bootstrap close icon\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Displays custom text or headings in forms.', 0, '', 1), +(15, 0, '', 11, '', 'INT', 'The number form field type provides a single-line input for numeric values, typically displayed with up/down step controls (spinner). It supports attributes such as minimum, maximum, and step values, allowing you to define numeric ranges and precision for user input.', '5abd2b73-643b-4273-841a-787991aad968', 1, 0, 'NOT NULL', 'Number', '{\"properties0\":{\"name\":\"type\",\"example\":\"number\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be number.\"},\"properties1\":{\"name\":\"name\",\"example\":\"number\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Number\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"min\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the lowest on the list.\"},\"properties8\":{\"name\":\"max\",\"example\":\"40\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the highest on the list.\"},\"properties9\":{\"name\":\"step\",\"example\":\"5\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this number, starting with the first value until the last value is reached.\"},\"properties10\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Javascript that should run on changing of the value.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Single-line number input with step controls.', 0, '', 1), +(16, '', '', 100, '', 'VARCHAR', 'The password form field type provides a text box for entry of a password. The password characters will be obscured as they are entered. If the field has a saved value this is entered (in obscured form) into the text box. If not, the default value (if any)', '0022598d-0ee1-44f2-aa94-c2eb47595f73', 1, 0, 'NOT NULL', 'Password', '{\"properties0\":{\"name\":\"type\",\"example\":\"password\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be password.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mypassword\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter A Password\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"default\",\"example\":\"secret\",\"adjustable\":\"1\",\"description\":\"(optional) is the default password.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"message\",\"example\":\"Error! Please add password here.\",\"adjustable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties12\":{\"name\":\"rules\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) determines whether the password should adhere to certain rules.\"},\"properties13\":{\"name\":\"field\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) used in validation of \\\"equals\\\" to link the field to match.\"},\"properties14\":{\"name\":\"filter\",\"example\":\"raw\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties15\":{\"name\":\"hint\",\"example\":\"Password Here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties16\":{\"name\":\"autocomplete\",\"example\":\"off\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties17\":{\"name\":\"strengthmeter\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) measures the strength of the password.\"},\"properties18\":{\"name\":\"force\",\"example\":\"off\",\"adjustable\":\"1\",\"description\":\"(optional) forces a password to be set.\"},\"properties19\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties20\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Text box for entry of a password.', 5, '', 1), +(17, 0, '', 1, '', 'TINYINT', 'The radio form field type displays a set of radio buttons for selecting one option from a predefined list. If the field has a saved value, that option is selected when the page loads; otherwise, the default value (if any) is used.', 'b868ed59-4208-4206-8504-95a35a74a11c', 1, 0, 'NULL', 'Radio', '{\"properties0\":{\"name\":\"type\",\"example\":\"radio\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be radio.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myradiovalue\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an option\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) New in Joomla 3, if set to class=\\\"btn-group btn-group-yesno\\\" will show the nice coloured buttons\"},\"properties15\":{\"name\":\"layout\",\"example\":\"joomla.form.field.radio.switcher\",\"adjustable\":\"1\",\"description\":\"(optional) New layout field added in Joomla 4 layout=\\\"joomla.form.field.radio.switcher\\\" will show the nice switcher\"},\"properties5\":{\"name\":\"option\",\"example\":\"1|Yes,0|No\",\"adjustable\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties6\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default radio button item value.\"},\"properties7\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties8\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties14\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties9\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties10\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties11\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties13\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Radio buttons for option selection.', 0, '', 1), +(18, 0, '', 11, '', 'INT', 'The Range form field type displays a horizontal slider that allows users to select a numeric value within a defined range. It supports attributes such as minimum, maximum, and step values to control the slider’s behavior and precision. This field offers a user-friendly alternative to numeric input fields when selecting values from a fixed interval.', '627d3845-7273-4f75-8e63-7b3a319a42c8', 1, 0, 'NOT NULL', 'Range', '{\"properties0\":{\"name\":\"type\",\"example\":\"range\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be range.\"},\"properties1\":{\"name\":\"name\",\"example\":\"range\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Range\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"9\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties6\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties7\":{\"name\":\"min\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the min on the meter.\"},\"properties8\":{\"name\":\"max\",\"example\":\"20\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the max on meter.\"},\"properties9\":{\"name\":\"step\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this integer, starting with the first value until the last value is reached.\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties12\":{\"name\":\"onchange\",\"example\":\"jQuery(\'#jform_range\').closest(\'.controls\').find(\'span\').remove(); var value = jQuery(\'#jform_range\').val();jQuery(\'#jform_range\').closest(\'.controls\').append(\' \'+value+\'\');\",\"adjustable\":\"1\",\"description\":\"(optional) javascript to run when the range is changed\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Slider to select a value within a range.', 0, '', 1), +(19, '', '', '', '', '', 'Provides a modal interface containing rows of form fields that you define. Users can add as many entries as needed, with each row repeating the specified field set. This field type relies on a jQuery-based JavaScript file for its dynamic functionality.', '05bf68d4-52f9-4705-8ae7-cba137fce0ad', 0, 0, 'NOT NULL', 'Repeatable', '{\"properties0\":{\"name\":\"type\",\"example\":\"repeatable\",\"adjustable\":\"1\",\"description\":\"(mandatory) must be repeatable.\"},\"properties1\":{\"name\":\"name\",\"example\":\"repeatable_list\",\"adjustable\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter\"},\"properties2\":{\"name\":\"label\",\"example\":\"The Repeatable List\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) description text for the form field. Displays at the top of the modal with the name as well as in the usual position in the form\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The default value for the form field if the field is left empty. Note this has to be a json string compatible with the contents of the form field.\"},\"properties5\":{\"name\":\"id\",\"example\":\"aid\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) id of the hidden from field. (the modal will have this id with an added suffix of \\\"_modal\\\" and the table within the modal will have this id with a suffix of _modal_table\\\")\"},\"properties6\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) class of the table.\"},\"properties7\":{\"name\":\"select\",\"example\":\"Click here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) The text to show on the modal button.\"},\"properties8\":{\"name\":\"icon\",\"example\":\"list\",\"adjustable\":\"1\",\"description\":\"(optional) The icon to show on the select button (is prefixed with \\\"icon-\\\").\"},\"properties9\":{\"name\":\"maximum\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) The maximum number of rows of fields allowed (by default 999 to be effectively infinite)\"},\"properties10\":{\"name\":\"fields\",\"example\":\"1,2,3\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The fields to add to the modal. All fields must first be created in component builder as a field before you can add them here, since you must use the id of the field. Separate the field ids with commas. Do not add custom fields that are not also used in this component.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Use only if you would like to save raw data, since the default is best.\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Form fields with repeatable rows of inputs.', 0, '', 1), +(20, '', '', '', '', '', 'The spacer form field type provides a visual separator between groups of form fields. It serves purely as a visual aid to organize the layout of the form and does not store any value.', '626d0cba-a908-4a4f-a447-96d781aeaa0b', 0, '', '', 'Spacer', '{\"properties0\":{\"name\":\"type\",\"example\":\"spacer\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be spacer.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myspacer\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"The notice\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is the text to use as a spacer.\"},\"properties3\":{\"name\":\"description\",\"example\":\"The notice description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"hr\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is whether to display a horizontal rule (\'true\' or \'false\'). If this attribute is \'true\', the label attribute will be ignored.\"},\"properties5\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"}}', 'Visual divider with no stored value.', 0, '', 1), +(21, '', '', '', '', '', 'Using this generic form field type forces you to write SQL in an XML file and is rather limited. For more flexibility, consider using a Custom FieldType.\r\n\r\nThe sql form field type provides a drop down list of entries obtained by running a query on the Joomla database. The first column returned by the query is used as the option value, and the second column (if present) is used as the label displayed in the dropdown.', 'd4c16f1e-fd6e-4714-90eb-f9d97edd9c32', 0, 0, 'NOT NULL', 'SQL', '{\"properties0\":{\"name\":\"type\",\"example\":\"sql\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be sql.\"},\"properties1\":{\"name\":\"name\",\"example\":\"title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an article\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"query\",\"example\":\"SELECT id, concat( title, \' (\', created, \')\') AS title FROM #__content\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the SQL query which will provide the data for the drop-down list. The query must return two columns; one called \'value\' (unless overridden by the key_field attribute) which will hold the values of the list items; the other called the same as the value of the name attribute (unless overridden by the value_field attribute) containing the text to be shown in the drop-down list.\"},\"properties4\":{\"name\":\"default\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value. This is the value of the \'value\' field, unless overridden by the key_field attribute.\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties7\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties8\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties9\":{\"name\":\"key_field\",\"example\":\"id\",\"adjustable\":\"1\",\"description\":\"(optional) is the name of the column that will contain values for the parameter. If omitted then the column called \'value\' will be used, if it exists.\"},\"properties10\":{\"name\":\"value_field\",\"example\":\"title\",\"adjustable\":\"1\",\"description\":\"(optional) is the name of the column that will contain values to be shown to the user in the drop-down list. If omitted then the column with the same name as the name attribute will be used, if it exists.\"},\"properties11\":{\"name\":\"translate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) will translate the output of the value_field if set to true. It defaults to false.\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Dropdown list populated by a database query.', 0, '', 1), +(22, '', '', '', '', '', 'The tag field type provides an input for assigning tags to an item. Tags can be selected or created using an AJAX-powered interface or chosen from a nested list of existing tags, depending on configuration. This allows for flexible and consistent tagging within Joomla.', '48cba89e-8fcb-481e-a7d3-2e41773e452d', 0, 0, 'NOT NULL', 'Tag', '{\"properties0\":{\"name\":\"type\",\"example\":\"tag\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be tag.\"},\"properties1\":{\"name\":\"name\",\"example\":\"tags\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"mode\",\"example\":\"ajax\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the way the tags will be loaded, the options are ( ajax or nested )\"},\"properties3\":{\"name\":\"label\",\"example\":\"Tags\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties4\":{\"name\":\"description\",\"example\":\"Assign tags to ###VIEW### items. Tag names must be unique.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is the description of the field.\"},\"properties5\":{\"name\":\"id\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the id to add to the field. Note if none is set this will be the name of the field.\"},\"properties6\":{\"name\":\"class\",\"example\":\"inputbox small\",\"adjustable\":\"1\",\"description\":\"(optional) is the class to add to the field.\"},\"properties7\":{\"name\":\"published\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) determines if non published tags should be allowed.\"},\"properties8\":{\"name\":\"language\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is language to filter the existing tags by.\"},\"properties9\":{\"name\":\"multiple\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) is the ability to add more than 1 tag to the form field.\"},\"properties10\":{\"name\":\"custom\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) if the ajax mode is chosen setting this to [deny] will prevent users from adding in new tags.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Entry point for tags (either AJAX or Nested).', 0, '', 1), +(23, '', '', '', '', '', 'The tel field type is a text input specifically intended for telephone numbers. It functions as an alias of the standard text field but can be enhanced with the tel validation rule and input filter to ensure proper formatting and sanitation of phone number inputs.', '1c6c519c-3bc8-4914-8940-3e9591b0bce6', 0, 0, 'NOT NULL', 'Tel', '{\"properties0\":{\"name\":\"type\",\"example\":\"text\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be text.\"},\"properties1\":{\"name\":\"name\",\"example\":\"phone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Phone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter phone number\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"tel\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties12\":{\"name\":\"validated\",\"example\":\"tel\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to validated the input data.\"},\"properties13\":{\"name\":\"message\",\"example\":\"Error! Please add phone number here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties14\":{\"name\":\"hint\",\"example\":\"Your Phone Number\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties15\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties16\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Input field for telephone numbers.', 0, '', 1), +(24, '', '', 255, '', 'VARCHAR', 'The text form field type provides a single-line input box for entering textual data. If a saved value exists, it is displayed when the page loads; otherwise, the default value (if specified) is used. This field is commonly used for short, free-form text entries such as names, titles, or labels.', '201327fe-3067-4316-a155-3fe2a52e05c0', 1, 0, 'NOT NULL', 'Text', '{\"properties0\":{\"name\":\"type\",\"example\":\"text\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be text.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mytextvalue\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties19\":{\"name\":\"charcounter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"Does this field support a character counter? (true or false)\"},\"properties5\":{\"name\":\"default\",\"example\":\"Some text\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"STRING\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties12\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties13\":{\"name\":\"field\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) used in validation of \\\"equals\\\" to link the field to match.\"},\"properties14\":{\"name\":\"message\",\"example\":\"Error! Please add some text here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties15\":{\"name\":\"hint\",\"example\":\"Your Name Here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties16\":{\"name\":\"autocomplete\",\"example\":\"on\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties17\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties18\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Single-line text input field.', 0, '', 1), +(25, '', '', '', '', 'TEXT', 'The textarea form field type provides a multi-line input area for entering larger blocks of text. If a saved value exists, it is displayed when the page first loads; otherwise, the default value (if specified) is used. This field is ideal for content such as descriptions, comments, or notes.', '76fe1250-6fa7-49e5-a0ee-f06d8d4c9f99', 1, 0, 'NOT NULL', 'Textarea', '{\"properties0\":{\"name\":\"type\",\"example\":\"textarea\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be textarea.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mytextarea\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"rows\",\"example\":\"10\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the height of the visible text area in lines. If omitted the width is determined by the browser. The value of rows does not limit the number of lines that may be entered.\"},\"properties4\":{\"name\":\"cols\",\"example\":\"5\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the width of the visible text area in characters. If omitted the width is determined by the browser. The value of cols does not limit the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"default text\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Text Area\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties7\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties8\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties9\":{\"name\":\"filter\",\"example\":\"raw\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties10\":{\"name\":\"hint\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the textarea.\"},\"properties11\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties12\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties13\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties14\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties15\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties16\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Multi-line text input area.', 0, '', 1), +(26, '', '', '', '', '', 'The timezone form field type provides a dropdown list of available time zones for selection. If a saved value exists, it is displayed when the page is first loaded; otherwise, the default value (if specified) is shown. This field is useful for allowing users to set or adjust time zone preferences.', 'ed8d8cf4-cb05-49cc-95ef-4ef275f539f9', 0, 0, 'NOT NULL', 'Timezone', '{\"properties0\":{\"name\":\"type\",\"example\":\"timezone\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be timezone.\"},\"properties1\":{\"name\":\"name\",\"example\":\"timezone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Timezone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default time zone. For example, use \'-10\' for \'(UTC -10:00) Hawaii\'.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Dropdown list of time zones.', 0, '', 1), +(27, '', '', 255, '', 'VARCHAR', 'The URL field type is a text input specifically intended for entering web addresses. It functions like a standard text field but uses the url input type to enable browser-level validation. If a fully qualified URL (one with a scheme and domain, such as http://example.com) includes internationalized domain names (IDNs) with non-ASCII characters (e.g., ê or Ψ), it will be automatically converted to a valid ASCII-compatible format (Punycode) for proper handling and storage.', '8df6e07e-2b16-43ed-a18d-2059fa44cdf1', 1, 0, 'NOT NULL', 'URL', '{\"properties0\":{\"name\":\"type\",\"example\":\"url\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be url.\"},\"properties1\":{\"name\":\"name\",\"example\":\"website\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Website\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter website address\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"relative\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) set to true for relative URLs\"},\"properties12\":{\"name\":\"filter\",\"example\":\"url\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties13\":{\"name\":\"validated\",\"example\":\"url\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties14\":{\"name\":\"scheme\",\"example\":\"http,https,mailto\",\"adjustable\":\"1\",\"description\":\"(optional) Validates that the value is a URL with a valid scheme (which can be restricted by the optional comma-separated field \'scheme\'), and passes a basic syntax check.\"},\"properties15\":{\"name\":\"message\",\"example\":\"Error! Please add website here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties16\":{\"name\":\"hint\",\"example\":\"Your Website Here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties17\":{\"name\":\"autocomplete\",\"example\":\"on\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties18\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties19\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Text input for a valid URL.', 0, '', 1), +(28, 0, '', 11, '', 'INT', 'The user form field type provides a modal-based selection interface for choosing a Joomla user. It allows administrators to browse and select users from the system through a searchable pop-up dialog.', 'b0641980-5e78-42f6-972f-86aa607db23e', 1, 0, 'NOT NULL', 'User', '{\"properties0\":{\"name\":\"type\",\"example\":\"user\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be user.\"},\"properties1\":{\"name\":\"name\",\"example\":\"user\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute.\"},\"properties2\":{\"name\":\"label\",\"example\":\"User\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties5\":{\"name\":\"size\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Modal selector for Joomla users.', 0, '', 1), +(29, '', '', '', '', '', 'The usergrouplist form field type provides a dropdown list of all available Joomla user groups. It allows selection of a single group from the site\'s access control system for use in configuration or assignment settings.', 'e2f31181-fbb3-4c3a-859d-72b6b0cff308', 0, 0, 'NOT NULL', 'Usergrouplist', '{\"properties0\":{\"name\":\"type\",\"example\":\"usergrouplist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be usergrouplist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"usergroup\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Group\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties11\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the usergroup id of the default selection in the dropdown list.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Select a group\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties5\":{\"name\":\"layout\",\"example\":\"joomla.form.field.list-fancy-select\",\"adjustable\":\"1\",\"description\":\"(optional) (translatable) is the layout, for example joomla.form.field.list-fancy-select.\"},\"properties6\":{\"name\":\"size\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties7\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the field required true if yes.\"},\"properties8\":{\"name\":\"checksuperusergroup\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) is boolean to omit Super User groups. Values 1 or 0.\"},\"properties9\":{\"name\":\"multiple\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) If set to multiple then allows more than one usergroup to be selected.\"},\"properties10\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Dropdown list of Joomla user groups.', 0, '', 1), +(30, '', '', 255, '', 'VARCHAR', 'The Filelist form field type provides a drop down list of files from a specified directory. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', '0c80df15-52c6-4647-983b-4bb4888a2edf', 1, 0, 'NOT NULL', 'Filelist', '{\"properties0\":{\"name\":\"type\",\"example\":\"filelist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be filelist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myfile\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a file\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"directory\",\"example\":\"images\\/stories\",\"adjustable\":\"1\",\"description\":\"(optional) is the filesystem path to the directory containing the files to be listed. If omitted the directory given by JPATH_ROOT is assumed.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default file name.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of files selected for inclusion in the drop-down list. If omitted, all files in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties7\":{\"name\":\"exclude\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to exclude files from the list. The exclude argument expression is applied after the filter argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties8\":{\"name\":\"stripext\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true then file name extensions will be stripped from the file names listed. Also note that the file name will be saved without the extension too.\"},\"properties9\":{\"name\":\"hide_none\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Do not use -\' item is omitted from the drop-down list.\"},\"properties10\":{\"name\":\"hide_default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Use default -\' item is omitted from the drop-down list.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'File dropdown from directory.', 0, '', 1), +(31, '', '', 255, '', 'VARCHAR', 'The Folderlist form field type provides a drop down list of folders from a specified directory. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'd3ab2ae4-9370-4497-ae6d-dee2e0b74b7a', 1, 0, 'NOT NULL', 'Folderlist', '{\"properties0\":{\"name\":\"type\",\"example\":\"folderlist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be folderlist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myfolder\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a folder\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"directory\",\"example\":\"images\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the filesystem path to the directory containing the folders to be listed.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default folder name.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of folders selected for inclusion in the drop-down list. If omitted, all folders in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties7\":{\"name\":\"exclude\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to exclude folders from the list. The exclude argument expression is applied after the filter argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties8\":{\"name\":\"hide_none\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Do not use -\' item is omitted from the drop-down list.\"},\"properties9\":{\"name\":\"hide_default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Use default -\' item is omitted from the drop-down list.\"},\"properties10\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Folder dropdown from directory.', 0, '', 1), +(32, '', '', 255, '', 'VARCHAR', 'Note: When using the file input type you should always add the attribute enctype=\"multipart/form-data\" to your form tag. Otherwise, the uploaded files will not be attached correctly.\r\n\r\nNote 2: You can put a soft limit file size by adding a hidden field with name=\"MAX_FILE_SIZE\" and value the maximum allowed bytes which is handled by php, but you must also handle it in your code with or without it.', '6da71c1e-119c-4e0d-a309-f3e52ecfa1d1', 1, 0, 'NOT NULL', 'File', '{\"properties0\":{\"name\":\"type\",\"example\":\"file\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be file.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myfilevalue\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Choose an image from your computer with maximum 100KB\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value, but doesn\'t mean much for a file.\"},\"properties5\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the file box in characters.\"},\"properties6\":{\"name\":\"accept\",\"example\":\"image\\/*\",\"adjustable\":\"1\",\"description\":\"(optional) Tells the browser what MIME types your form will allow to be uploaded.\"},\"properties7\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties8\":{\"name\":\"labelclass\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) adds a CSS class for form field\'s label; for Joomla 2.5.4+\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute\"},\"properties10\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties11\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) For Joomla form validating it to be filled in\"},\"properties12\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Whether to Joomla validate the field according to rules\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Input field for files', 0, '', 1), +(33, 0, '', 7, '', 'INT', 'The Menuitem form field type provides a grouped dropdown list of available menu items from your Joomla site, organized by their respective menus for easier selection.', 'f183b0e2-017f-48bd-8dba-d332ce1b8d9e', 1, 0, 'NOT NULL', 'Menuitem', '{\"properties0\":{\"name\":\"type\",\"example\":\"menuitem\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be menuitem.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mymenuitem\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a menu item\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default menu item. Note that this is the ItemID number of the menu item.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"published\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) determines whether all menu items are listed or only published menu items. If state is \'0\' then all menu items will be listed. If state is \'1\' then only published menu items will be listed.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"int\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Dropdown list of items within a selected menu.', 0, '', 1), +(34, 0, '', 7, '', 'INT', 'Remember all views already have [accesslevel] added by default, only add this if you need more custom access selection! Provides a dropdown list of accesslevel options with the current option selected.', '913ed2ce-836c-48e8-97af-e482441f47df', 1, 0, 'NOT NULL', 'Accesslevel', '{\"properties0\":{\"name\":\"type\",\"example\":\"accesslevel\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be accesslevel\"},\"properties1\":{\"name\":\"name\",\"example\":\"accesstwo\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute. \"},\"properties2\":{\"name\":\"label\",\"example\":\"Access Two\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Select an access level to this concept.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the field required true if yes.\"},\"properties6\":{\"name\":\"multiple\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) If set to multiple then allows more than one usergroup to be selected.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'List of user accesslevels.', 0, '', 1), +(35, '', '', '', '', 'TEXT', 'Provides a form containing repeatable rows of nested fields that you define. Users can add as many entries as needed, with each row replicating the specified field structure. This field type relies on a jQuery-based JavaScript file to handle dynamic behaviour and is ideal for managing structured, multi-value input.', '7139f2c8-a70a-46a6-bbe3-4eefe54ca515', 1, 0, 'NOT NULL', 'Subform', '{\"properties0\":{\"name\":\"type\",\"example\":\"subform\",\"description\":\"(mandatory) must be subform.\"},\"properties1\":{\"name\":\"name\",\"example\":\"options\",\"adjustable\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter\"},\"properties2\":{\"name\":\"label\",\"example\":\"The Option List\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"layout\",\"example\":\"joomla.form.field.subform.repeatable-table\",\"adjustable\":\"1\",\"description\":\"(mandatory) The layout for the repeatable table.\"},\"properties4\":{\"name\":\"component\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) To change the component where it should search for layout\"},\"properties5\":{\"name\":\"client\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Function to initialise the application clientFrontend: site or 0Backend: admin or 1\"},\"properties6\":{\"name\":\"multiple\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The rows to be multiple.\"},\"properties7\":{\"name\":\"buttons\",\"example\":\"add,remove,move\",\"adjustable\":\"1\",\"description\":\"(optional) Which buttons to show if multiple mode is true.Options: add,remove,move\"},\"properties8\":{\"name\":\"fields\",\"example\":\"guid,guid,guid\",\"adjustable\":\"1\",\"description\":\"(mandatory) The fields to add to the modal. All fields must first be created in component builder as a field before you can add them here, since you must use the id of the field. Separate the field ids\\/guids with commas. Do not add custom fields that are not also used in this component.\"},\"properties9\":{\"name\":\"formsource\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) you can add a path to a xml file containing the fields.\"},\"properties10\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) description text for the form field. Displays at the top of the modal with the name as well as in the usual position in the form\"},\"properties11\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The default value for the form field if the field is left empty. Note this has to be a json string compatible with the contents of the form field.\"},\"properties12\":{\"name\":\"icon\",\"example\":\"list\",\"adjustable\":\"1\",\"description\":\"(optional) The icon to show on the select button (is prefixed with \\\"icon-\\\").\"},\"properties13\":{\"name\":\"max\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) The maximum number of rows of fields allowed (by default 999 to be effectively infinite)\"},\"properties14\":{\"name\":\"min\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The minimum number of rows of fields required\"},\"properties15\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Use only if you would like to save raw data, since the default is best.\"},\"properties16\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Repeating sets of nested form fields.', 0, '', 1), +(36, '', '', 100, '', 'VARCHAR', 'A field type that provides an input for entering an email address. It includes basic validation to ensure the input matches the standard email format, helping to prevent invalid entries.', '35948af5-9e79-4454-8dfa-682ee4fdf650', 1, 0, 'NOT NULL', 'Email', '{\"properties0\":{\"name\":\"type\",\"example\":\"email\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be email.\"},\"properties1\":{\"name\":\"name\",\"example\":\"email\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Email Address\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"inputbox\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"STRING\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties12\":{\"name\":\"validate\",\"example\":\"email\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties13\":{\"name\":\"unique\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) Used in validation, to check if we should test for uniqueness, to insure that this email does not already belong to another user. Check line 99 in \\/libraries\\/src\\/Form\\/Rule\\/EmailRule.php\"},\"properties14\":{\"name\":\"field\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) used in validation of \\\"equals\\\" to link the field to match.\"},\"properties15\":{\"name\":\"message\",\"example\":\"Error! Please add some text here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties16\":{\"name\":\"hint\",\"example\":\"your@email.com\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties17\":{\"name\":\"autocomplete\",\"example\":\"on\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties18\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties19\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Email form field type.', 0, '', 1), +(37, 0, '', 7, '', 'INT', 'The Plugins form field type provides a dropdown list of available plugins from a specified plugin folder. It allows selection from plugins grouped under a particular type (folder), making it useful when an extension needs to reference or configure specific plugin functionality within Joomla. The list is dynamically populated based on the plugins installed in the defined folder.', '37fa4e1d-b7ca-4a8f-aa4b-d8085c135233', 1, 0, 'NOT NULL', 'Plugins', '{\"properties0\":{\"name\":\"type\",\"example\":\"plugins\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be editors.\"},\"properties1\":{\"name\":\"name\",\"example\":\"editor\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an editor\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties5\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties6\":{\"name\":\"folder\",\"example\":\"editors\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) editors or captcha.\"},\"properties7\":{\"name\":\"filter\",\"example\":\"cmd\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Dropdown of plugins from a specified folder.', 0, '', 1), +(38, '', '', '', '', '', 'The Captcha field type that integrates with a Joomla captcha plugin to present a human verification challenge, typically used to distinguish between human users and automated systems.', '206fdad4-14d0-45f1-9c84-3d09abf48a39', 0, 0, 'NOT NULL', 'Captcha', '{\"properties0\":{\"name\":\"type\",\"example\":\"captcha\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be captcha.\"},\"properties1\":{\"name\":\"name\",\"example\":\"captcha\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"validate\",\"example\":\"captcha\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be captcha.\"},\"properties3\":{\"name\":\"label\",\"example\":\"Captcha\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties4\":{\"name\":\"description\",\"example\":\"We do not like spam, please show us you are human\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"namespace\",\"example\":\"componentbuilder\",\"description\":\"(optional) the component name seems to work\"}}', 'Captcha robot check.', 0, '', 1), +(39, '', '', '', '', '', 'The groupedlist form field type provides a drop down list or list box of custom-defined entries, organized into labeled groups. If the field has a saved value, this is selected when the page is first loaded. If not, the default value (if any) is selected.', '088d47c0-b058-4894-b92e-dcf1b9d5a722', 0, 0, 'NOT NULL', 'Groupedlist', '{\"properties0\":{\"name\":\"type\",\"example\":\"groupedlist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be groupedlist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mygrouplist\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an option\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"list_class\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties6\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties7\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) filter options\"},\"properties8\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties9\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties10\":{\"name\":\"option\",\"example\":\"Group Name@@1,1|Option 1|1,2|Option 2|1,Group Name 2@@2,3|Option 3|2\",\"adjustable\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties11\":{\"name\":\"useglobal\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) if set to true, it will show the value that is set in the global configuration if found in the database.\"},\"properties12\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default list item value.\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties14\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Dropdown list of grouped custom entries.', 0, '', 1), +(40, '', '', '', '', '', 'The Modulelayout form field type provides a drop down list of all available layouts for a module, grouped by core and template. If the parameter has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', '7520c8f4-543d-4c7a-8e4f-e2da71c3b1cd', 0, 0, 'NOT NULL', 'Modulelayout', '{\"properties0\":{\"name\":\"type\",\"example\":\"modulelayout\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be modulelayout.\"},\"properties1\":{\"name\":\"name\",\"example\":\"layout\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Layout\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Module layout\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"module\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a specific module name (e.g. mod_articles_category).\"},\"properties5\":{\"name\":\"client_id\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional). If 0 (site): Forces searching for layouts only in directories \\/modules\\/[MODULENAME]\\/tmpl\\/ and all \\/templates\\/[TEMPLATENAME]\\/html\\/[MODULENAME]\\/. If 1 (administrator): Forces searching for layouts only in directories \\/administrator\\/modules\\/[MODULENAME]\\/tmpl\\/ and all \\/administrator\\/templates\\/[TEMPLATENAME]\\/html\\/[MODULENAME]\\/.\\r\\n\"},\"properties6\":{\"name\":\"template\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a template name (e.g. protostar or isis). If set forces searching for module template overrides only in this template.\"}}', 'Dropdown of module layouts.', 0, '', 1), +(41, '', '', '', '', '', 'The privacy field type in Joomla is a specialized custom form field introduced to assist extensions in handling privacy-related features; most notably, export and deletion requests in compliance with privacy regulations like the GDPR (General Data Protection Regulation).', '60c1d674-8bb7-4b31-97ed-ee1f16bc412a', 0, 0, 'NOT NULL', 'Privacy@', '{\"properties0\":{\"name\":\"type\",\"example\":\"privacy\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"privacy\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Privacy Policy\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Read the full privacy policy.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"filter\",\"example\":\"integer\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties5\":{\"name\":\"option\",\"example\":\"1|I agree,0|No\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties6\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties7\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties9\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties10\":{\"name\":\"extends\",\"example\":\"radio\",\"mandatory\":\"1\",\"description\":\"Must be radio\"},\"properties11\":{\"name\":\"type_phpHEADER_1\",\"example\":\"use Joomla\\\\CMS\\\\Factory;\\r\\nuse Joomla\\\\CMS\\\\Language\\\\Text;\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The Header USE options\"},\"properties12\":{\"name\":\"type_php_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field input markup.\\r\\n\\t *\\r\\n\\t * @return string The field input markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getInput()\\r\\n\\t{\\r\\n\\t\\t\\/\\/ Display the message before the field\\r\\n\\t\\techo $this->getRenderer(\'plugins.system.privacyconsent.message\')->render($this->getLayoutData());\\r\\n\\r\\n\\t\\treturn parent::getInput();\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getInput method.\"},\"properties13\":{\"name\":\"type_phpa_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field label markup.\\r\\n\\t *\\r\\n\\t * @return string The field label markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getLabel()\\r\\n\\t{\\r\\n\\t\\tif ($this->hidden)\\r\\n\\t\\t{\\r\\n\\t\\t\\treturn \'\';\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn $this->getRenderer(\'plugins.system.privacyconsent.label\')->render($this->getLayoutData());\\r\\n\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLabel method.\"},\"properties14\":{\"name\":\"type_phpb_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the data to be passed to the layout for rendering.\\r\\n\\t *\\r\\n\\t * @return array\\r\\n\\t *\\r\\n\\t * @since 3.9.4\\r\\n\\t *\\/\\r\\n\\tprotected function getLayoutData()\\r\\n\\t{\\r\\n\\t\\t$data = parent::getLayoutData();\\r\\n\\r\\n\\t\\t$article = false;\\r\\n\\t\\t$privacyArticle = $this->element[\'article\'] > 0 ? (int) $this->element[\'article\'] : 0;\\r\\n\\r\\n\\t\\tif ($privacyArticle && Factory::getApplication()->isClient(\'site\'))\\r\\n\\t\\t{\\r\\n\\t\\t\\t$db = Factory::getDbo();\\r\\n\\t\\t\\t$query = $db->getQuery(true)\\r\\n\\t\\t\\t\\t->select($db->quoteName(array(\'id\', \'alias\', \'catid\', \'language\')))\\r\\n\\t\\t\\t\\t->from($db->quoteName(\'#__content\'))\\r\\n\\t\\t\\t\\t->where($db->quoteName(\'id\') . \' = \' . (int) $privacyArticle);\\r\\n\\t\\t\\t$db->setQuery($query);\\r\\n\\t\\t\\t$article = $db->loadObject();\\r\\n\\r\\n\\t\\t\\tJLoader::register(\'ContentHelperRoute\', JPATH_BASE . \'\\/components\\/com_content\\/helpers\\/route.php\');\\r\\n\\r\\n\\t\\t\\t$slug = $article->alias ? ($article->id . \':\' . $article->alias) : $article->id;\\r\\n\\t\\t\\t$article->link = ContentHelperRoute::getArticleRoute($slug, $article->catid, $article->language);\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t$extraData = array(\\r\\n\\t\\t\\t\'privacynote\' => !empty($this->element[\'note\']) ? $this->element[\'note\'] : Text::_(\'By signing up to this web site and agreeing to the Privacy Policy you agree to this web site storing your information.\'),\\r\\n\\t\\t\\t\'options\' => $this->getOptions(),\\r\\n\\t\\t\\t\'value\' => (string) $this->value,\\r\\n\\t\\t\\t\'translateLabel\' => $this->translateLabel,\\r\\n\\t\\t\\t\'translateDescription\' => $this->translateDescription,\\r\\n\\t\\t\\t\'translateHint\' => $this->translateHint,\\r\\n\\t\\t\\t\'privacyArticle\' => $privacyArticle,\\r\\n\\t\\t\\t\'article\' => $article,\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\treturn array_merge($data, $extraData);\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLayoutData method.\"}}', 'Joomla privacy field display.', 0, '', 1), +(42, '', '', '', '', '', 'The terms field type displays Joomla\'s terms and conditions agreement checkbox, typically used in user registration or other consent-based forms. It ensures that users acknowledge and accept the site\'s legal terms before proceeding, in compliance with privacy or legal requirements. The terms content is managed through Joomla\'s configuration.', '20e88943-08db-49e6-a571-dba70cdf4cca', 0, 0, 'NOT NULL', 'Terms@', '{\"properties0\":{\"name\":\"type\",\"example\":\"terms\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"terms\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Terms & Conditions\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Read the full terms and conditions.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"filter\",\"example\":\"integer\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties5\":{\"name\":\"option\",\"example\":\"1|I agree,0|No\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties6\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties7\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties9\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties10\":{\"name\":\"extends\",\"example\":\"radio\",\"mandatory\":\"1\",\"description\":\"Must be radio\"},\"properties11\":{\"name\":\"type_phpHEADER_1\",\"example\":\"use Joomla\\\\CMS\\\\Factory;\\r\\nuse Joomla\\\\CMS\\\\Form\\\\FormHelper;\\r\\nuse Joomla\\\\CMS\\\\Language\\\\Associations;\\r\\nuse Joomla\\\\CMS\\\\Language\\\\Text;\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The Header USE options\"},\"properties12\":{\"name\":\"type_php_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field input markup.\\r\\n\\t *\\r\\n\\t * @return string The field input markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getInput()\\r\\n\\t{\\r\\n\\t\\t\\/\\/ Display the message before the field\\r\\n\\t\\techo $this->getRenderer(\'plugins.user.terms.message\')->render($this->getLayoutData());\\r\\n\\r\\n\\t\\treturn parent::getInput();\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getInput method.\"},\"properties13\":{\"name\":\"type_phpa_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field label markup.\\r\\n\\t *\\r\\n\\t * @return string The field label markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getLabel()\\r\\n\\t{\\r\\n\\t\\tif ($this->hidden)\\r\\n\\t\\t{\\r\\n\\t\\t\\treturn \'\';\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn $this->getRenderer(\'plugins.user.terms.label\')->render($this->getLayoutData());\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLabel method.\"},\"properties14\":{\"name\":\"type_phpb_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the data to be passed to the layout for rendering.\\r\\n\\t *\\r\\n\\t * @return array\\r\\n\\t *\\r\\n\\t * @since 3.9.4\\r\\n\\t *\\/\\r\\n\\tprotected function getLayoutData()\\r\\n\\t{\\r\\n\\t\\t$data = parent::getLayoutData();\\r\\n\\r\\n\\t\\t$article = false;\\r\\n\\t\\t$termsArticle = $this->element[\'article\'] > 0 ? (int) $this->element[\'article\'] : 0;\\r\\n\\r\\n\\t\\tif ($termsArticle && Factory::getApplication()->isClient(\'site\'))\\r\\n\\t\\t{\\r\\n\\t\\t\\t$db = Factory::getDbo();\\r\\n\\t\\t\\t$query = $db->getQuery(true)\\r\\n\\t\\t\\t\\t->select($db->quoteName(array(\'id\', \'alias\', \'catid\', \'language\')))\\r\\n\\t\\t\\t\\t->from($db->quoteName(\'#__content\'))\\r\\n\\t\\t\\t\\t->where($db->quoteName(\'id\') . \' = \' . (int) $termsArticle);\\r\\n\\t\\t\\t$db->setQuery($query);\\r\\n\\t\\t\\t$article = $db->loadObject();\\r\\n\\r\\n\\t\\t\\tJLoader::register(\'ContentHelperRoute\', JPATH_BASE . \'\\/components\\/com_content\\/helpers\\/route.php\');\\r\\n\\r\\n\\t\\t\\tif (Associations::isEnabled())\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$termsAssociated = Associations::getAssociations(\'com_content\', \'#__content\', \'com_content.item\', $termsArticle);\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t$currentLang = Factory::getLanguage()->getTag();\\r\\n\\r\\n\\t\\t\\tif (isset($termsAssociated) && $currentLang !== $article->language && array_key_exists($currentLang, $termsAssociated))\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$article->link = ContentHelperRoute::getArticleRoute(\\r\\n\\t\\t\\t\\t\\t$termsAssociated[$currentLang]->id,\\r\\n\\t\\t\\t\\t\\t$termsAssociated[$currentLang]->catid,\\r\\n\\t\\t\\t\\t\\t$termsAssociated[$currentLang]->language\\r\\n\\t\\t\\t\\t);\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\telse\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$slug = $article->alias ? ($article->id . \':\' . $article->alias) : $article->id;\\r\\n\\t\\t\\t\\t$article->link = ContentHelperRoute::getArticleRoute($slug, $article->catid, $article->language);\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t$extraData = array(\\r\\n\\t\\t\\t\'termsnote\' => !empty($this->element[\'note\']) ? $this->element[\'note\'] : Text::_(\'By signing up to this web site you accept the Terms & Conditions.\'),\\r\\n\\t\\t\\t\'options\' => $this->getOptions(),\\r\\n\\t\\t\\t\'value\' => (string) $this->value,\\r\\n\\t\\t\\t\'translateLabel\' => $this->translateLabel,\\r\\n\\t\\t\\t\'translateDescription\' => $this->translateDescription,\\r\\n\\t\\t\\t\'translateHint\' => $this->translateHint,\\r\\n\\t\\t\\t\'termsArticle\' => $termsArticle,\\r\\n\\t\\t\\t\'article\' => $article,\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\treturn array_merge($data, $extraData);\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLayoutData method.\"}}', 'Displays Joomla terms and conditions.', 0, '', 1), +(43, '', '', '', '', '', 'A field type that combines a standard text input with a dropdown list of predefined options. Users can either type a custom value or choose from the available selections, offering flexibility in data entry.', '2c8b128f-7da2-4f55-b1d7-3613f902f590', 0, 0, 'NOT NULL', 'Combo', '{\"properties0\":{\"name\":\"type\",\"example\":\"combo\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be combo.\"},\"properties1\":{\"name\":\"name\",\"example\":\"type\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Type\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) tooltip for the form field.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"combobox\",\"adjustable\":\"1\",\"description\":\"(optional) specify your own classes for additonal markup, defaults to \\\"combobox\\\".\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) filter options\"},\"properties7\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties9\":{\"name\":\"option\",\"example\":\"0|Option 1,1|Option 2,2|Option 1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties10\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default list item value.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties12\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Combobox list field, allows free text.', 0, '', 1), +(44, '', '', '', '', '', 'The imagelist form field type provides a drop down list of image files in a specified directory. Only files with .png, .gif, .jpg, .bmp, .ico extensions are listed. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.\r\n\r\nBy default, the first item on the list is \'- Do not use -\' (which is translatable) and is given the value \'-1\' and this is followed by \'- Use default -\' (also translatable) given the value \'0\'.', '72680e92-2859-49c6-ad92-c2329c52f9f8', 0, 0, 'NOT NULL', 'Imagelist', '{\"properties0\":{\"name\":\"type\",\"example\":\"imagelist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be imagelist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myimagelist\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an image\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"directory\",\"example\":\"images\\/stories\",\"adjustable\":\"1\",\"description\":\"(optional) is the filesystem path to the directory containing the image files to be listed. If omitted the directory given by JPATH_ROOT is assumed.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default image file name.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of image files selected for inclusion in the drop-down list. If omitted, all image files in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties7\":{\"name\":\"exclude\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to exclude image files from the list. The exclude argument expression is applied after the filter argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties8\":{\"name\":\"stripext\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true then file name extensions will be stripped from the image file names listed. Also note that the file name will be saved without the extension too.\"},\"properties9\":{\"name\":\"hide_none\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Do not use -\' item is omitted from the drop-down list.\"},\"properties10\":{\"name\":\"hide_default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Use default -\' item is omitted from the drop-down list.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Image file dropdown from directory.', 0, '', 1), +(45, '', '', '', '', '', ' The Modal menu form field type provides a styled drop-down list of Joomla menu items, visually matching Joomla\'s modal UI patterns. Unlike the modal select field type, it does not open a modal window for selection but instead presents menu items in a compact, dropdown format consistent with the modal design language used in Joomla\'s administrator interface.', '715256a4-8cc2-4d66-9d08-31e58ca5b036', 0, 0, 'NOT NULL', 'Modal Menu', '{\"properties0\":{\"name\":\"type\",\"example\":\"modal_menu\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be modal_menu.\"},\"properties1\":{\"name\":\"name\",\"example\":\"base\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Base Item\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"option\",\"example\":\"Current\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties4\":{\"name\":\"select\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) show select options\"},\"properties5\":{\"name\":\"new\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory)\"},\"properties6\":{\"name\":\"edit\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory)\"},\"properties7\":{\"name\":\"description\",\"example\":\"Select a menu item to always be used as the base for the menu display. You must set the Start Level to the same level or higher than the level of the base item. This will cause the module to be displayed on all assigned pages. If Current is selected the active item is used as the base. This causes the module to only display when the parent menu item is active.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties8\":{\"name\":\"clear\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory)\"},\"properties9\":{\"name\":\"disable\",\"example\":\"separator,alias,heading,url\",\"adjustable\":\"1\",\"description\":\"(optional)\"},\"properties10\":{\"name\":\"filter\",\"example\":\"integer\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of image files selected for inclusion in the drop-down list. If omitted, all image files in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\\r\\n\"}}', 'Styled dropdown of menu items.', 0, '', 1), +(46, '', '', '', '', '', 'The menu form field type provides a drop down list of the available menus from your Joomla! site. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected. ', '6349f152-8ef5-43bd-a89b-ce18f33ac5e5', 0, 0, 'NOT NULL', 'Menu', '{\"properties0\":{\"name\":\"type\",\"example\":\"menu\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be menu.\"},\"properties1\":{\"name\":\"name\",\"example\":\"menutype\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the filed.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Menu to Show\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Choose which menu should be rendered with this instance of module.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) tooltip for the form field.\"},\"properties4\":{\"name\":\"clientid\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default menu. Note that this is the name of the menu shown in the Type column on the Menu Manager screen and not the menu ID number.\"},\"properties6\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties7\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Dropdown list of Joomla menus.', 0, '', 1), +(47, '', '', '', '', '', 'Dynamic Checkboxes generates a list of checkboxes dynamically based on data retrieved at runtime, such as from a database query or external source. Useful for displaying variable options that may change depending on context or configuration.', '7ed21e79-cbc5-48e3-9ed0-ca72b0f2f1a1', 0, 0, 'NOT NULL', 'DynamicCheckboxes@', '{\"properties0\":{\"name\":\"type\",\"example\":\"change_this\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"dynamic_checkboxes\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Dynamic Checkboxes\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"The checkbox linked to global subform of the same name\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"option\",\"example\":\"1|Default\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this checkboxes. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties5\":{\"name\":\"default\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties8\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties9\":{\"name\":\"extends\",\"example\":\"checkboxes\",\"mandatory\":\"1\",\"description\":\"Must be checkboxes\"},\"properties10\":{\"name\":\"type_phpHEADER_1\",\"example\":\"FormHelper::loadFieldClass(\'checkboxes\');\\r\\nuse VDM\\\\Joomla\\\\Utilities\\\\Component\\\\Helper;\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The Header USE options\"},\"properties11\":{\"name\":\"type_php_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the data to be passed to the layout for rendering.\\r\\n\\t *\\r\\n\\t * @return array\\r\\n\\t *\\r\\n\\t * @since 3.5\\r\\n\\t *\\/\\r\\n\\tprotected function getLayoutData()\\r\\n\\t{\\r\\n\\t\\t$data = parent::getLayoutData();\\r\\n\\r\\n\\t\\t\\/\\/ True if the field has \'value\' set. In other words, it has been stored, don\'t use the default values.\\r\\n\\t\\t$hasValue = (isset($this->value) && !empty($this->value));\\r\\n\\r\\n\\t\\t\\/\\/ If a value has been stored, use it. Otherwise, use the defaults.\\r\\n\\t\\t$checkedOptions = $hasValue ? $this->value : $this->checkedOptions;\\r\\n\\r\\n\\t\\t\\/\\/ get the form options\\r\\n\\t\\t$options = $this->getOptions();\\r\\n\\r\\n\\t\\t\\/\\/ get the component params\\r\\n\\t\\t$params = Helper::getParams();\\r\\n\\t\\t$subform = $params->get($this->fieldname);\\r\\n\\r\\n\\t\\t\\/\\/ add the paths found in global settings\\r\\n\\t\\tif (is_array($subform) && $subform !== [])\\r\\n\\t\\t{\\r\\n\\t\\t\\tforeach ($subform as $value)\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tif (isset($value->path) && strlen($value->path) > 3)\\r\\n\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t$tmp = new \\\\stdClass;\\r\\n\\t\\t\\t\\t\\t$tmp->value = $value->set_me;\\r\\n\\t\\t\\t\\t\\t$tmp->text = $value->set_me;\\r\\n\\t\\t\\t\\t\\t$tmp->checked = false;\\r\\n\\r\\n\\t\\t\\t\\t\\t$options[] = $tmp;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t$extraData = array(\\r\\n\\t\\t\\t\'checkedOptions\' => is_array($checkedOptions) ? $checkedOptions : explode(\',\', (string) $checkedOptions),\\r\\n\\t\\t\\t\'hasValue\' => $hasValue,\\r\\n\\t\\t\\t\'options\' => $options\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\treturn array_merge($data, $extraData);\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLayoutData method.\"}}', 'Super Power Repository Paths', 0, '', 1), +(48, '', '', 255, '', 'VARCHAR', 'The ModalSelectField offers an intuitive, user-friendly modal popup interface within Joomla\'s administrator forms. It enables users to select existing records, create new records, edit existing records, or clear selected records directly from within the form. The field retrieves and displays the selected record\'s title dynamically, based on configurable database parameters. It simplifies relational data handling, enhancing the user experience by minimizing page transitions and streamlining record management tasks in Joomla administration interfaces.', 'a1cdb0a5-517c-425c-998a-333e92af3e32', 1, 2, 'NULL', 'ModalSelect', '{\"properties0\":{\"name\":\"type\",\"example\":\"ModalSelect\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be ModalSelect.\"},\"properties1\":{\"name\":\"name\",\"example\":\"targetview\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"sql_title_table\",\"example\":\"#__###component###_targetview\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"Database table (with prefix) used for retrieving title.\"},\"properties4\":{\"name\":\"sql_title_column\",\"example\":\"title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"Column used for the title display in the modal input field.\"},\"properties5\":{\"name\":\"sql_title_key\",\"example\":\"id\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"Primary key column name of the selected item (usually id).\"},\"properties6\":{\"name\":\"urlSelect\",\"example\":\"index.php?option=com_###component###&view=targetviews&layout=modal&tmpl=component&titleKey=id\",\"adjustable\":\"1\",\"description\":\"URL for opening modal to select an existing record. Important note, the [titleKey] in the url must be equal to [sql_title_key]\"},\"properties7\":{\"name\":\"urlNew\",\"example\":\"index.php?option=com_###component###&task=targetview.add&layout=modal&tmpl=component\",\"adjustable\":\"1\",\"description\":\"URL for opening modal to create a new record.\"},\"properties8\":{\"name\":\"urlEdit\",\"example\":\"index.php?option=com_###component###&task=targetview.edit&id={id}&layout=modal&tmpl=component\",\"adjustable\":\"1\",\"description\":\"URL for editing selected record. {id} dynamically replaced with the [sql_title_key] valiue.\"},\"properties9\":{\"name\":\"titleSelect\",\"example\":\"Select Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"Modal title for the record selection window.\"},\"properties10\":{\"name\":\"titleNew\",\"example\":\"New Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"Modal title displayed when creating a new record.\"},\"properties11\":{\"name\":\"titleEdit\",\"example\":\"Edit Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"Modal title displayed when editing existing record.\"},\"properties12\":{\"name\":\"iconSelect\",\"example\":\"icon-copy\",\"adjustable\":\"1\",\"description\":\"CSS icon class from Icomoon or FontAwesome for select button.\"},\"properties13\":{\"name\":\"select\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"Allow users to select a record (true\\/false). Default: true.\"},\"properties14\":{\"name\":\"new\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"Allow users to create a new record (true\\/false). Default: false.\"},\"properties15\":{\"name\":\"edit\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"Allow editing of selected record (true\\/false). Default: false.\"},\"properties16\":{\"name\":\"clear\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"Allow clearing of the current selection (true\\/false). Default: true.\"},\"properties17\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties25\":{\"name\":\"filter\",\"example\":\"STRING\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties26\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties18\":{\"name\":\"class\",\"example\":\"input-large\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'input-large\'.\"},\"properties19\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties20\":{\"name\":\"hint\",\"example\":\"Select a Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties21\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value of the field (item ID).\"},\"properties22\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties23\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties24\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Modal Select to manage a database record. (J5+ only)', 0, NULL, 1); diff --git a/admin/sql/updates/mysql/5_1_2.sql b/admin/sql/updates/mysql/5_1_2.sql new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/admin/sql/updates/mysql/5_1_2.sql @@ -0,0 +1 @@ + diff --git a/admin/src/Field/FieldtypesField.php b/admin/src/Field/FieldtypesField.php index 66745b99d..45274c526 100644 --- a/admin/src/Field/FieldtypesField.php +++ b/admin/src/Field/FieldtypesField.php @@ -16,7 +16,6 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\HTML\HTMLHelper as Html; use Joomla\CMS\Component\ComponentHelper; use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper; -use Joomla\CMS\Uri\Uri; use Joomla\Database\DatabaseInterface; // No direct access to this file @@ -36,114 +35,6 @@ class FieldtypesField extends ListField */ public $type = 'Fieldtypes'; - /** - * Override to add new button - * - * @return string The field input markup. - * - * @since 3.2 - */ - protected function getInput() - { - // see if we should add buttons - $set_button = $this->getAttribute('button'); - // get html - $html = parent::getInput(); - // if true set button - if ($set_button === 'true') - { - $button = array(); - $script = array(); - $button_code_name = $this->getAttribute('name'); - // get the input from url - $app = Factory::getApplication(); - $jinput = method_exists($app, 'getInput') ? $app->getInput() : $app->input; - // get the view name & id - $values = $jinput->getArray(array( - 'id' => 'int', - 'view' => 'word' - )); - // check if new item - $ref = ''; - $refJ = ''; - if (!is_null($values['id']) && strlen($values['view'])) - { - // only load referral if not new item. - $ref = '&ref=' . $values['view'] . '&refid=' . $values['id']; - $refJ = '&ref=' . $values['view'] . '&refid=' . $values['id']; - // get the return value. - $_uri = (string) Uri::getInstance(); - $_return = urlencode(base64_encode($_uri)); - // load return value. - $ref .= '&return=' . $_return; - $refJ .= '&return=' . $_return; - } - // get button label - $button_label = trim($button_code_name); - $button_label = preg_replace('/_+/', ' ', $button_label); - $button_label = preg_replace('/\s+/', ' ', $button_label); - $button_label = preg_replace("/[^A-Za-z ]/", '', $button_label); - $button_label = ucfirst(strtolower($button_label)); - // get user object - $user = Factory::getApplication()->getIdentity(); - // only add if user allowed to create fieldtype - if ($user->authorise('fieldtype.create', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area. - { - // build Create button - $button[] = ' - '; - } - // only add if user allowed to edit fieldtype - if ($user->authorise('fieldtype.edit', 'com_componentbuilder') && $app->isClient('administrator')) // TODO for now only in admin area. - { - // build edit button - $button[] = ''; - // build script - $script[] = " - document.addEventListener('DOMContentLoaded', function() { - let ".$button_code_name."Field = document.getElementById('jform_".$button_code_name."'); - if (!".$button_code_name."Field) { return; } - ".$button_code_name."Field.addEventListener('change', function(e) { - e.preventDefault(); - let ".$button_code_name."Value = this.value; - ".$button_code_name."Button(".$button_code_name."Value); - }); - let ".$button_code_name."Value = ".$button_code_name."Field.value; - ".$button_code_name."Button(".$button_code_name."Value); - }); - function ".$button_code_name."Button(value) { - var createButton = document.getElementById('".$button_code_name."Create'); - var editButton = document.getElementById('".$button_code_name."Edit'); - if (value > 0) { - // hide the create button - createButton.style.display = 'none'; - // show edit button - editButton.style.display = 'block'; - let url = 'index.php?option=com_componentbuilder&view=fieldtypes&task=fieldtype.edit&id='+value+'".$refJ."'; - editButton.setAttribute('href', url); - } else { - // show the create button - createButton.style.display = 'block'; - // hide edit button - editButton.style.display = 'none'; - } - }"; - } - // check if button was created for fieldtype field. - if (is_array($button) && count($button) > 0) - { - // Load the needed script. - $document = Factory::getApplication()->getDocument(); - $document->addScriptDeclaration(implode(' ',$script)); - // return the button attached to input field. - return '
' .$html . implode('',$button).'
'; - } - } - return $html; - } - /** * Method to get a list of options for a list input. * diff --git a/admin/src/Helper/ComponentbuilderHelper.php b/admin/src/Helper/ComponentbuilderHelper.php index 107a93502..e4e971aab 100644 --- a/admin/src/Helper/ComponentbuilderHelper.php +++ b/admin/src/Helper/ComponentbuilderHelper.php @@ -1772,7 +1772,7 @@ abstract class ComponentbuilderHelper public static function getFieldTypeProperties($value, $type, $settings = [], $xml = null, bool $dbDefaults = false): ?array { // Get a db connection. - $db = Factory::getDbo(); + $db = Factory::getContainer()->get(DatabaseInterface::class); // Create a new query object. $query = $db->getQuery(true); @@ -1935,7 +1935,6 @@ abstract class ComponentbuilderHelper { return FieldHelper::getValue($xml, $get, $confirmation); } - /** * Retrieves field type properties from the database. @@ -1967,7 +1966,7 @@ abstract class ComponentbuilderHelper string $operator = 'IN' ) { // Get a database connection - $db = Factory::getDbo(); + $db = Factory::getContainer()->get(DatabaseInterface::class); try { // Create a new query object @@ -3752,7 +3751,7 @@ abstract class ComponentbuilderHelper if (is_int($serverID) && is_int($protocol)) { // Get a db connection - $db = Factory::getDbo(); + $db = Factory::getContainer()->get(DatabaseInterface::class); // start the query $query = $db->getQuery(true); // select based to protocol diff --git a/admin/src/Model/Admin_fields_relationsModel.php b/admin/src/Model/Admin_fields_relationsModel.php index 4298ee451..1499ea398 100644 --- a/admin/src/Model/Admin_fields_relationsModel.php +++ b/admin/src/Model/Admin_fields_relationsModel.php @@ -119,6 +119,14 @@ class Admin_fields_relationsModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -132,8 +140,9 @@ class Admin_fields_relationsModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -148,7 +157,7 @@ class Admin_fields_relationsModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('admin_fields_relations__'.$id)) !== null) + if (($vdm = SessionHelper::get('admin_fields_relations__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -156,10 +165,10 @@ class Admin_fields_relationsModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'admin_fields_relations__'.$id); - SessionHelper::set('admin_fields_relations__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'admin_fields_relations__' . $id); + SessionHelper::set('admin_fields_relations__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -171,9 +180,9 @@ class Admin_fields_relationsModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -221,7 +230,7 @@ class Admin_fields_relationsModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('admin_fields_relations__'.$id)) !== null) + if (($vdm = SessionHelper::get('admin_fields_relations__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -229,10 +238,10 @@ class Admin_fields_relationsModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'admin_fields_relations__'.$id); - SessionHelper::set('admin_fields_relations__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'admin_fields_relations__' . $id); + SessionHelper::set('admin_fields_relations__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/Admin_viewModel.php b/admin/src/Model/Admin_viewModel.php index 7e27f6193..faed41a8a 100644 --- a/admin/src/Model/Admin_viewModel.php +++ b/admin/src/Model/Admin_viewModel.php @@ -255,6 +255,14 @@ class Admin_viewModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -268,8 +276,9 @@ class Admin_viewModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -284,7 +293,7 @@ class Admin_viewModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('admin_view__'.$id)) !== null) + if (($vdm = SessionHelper::get('admin_view__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -292,10 +301,10 @@ class Admin_viewModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'admin_view__'.$id); - SessionHelper::set('admin_view__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'admin_view__' . $id); + SessionHelper::set('admin_view__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -307,9 +316,9 @@ class Admin_viewModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -591,7 +600,7 @@ class Admin_viewModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('admin_view__'.$id)) !== null) + if (($vdm = SessionHelper::get('admin_view__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -599,10 +608,10 @@ class Admin_viewModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'admin_view__'.$id); - SessionHelper::set('admin_view__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'admin_view__' . $id); + SessionHelper::set('admin_view__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/Admin_viewsModel.php b/admin/src/Model/Admin_viewsModel.php index 8383c4a37..d80c99698 100644 --- a/admin/src/Model/Admin_viewsModel.php +++ b/admin/src/Model/Admin_viewsModel.php @@ -120,20 +120,20 @@ class Admin_viewsModel extends ListModel $form = parent::getFilterForm($data, $loadData); // Create the "joomla_component" filter - $attributes = array( + $attributes = [ 'name' => 'joomla_component', 'type' => 'list', 'onchange' => 'this.form.submit();', - ); - $options = array( + ]; + $options = [ '' => '- ' . Text::_('COM_COMPONENTBUILDER_NO_COMPONENTS_FOUND') . ' -' - ); + ]; // check if we have joomla components if (($joomla_components = JCBFilterHelper::names('joomla_component')) !== null) { - $options = array( + $options = [ '' => '- ' . Text::_('COM_COMPONENTBUILDER_SELECT_COMPONENT') . ' -' - ); + ]; // make sure we do not lose the key values in normal merge $options = $options + $joomla_components; } diff --git a/admin/src/Model/AjaxModel.php b/admin/src/Model/AjaxModel.php index dbd5a8896..f74c17390 100644 --- a/admin/src/Model/AjaxModel.php +++ b/admin/src/Model/AjaxModel.php @@ -1757,7 +1757,7 @@ class AjaxModel extends ListModel // load the values form params $xml = json_decode($result->xml); - $xmlOptions = GetHelper::between($xml,'option="','"'); + $xmlOptions = GetHelper::between($xml, 'option="', '"'); $optionSet = ''; if (strpos($xmlOptions,',') !== false) @@ -1800,7 +1800,7 @@ class AjaxModel extends ListModel { return "keywords=\"\"\nlength=\"\""; } - elseif (ComponentbuilderHelper::fieldCheck($result->name,'dynamic')) + elseif (ComponentbuilderHelper::fieldCheck($result->name, 'dynamic')) { return 'dynamic_list'; } @@ -1830,7 +1830,7 @@ class AjaxModel extends ListModel public function getTableColumns(string $tableName): ?string { // get the columns - $columns = $this->_db->getTableColumns("#__".$tableName); + $columns = $this->_db->getTableColumns("#__" . $tableName); if (UtilitiesArrayHelper::check($columns)) { // build the return string @@ -2187,7 +2187,7 @@ class AjaxModel extends ListModel /** * The view persistence details * - * @var array + * @var array * @since 3.0.13 */ protected array $viewid = []; @@ -2195,18 +2195,20 @@ class AjaxModel extends ListModel /** * Get the view details via the session * - * @input string $call The persistence key + * @input string $call The persistence key * * @return array - * @since 3.0.13 + * @since 3.0.13 */ protected function getViewID(string $call = 'table'): array { if (!isset($this->viewid[$call])) { // get the vdm key - $input = Factory::getApplication()->getInput(); + $app = $this->app ?? Factory::getApplication(); + $input = $this->input ?? (method_exists($app, 'getInput') ? $app->getInput() : $app->input); $vdm = $input->get('vdm', null, 'WORD'); + if ($vdm) { // set view and id @@ -2250,317 +2252,498 @@ class AjaxModel extends ListModel return []; } - - public function getButton($type, $size) + /** + * Generate a new-item creation button for a specific type and size. + * + * @param string $type The item type (view name) for which to create the button. + * @param int $size The button size: 1 = large, 2 = medium, 3 = small. + * + * @return string The generated HTML button markup, an empty string if unauthorized, or false if type not found. + * @since 3.0.0 + */ + public function getButton(string $type, int $size): string { - if (isset($this->buttonArray[$type])) + // Ensure the type exists in the button definition array + if (!isset($this->buttonArray[$type])) { - $user = Factory::getUser(); - // only add if user allowed to create - if ($user->authorise($type.'.create', 'com_componentbuilder')) - { - // get the view name & id - $values = $this->getViewID(); - // check if new item - $ref = ''; - if (!empty($values['a_id']) && !empty($values['a_view'])) - { - // check if we have a return value - $return_url = 'index.php?option=com_componentbuilder&view=' . (string) $values['a_view'] . '&layout=edit&id=' . (int) $values['a_id']; - if (isset($values['a_return'])) - { - $return_url .= '&return=' . (string) $values['a_return']; - } - - // load the return url - $ref = '&return=' . urlencode(base64_encode($return_url)); - - // check if we have a GUID - if (isset($values['a_guid'])) - { - $ref .= '&init_defaults=' . urlencode(json_encode([$values['a_view'] => $values['a_guid']])); - } - } - // build url (A tag) - $startAtag = 'onclick="UIkit2.modal.confirm(\''.Text::_('COM_COMPONENTBUILDER_ALL_UNSAVED_WORK_ON_THIS_PAGE_WILL_BE_LOST_ARE_YOU_SURE_YOU_WANT_TO_CONTINUE').'\', function(){ window.location.href = \'index.php?option=com_componentbuilder&view=' . $type . '&layout=edit' . $ref . '\' })" href="javascript:void(0)" title="'.Text::sprintf('COM_COMPONENTBUILDER_CREATE_NEW_S', StringHelper::safe($type, 'W')).'">'; - // build the smallest button - if (3 == $size) - { - $button = ''; - } - // build the smaller button - elseif (2 == $size) - { - $button = ' ' . Text::_('COM_COMPONENTBUILDER_CREATE') . ''; - } - else - // build the big button - { - $button = '
-
- -
- -
'; - } - // return the button attached to input field - return $button; - } return ''; } - return false; - } - - public function getButtonID($type, $size) - { - if (isset($this->buttonArray[$type])) + + $app = $this->app ?? Factory::getApplication(); + $user = method_exists($this, 'getCurrentUser') ? $this->getCurrentUser() : $this->app->getIdentity(); + + // Only add if user is authorized to create this type + if (!$user->authorise("{$type}.create", 'com_componentbuilder')) { - $user = Factory::getUser(); - // only add if user allowed to create - if ($user->authorise($type.'.create', 'com_componentbuilder')) + return ''; + } + + // Initialize reference string + $ref = ''; + + // Get view and ID information + $values = $this->getViewID(); + + if (!empty($values['a_id']) && !empty($values['a_view'])) + { + $returnUrl = 'index.php?option=com_componentbuilder&view=' . (string) $values['a_view'] + . '&layout=edit&id=' . (int) $values['a_id']; + + // Add return if available + if (!empty($values['a_return'])) { - // get the view name & id - $values = $this->getViewID(); - // set the button ID - $css_class = 'control-group-'.StringHelper::safe($type. '-' . $size, 'L', '-'); - // check if new item - $ref = ''; - if (!empty($values['a_id']) && !empty($values['a_view'])) - { - // set the return value - $return_url = 'index.php?option=com_componentbuilder&view=' . (string) $values['a_view'] . '&layout=edit&id=' . (int) $values['a_id']; - if (isset($values['a_return'])) - { - $return_url .= '&return=' . (string) $values['a_return']; - } - // only load referral if not new item. - $ref = '&return=' . urlencode(base64_encode($return_url)); + $returnUrl .= '&return=' . (string) $values['a_return']; + } - // set the key get value - $key_get_value = $values['a_id']; + // Encode and attach return URL + $ref = '&return=' . urlencode(base64_encode($returnUrl)); - // check if we have a GUID - if (isset($values['a_guid'])) - { - $ref .= '&init_defaults=' . urlencode(json_encode([$values['a_view'] => $values['a_guid']])); - $key_get_value = $values['a_guid']; - } - - // get item id - if (($id = GetHelper::var($type, $key_get_value, $values['a_view'], 'id')) !== false && $id > 0) - { - $buttonText = Text::sprintf('COM_COMPONENTBUILDER_EDIT_S_FOR_THIS_S', StringHelper::safe($type, 'w'), StringHelper::safe($values['a_view'], 'w')); - $buttonTextSmall = Text::_('COM_COMPONENTBUILDER_EDIT'); - $editThis = 'index.php?option=com_componentbuilder&view='.$this->buttonArray[$type].'&task='.$type.'.edit&id='.$id; - $icon = 'icon-apply'; - } - else - { - $buttonText = Text::sprintf('COM_COMPONENTBUILDER_CREATE_S_FOR_THIS_S', StringHelper::safe($type, 'w'), StringHelper::safe($values['a_view'], 'w')); - $buttonTextSmall = Text::_('COM_COMPONENTBUILDER_CREATE'); - $editThis = 'index.php?option=com_componentbuilder&view='.$type.'&layout=edit'; - $icon = 'icon-new'; - } - // build the button - $button = []; - if (1 == $size) - { - $button[] = '
'; - $button[] = '
'; - $button[] = ''; - $button[] = '
'; - $button[] = ''; - $button[] = '
'; - } - elseif (2 == $size) - { - $button[] = ''; - $button[] = $buttonTextSmall; - $button[] = ''; - } - // return the button attached to input field - return implode("\n", $button); - } - - // only return notice if big button - if (1 == $size) - { - return '
' . Text::sprintf('COM_COMPONENTBUILDER_BUTTON_TO_CREATE_S_WILL_SHOW_ONCE_S_IS_SAVED_FOR_THE_FIRST_TIME', StringHelper::safe($type, 'w'), StringHelper::safe($values['a_view'], 'w')) . '
'; - } + // Add GUID initialization if available + if (!empty($values['a_guid'])) + { + $ref .= '&init_defaults=' . urlencode(json_encode([ + $values['a_view'] => $values['a_guid'] + ])); } } - return ''; + + // Confirmation text + $confirmText = Text::_('COM_COMPONENTBUILDER_ALL_UNSAVED_WORK_ON_THIS_PAGE_WILL_BE_LOST_ARE_YOU_SURE_YOU_WANT_TO_CONTINUE'); + + // Safe label for title + $safeType = StringHelper::safe($type, 'W'); + $title = Text::sprintf('COM_COMPONENTBUILDER_CREATE_NEW_S', $safeType); + + // Build onclick A tag + $startATag = sprintf( + 'onclick="UIkit2.modal.confirm(\'%s\', function(){ window.location.href = \'index.php?option=com_componentbuilder&view=%s&layout=edit%s\' })" href="javascript:void(0)" title="%s"', + addslashes($confirmText), + htmlspecialchars($type, ENT_QUOTES, 'UTF-8'), + $ref, + htmlspecialchars($title, ENT_QUOTES, 'UTF-8') + ); + + // Build button markup based on size + return match ($size) { + 3 => sprintf( + '', + $startATag + ), + 2 => sprintf( + ' %s', + $startATag, + Text::_('COM_COMPONENTBUILDER_CREATE') + ), + default => sprintf( + '
+
+ +
+ +
', + ucwords($type), + $startATag, + Text::_('COM_COMPONENTBUILDER_NEW') + ), + }; } - protected function getSubformTable($idName, $data) + /** + * Generate a context-aware create/edit button tied to an item ID. + * + * @param string $type The item type (view name) for which to create or edit the button. + * @param int $size The button size: 1 = large, 2 = medium, 3 = small. + * + * @return string The generated HTML button markup, or an empty string if unauthorized or unavailable. + * @since 3.0.0 + */ + public function getButtonID(string $type, int $size): string { - // make sure we convert the json to array + // Ensure the type exists in the button definition array + if (!isset($this->buttonArray[$type])) + { + return ''; + } + + $app = $this->app ?? Factory::getApplication(); + $user = method_exists($this, 'getCurrentUser') ? $this->getCurrentUser() : $app->getIdentity(); + + // Only add if user is authorized to create this type + if (!$user->authorise("{$type}.create", 'com_componentbuilder')) + { + return ''; + } + + // Initialize + $values = $this->getViewID(); + $ref = ''; + $cssClass = 'control-group-' . StringHelper::safe("{$type}-{$size}", 'L', '-'); + + // Require both ID and view to continue + if (empty($values['a_id']) || empty($values['a_view'])) + { + // Show an info message only for large buttons + if ($size === 1) + { + return sprintf( + '
%s
', + $cssClass, + Text::sprintf('COM_COMPONENTBUILDER_BUTTON_TO_CREATE_S_WILL_SHOW_ONCE_S_IS_SAVED_FOR_THE_FIRST_TIME', + StringHelper::safe($type, 'w'), + StringHelper::safe($values['a_view'] ?? '', 'w') + ) + ); + } + + return ''; + } + + // Build return URL + $returnUrl = sprintf( + 'index.php?option=com_componentbuilder&view=%s&layout=edit&id=%d', + (string) $values['a_view'], + (int) $values['a_id'] + ); + + if (!empty($values['a_return'])) + { + $returnUrl .= '&return=' . (string) $values['a_return']; + } + + // Base64 encode the return URL + $ref = '&return=' . urlencode(base64_encode($returnUrl)); + + // Key get value defaults to the item ID + $keyValue = $values['a_id']; + + // Add GUID defaults if available + if (!empty($values['a_guid'])) + { + $ref .= '&init_defaults=' . urlencode(json_encode([ + $values['a_view'] => $values['a_guid'] + ])); + $keyValue = $values['a_guid']; + } + + // Determine if the record already exists + $id = GetHelper::var( + $type, $keyValue, $values['a_view'], 'id' + ); + + $isExisting = (!empty($id) && $id > 0); + + // Determine button details + if ($isExisting) + { + $buttonText = Text::sprintf('COM_COMPONENTBUILDER_EDIT_S_FOR_THIS_S', + StringHelper::safe($type, 'w'), + StringHelper::safe($values['a_view'], 'w') + ); + $buttonTextSmall = Text::_('COM_COMPONENTBUILDER_EDIT'); + $editLink = sprintf( + 'index.php?option=com_componentbuilder&view=%s&task=%s.edit&id=%d', + $this->buttonArray[$type], + $type, + (int) $id + ); + $icon = 'icon-apply'; + } + else + { + $buttonText = Text::sprintf('COM_COMPONENTBUILDER_CREATE_S_FOR_THIS_S', + StringHelper::safe($type, 'w'), + StringHelper::safe($values['a_view'], 'w') + ); + $buttonTextSmall = Text::_('COM_COMPONENTBUILDER_CREATE'); + $editLink = sprintf( + 'index.php?option=com_componentbuilder&view=%s&layout=edit', + $type + ); + $icon = 'icon-new'; + } + + // Confirmation message + $confirmText = Text::_('COM_COMPONENTBUILDER_ALL_UNSAVED_WORK_ON_THIS_PAGE_WILL_BE_LOST_ARE_YOU_SURE_YOU_WANT_TO_CONTINUE'); + + // Build onclick attribute + $onclick = sprintf( + 'onclick="UIkit2.modal.confirm(\'%s\', function(){ window.location.href = \'%s%s\' })"', + addslashes($confirmText), + $editLink, + $ref + ); + + // Common button HTML + $buttonStart = sprintf( + '', + $onclick, + htmlspecialchars($buttonText, ENT_QUOTES, 'UTF-8') + ); + + // Build button markup + $output = []; + + if ($size === 1) + { + $output[] = sprintf('
', $cssClass); + $output[] = '
'; + $output[] = ''; + $output[] = '
'; + } + elseif ($size === 2) + { + $output[] = $buttonStart; + $output[] = sprintf(' %s', $icon, $buttonTextSmall); + $output[] = ''; + } + + return implode("\n", $output); + } + + /** + * Build a subform HTML table from JSON or array data. + * + * @param string $idName The subform identifier. + * @param string|array $data The JSON string or array containing subform data. + * + * @return string|false The rendered HTML table, or false if no valid data. + * @since 3.0.0 + */ + protected function getSubformTable(string $idName, string|array $data): string|false + { + // Decode JSON if necessary if (JsonHelper::check($data)) { $data = json_decode($data, true); } - // make sure we have an array - if (UtilitiesArrayHelper::check($data) && StringHelper::check($idName)) - { - // Build heading - $head = array(); - foreach ($data as $headers) + + // Ensure we have a valid array and identifier + if ( + !UtilitiesArrayHelper::check($data) + || !StringHelper::check($idName) + ) + { + return false; + } + + // --- Build table headers -------------------------------------------------- + $head = []; + + foreach ($data as $headers) + { + foreach ($headers as $header => $value) { - foreach ($headers as $header => $value) + if (!isset($head[$header])) { - if (!isset($head[$header])) - { - $head[$header] = $this->getLanguage($idName . '|=VDM=|' . $header); - } + $head[$header] = $this->getLanguage($idName . '|=VDM=|' . $header); } } - // build the rows - $rows = array(); - if (UtilitiesArrayHelper::check($data) && UtilitiesArrayHelper::check($head)) - { - foreach ($data as $nr => $values) - { - foreach ($head as $key => $_header) - { - // set the value for the row - if (isset($values[$key])) - { - $this->setSubformRows($nr, $this->setSubformValue($key, $values[$key]), $rows, $_header); - } - else - { - $this->setSubformRows($nr, $this->setSubformValue($key, ''), $rows, $_header); - } - } - } - } - // build table - if (UtilitiesArrayHelper::check($rows) && UtilitiesArrayHelper::check($head)) - { - // set the number of rows - $this->rowNumber = count($rows); - // return the table - return ComponentbuilderHelper::setSubformTable($head, $rows, $idName); - } } + + // --- Build table rows ----------------------------------------------------- + $rows = []; + + if ( + UtilitiesArrayHelper::check($data) + && UtilitiesArrayHelper::check($head) + ) + { + foreach ($data as $nr => $values) + { + foreach ($head as $key => $_header) + { + $value = $values[$key] ?? ''; + $this->setSubformRows( + $nr, + $this->setSubformValue($key, $value), + $rows, + $_header + ); + } + } + } + + // --- Return final table --------------------------------------------------- + if ( + UtilitiesArrayHelper::check($rows) + && UtilitiesArrayHelper::check($head) + ) + { + $this->rowNumber = count($rows); + + return ComponentbuilderHelper::setSubformTable($head, $rows, $idName); + } + return false; } - protected function setSubformValue($header, $value) + /** + * Process and sanitize a single subform value. + * + * @param string $header The header key for the value. + * @param mixed $value The raw value to process. + * + * @return string|mixed The processed or original value, with fallback. + * @since 3.0.0 + */ + protected function setSubformValue(string $header, mixed $value): mixed { - if (array_key_exists($header, $this->functionArray) && method_exists($this, $this->functionArray[$header])) + // Run mapped function if available + if ( + array_key_exists($header, $this->functionArray) + && method_exists($this, $this->functionArray[$header]) + ) { $value = $this->{$this->functionArray[$header]}($header, $value); } - // if no value are set + + // Fallback if value is empty or invalid if (!StringHelper::check($value)) { $value = '-'; } + return $value; } - protected function setSubformRows($nr, $value, &$rows, $_header) + /** + * Build subform row cells for the HTML table. + * + * @param int|string $nr The row number/index. + * @param mixed $value The processed cell value. + * @param array &$rows Reference to the rows array being built. + * @param string $header The column header (used for data attributes). + * + * @return void + * @since 3.0.0 + */ + protected function setSubformRows(int|string $nr, mixed $value, array &$rows, string $header): void { - // build rows - if (!isset($rows[$nr])) - { - $rows[$nr] = ''.$value.''; - } - else - { - $rows[$nr] .= ''.$value.''; - } + $cell = sprintf( + '%s', + htmlspecialchars($header, ENT_QUOTES, 'UTF-8'), + (string) $value + ); + + $rows[$nr] = ($rows[$nr] ?? '') . $cell; } /** - * Generates the HTML display for fields linked to a specific view via an AJAX request. + * Generate the HTML display for fields linked to a specific view via an AJAX request. * - * This method dynamically retrieves and constructs the HTML display for fields linked to a view - * based on the provided type. It validates the view, builds return URLs, fetches field tables, - * and generates a structured HTML output. If no fields are linked, or an error occurs, an appropriate - * alert is displayed. + * This method retrieves and builds the HTML for fields linked to a given view type. + * It validates the view and type, constructs proper return URLs, fetches related field tables, + * and wraps them in structured HTML markup. Informational or error alerts are returned if + * the requested type or view is invalid. * - * @param string $type The type of fields to retrieve and display. + * @param string $type The type of fields to retrieve and display. * - * @return string The generated HTML output. This can include: - * - A list of fields rendered as HTML. - * - An informational message if no fields are linked. - * - An error message in case of a type-related issue. + * @return string The generated HTML output: + * - HTML list of fields when linked. + * - Informational alert if no fields are linked. + * - Error alert for invalid or missing type. * @since 3.0.0 */ public function getAjaxDisplay(string $type): string { - if (isset($this->fieldsArray[$type])) + // Ensure the field type exists + if (!isset($this->fieldsArray[$type])) { - // set type name - $typeName = StringHelper::safe($type, 'w'); - // get the view name & id - $values = $this->getViewID(); - // check if we are in the correct view. - if (GuidHelper::valid($values['a_guid'] ?? '') && - !is_null($values['a_id']) && $values['a_id'] > 0 && strlen($values['a_view']) && in_array($values['a_view'], $this->allowedViewsArray)) - { - // set a return value - $return_url = 'index.php?option=com_componentbuilder&view=' . (string) $values['a_view'] . '&layout=edit&id=' . (int) $values['a_id']; - // set a global return value - if (isset($values['a_return'])) - { - $return_url .= '&return=' . (string) $values['a_return']; - } - // set the ref - $this->ref = '&ref=' . $values['a_view'] . '&refid=' . $values['a_id'] . '&return=' . urlencode(base64_encode($return_url)); - // set the key get value - $target = $values['a_guid'] ?? null; - // load the results - $result = []; - // return field table - if (UtilitiesArrayHelper::check($this->fieldsArray[$type])) - { - foreach ($this->fieldsArray[$type] as $fieldName) - { - if ($table = $this->getFieldTable($type, $target, $values['a_view'], $fieldName, $typeName)) - { - $result[] = $table; - } - } - } - elseif (StringHelper::check($this->fieldsArray[$type])) - { - if ($table = $this->getFieldTable($type, $target, $values['a_view'], $this->fieldsArray[$type], $typeName)) - { - $result[] = $table; - } - } + return '
' + . '

' . Text::_('COM_COMPONENTBUILDER_TYPE_ERROR') . '

' + . '

' . Text::_('COM_COMPONENTBUILDER_THERE_HAS_BEEN_AN_ERROR_IF_THIS_CONTINUES_PLEASE_INFORM_YOUR_SYSTEM_ADMINISTRATOR_OF_A_TYPE_ERROR_IN_THE_FIELDS_DISPLAY_REQUEST') . '

' + . '
'; + } - // check if we have results - if (UtilitiesArrayHelper::check($result) && count($result) == 1) + $typeName = StringHelper::safe($type, 'w'); + $values = $this->getViewID(); + + // Validate view context + $isValidView = + GuidHelper::valid($values['a_guid'] ?? '') && + !empty($values['a_id']) && + !empty($values['a_view']) && + in_array($values['a_view'], $this->allowedViewsArray, true); + + if (!$isValidView) + { + return sprintf( + '
%s
', + Text::sprintf('COM_COMPONENTBUILDER_NO_S_HAVE_BEEN_LINKED_TO_THIS_VIEW_AS_SOON_AS_THEY_ARE_THEY_WILL_BE_DISPLAYED_HERE', + $typeName + ) + ); + } + + // --- Build return reference ------------------------------------------------- + $returnUrl = sprintf( + 'index.php?option=com_componentbuilder&view=%s&layout=edit&id=%d', + $values['a_view'], + (int) $values['a_id'] + ); + + if (!empty($values['a_return'])) + { + $returnUrl .= '&return=' . (string) $values['a_return']; + } + + $this->ref = sprintf( + '&ref=%s&refid=%d&return=%s', + $values['a_view'], + (int) $values['a_id'], + urlencode(base64_encode($returnUrl)) + ); + + $target = $values['a_guid'] ?? null; + $result = []; + + // --- Retrieve field tables -------------------------------------------------- + $fieldList = $this->fieldsArray[$type]; + if (UtilitiesArrayHelper::check($fieldList)) + { + // If it's an array of fields + foreach ((array) $fieldList as $fieldName) + { + if ($table = $this->getFieldTable($type, $target, $values['a_view'], $fieldName, $typeName)) { - // return the display - return implode('', $result); - } - elseif (UtilitiesArrayHelper::check($result)) - { - // return the display - return '
' . implode('
', $result) . '
'; + $result[] = $table; } } - return '
' . Text::sprintf('COM_COMPONENTBUILDER_NO_S_HAVE_BEEN_LINKED_TO_THIS_VIEW_SOON_AS_THIS_IS_DONE_IT_WILL_BE_DISPLAYED_HERE', $typeName) . '
'; } - return '

' . Text::_('COM_COMPONENTBUILDER_TYPE_ERROR') . '

' . Text::_('COM_COMPONENTBUILDER_THERE_HAS_BEEN_AN_ERROR_IF_THIS_CONTINUES_PLEASE_INFORM_YOUR_SYSTEM_ADMINISTRATOR_OF_A_TYPE_ERROR_IN_THE_FIELDS_DISPLAY_REQUEST') . '

'; + elseif (StringHelper::check($fieldList)) + { + // Single field + if ($table = $this->getFieldTable($type, $target, $values['a_view'], $fieldList, $typeName)) + { + $result[] = $table; + } + } + + // --- Generate HTML output --------------------------------------------------- + if (!UtilitiesArrayHelper::check($result)) + { + return sprintf( + '
%s
', + Text::sprintf('COM_COMPONENTBUILDER_NO_S_HAVE_BEEN_LINKED_TO_THIS_VIEW_AS_SOON_AS_THEY_ARE_THEY_WILL_BE_DISPLAYED_HERE', + $typeName + ) + ); + } + + // Combine results + $html = count($result) === 1 + ? $result[0] + : '
' . implode('
', $result) . '
'; + + return $html; } /** @@ -3398,7 +3581,7 @@ class AjaxModel extends ListModel protected function validateViewRequest(int $id): ?array { $view = $this->getViewID(); - if (isset($view['a_id'], $view['a_view']) && (int)$view['a_id'] === $id) + if (isset($view['a_id'], $view['a_view']) && (int) $view['a_id'] === $id) { $target = $this->getCodeSearchKeys($view['a_view'], 'customcode', 'query_'); if ($target !== null) @@ -3423,11 +3606,9 @@ class AjaxModel extends ListModel */ protected function buildReturnUrl(array $view, int $id): string { - $jinput = Factory::getApplication()->getInput(); - $returnHere = $jinput->get('return_here', null, 'base64'); - if (StringHelper::check($returnHere)) + if (!empty($view['a_return'])) { - return '&return=' . $returnHere; + return '&return=' . (string) $view['a_return']; } return '&ref=' . $view['a_view'] . '&refid=' . $id; } @@ -4646,39 +4827,39 @@ class AjaxModel extends ListModel // start building the subform field XML $subformXML = new \SimpleXMLElement(''); // subform attributes - $subformAttribute = array( + $subformAttribute = [ 'type' => 'subform', 'name' => $name, 'label' => $label, 'layout' => 'joomla.form.field.subform.repeatable-table', 'multiple' => 'true', 'icon' => 'list', - 'max' => (UtilitiesArrayHelper::check($nameListOptions)) ? (int) count($nameListOptions) : 4); + 'max' => (UtilitiesArrayHelper::check($nameListOptions)) ? (int) count($nameListOptions) : 4]; // load the subform attributes FormHelper::attributes($subformXML, $subformAttribute); // now add the subform child form $childForm = $subformXML->addChild('form'); // child form attributes - $childFormAttribute = array( + $childFormAttribute = [ 'hidden' => 'true', 'name' => 'list_properties', - 'repeat' => 'true'); + 'repeat' => 'true']; // load the child form attributes FormHelper::attributes($childForm, $childFormAttribute); // start building the name field XML $nameXML = new \SimpleXMLElement(''); + $isList = UtilitiesArrayHelper::check($nameListOptions); // subform attributes - $nameAttribute = array( - 'type' => (UtilitiesArrayHelper::check($nameListOptions)) ? 'list' : 'text', + $nameAttribute = [ + 'type' => $isList ? 'list' : 'text', 'name' => 'name', 'label' => 'COM_COMPONENTBUILDER_PROPERTY', - 'size' => '40', - 'maxlength' => '150', - 'class' => (UtilitiesArrayHelper::check($nameListOptions)) ? 'list_class field_list_name_options' : 'text_area', - 'filter' => 'STRING'); + 'class' => $isList ? 'list_class' : 'text_area', + 'filter' => 'STRING' + ]; // add the hint only if not name list and description if name list is an array - if (UtilitiesArrayHelper::check($nameListOptions)) + if ($isList) { $nameAttribute['description'] = 'COM_COMPONENTBUILDER_SELECTION'; $nameAttribute['multiple'] = 'false'; @@ -4688,13 +4869,16 @@ class AjaxModel extends ListModel else { $nameAttribute['hint'] = 'COM_COMPONENTBUILDER_PROPERTY_NAME'; + $nameAttribute['size'] = '40'; + $nameAttribute['maxlength'] = '150'; } // load the subform attributes FormHelper::attributes($nameXML, $nameAttribute); // add name list if found - if (UtilitiesArrayHelper::check($nameListOptions)) + if ($isList) { - FormHelper::options($nameXML, $nameListOptions); + $_nameListoptions = array_merge($nameListOptions, ['' => Text::_('COM_COMPONENTBUILDER_SELECT_A_PROPERTY')]); + FormHelper::options($nameXML, $_nameListoptions); } // now add the fields to the child form FormHelper::append($childForm, $nameXML); @@ -4702,15 +4886,15 @@ class AjaxModel extends ListModel // start building the name field XML $valueXML = new \SimpleXMLElement(''); // subform attributes - $valueAttribute = array( + $valueAttribute = [ 'type' => 'textarea', 'name' => 'value', 'label' => 'COM_COMPONENTBUILDER_VALUE', 'rows' => '1', 'cols' => '15', - 'class' => 'text_area span12', + 'class' => 'text_area full-column-in-subform', 'filter' => 'STRING', - 'hint' => 'COM_COMPONENTBUILDER_PROPERTY_VALUE'); + 'hint' => 'COM_COMPONENTBUILDER_PROPERTY_VALUE']; // load the subform attributes FormHelper::attributes($valueXML, $valueAttribute); // now add the fields to the child form @@ -4719,16 +4903,16 @@ class AjaxModel extends ListModel // start building the desc field XML $descXML = new \SimpleXMLElement(''); // subform attributes - $descAttribute = array( + $descAttribute = [ 'type' => 'textarea', 'name' => 'desc', 'label' => 'COM_COMPONENTBUILDER_DESCRIPTION', 'rows' => '3', 'cols' => '25', 'readonly' => 'true', - 'class' => 'text_area span12', + 'class' => 'text_area full-column-in-subform', 'filter' => 'WORD', - 'hint' => 'COM_COMPONENTBUILDER_SELECT_A_PROPERTY'); + 'hint' => 'COM_COMPONENTBUILDER_SELECT_A_PROPERTY']; // load the desc attributes FormHelper::attributes($descXML, $descAttribute); // now add the fields to the child form diff --git a/admin/src/Model/Class_extendsModel.php b/admin/src/Model/Class_extendsModel.php index d0df7369f..d76824d79 100644 --- a/admin/src/Model/Class_extendsModel.php +++ b/admin/src/Model/Class_extendsModel.php @@ -124,6 +124,14 @@ class Class_extendsModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -137,8 +145,9 @@ class Class_extendsModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -153,7 +162,7 @@ class Class_extendsModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('class_extends__'.$id)) !== null) + if (($vdm = SessionHelper::get('class_extends__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -161,10 +170,10 @@ class Class_extendsModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'class_extends__'.$id); - SessionHelper::set('class_extends__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'class_extends__' . $id); + SessionHelper::set('class_extends__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -176,9 +185,9 @@ class Class_extendsModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -230,7 +239,7 @@ class Class_extendsModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('class_extends__'.$id)) !== null) + if (($vdm = SessionHelper::get('class_extends__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -238,10 +247,10 @@ class Class_extendsModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'class_extends__'.$id); - SessionHelper::set('class_extends__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'class_extends__' . $id); + SessionHelper::set('class_extends__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/Class_methodModel.php b/admin/src/Model/Class_methodModel.php index 99bcfef02..3ed5f2a83 100644 --- a/admin/src/Model/Class_methodModel.php +++ b/admin/src/Model/Class_methodModel.php @@ -127,6 +127,14 @@ class Class_methodModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -140,8 +148,9 @@ class Class_methodModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -156,7 +165,7 @@ class Class_methodModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('class_method__'.$id)) !== null) + if (($vdm = SessionHelper::get('class_method__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -164,10 +173,10 @@ class Class_methodModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'class_method__'.$id); - SessionHelper::set('class_method__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'class_method__' . $id); + SessionHelper::set('class_method__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -179,9 +188,9 @@ class Class_methodModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -239,7 +248,7 @@ class Class_methodModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('class_method__'.$id)) !== null) + if (($vdm = SessionHelper::get('class_method__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -247,10 +256,10 @@ class Class_methodModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'class_method__'.$id); - SessionHelper::set('class_method__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'class_method__' . $id); + SessionHelper::set('class_method__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/Class_propertyModel.php b/admin/src/Model/Class_propertyModel.php index dc5424a65..bddb914be 100644 --- a/admin/src/Model/Class_propertyModel.php +++ b/admin/src/Model/Class_propertyModel.php @@ -124,6 +124,14 @@ class Class_propertyModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -137,8 +145,9 @@ class Class_propertyModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -153,7 +162,7 @@ class Class_propertyModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('class_property__'.$id)) !== null) + if (($vdm = SessionHelper::get('class_property__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -161,10 +170,10 @@ class Class_propertyModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'class_property__'.$id); - SessionHelper::set('class_property__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'class_property__' . $id); + SessionHelper::set('class_property__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -176,9 +185,9 @@ class Class_propertyModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -230,7 +239,7 @@ class Class_propertyModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('class_property__'.$id)) !== null) + if (($vdm = SessionHelper::get('class_property__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -238,10 +247,10 @@ class Class_propertyModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'class_property__'.$id); - SessionHelper::set('class_property__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'class_property__' . $id); + SessionHelper::set('class_property__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/Component_dashboardModel.php b/admin/src/Model/Component_dashboardModel.php index f2adec39b..18e26663f 100644 --- a/admin/src/Model/Component_dashboardModel.php +++ b/admin/src/Model/Component_dashboardModel.php @@ -127,6 +127,14 @@ class Component_dashboardModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -140,8 +148,9 @@ class Component_dashboardModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -156,7 +165,7 @@ class Component_dashboardModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('component_dashboard__'.$id)) !== null) + if (($vdm = SessionHelper::get('component_dashboard__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -164,10 +173,10 @@ class Component_dashboardModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'component_dashboard__'.$id); - SessionHelper::set('component_dashboard__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'component_dashboard__' . $id); + SessionHelper::set('component_dashboard__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -179,9 +188,9 @@ class Component_dashboardModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -235,7 +244,7 @@ class Component_dashboardModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('component_dashboard__'.$id)) !== null) + if (($vdm = SessionHelper::get('component_dashboard__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -243,10 +252,10 @@ class Component_dashboardModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'component_dashboard__'.$id); - SessionHelper::set('component_dashboard__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'component_dashboard__' . $id); + SessionHelper::set('component_dashboard__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/Component_routerModel.php b/admin/src/Model/Component_routerModel.php index 09b1a071f..7b4af4583 100644 --- a/admin/src/Model/Component_routerModel.php +++ b/admin/src/Model/Component_routerModel.php @@ -128,6 +128,14 @@ class Component_routerModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -141,8 +149,9 @@ class Component_routerModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -157,7 +166,7 @@ class Component_routerModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('component_router__'.$id)) !== null) + if (($vdm = SessionHelper::get('component_router__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -165,10 +174,10 @@ class Component_routerModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'component_router__'.$id); - SessionHelper::set('component_router__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'component_router__' . $id); + SessionHelper::set('component_router__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -180,9 +189,9 @@ class Component_routerModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -248,7 +257,7 @@ class Component_routerModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('component_router__'.$id)) !== null) + if (($vdm = SessionHelper::get('component_router__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -256,10 +265,10 @@ class Component_routerModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'component_router__'.$id); - SessionHelper::set('component_router__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'component_router__' . $id); + SessionHelper::set('component_router__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/Custom_admin_viewModel.php b/admin/src/Model/Custom_admin_viewModel.php index 721f38274..376871ed9 100644 --- a/admin/src/Model/Custom_admin_viewModel.php +++ b/admin/src/Model/Custom_admin_viewModel.php @@ -185,6 +185,14 @@ class Custom_admin_viewModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -198,8 +206,9 @@ class Custom_admin_viewModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -214,7 +223,7 @@ class Custom_admin_viewModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('custom_admin_view__'.$id)) !== null) + if (($vdm = SessionHelper::get('custom_admin_view__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -222,10 +231,10 @@ class Custom_admin_viewModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'custom_admin_view__'.$id); - SessionHelper::set('custom_admin_view__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'custom_admin_view__' . $id); + SessionHelper::set('custom_admin_view__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -237,9 +246,9 @@ class Custom_admin_viewModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -383,7 +392,7 @@ class Custom_admin_viewModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('custom_admin_view__'.$id)) !== null) + if (($vdm = SessionHelper::get('custom_admin_view__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -391,10 +400,10 @@ class Custom_admin_viewModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'custom_admin_view__'.$id); - SessionHelper::set('custom_admin_view__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'custom_admin_view__' . $id); + SessionHelper::set('custom_admin_view__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/Custom_codeModel.php b/admin/src/Model/Custom_codeModel.php index 7340af6dd..7dedd93c2 100644 --- a/admin/src/Model/Custom_codeModel.php +++ b/admin/src/Model/Custom_codeModel.php @@ -139,6 +139,14 @@ class Custom_codeModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -152,8 +160,9 @@ class Custom_codeModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -168,7 +177,7 @@ class Custom_codeModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('custom_code__'.$id)) !== null) + if (($vdm = SessionHelper::get('custom_code__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -176,10 +185,10 @@ class Custom_codeModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'custom_code__'.$id); - SessionHelper::set('custom_code__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'custom_code__' . $id); + SessionHelper::set('custom_code__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -191,9 +200,9 @@ class Custom_codeModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -239,7 +248,7 @@ class Custom_codeModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('custom_code__'.$id)) !== null) + if (($vdm = SessionHelper::get('custom_code__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -247,10 +256,10 @@ class Custom_codeModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'custom_code__'.$id); - SessionHelper::set('custom_code__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'custom_code__' . $id); + SessionHelper::set('custom_code__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/Custom_codesModel.php b/admin/src/Model/Custom_codesModel.php index fc0408287..436e54539 100644 --- a/admin/src/Model/Custom_codesModel.php +++ b/admin/src/Model/Custom_codesModel.php @@ -229,10 +229,10 @@ class Custom_codesModel extends ListModel { if ($item->target == 2) { - $item->path = '[CUSTO' . 'MCODE='.$item->id.']'; // so it is not detected + $item->path = '[CUSTO' . 'MCODE=' . $item->id . ']'; // so it is not detected if (StringHelper::check($item->function_name)) { - $item->path = '[CUSTO' . 'MCODE='.$item->function_name.']'; // so it is not detected + $item->path = '[CUSTO' . 'MCODE=' . $item->function_name . ']'; // so it is not detected } $item->type = 2; } diff --git a/admin/src/Model/Dynamic_getModel.php b/admin/src/Model/Dynamic_getModel.php index eedffff99..c0c23b928 100644 --- a/admin/src/Model/Dynamic_getModel.php +++ b/admin/src/Model/Dynamic_getModel.php @@ -179,6 +179,14 @@ class Dynamic_getModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -192,8 +200,9 @@ class Dynamic_getModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -208,7 +217,7 @@ class Dynamic_getModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('dynamic_get__'.$id)) !== null) + if (($vdm = SessionHelper::get('dynamic_get__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -216,10 +225,10 @@ class Dynamic_getModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'dynamic_get__'.$id); - SessionHelper::set('dynamic_get__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'dynamic_get__' . $id); + SessionHelper::set('dynamic_get__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -231,9 +240,9 @@ class Dynamic_getModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -383,7 +392,7 @@ class Dynamic_getModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('dynamic_get__'.$id)) !== null) + if (($vdm = SessionHelper::get('dynamic_get__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -391,10 +400,10 @@ class Dynamic_getModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'dynamic_get__'.$id); - SessionHelper::set('dynamic_get__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'dynamic_get__' . $id); + SessionHelper::set('dynamic_get__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/FieldModel.php b/admin/src/Model/FieldModel.php index 1e1b23271..eba8a700f 100644 --- a/admin/src/Model/FieldModel.php +++ b/admin/src/Model/FieldModel.php @@ -172,6 +172,14 @@ class FieldModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -185,8 +193,9 @@ class FieldModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -201,7 +210,7 @@ class FieldModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('field__'.$id)) !== null) + if (($vdm = SessionHelper::get('field__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -209,10 +218,10 @@ class FieldModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'field__'.$id); - SessionHelper::set('field__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'field__' . $id); + SessionHelper::set('field__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -224,9 +233,9 @@ class FieldModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -320,7 +329,7 @@ class FieldModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('field__'.$id)) !== null) + if (($vdm = SessionHelper::get('field__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -328,10 +337,10 @@ class FieldModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'field__'.$id); - SessionHelper::set('field__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'field__' . $id); + SessionHelper::set('field__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/FieldtypeModel.php b/admin/src/Model/FieldtypeModel.php index ba98c9a09..f61a157ca 100644 --- a/admin/src/Model/FieldtypeModel.php +++ b/admin/src/Model/FieldtypeModel.php @@ -146,6 +146,14 @@ class FieldtypeModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -159,8 +167,9 @@ class FieldtypeModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -175,7 +184,7 @@ class FieldtypeModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('fieldtype__'.$id)) !== null) + if (($vdm = SessionHelper::get('fieldtype__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -183,10 +192,10 @@ class FieldtypeModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'fieldtype__'.$id); - SessionHelper::set('fieldtype__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'fieldtype__' . $id); + SessionHelper::set('fieldtype__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -198,9 +207,9 @@ class FieldtypeModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -248,7 +257,7 @@ class FieldtypeModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('fieldtype__'.$id)) !== null) + if (($vdm = SessionHelper::get('fieldtype__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -256,10 +265,10 @@ class FieldtypeModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'fieldtype__'.$id); - SessionHelper::set('fieldtype__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'fieldtype__' . $id); + SessionHelper::set('fieldtype__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/Joomla_componentModel.php b/admin/src/Model/Joomla_componentModel.php index 28919664f..1ea7bdeed 100644 --- a/admin/src/Model/Joomla_componentModel.php +++ b/admin/src/Model/Joomla_componentModel.php @@ -306,6 +306,14 @@ class Joomla_componentModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -319,8 +327,9 @@ class Joomla_componentModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -335,7 +344,7 @@ class Joomla_componentModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('joomla_component__'.$id)) !== null) + if (($vdm = SessionHelper::get('joomla_component__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -343,10 +352,10 @@ class Joomla_componentModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'joomla_component__'.$id); - SessionHelper::set('joomla_component__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'joomla_component__' . $id); + SessionHelper::set('joomla_component__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -358,9 +367,9 @@ class Joomla_componentModel extends AdminModel } } } + return $this->vastDevMod; } - /** @@ -540,7 +549,7 @@ class Joomla_componentModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('joomla_component__'.$id)) !== null) + if (($vdm = SessionHelper::get('joomla_component__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -548,10 +557,10 @@ class Joomla_componentModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'joomla_component__'.$id); - SessionHelper::set('joomla_component__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'joomla_component__' . $id); + SessionHelper::set('joomla_component__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/Joomla_moduleModel.php b/admin/src/Model/Joomla_moduleModel.php index 73466c185..bf6c18d03 100644 --- a/admin/src/Model/Joomla_moduleModel.php +++ b/admin/src/Model/Joomla_moduleModel.php @@ -212,6 +212,14 @@ class Joomla_moduleModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -225,8 +233,9 @@ class Joomla_moduleModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -241,7 +250,7 @@ class Joomla_moduleModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('joomla_module__'.$id)) !== null) + if (($vdm = SessionHelper::get('joomla_module__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -249,10 +258,10 @@ class Joomla_moduleModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'joomla_module__'.$id); - SessionHelper::set('joomla_module__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'joomla_module__' . $id); + SessionHelper::set('joomla_module__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -264,9 +273,9 @@ class Joomla_moduleModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -426,7 +435,7 @@ class Joomla_moduleModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('joomla_module__'.$id)) !== null) + if (($vdm = SessionHelper::get('joomla_module__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -434,10 +443,10 @@ class Joomla_moduleModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'joomla_module__'.$id); - SessionHelper::set('joomla_module__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'joomla_module__' . $id); + SessionHelper::set('joomla_module__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/Joomla_pluginModel.php b/admin/src/Model/Joomla_pluginModel.php index fb938bf96..91fbd0cd8 100644 --- a/admin/src/Model/Joomla_pluginModel.php +++ b/admin/src/Model/Joomla_pluginModel.php @@ -187,6 +187,14 @@ class Joomla_pluginModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -200,8 +208,9 @@ class Joomla_pluginModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -216,7 +225,7 @@ class Joomla_pluginModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('joomla_plugin__'.$id)) !== null) + if (($vdm = SessionHelper::get('joomla_plugin__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -224,10 +233,10 @@ class Joomla_pluginModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'joomla_plugin__'.$id); - SessionHelper::set('joomla_plugin__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'joomla_plugin__' . $id); + SessionHelper::set('joomla_plugin__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -239,9 +248,9 @@ class Joomla_pluginModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -377,7 +386,7 @@ class Joomla_pluginModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('joomla_plugin__'.$id)) !== null) + if (($vdm = SessionHelper::get('joomla_plugin__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -385,10 +394,10 @@ class Joomla_pluginModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'joomla_plugin__'.$id); - SessionHelper::set('joomla_plugin__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'joomla_plugin__' . $id); + SessionHelper::set('joomla_plugin__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/LayoutModel.php b/admin/src/Model/LayoutModel.php index 2c4c688b9..bf3bc8b3d 100644 --- a/admin/src/Model/LayoutModel.php +++ b/admin/src/Model/LayoutModel.php @@ -142,6 +142,14 @@ class LayoutModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -155,8 +163,9 @@ class LayoutModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -171,7 +180,7 @@ class LayoutModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('layout__'.$id)) !== null) + if (($vdm = SessionHelper::get('layout__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -179,10 +188,10 @@ class LayoutModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'layout__'.$id); - SessionHelper::set('layout__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'layout__' . $id); + SessionHelper::set('layout__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -194,9 +203,9 @@ class LayoutModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -256,7 +265,7 @@ class LayoutModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('layout__'.$id)) !== null) + if (($vdm = SessionHelper::get('layout__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -264,10 +273,10 @@ class LayoutModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'layout__'.$id); - SessionHelper::set('layout__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'layout__' . $id); + SessionHelper::set('layout__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/LibraryModel.php b/admin/src/Model/LibraryModel.php index 13da27d9a..e3f3c5821 100644 --- a/admin/src/Model/LibraryModel.php +++ b/admin/src/Model/LibraryModel.php @@ -158,6 +158,14 @@ class LibraryModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -171,8 +179,9 @@ class LibraryModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -187,7 +196,7 @@ class LibraryModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('library__'.$id)) !== null) + if (($vdm = SessionHelper::get('library__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -195,10 +204,10 @@ class LibraryModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'library__'.$id); - SessionHelper::set('library__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'library__' . $id); + SessionHelper::set('library__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -210,9 +219,9 @@ class LibraryModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -274,7 +283,7 @@ class LibraryModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('library__'.$id)) !== null) + if (($vdm = SessionHelper::get('library__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -282,10 +291,10 @@ class LibraryModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'library__'.$id); - SessionHelper::set('library__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'library__' . $id); + SessionHelper::set('library__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/PlaceholderModel.php b/admin/src/Model/PlaceholderModel.php index fbc027378..bcd9c5beb 100644 --- a/admin/src/Model/PlaceholderModel.php +++ b/admin/src/Model/PlaceholderModel.php @@ -121,6 +121,14 @@ class PlaceholderModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -134,8 +142,9 @@ class PlaceholderModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -150,7 +159,7 @@ class PlaceholderModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('placeholder__'.$id)) !== null) + if (($vdm = SessionHelper::get('placeholder__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -158,10 +167,10 @@ class PlaceholderModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'placeholder__'.$id); - SessionHelper::set('placeholder__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'placeholder__' . $id); + SessionHelper::set('placeholder__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -173,9 +182,9 @@ class PlaceholderModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -221,7 +230,7 @@ class PlaceholderModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('placeholder__'.$id)) !== null) + if (($vdm = SessionHelper::get('placeholder__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -229,10 +238,10 @@ class PlaceholderModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'placeholder__'.$id); - SessionHelper::set('placeholder__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'placeholder__' . $id); + SessionHelper::set('placeholder__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/PowerModel.php b/admin/src/Model/PowerModel.php index f767ae28b..12e52a694 100644 --- a/admin/src/Model/PowerModel.php +++ b/admin/src/Model/PowerModel.php @@ -167,6 +167,14 @@ class PowerModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -180,8 +188,9 @@ class PowerModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -196,7 +205,7 @@ class PowerModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('power__'.$id)) !== null) + if (($vdm = SessionHelper::get('power__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -204,10 +213,10 @@ class PowerModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'power__'.$id); - SessionHelper::set('power__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'power__' . $id); + SessionHelper::set('power__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -219,9 +228,9 @@ class PowerModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -341,7 +350,7 @@ class PowerModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('power__'.$id)) !== null) + if (($vdm = SessionHelper::get('power__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -349,10 +358,10 @@ class PowerModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'power__'.$id); - SessionHelper::set('power__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'power__' . $id); + SessionHelper::set('power__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/Site_viewModel.php b/admin/src/Model/Site_viewModel.php index fc808c0fe..f3a7048a1 100644 --- a/admin/src/Model/Site_viewModel.php +++ b/admin/src/Model/Site_viewModel.php @@ -188,6 +188,14 @@ class Site_viewModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -201,8 +209,9 @@ class Site_viewModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -217,7 +226,7 @@ class Site_viewModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('site_view__'.$id)) !== null) + if (($vdm = SessionHelper::get('site_view__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -225,10 +234,10 @@ class Site_viewModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'site_view__'.$id); - SessionHelper::set('site_view__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'site_view__' . $id); + SessionHelper::set('site_view__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -240,9 +249,9 @@ class Site_viewModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -386,7 +395,7 @@ class Site_viewModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('site_view__'.$id)) !== null) + if (($vdm = SessionHelper::get('site_view__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -394,10 +403,10 @@ class Site_viewModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'site_view__'.$id); - SessionHelper::set('site_view__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'site_view__' . $id); + SessionHelper::set('site_view__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/TemplateModel.php b/admin/src/Model/TemplateModel.php index 62d0c32f4..31aedbe01 100644 --- a/admin/src/Model/TemplateModel.php +++ b/admin/src/Model/TemplateModel.php @@ -142,6 +142,14 @@ class TemplateModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -155,8 +163,9 @@ class TemplateModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -171,7 +180,7 @@ class TemplateModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('template__'.$id)) !== null) + if (($vdm = SessionHelper::get('template__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -179,10 +188,10 @@ class TemplateModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'template__'.$id); - SessionHelper::set('template__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'template__' . $id); + SessionHelper::set('template__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -194,9 +203,9 @@ class TemplateModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -256,7 +265,7 @@ class TemplateModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('template__'.$id)) !== null) + if (($vdm = SessionHelper::get('template__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -264,10 +273,10 @@ class TemplateModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'template__'.$id); - SessionHelper::set('template__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'template__' . $id); + SessionHelper::set('template__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/Model/Validation_ruleModel.php b/admin/src/Model/Validation_ruleModel.php index db6fd13fb..e519491df 100644 --- a/admin/src/Model/Validation_ruleModel.php +++ b/admin/src/Model/Validation_ruleModel.php @@ -124,6 +124,14 @@ class Validation_ruleModel extends AdminModel } + /** + * The VDM view key + * + * @var string + * @since 3.0.13 + */ + protected string $vastDevMod; + /** * Retrieves or generates a Vast Development Method (VDM) key for the current item. * @@ -137,8 +145,9 @@ class Validation_ruleModel extends AdminModel * 7. Returns the VDM key. * * @return string The VDM key for the current item. + * @since 3.0.13 */ - public function getVDM() + public function getVDM(): string { if (!isset($this->vastDevMod)) { @@ -153,7 +162,7 @@ class Validation_ruleModel extends AdminModel $id = $_id; } // set the id and view name to session - if (($vdm = SessionHelper::get('validation_rule__'.$id)) !== null) + if (($vdm = SessionHelper::get('validation_rule__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -161,10 +170,10 @@ class Validation_ruleModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'validation_rule__'.$id); - SessionHelper::set('validation_rule__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'validation_rule__' . $id); + SessionHelper::set('validation_rule__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); @@ -176,9 +185,9 @@ class Validation_ruleModel extends AdminModel } } } + return $this->vastDevMod; - } - + } /** * Method to get a single record. @@ -224,7 +233,7 @@ class Validation_ruleModel extends AdminModel $id = $item->id; } // set the id and view name to session - if (($vdm = SessionHelper::get('validation_rule__'.$id)) !== null) + if (($vdm = SessionHelper::get('validation_rule__' . $id)) !== null) { $this->vastDevMod = $vdm; } @@ -232,10 +241,10 @@ class Validation_ruleModel extends AdminModel { // set the vast development method key $this->vastDevMod = UtilitiesStringHelper::random(50); - SessionHelper::set($this->vastDevMod, 'validation_rule__'.$id); - SessionHelper::set('validation_rule__'.$id, $this->vastDevMod); + SessionHelper::set($this->vastDevMod, 'validation_rule__' . $id); + SessionHelper::set('validation_rule__' . $id, $this->vastDevMod); // set a return value if found - $app = Factory::getApplication(); + $app = $this->app ?? Factory::getApplication(); $input = method_exists($app, 'getInput') ? $app->getInput() : $app->input; $return = $input->get('return', null, 'base64'); SessionHelper::set($this->vastDevMod . '__return', $return); diff --git a/admin/src/View/Compiler/HtmlView.php b/admin/src/View/Compiler/HtmlView.php index 15f213a2f..5febacd90 100644 --- a/admin/src/View/Compiler/HtmlView.php +++ b/admin/src/View/Compiler/HtmlView.php @@ -213,400 +213,400 @@ class HtmlView extends BaseHtmlView */ public function getDynamicForm(): ?Form { - if(ArrayHelper::check($this->Components)) + if(empty($this->Components)) { - // start the form - $form = new Form('Builder'); - - $form->load('
- -
-
'); - - // sales attributes - $attributes = [ - 'type' => 'radio', - 'name' => 'backup', - 'label' => 'COM_COMPONENTBUILDER_ADD_TO_BACKUP_FOLDER_AMP_SALES_SERVER_SMALLIF_SETSMALL', - 'class' => 'btn-group btn-group-yesno', - 'description' => 'COM_COMPONENTBUILDER_SHOULD_THE_ZIPPED_PACKAGE_OF_THE_COMPONENT_BE_MOVED_TO_THE_LOCAL_BACKUP_AND_REMOTE_SALES_SERVER_THIS_IS_ONLY_APPLICABLE_IF_THIS_COMPONENT_HAS_THOSE_VALUES_SET', - 'default' => '0']; - // set the sales options - $options = [ - '1' => 'COM_COMPONENTBUILDER_YES', - '0' => 'COM_COMPONENTBUILDER_NO']; - - // add to form - $xml = FormHelper::xml($attributes, $options); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'builder'); - } - - // repository attributes - $attributes = [ - 'type' => 'radio', - 'name' => 'repository', - 'label' => 'COM_COMPONENTBUILDER_ADD_TO_REPOSITORY_FOLDER', - 'class' => 'btn-group btn-group-yesno', - 'description' => 'COM_COMPONENTBUILDER_SHOULD_THE_COMPONENT_BE_MOVED_TO_YOUR_LOCAL_REPOSITORY_FOLDER', - 'default' => '1']; - // start the repository options - $options = [ - '1' => 'COM_COMPONENTBUILDER_YES', - '0' => 'COM_COMPONENTBUILDER_NO']; - - // add to form - $xml = FormHelper::xml($attributes, $options); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'builder'); - } - - // placeholders attributes - $attributes = [ - 'type' => 'radio', - 'name' => 'add_placeholders', - 'label' => 'COM_COMPONENTBUILDER_ADD_CUSTOM_CODE_PLACEHOLDERS', - 'class' => 'btn-group btn-group-yesno', - 'description' => 'COM_COMPONENTBUILDER_SHOULD_JCB_INSERT_THE_CUSTOM_CODE_PLACEHOLDERS_THIS_IS_ONLY_APPLICABLE_IF_THIS_COMPONENT_HAS_CUSTOM_CODE', - 'default' => '2']; - // start the placeholders options - $options = [ - '2' => 'COM_COMPONENTBUILDER_GLOBAL', - '1' => 'COM_COMPONENTBUILDER_YES', - '0' => 'COM_COMPONENTBUILDER_NO']; - - // add to form - $xml = FormHelper::xml($attributes, $options); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'builder'); - } - - // debuglinenr attributes - $attributes = [ - 'type' => 'radio', - 'name' => 'debug_line_nr', - 'label' => 'COM_COMPONENTBUILDER_DEBUG_LINE_NUMBERS', - 'class' => 'btn-group btn-group-yesno', - 'description' => 'COM_COMPONENTBUILDER_ADD_CORRESPONDING_LINE_NUMBERS_TO_THE_DYNAMIC_COMMENTS_SO_TO_SEE_WHERE_IN_THE_COMPILER_THE_LINES_OF_CODE_WAS_BUILD_THIS_WILL_HELP_IF_YOU_NEED_TO_GET_MORE_TECHNICAL_WITH_AN_ISSUE_ON_GITHUB_OR_EVEN_FOR_YOUR_OWN_DEBUGGING', - 'default' => '2']; - $options = [ - '2' => 'COM_COMPONENTBUILDER_GLOBAL', - '1' => 'COM_COMPONENTBUILDER_YES', - '0' => 'COM_COMPONENTBUILDER_NO']; - - // add to form - $xml = FormHelper::xml($attributes, $options); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'builder'); - } - - // minify attributes - $attributes = [ - 'type' => 'radio', - 'name' => 'minify', - 'label' => 'COM_COMPONENTBUILDER_MINIFY_JAVASCRIPT', - 'class' => 'btn-group btn-group-yesno', - 'description' => 'COM_COMPONENTBUILDER_SHOULD_THE_JAVASCRIPT_BE_MINIFIED_IN_THE_COMPONENT', - 'default' => '2']; - $options = [ - '2' => 'COM_COMPONENTBUILDER_GLOBAL', - '1' => 'COM_COMPONENTBUILDER_YES', - '0' => 'COM_COMPONENTBUILDER_NO']; - - // add to form - $xml = FormHelper::xml($attributes, $options); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'builder'); - } - - // powers attributes - $attributes = [ - 'type' => 'radio', - 'name' => 'powers', - 'label' => 'COM_COMPONENTBUILDER_ADD_POWERS', - 'class' => 'btn-group btn-group-yesno', - 'description' => 'COM_COMPONENTBUILDER_SHOULD_JCB_ADD_ANY_POWERS_THAT_ARE_CONNECTED_TO_THIS_COMPONENT_THIS_MAY_BE_HELPFUL_IF_YOU_ARE_LOADING_POWERS_VIA_ANOTHER_COMPONENT_AND_WOULD_LIKE_TO_AVOID_ADDING_IT_TO_BOTH_JUST_REMEMBER_THAT_IN_THIS_CASE_YOU_NEED_TO_LOAD_THE_POWERS_VIA_A_PLUGIN', - 'default' => '2']; - $options = [ - '2' => 'COM_COMPONENTBUILDER_GLOBAL', - '1' => 'COM_COMPONENTBUILDER_YES', - '0' => 'COM_COMPONENTBUILDER_NO']; - - // add to form - $xml = FormHelper::xml($attributes, $options); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'builder'); - } - - // component attributes - $attributes = [ - 'type' => 'list', - 'name' => 'component_id', - 'label' => 'COM_COMPONENTBUILDER_COMPONENTS', - 'class' => 'list_class', - 'description' => 'COM_COMPONENTBUILDER_SELECT_THE_COMPONENT_TO_COMPILE', - 'required' => 'true']; - // start the component options - $options = []; - $options[''] = 'COM_COMPONENTBUILDER__SELECT_COMPONENT_'; - // load component options from array - foreach($this->Components as $component) - { - $options[(int) $component->id] = $this->escape($component->name); - } - - // add to form - $xml = FormHelper::xml($attributes, $options); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'builder'); - } - - // Joomla Versions attributes - $attributes = [ - 'type' => 'list', - 'name' => 'joomla_version', - 'label' => 'COM_COMPONENTBUILDER_JOOMLA_VERSION', - 'class' => 'list_class', - 'description' => 'COM_COMPONENTBUILDER_WHAT_VERSION_OF_JOOMLA_WOULD_YOU_LIKE_TO_TARGET', - 'default' => (string) Version::MAJOR_VERSION]; - // start the joomla versions options - $options = [ - '3' => 'COM_COMPONENTBUILDER_JOOMLA_THREE', - '4' => 'COM_COMPONENTBUILDER_JOOMLA_FOUR', - '5' => 'COM_COMPONENTBUILDER_JOOMLA_FIVE', - '6' => 'COM_COMPONENTBUILDER_JOOMLA_SIX' - ]; - - // add to form - $xml = FormHelper::xml($attributes, $options); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'builder'); - } - - // Advanced Options - $attributes = [ - 'type' => 'radio', - 'name' => 'show_advanced_options', - 'label' => 'COM_COMPONENTBUILDER_SHOW_ADVANCED_OPTIONS', - 'class' => 'btn-group btn-group-yesno', - 'description' => 'COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_SEE_THE_ADVANCED_COMPILER_OPTIONS', - 'default' => '0']; - // start the advanced options switch - $options = [ - '1' => 'COM_COMPONENTBUILDER_YES', - '0' => 'COM_COMPONENTBUILDER_NO']; - - // add to form - $xml = FormHelper::xml($attributes, $options); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'builder'); - } - - // Advanced Options note attributes - $attributes = [ - 'type' => 'note', - 'name' => 'show_advanced_options_note', - 'label' => "COM_COMPONENTBUILDER_ADVANCED_OPTIONS", - 'heading' => 'h3', - 'showon' => 'show_advanced_options:1']; - - // add to form - $xml = FormHelper::xml($attributes); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'advanced'); - } - - // powers repository attributes - $attributes = [ - 'type' => 'radio', - 'name' => 'powers_repository', - 'label' => 'COM_COMPONENTBUILDER_ACTIVATE_SUPER_POWERS', - 'class' => 'btn-group btn-group-yesno', - 'description' => 'COM_COMPONENTBUILDER_THIS_ADDS_POWERS_TO_A_LOCAL_REPOSITORY_FOLDER_ALL_BAPPROVEDB_POWERS_LINKED_TO_THIS_COMPONENT_WILL_BE_MOVED_TO_YOUR_BLOCALB_POWERS_REPOSITORY_FOLDER_INTO_THEIR_SELECTIVE_TARGET_PATHS_THIS_LOCAL_FOLDER_PATH_MUST_BE_SET_IN_THE_GLOBAL_OPTIONS_OF_JCB_UNDER_THE_BSUPER_POWERB_TAB', - 'default' => '2', - 'showon' => 'show_advanced_options:1']; - // start the repository options - $options = [ - '2' => 'COM_COMPONENTBUILDER_GLOBAL', - '1' => 'COM_COMPONENTBUILDER_YES', - '0' => 'COM_COMPONENTBUILDER_NO']; - - // add to form - $xml = FormHelper::xml($attributes, $options); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'advanced'); - } - - // powers local path to repositories attributes - $attributes = [ - 'type' => 'text', - 'name' => 'local_powers_repository_path', - 'label' => 'COM_COMPONENTBUILDER_LOCAL_POWERS_REPOSITORY_PATH', - 'class' => 'btn-group btn-group-yesno', - 'description' => 'COM_COMPONENTBUILDER_HERE_YOU_CAN_SET_THE_PATH_TO_THE_SUPER_POWERS_LOCAL_REPOSITORY_FOLDER_WHERE_BLAYERCOREB_AND_ALL_TARGETED_BLAYEROWNB_SUB_PATHS_WILL_BE_PLACED_WITH_THEIR_SELECTIVE_BSWITCHAPPROVEDB_POWERS', - 'default' => $this->params->get('local_powers_repository_path', ''), - 'showon' => 'show_advanced_options:1[AND]powers_repository:1']; - - // add to form - $xml = FormHelper::xml($attributes); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'advanced'); - } - - // Indentation attributes - $attributes = [ - 'type' => 'radio', - 'name' => 'indentation_value', - 'label' => 'COM_COMPONENTBUILDER_INDENTATION_OPTIONS', - 'class' => 'btn-group btn-group-yesno', - 'description' => 'COM_COMPONENTBUILDER_WHICH_TYPE_OF_INDENTATION_WOULD_YOU_LIKE_TO_USE_PLEASE_NOTE_THAT_THIS_DOES_NOT_YET_IMPACT_THE_STATIC_TEMPLATES', - 'default' => '1', - 'showon' => 'show_advanced_options:1']; - - // start the indentation options - $options = [ - '1' => 'COM_COMPONENTBUILDER_TAB', - '2' => 'COM_COMPONENTBUILDER_TWO_SPACES', - '4' => 'COM_COMPONENTBUILDER_FOUR_SPACES']; - - // add to form - $xml = FormHelper::xml($attributes, $options); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'advanced'); - } - - // Build date attributes - $attributes = [ - 'type' => 'radio', - 'name' => 'add_build_date', - 'label' => 'COM_COMPONENTBUILDER_BUILD_DATE', - 'class' => 'btn-group btn-group-yesno', - 'description' => 'COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_OVERRIDE_THE_BUILD_DATE', - 'default' => '1', - 'showon' => 'show_advanced_options:1']; - // start the build date options - $options = [ - '1' => 'COM_COMPONENTBUILDER_DEFAULT', - '2' => 'COM_COMPONENTBUILDER_MANUAL', - '3' => 'COM_COMPONENTBUILDER_COMPONENT']; - - // add to form - $xml = FormHelper::xml($attributes, $options); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'advanced'); - } - - // Build date note attributes - $attributes = [ - 'type' => 'note', - 'name' => 'add_build_date_note_two', - 'description' => 'COM_COMPONENTBUILDER_ALLOWS_YOU_TO_OVERRIDE_THE_BUILD_DATE_BY_SELECTING_A_DATE_MANUALLY_FROM_THE_CALENDER', - 'class' => 'alert alert-info', - 'showon' => 'show_advanced_options:1[AND]add_build_date:2']; - - // add to form - $xml = FormHelper::xml($attributes); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'advanced'); - } - - // Build date note attributes - $attributes = [ - 'type' => 'note', - 'name' => 'add_build_date_note_three', - 'description' => "COM_COMPONENTBUILDER_THE_COMPONENTS_LAST_MODIFIED_DATE_WILL_BE_USED", - 'class' => 'alert alert-info', - 'showon' => 'show_advanced_options:1[AND]add_build_date:3']; - - // add to form - $xml = FormHelper::xml($attributes); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'advanced'); - } - - // Build date calendar attributes - $attributes = [ - 'type' => 'calendar', - 'name' => 'build_date', - 'label' => 'COM_COMPONENTBUILDER_SELECT_BUILD_DATE', - 'format' => '%Y-%m-%d', - 'filter' => 'user_utc', - 'default' => 'now', - 'size' => '22', - 'showon' => 'show_advanced_options:1[AND]add_build_date:2']; - - // add to form - $xml = FormHelper::xml($attributes); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'advanced'); - } - - // Build date note attributes - if ($this->dankie == 1) - { - $attributes = [ - 'type' => 'note', - 'name' => 'donations_note', - 'label' => "COM_COMPONENTBUILDER_DONATIONS", - 'description' => $this->getSupportMessage(), - 'class' => 'alert alert-success', - 'heading' => 'h1', - 'showon' => 'show_advanced_options:1']; - } - else - { - $attributes = [ - 'type' => 'note', - 'name' => 'partner_note', - 'description' => $this->getSupportMessage(), - 'showon' => 'show_advanced_options:1']; - } - - // add to form - $xml = FormHelper::xml($attributes); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'advanced'); - } - - // Build date note line attributes - $attributes = [ - 'type' => 'note', - 'name' => 'donations_note_line', - 'description' => '
', - 'showon' => 'show_advanced_options:1']; - - // add to form - $xml = FormHelper::xml($attributes); - if ($xml instanceof \SimpleXMLElement) - { - $form->setField($xml, null, true, 'advanced'); - } - - // return the form array - return $form; + return null; } - return null; + // start the form + $form = new Form('Builder'); + + $form->load('
+ +
+
'); + + // sales attributes + $attributes = [ + 'type' => 'radio', + 'name' => 'backup', + 'label' => 'COM_COMPONENTBUILDER_ADD_TO_BACKUP_FOLDER_AMP_SALES_SERVER_SMALLIF_SETSMALL', + 'class' => 'btn-group btn-group-yesno', + 'description' => 'COM_COMPONENTBUILDER_SHOULD_THE_ZIPPED_PACKAGE_OF_THE_COMPONENT_BE_MOVED_TO_THE_LOCAL_BACKUP_AND_REMOTE_SALES_SERVER_THIS_IS_ONLY_APPLICABLE_IF_THIS_COMPONENT_HAS_THOSE_VALUES_SET', + 'default' => '0']; + // set the sales options + $options = [ + '1' => 'COM_COMPONENTBUILDER_YES', + '0' => 'COM_COMPONENTBUILDER_NO']; + + // add to form + $xml = FormHelper::xml($attributes, $options); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'builder'); + } + + // repository attributes + $attributes = [ + 'type' => 'radio', + 'name' => 'repository', + 'label' => 'COM_COMPONENTBUILDER_ADD_TO_REPOSITORY_FOLDER', + 'class' => 'btn-group btn-group-yesno', + 'description' => 'COM_COMPONENTBUILDER_SHOULD_THE_COMPONENT_BE_MOVED_TO_YOUR_LOCAL_REPOSITORY_FOLDER', + 'default' => '1']; + // start the repository options + $options = [ + '1' => 'COM_COMPONENTBUILDER_YES', + '0' => 'COM_COMPONENTBUILDER_NO']; + + // add to form + $xml = FormHelper::xml($attributes, $options); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'builder'); + } + + // placeholders attributes + $attributes = [ + 'type' => 'radio', + 'name' => 'add_placeholders', + 'label' => 'COM_COMPONENTBUILDER_ADD_CUSTOM_CODE_PLACEHOLDERS', + 'class' => 'btn-group btn-group-yesno', + 'description' => 'COM_COMPONENTBUILDER_SHOULD_JCB_INSERT_THE_CUSTOM_CODE_PLACEHOLDERS_THIS_IS_ONLY_APPLICABLE_IF_THIS_COMPONENT_HAS_CUSTOM_CODE', + 'default' => '2']; + // start the placeholders options + $options = [ + '2' => 'COM_COMPONENTBUILDER_GLOBAL', + '1' => 'COM_COMPONENTBUILDER_YES', + '0' => 'COM_COMPONENTBUILDER_NO']; + + // add to form + $xml = FormHelper::xml($attributes, $options); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'builder'); + } + + // debuglinenr attributes + $attributes = [ + 'type' => 'radio', + 'name' => 'debug_line_nr', + 'label' => 'COM_COMPONENTBUILDER_DEBUG_LINE_NUMBERS', + 'class' => 'btn-group btn-group-yesno', + 'description' => 'COM_COMPONENTBUILDER_ADD_CORRESPONDING_LINE_NUMBERS_TO_THE_DYNAMIC_COMMENTS_SO_TO_SEE_WHERE_IN_THE_COMPILER_THE_LINES_OF_CODE_WAS_BUILD_THIS_WILL_HELP_IF_YOU_NEED_TO_GET_MORE_TECHNICAL_WITH_AN_ISSUE_ON_GITHUB_OR_EVEN_FOR_YOUR_OWN_DEBUGGING', + 'default' => '2']; + $options = [ + '2' => 'COM_COMPONENTBUILDER_GLOBAL', + '1' => 'COM_COMPONENTBUILDER_YES', + '0' => 'COM_COMPONENTBUILDER_NO']; + + // add to form + $xml = FormHelper::xml($attributes, $options); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'builder'); + } + + // minify attributes + $attributes = [ + 'type' => 'radio', + 'name' => 'minify', + 'label' => 'COM_COMPONENTBUILDER_MINIFY_JAVASCRIPT', + 'class' => 'btn-group btn-group-yesno', + 'description' => 'COM_COMPONENTBUILDER_SHOULD_THE_JAVASCRIPT_BE_MINIFIED_IN_THE_COMPONENT', + 'default' => '2']; + $options = [ + '2' => 'COM_COMPONENTBUILDER_GLOBAL', + '1' => 'COM_COMPONENTBUILDER_YES', + '0' => 'COM_COMPONENTBUILDER_NO']; + + // add to form + $xml = FormHelper::xml($attributes, $options); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'builder'); + } + + // powers attributes + $attributes = [ + 'type' => 'radio', + 'name' => 'powers', + 'label' => 'COM_COMPONENTBUILDER_ADD_POWERS', + 'class' => 'btn-group btn-group-yesno', + 'description' => 'COM_COMPONENTBUILDER_SHOULD_JCB_ADD_ANY_POWERS_THAT_ARE_CONNECTED_TO_THIS_COMPONENT_THIS_MAY_BE_HELPFUL_IF_YOU_ARE_LOADING_POWERS_VIA_ANOTHER_COMPONENT_AND_WOULD_LIKE_TO_AVOID_ADDING_IT_TO_BOTH_JUST_REMEMBER_THAT_IN_THIS_CASE_YOU_NEED_TO_LOAD_THE_POWERS_VIA_A_PLUGIN', + 'default' => '2']; + $options = [ + '2' => 'COM_COMPONENTBUILDER_GLOBAL', + '1' => 'COM_COMPONENTBUILDER_YES', + '0' => 'COM_COMPONENTBUILDER_NO']; + + // add to form + $xml = FormHelper::xml($attributes, $options); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'builder'); + } + + // component attributes + $attributes = [ + 'type' => 'list', + 'name' => 'component_id', + 'label' => 'COM_COMPONENTBUILDER_COMPONENTS', + 'class' => 'list_class', + 'description' => 'COM_COMPONENTBUILDER_SELECT_THE_COMPONENT_TO_COMPILE', + 'required' => 'true']; + // start the component options + $options = []; + $options[''] = 'COM_COMPONENTBUILDER__SELECT_COMPONENT_'; + // load component options from array + foreach($this->Components as $component) + { + $options[(int) $component->id] = $this->escape($component->name); + } + + // add to form + $xml = FormHelper::xml($attributes, $options); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'builder'); + } + + // Joomla Versions attributes + $attributes = [ + 'type' => 'list', + 'name' => 'joomla_version', + 'label' => 'COM_COMPONENTBUILDER_JOOMLA_VERSION', + 'class' => 'list_class', + 'description' => 'COM_COMPONENTBUILDER_WHAT_VERSION_OF_JOOMLA_WOULD_YOU_LIKE_TO_TARGET', + 'default' => (string) Version::MAJOR_VERSION]; + // start the joomla versions options + $options = [ + '3' => 'COM_COMPONENTBUILDER_JOOMLA_THREE', + '4' => 'COM_COMPONENTBUILDER_JOOMLA_FOUR', + '5' => 'COM_COMPONENTBUILDER_JOOMLA_FIVE', + '6' => 'COM_COMPONENTBUILDER_JOOMLA_SIX' + ]; + + // add to form + $xml = FormHelper::xml($attributes, $options); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'builder'); + } + + // Advanced Options + $attributes = [ + 'type' => 'radio', + 'name' => 'show_advanced_options', + 'label' => 'COM_COMPONENTBUILDER_SHOW_ADVANCED_OPTIONS', + 'class' => 'btn-group btn-group-yesno', + 'description' => 'COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_SEE_THE_ADVANCED_COMPILER_OPTIONS', + 'default' => '0']; + // start the advanced options switch + $options = [ + '1' => 'COM_COMPONENTBUILDER_YES', + '0' => 'COM_COMPONENTBUILDER_NO']; + + // add to form + $xml = FormHelper::xml($attributes, $options); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'builder'); + } + + // Advanced Options note attributes + $attributes = [ + 'type' => 'note', + 'name' => 'show_advanced_options_note', + 'label' => "COM_COMPONENTBUILDER_ADVANCED_OPTIONS", + 'heading' => 'h3', + 'showon' => 'show_advanced_options:1']; + + // add to form + $xml = FormHelper::xml($attributes); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'advanced'); + } + + // powers repository attributes + $attributes = [ + 'type' => 'radio', + 'name' => 'powers_repository', + 'label' => 'COM_COMPONENTBUILDER_ACTIVATE_SUPER_POWERS', + 'class' => 'btn-group btn-group-yesno', + 'description' => 'COM_COMPONENTBUILDER_THIS_ADDS_POWERS_TO_A_LOCAL_REPOSITORY_FOLDER_ALL_BAPPROVEDB_POWERS_LINKED_TO_THIS_COMPONENT_WILL_BE_MOVED_TO_YOUR_BLOCALB_POWERS_REPOSITORY_FOLDER_INTO_THEIR_SELECTIVE_TARGET_PATHS_THIS_LOCAL_FOLDER_PATH_MUST_BE_SET_IN_THE_GLOBAL_OPTIONS_OF_JCB_UNDER_THE_BSUPER_POWERB_TAB', + 'default' => '2', + 'showon' => 'show_advanced_options:1']; + // start the repository options + $options = [ + '2' => 'COM_COMPONENTBUILDER_GLOBAL', + '1' => 'COM_COMPONENTBUILDER_YES', + '0' => 'COM_COMPONENTBUILDER_NO']; + + // add to form + $xml = FormHelper::xml($attributes, $options); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'advanced'); + } + + // powers local path to repositories attributes + $attributes = [ + 'type' => 'text', + 'name' => 'local_powers_repository_path', + 'label' => 'COM_COMPONENTBUILDER_LOCAL_POWERS_REPOSITORY_PATH', + 'class' => 'btn-group btn-group-yesno', + 'description' => 'COM_COMPONENTBUILDER_HERE_YOU_CAN_SET_THE_PATH_TO_THE_SUPER_POWERS_LOCAL_REPOSITORY_FOLDER_WHERE_BLAYERCOREB_AND_ALL_TARGETED_BLAYEROWNB_SUB_PATHS_WILL_BE_PLACED_WITH_THEIR_SELECTIVE_BSWITCHAPPROVEDB_POWERS', + 'default' => $this->params->get('local_powers_repository_path', ''), + 'showon' => 'show_advanced_options:1[AND]powers_repository:1']; + + // add to form + $xml = FormHelper::xml($attributes); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'advanced'); + } + + // Indentation attributes + $attributes = [ + 'type' => 'radio', + 'name' => 'indentation_value', + 'label' => 'COM_COMPONENTBUILDER_INDENTATION_OPTIONS', + 'class' => 'btn-group btn-group-yesno', + 'description' => 'COM_COMPONENTBUILDER_WHICH_TYPE_OF_INDENTATION_WOULD_YOU_LIKE_TO_USE_PLEASE_NOTE_THAT_THIS_DOES_NOT_YET_IMPACT_THE_STATIC_TEMPLATES', + 'default' => '1', + 'showon' => 'show_advanced_options:1']; + + // start the indentation options + $options = [ + '1' => 'COM_COMPONENTBUILDER_TAB', + '2' => 'COM_COMPONENTBUILDER_TWO_SPACES', + '4' => 'COM_COMPONENTBUILDER_FOUR_SPACES']; + + // add to form + $xml = FormHelper::xml($attributes, $options); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'advanced'); + } + + // Build date attributes + $attributes = [ + 'type' => 'radio', + 'name' => 'add_build_date', + 'label' => 'COM_COMPONENTBUILDER_BUILD_DATE', + 'class' => 'btn-group btn-group-yesno', + 'description' => 'COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_OVERRIDE_THE_BUILD_DATE', + 'default' => '1', + 'showon' => 'show_advanced_options:1']; + // start the build date options + $options = [ + '1' => 'COM_COMPONENTBUILDER_DEFAULT', + '2' => 'COM_COMPONENTBUILDER_MANUAL', + '3' => 'COM_COMPONENTBUILDER_COMPONENT']; + + // add to form + $xml = FormHelper::xml($attributes, $options); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'advanced'); + } + + // Build date note attributes + $attributes = [ + 'type' => 'note', + 'name' => 'add_build_date_note_two', + 'description' => 'COM_COMPONENTBUILDER_ALLOWS_YOU_TO_OVERRIDE_THE_BUILD_DATE_BY_SELECTING_A_DATE_MANUALLY_FROM_THE_CALENDER', + 'class' => 'alert alert-info', + 'showon' => 'show_advanced_options:1[AND]add_build_date:2']; + + // add to form + $xml = FormHelper::xml($attributes); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'advanced'); + } + + // Build date note attributes + $attributes = [ + 'type' => 'note', + 'name' => 'add_build_date_note_three', + 'description' => "COM_COMPONENTBUILDER_THE_COMPONENTS_LAST_MODIFIED_DATE_WILL_BE_USED", + 'class' => 'alert alert-info', + 'showon' => 'show_advanced_options:1[AND]add_build_date:3']; + + // add to form + $xml = FormHelper::xml($attributes); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'advanced'); + } + + // Build date calendar attributes + $attributes = [ + 'type' => 'calendar', + 'name' => 'build_date', + 'label' => 'COM_COMPONENTBUILDER_SELECT_BUILD_DATE', + 'format' => '%Y-%m-%d', + 'filter' => 'user_utc', + 'default' => 'now', + 'size' => '22', + 'showon' => 'show_advanced_options:1[AND]add_build_date:2']; + + // add to form + $xml = FormHelper::xml($attributes); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'advanced'); + } + + // Build date note attributes + if ($this->dankie == 1) + { + $attributes = [ + 'type' => 'note', + 'name' => 'donations_note', + 'label' => "COM_COMPONENTBUILDER_DONATIONS", + 'description' => $this->getSupportMessage(), + 'class' => 'alert alert-success', + 'heading' => 'h1', + 'showon' => 'show_advanced_options:1']; + } + else + { + $attributes = [ + 'type' => 'note', + 'name' => 'partner_note', + 'description' => $this->getSupportMessage(), + 'showon' => 'show_advanced_options:1']; + } + + // add to form + $xml = FormHelper::xml($attributes); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'advanced'); + } + + // Build date note line attributes + $attributes = [ + 'type' => 'note', + 'name' => 'donations_note_line', + 'description' => '
', + 'showon' => 'show_advanced_options:1']; + + // add to form + $xml = FormHelper::xml($attributes); + if ($xml instanceof \SimpleXMLElement) + { + $form->setField($xml, null, true, 'advanced'); + } + + // return the form array + return $form; } /** diff --git a/admin/src/View/Field/HtmlView.php b/admin/src/View/Field/HtmlView.php index 3795f0011..b848c57fb 100644 --- a/admin/src/View/Field/HtmlView.php +++ b/admin/src/View/Field/HtmlView.php @@ -454,8 +454,7 @@ class HtmlView extends BaseHtmlView Text::script('COM_COMPONENTBUILDER_PROPERTY_ALREADY_SELECTED_TRY_ANOTHER'); Text::script('COM_COMPONENTBUILDER_TYPE_OR_SELECT_SOME_OPTIONS'); Text::script('COM_COMPONENTBUILDER_NO_RESULTS_MATCH'); - Text::script('COM_COMPONENTBUILDER_SELECT_A_PROPERTY'); - Text::script('COM_COMPONENTBUILDER_NO_DESCRIPTION_FOUND'); + Text::script('COM_COMPONENTBUILDER_SELECT_A_PROPERTY'); } /** diff --git a/admin/tmpl/compiler/default.php b/admin/tmpl/compiler/default.php index e6221c2b2..c7e6e972c 100644 --- a/admin/tmpl/compiler/default.php +++ b/admin/tmpl/compiler/default.php @@ -36,60 +36,124 @@ $noticeboardOptions = ['vdm', 'pro']; ?> canDo->get('compiler.access')): ?> + +Components)): ?> + loadTemplate('nocomponentstocompile'); ?> +
+ + +
+
SuccessMessage)): ?>
@@ -258,7 +330,8 @@ function JRouter(link) { ?> return url+link; } - + +

diff --git a/admin/tmpl/compiler/default_nocomponentstocompile.php b/admin/tmpl/compiler/default_nocomponentstocompile.php new file mode 100644 index 000000000..004adf02b --- /dev/null +++ b/admin/tmpl/compiler/default_nocomponentstocompile.php @@ -0,0 +1,42 @@ + + * @git Joomla Component Builder + * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved. + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +use Joomla\CMS\Language\Text; +use Joomla\CMS\Router\Route; +use Joomla\CMS\Layout\LayoutHelper; +use Joomla\CMS\HTML\HTMLHelper as Html; + +// No direct access to this file +defined('_JEXEC') or die; + +?> +
+
+
+
+
+ +
+

+

+
+ +

+ + + + +
+
+
+ $this->dankie]); ?> +
+
diff --git a/admin/tmpl/componentbuilder/default_notice_board_vast_development_method.php b/admin/tmpl/componentbuilder/default_notice_board_vast_development_method.php index a8ea495d6..a5289faf6 100644 --- a/admin/tmpl/componentbuilder/default_notice_board_vast_development_method.php +++ b/admin/tmpl/componentbuilder/default_notice_board_vast_development_method.php @@ -11,8 +11,8 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; -use Joomla\CMS\HTML\HTMLHelper as Html; use Joomla\CMS\Layout\LayoutHelper; +use Joomla\CMS\HTML\HTMLHelper as Html; // No direct access to this file defined('_JEXEC') or die; diff --git a/admin/tmpl/componentbuilder/default_readme_information.php b/admin/tmpl/componentbuilder/default_readme_information.php index 2bad44b97..1d29e8c43 100644 --- a/admin/tmpl/componentbuilder/default_readme_information.php +++ b/admin/tmpl/componentbuilder/default_readme_information.php @@ -11,6 +11,7 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; +use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\HTML\HTMLHelper as Html; // No direct access to this file diff --git a/admin/tmpl/componentbuilder/default_wiki_tutorials.php b/admin/tmpl/componentbuilder/default_wiki_tutorials.php index bf41cd55e..2dfec6090 100644 --- a/admin/tmpl/componentbuilder/default_wiki_tutorials.php +++ b/admin/tmpl/componentbuilder/default_wiki_tutorials.php @@ -11,6 +11,7 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; +use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\HTML\HTMLHelper as Html; // No direct access to this file diff --git a/admin/tmpl/custom_admin_view/default.php b/admin/tmpl/custom_admin_view/default.php index 3a8b7b182..5dd697408 100644 --- a/admin/tmpl/custom_admin_view/default.php +++ b/admin/tmpl/custom_admin_view/default.php @@ -370,19 +370,38 @@ var select_a_snippet = ''; -HTMLElement.prototype.selText = function() { - var obj = this; +/** + * Select all text content within an HTMLElement. + * + * Adds a convenient `selText()` method to all HTMLElements. + * Works across modern browsers and gracefully handles errors. + * + * @return {HTMLElement} Returns the element itself for chaining. + * @since 5.1.3 + */ +HTMLElement.prototype.selText = function () { + try { + const selection = window.getSelection(); + if (!selection) { + console.warn('selText: window.getSelection() not supported in this environment.'); + return this; + } - // For modern browsers, handle the selection - var selection = window.getSelection(); - var range = document.createRange(); + const range = document.createRange(); + range.selectNodeContents(this); - // Select the content of the element - range.selectNodeContents(obj); - selection.removeAllRanges(); // Clear any previous selections - selection.addRange(range); // Add the new selection range + selection.removeAllRanges(); // clear any prior selections + selection.addRange(range); // select the element's text content - return this; + // Optionally bring the element into view if it's outside viewport + if (typeof this.scrollIntoView === 'function') { + this.scrollIntoView({ behavior: 'smooth', block: 'center' }); + } + } catch (error) { + console.error('selText failed:', error); + } + + return this; }; document.addEventListener("DOMContentLoaded", function() { diff --git a/admin/tmpl/field/default.php b/admin/tmpl/field/default.php index 614f8f921..6f01ced6a 100644 --- a/admin/tmpl/field/default.php +++ b/admin/tmpl/field/default.php @@ -308,19 +308,38 @@ jQuery('#adminForm').on('change', '#jform_fieldtype',function (e) { }); -HTMLElement.prototype.selText = function() { - var obj = this; +/** + * Select all text content within an HTMLElement. + * + * Adds a convenient `selText()` method to all HTMLElements. + * Works across modern browsers and gracefully handles errors. + * + * @return {HTMLElement} Returns the element itself for chaining. + * @since 5.1.3 + */ +HTMLElement.prototype.selText = function () { + try { + const selection = window.getSelection(); + if (!selection) { + console.warn('selText: window.getSelection() not supported in this environment.'); + return this; + } - // For modern browsers, handle the selection - var selection = window.getSelection(); - var range = document.createRange(); + const range = document.createRange(); + range.selectNodeContents(this); - // Select the content of the element - range.selectNodeContents(obj); - selection.removeAllRanges(); // Clear any previous selections - selection.addRange(range); // Add the new selection range + selection.removeAllRanges(); // clear any prior selections + selection.addRange(range); // select the element's text content - return this; + // Optionally bring the element into view if it's outside viewport + if (typeof this.scrollIntoView === 'function') { + this.scrollIntoView({ behavior: 'smooth', block: 'center' }); + } + } catch (error) { + console.error('selText failed:', error); + } + + return this; }; '; -HTMLElement.prototype.selText = function() { - var obj = this; +/** + * Select all text content within an HTMLElement. + * + * Adds a convenient `selText()` method to all HTMLElements. + * Works across modern browsers and gracefully handles errors. + * + * @return {HTMLElement} Returns the element itself for chaining. + * @since 5.1.3 + */ +HTMLElement.prototype.selText = function () { + try { + const selection = window.getSelection(); + if (!selection) { + console.warn('selText: window.getSelection() not supported in this environment.'); + return this; + } - // For modern browsers, handle the selection - var selection = window.getSelection(); - var range = document.createRange(); + const range = document.createRange(); + range.selectNodeContents(this); - // Select the content of the element - range.selectNodeContents(obj); - selection.removeAllRanges(); // Clear any previous selections - selection.addRange(range); // Add the new selection range + selection.removeAllRanges(); // clear any prior selections + selection.addRange(range); // select the element's text content - return this; + // Optionally bring the element into view if it's outside viewport + if (typeof this.scrollIntoView === 'function') { + this.scrollIntoView({ behavior: 'smooth', block: 'center' }); + } + } catch (error) { + console.error('selText failed:', error); + } + + return this; }; '; var create_a_snippet = ''; -HTMLElement.prototype.selText = function() { - var obj = this; +/** + * Select all text content within an HTMLElement. + * + * Adds a convenient `selText()` method to all HTMLElements. + * Works across modern browsers and gracefully handles errors. + * + * @return {HTMLElement} Returns the element itself for chaining. + * @since 5.1.3 + */ +HTMLElement.prototype.selText = function () { + try { + const selection = window.getSelection(); + if (!selection) { + console.warn('selText: window.getSelection() not supported in this environment.'); + return this; + } - // For modern browsers, handle the selection - var selection = window.getSelection(); - var range = document.createRange(); + const range = document.createRange(); + range.selectNodeContents(this); - // Select the content of the element - range.selectNodeContents(obj); - selection.removeAllRanges(); // Clear any previous selections - selection.addRange(range); // Add the new selection range + selection.removeAllRanges(); // clear any prior selections + selection.addRange(range); // select the element's text content - return this; + // Optionally bring the element into view if it's outside viewport + if (typeof this.scrollIntoView === 'function') { + this.scrollIntoView({ behavior: 'smooth', block: 'center' }); + } + } catch (error) { + console.error('selText failed:', error); + } + + return this; }; saveOrder)