From a57f0d5d550c66ed702752ebc5be7688862583bf Mon Sep 17 00:00:00 2001 From: aB0t Date: Thu, 21 May 2026 20:43:00 +0000 Subject: [PATCH] Release of v4.1.5 --- CHANGELOG.md | 101 +- ComponentbuilderInstallerScript.php | 2 +- README.md | 6 +- admin/README.txt | 6 +- admin/config.xml | 8 + admin/forms/admin_fields.xml | 2 +- admin/forms/admin_fields_conditions.xml | 2 +- admin/forms/admin_view.xml | 1 - admin/forms/component_admin_views.xml | 2 +- admin/forms/component_updates.xml | 2 +- admin/forms/custom_admin_view.xml | 1 - admin/forms/dynamic_get.xml | 10 +- admin/forms/fieldtype.xml | 2 +- admin/forms/library.xml | 2 +- admin/forms/site_view.xml | 1 - .../en-GB/en-GB.com_componentbuilder.ini | 9 +- .../{filedisplay.php => filedisplayjfour.php} | 0 ...ody.php => reposelectioncardbodyjfour.php} | 0 ...ranslationimportercolumnsdisplayjfour.php} | 2 +- ...> translationimportereasymappingjfour.php} | 0 admin/sql/install.mysql.utf8.sql | 20 +- .../updates/mysql/{5_1_4.sql => 4_1_4.sql} | 0 admin/sql/updates/mysql/5_1_6.sql | 1 + admin/src/Controller/Admin_viewController.php | 3 +- admin/src/Helper/ComponentbuilderHelper.php | 481 ++++---- admin/src/Model/Admin_viewModel.php | 12 +- admin/src/Model/Admin_viewsModel.php | 20 +- admin/src/Model/AjaxModel.php | 1086 ++++++++++++----- admin/src/Model/Custom_admin_viewModel.php | 3 + admin/src/Model/FieldModel.php | 1 + admin/src/Model/FieldsModel.php | 19 +- admin/src/Model/Site_viewModel.php | 6 +- admin/src/Model/Site_viewsModel.php | 2 + .../src/View/Import_translations/HtmlView.php | 4 +- admin/tmpl/admin_custom_tabs/default.php | 38 +- admin/tmpl/admin_fields/default.php | 38 +- .../tmpl/admin_fields_conditions/default.php | 38 +- admin/tmpl/admin_fields_relations/default.php | 38 +- admin/tmpl/admin_view/default.php | 38 +- admin/tmpl/admin_views/default.php | 24 +- admin/tmpl/class_extends/default.php | 38 +- admin/tmpl/class_method/default.php | 38 +- admin/tmpl/class_property/default.php | 38 +- admin/tmpl/compiler/default.php | 24 +- admin/tmpl/component_admin_views/default.php | 38 +- admin/tmpl/component_config/default.php | 38 +- .../component_custom_admin_menus/default.php | 38 +- .../component_custom_admin_views/default.php | 38 +- admin/tmpl/component_dashboard/default.php | 38 +- .../tmpl/component_files_folders/default.php | 38 +- admin/tmpl/component_modules/default.php | 38 +- admin/tmpl/component_mysql_tweaks/default.php | 38 +- admin/tmpl/component_placeholders/default.php | 38 +- admin/tmpl/component_plugins/default.php | 38 +- admin/tmpl/component_router/default.php | 38 +- admin/tmpl/component_site_views/default.php | 38 +- admin/tmpl/component_updates/default.php | 38 +- admin/tmpl/custom_admin_view/default.php | 38 +- admin/tmpl/custom_admin_views/default.php | 24 +- admin/tmpl/custom_code/default.php | 38 +- admin/tmpl/custom_codes/default.php | 24 +- admin/tmpl/dynamic_get/default.php | 38 +- admin/tmpl/dynamic_gets/default.php | 24 +- admin/tmpl/field/default.php | 38 +- admin/tmpl/fields/default.php | 24 +- admin/tmpl/fieldtype/default.php | 38 +- admin/tmpl/help_document/default.php | 38 +- admin/tmpl/import_translations/default.php | 2 +- ... default_translationimporterareajfour.php} | 0 .../tmpl/initialization_selection/default.php | 2 +- ...rea.php => default_selectionareajfour.php} | 26 +- admin/tmpl/joomla_component/default.php | 38 +- admin/tmpl/joomla_components/default.php | 24 +- admin/tmpl/joomla_module/default.php | 38 +- .../default.php | 38 +- admin/tmpl/joomla_module_updates/default.php | 38 +- admin/tmpl/joomla_modules/default.php | 24 +- admin/tmpl/joomla_plugin/default.php | 38 +- .../default.php | 38 +- admin/tmpl/joomla_plugin_group/default.php | 38 +- admin/tmpl/joomla_plugin_updates/default.php | 38 +- admin/tmpl/joomla_plugins/default.php | 24 +- admin/tmpl/joomla_power/default.php | 38 +- admin/tmpl/language/default.php | 38 +- admin/tmpl/language_translation/default.php | 38 +- admin/tmpl/languages/default.php | 24 +- admin/tmpl/layout/default.php | 38 +- admin/tmpl/layouts/default.php | 24 +- admin/tmpl/libraries/default.php | 24 +- admin/tmpl/library/default.php | 38 +- admin/tmpl/library_config/default.php | 38 +- .../library_files_folders_urls/default.php | 38 +- admin/tmpl/placeholder/default.php | 38 +- admin/tmpl/power/default.php | 38 +- admin/tmpl/powers/default.php | 24 +- admin/tmpl/pull_selection/default.php | 2 +- ...php => default_pullselectionareajfour.php} | 26 +- admin/tmpl/repository/default.php | 38 +- admin/tmpl/server/default.php | 38 +- admin/tmpl/site_view/default.php | 38 +- admin/tmpl/site_views/default.php | 24 +- admin/tmpl/snippet_type/default.php | 38 +- admin/tmpl/snippets/default.php | 24 +- admin/tmpl/template/default.php | 38 +- admin/tmpl/templates/default.php | 24 +- admin/tmpl/validation_rule/default.php | 38 +- changelog.xml | 117 +- componentbuilder.xml | 6 +- componentbuilder_update_server.xml | 57 +- .../Compiler/Component/JoomlaSix/Settings.php | 159 --- .../Compiler/Component/Placeholder.php | 283 +++-- .../Compiler/Helper/Interpretation.php | 62 +- .../Compiler/Library/Data.php | 65 +- .../Compiler/Model/JoomlaFive/Customtabs.php | 6 +- .../Compiler/Model/JoomlaSix/Customtabs.php | 6 +- .../Compiler/Model/Libraries.php | 157 ++- .../Componentbuilder/User/IdentityTrait.php | 12 +- media/js/custom_code.js | 1 - media/js/placeholder.js | 1 - 119 files changed, 3180 insertions(+), 1911 deletions(-) rename admin/layouts/{filedisplay.php => filedisplayjfour.php} (100%) rename admin/layouts/{reposelectioncardbody.php => reposelectioncardbodyjfour.php} (100%) rename admin/layouts/{translationimportercolumnsdisplay.php => translationimportercolumnsdisplayjfour.php} (96%) rename admin/layouts/{translationimportereasymapping.php => translationimportereasymappingjfour.php} (100%) rename admin/sql/updates/mysql/{5_1_4.sql => 4_1_4.sql} (100%) create mode 100644 admin/sql/updates/mysql/5_1_6.sql rename admin/tmpl/import_translations/{default_translationimporterarea.php => default_translationimporterareajfour.php} (100%) rename admin/tmpl/initialization_selection/{default_selectionarea.php => default_selectionareajfour.php} (87%) rename admin/tmpl/pull_selection/{default_pullselectionarea.php => default_pullselectionareajfour.php} (86%) diff --git a/CHANGELOG.md b/CHANGELOG.md index b540a1051..1488dd466 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,71 +1,36 @@ -# v5.1.4 +# v5.1.6 -- Fix the linked [new] button to use the correct init_default params. -- Fix the Components list view to better display long website urls. -- Fix language text area css. #1264 -- Refactor the JS selText method. -- Add fix for empty currentFullPath in the Structuresingle class. -- Fix the buildSelectPart method to not access an empty select value in the Queries class. -- Fix that ensure that we always load and int into loadUserById. -- Fix the subform permission behaviour to use removeField. -- Add version 6 to the version 5 update server, for easier upgrade path. -- Fixed linked admin views with New and New & Close buttons to correctly initialize fields using global unique IDs and default conventions. -- Resolved missing language strings when linked admin views are also configured as site edit views. -- Corrected misconfiguration of the isModal property for site-linked views to default to false since modals are not yet supported on the site area. -- Enhanced security in edit views by moving access validation into the model, ensuring protection even when Joomla bypasses the controller layer. -- Added user access verification logic in the model to prevent unauthorized direct item loading. -- Refactored the view class to introduce a class constructor that initializes key dependencies more reliably. -- Began aligning the view class structure with Joomla 6's updated MVC architecture for future compatibility. -- Improved initialization handling in the view to reduce dependency errors during rendering. -- Fixed a bug caused by missing option settings in the model configuration. -- Updated and refined the site view class for greater consistency with backend view logic. -- Continued progressive improvements across view classes to ensure compatibility with Joomla's evolving MVC patterns. -- Fix permission issue in the list view. #1266 -- Refactor the list view buttons. -- Refactor the getActions helper method. -- Rename Custom Buttons tab to Toolbar for clearer grouping of toolbar functions. #1268 -- Add options for overriding default toolbars in all Admin, Site, and Custom Admin Views. #1268 -- Refactor toolbar into version specific classes to resolve getToolbar errors. #1267 -- Add method to unify getDatabase handling across Joomla versions and prevent undefined method calls. #1270 -- Fix php8.3 deprecation warnings in compiler templates. #1265 -- Refactor and enhance the JCB Email Helper class for a more robust and maintainable design. -- Fix an issue where the Email Helper send() function was executed twice. -- Fix a issue where layouts added to the PHP Ajax Model were not loaded during compilation. -- Add new functionality to the toolbar override system, enabling the inclusion of custom buttons via placeholders. -- Fix the Compiler success message to display both build seconds and project weeks. -- Add Development Valuation Model to calculate JCB component pricing. -- Add functionality to push JCB packages to Self hosted Git system that uses a self signed SSL. -- Add functionality that will include Validation Rules linked to fields in JCB packages. #1273 -- Refactor and Improve Router Helper Class to new standard Site Router practice. -- Refactor and Improve JCB Search engine for better searching of JCB areas. -- Fix bug in the search editor in JCB Search Engine. -- Fix issue where Custom Gets linked to a Site view did not ship correctly with JCB packages. #1272 -- Fix issue where the Icon linked to a Custom Admin Menu did not ship with JCB packages. #1271 -- Fix and Improve Normalize Class to better handle different files Linked to JCB packages. #1274 -- Remove batch feature from JCB compiler Templates due to lack of use and outdated code. -- Refactor Utilities/Response classes for Joomla 6+ compatibility and improved version-agnostic behavior. -- Refactor the File Upload Manager to achieve improved maintainability, greater customization flexibility, and easier extensibility. -- Refactor the Item Importer to improve data management, structural clarity, and long-term maintainability of the import process. -- Add a Pull button to all main JCB entities, allowing a complete reset of a selected entity together with all entities linked to it, from a selected remote repository. -- Add functionality to the compiler to automatically pull missing entities from a remote repository when they are referenced by a component but not present locally in JCB. -- Refactor the Packaging Engine into separate set and get classes to improve separation of concerns, readability, and overall maintainability. -- Refactor and restructure the demo console item import plugin to improve usability, maintainability, and reusability across other areas of JCB. -- Refactor the Compiler to remove deprecated code paths and legacy classes that are no longer maintained. -- Add new Compiler Classes to modernise ancient tech previously embedded in the compiler and replace it with a clean, modern architecture. -- Add a dedicated CLI plugin to the JCB core, enabling direct interaction with JCB through the Joomla CLI console. -- Add structured CLI commands and options to Init, Reset, Push, and Pull JCB entities via the Joomla CLI. -- Add full support for compiling Components directly via the CLI, enabling automated and headless build workflows. -- Add functionality to place Super Power classes into the component src folder for both Admin and Site areas, using the correct namespaced structure. -- Add functionality to the CLI compiler to directly install compiled components and apply compiler options used during compilation. -- Add functionality to the compiler to automatically pull a missing component from a remote repository when a compilation is triggered and the component is not locally available. -- Add functionality to add and replace classes in module and plugin src folders that are linked to a component, when using correct namespace resolution. -- Add a Documentation tab to the Joomla Component Builder dashboard. -- Fix an issue with the JCB version notice on Joomla 5. -- Fix an issue where components without a component image failed to compile successfully. #1282 -- Add functionality for importing translated language strings directly into the Language Translations area of JCB. -- Fix issue where the Language Translations export button was not displayed due to recent toolbar changes. -- Fix a bug that caused language filters to malfunction because of a broken field configuration. #1278 -- Fix issue where components without a layout added to the Component failed to compile correctly. #1132 +- Add Health Check buttons to the JCB Compiler and Component list view to verify system PHP configuration. +- Add the Toolbar Custom Buttons subform to the Global Subform settings for improved usability and presentation. +- Fix the Field edit view to ensure full compliance with Joomla 6 standards and updated UI/UX conventions. +- Begin migration from UIkit to Bootstrap 5 to align JCB with Joomla 6+ standards. +- Complete Bootstrap 5 refactor of all primary views and core UI. +- Continue phased removal of UIkit with full transition planned for upcoming releases. +- Fix deprecated JText usage in Admin Custom Tabs area for Joomla 5+ compatibility. #1302 +- Fix snippet loading for Joomla 6, improving reliability and removing legacy UIkit dependencies during migration. +- Introduced strict version-aware compilation to ensure libraries are only included when explicitly defined for Joomla 6. +- Disabled automatic UIkit injection for Joomla 6, preventing auto-loading across custom admin views, site views, templates, and layouts. +- Migrate Search view for J6 to use Bootstrap and Joomla-native HTML and JavaScript. +- Remove all manually linked Bootstrap v4 assets from the component. +- Improve subform ordering fields for clearer display and better readability. +- Refactor the JavaScript waiting spinner to use solid, native JavaScript with improved page-loading handling. + +# v4.1.5 + +- Add Health Check buttons to the JCB Compiler and Component list view to verify system PHP configuration. +- Add the Toolbar Custom Buttons subform to the Global Subform settings for improved usability and presentation. +- Fix the Field edit view to ensure full compliance with Joomla 6 standards and updated UI/UX conventions. +- Begin migration from UIkit to Bootstrap 5 to align JCB with Joomla 6+ standards. +- Complete Bootstrap 5 refactor of all primary views and core UI. +- Continue phased removal of UIkit with full transition planned for upcoming releases. +- Fix deprecated JText usage in Admin Custom Tabs area for Joomla 5+ compatibility. #1302 +- Fix snippet loading for Joomla 6, improving reliability and removing legacy UIkit dependencies during migration. +- Introduced strict version-aware compilation to ensure libraries are only included when explicitly defined for Joomla 6. +- Disabled automatic UIkit injection for Joomla 6, preventing auto-loading across custom admin views, site views, templates, and layouts. +- Migrate Search view for J6 to use Bootstrap and Joomla-native HTML and JavaScript. +- Remove all manually linked Bootstrap v4 assets from the component. +- Improve subform ordering fields for clearer display and better readability. +- Refactor the JavaScript waiting spinner to use solid, native JavaScript with improved page-loading handling. # v4.1.4 @@ -73,7 +38,7 @@ - Fix issue where Admin Field relations using custom code did not automatically include multiple fields as expected. #1293 - Fix issue where Admin Field relations did not correctly apply concatenation/glue options. #1294 - Refactor Compiler functions to improve maintainability and align with modern PHP coding best practices. -- Major refactor of the JCB Dashboard, introducing a modernized layout, improved usability, and full responsiveness across desktop, tablet, and mobile devices. +- Refactor the JCB Dashboard, introducing a modernized layout, improved usability, and full responsiveness across desktop, tablet, and mobile devices. - Fix deprecated warnings triggered in the JCB CLI. - Fix resolve PHP syntax errors and PHP 8.4 deprecations across codebase. - Fix four fatal parse/compile errors. diff --git a/ComponentbuilderInstallerScript.php b/ComponentbuilderInstallerScript.php index e9c48aaac..a39f08789 100644 --- a/ComponentbuilderInstallerScript.php +++ b/ComponentbuilderInstallerScript.php @@ -3293,7 +3293,7 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface echo '
-

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

'; +

Upgrade to Version 4.1.5 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 b3caf3063..a89e2f49f 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This is a professional-grade [Joomla 4.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 (**4.1.4**) 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 (**4.1.5**) 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. @@ -196,9 +196,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:** 24th March, 2026 · **Version:** 4.1.4 +* **Created:** 30th April, 2015 · **Last Build:** 21st May, 2026 · **Version:** 4.1.5 * **License:** GNU General Public License version 2 or later; see LICENSE.txt · **Copyright:** Copyright (C) 2015 Vast Development Method. All rights reserved. -* **Lines:** 1336428 · **Fields:** 2115 · **Files:** 8671 · **Folders:** 794 +* **Lines:** 1337904 · **Fields:** 2115 · **Files:** 8672 · **Folders:** 794 > 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 b3caf3063..a89e2f49f 100644 --- a/admin/README.txt +++ b/admin/README.txt @@ -9,7 +9,7 @@ This is a professional-grade [Joomla 4.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 (**4.1.4**) 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 (**4.1.5**) 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. @@ -196,9 +196,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:** 24th March, 2026 · **Version:** 4.1.4 +* **Created:** 30th April, 2015 · **Last Build:** 21st May, 2026 · **Version:** 4.1.5 * **License:** GNU General Public License version 2 or later; see LICENSE.txt · **Copyright:** Copyright (C) 2015 Vast Development Method. All rights reserved. -* **Lines:** 1336428 · **Fields:** 2115 · **Files:** 8671 · **Folders:** 794 +* **Lines:** 1337904 · **Fields:** 2115 · **Files:** 8672 · **Folders:** 794 > Generated with [JCB](https://www.joomlacomponentbuilder.com) — The Smartest Way to Build Joomla Extensions. diff --git a/admin/config.xml b/admin/config.xml index fbc8aec25..65aadbcd9 100644 --- a/admin/config.xml +++ b/admin/config.xml @@ -73,6 +73,8 @@ + + + @@ -127,6 +133,8 @@ COM_COMPONENTBUILDER_CONFIG_REPEATABLE_JOOMLA + diff --git a/admin/forms/admin_fields.xml b/admin/forms/admin_fields.xml index 701e499be..fdd064b40 100644 --- a/admin/forms/admin_fields.xml +++ b/admin/forms/admin_fields.xml @@ -281,7 +281,7 @@ label="COM_COMPONENTBUILDER_ADMIN_FIELDS_ORDER_EDIT_LABEL" default="0" description="COM_COMPONENTBUILDER_ADMIN_FIELDS_ORDER_EDIT_DESCRIPTION" - class="fieldSmall" + class="text_area" first="0" last="100" step="1" diff --git a/admin/forms/admin_fields_conditions.xml b/admin/forms/admin_fields_conditions.xml index 1bffeb5b7..321f38e7d 100644 --- a/admin/forms/admin_fields_conditions.xml +++ b/admin/forms/admin_fields_conditions.xml @@ -115,7 +115,7 @@ type="subform" name="addconditions" label="COM_COMPONENTBUILDER_ADMIN_FIELDS_CONDITIONS_ADDCONDITIONS_LABEL" - layout="repeatablejcb" + layout="joomla.form.field.subform.repeatable-table" multiple="true" description="COM_COMPONENTBUILDER_ADMIN_FIELDS_CONDITIONS_ADDCONDITIONS_DESCRIPTION" default="" diff --git a/admin/forms/admin_view.xml b/admin/forms/admin_view.xml index 8920cf047..9a3fe84fa 100644 --- a/admin/forms/admin_view.xml +++ b/admin/forms/admin_view.xml @@ -2548,7 +2548,6 @@ label="COM_COMPONENTBUILDER_ADMIN_VIEW_AJAX_INPUT_LABEL" layout="joomla.form.field.subform.repeatable-table" multiple="true" - default="" icon="list">