The ADMIN_VIEW_TABLE.php was refactored to use the new J5+ convention to call the database using $this->getDatabase() since the $this->getDbo() is depreciated.
But once again this is a J5+ update and it broke J4 since the table class in J4 does not have the protected function getDatabase().
To fix the issue for JCB 4 currently you have to replace everywhere we use $this->getDatabase() in the compiler with $this->getDbo(), but this is a refactoring issue and to resolve this correctly will require restructuring this area into into version-specific classes.
Steps to reproduce the Bug
Edit a View in JCB v4.1.3-alpha4 and try to save your changes.
This results in the following error: 0 Resource 'Architecture.SiteViews.J4.AddToolBar' has not been registered with the container
Please note that J5 is still working perfectly. So this issue was only introduced with the v4.1.3-alpha3 release.
### What Happened?
The [`ADMIN_VIEW_TABLE.php`](https://git.vdm.dev/joomla/Component-Builder/commit/3935084b9198f7186e8de759becbf063c0485e34#diff-3a366cc0070f5a0c5d3af3a60b8aa6e201741340) was refactored to use the new J5+ convention to call the database using `$this->getDatabase()` since the `$this->getDbo()` is depreciated.
But once again this is a J5+ update and it broke J4 since the table class in J4 does not have the `protected function getDatabase()`.
To fix the issue for JCB 4 currently you have to replace everywhere we use `$this->getDatabase()` in the compiler with `$this->getDbo()`, but this is a refactoring issue and to resolve this correctly will require restructuring this area into into version-specific classes.
### Steps to reproduce the Bug
Edit a View in JCB v4.1.3-alpha4 and try to save your changes.
This results in the following error:
```0 Resource 'Architecture.SiteViews.J4.AddToolBar' has not been registered with the container```
| # | Function | Location |
|----|--------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|
| 1 | () | JROOT/administrator/components/com_componentbuilder/src/Table/Admin_viewTable.php:361 |
| 2 | VDM\Component\Componentbuilder\Administrator\Table\Admin_viewTable->_getAssetParentId() | JROOT/libraries/src/Table/Table.php:869 |
### Which Joomla version are you compiling in?
v4.4.14
### Which PHP version are you compiling in?
v8.0
### Which Joomla versions are you targeting?
v4.4.14
### Which PHP version are you targeting?
8.1
### Which Web server is JCB running on?
Apache 2.4
### Which Relational Database is JCB running on?
Mysqli Latest
### Which OS is JCB running on?
Ubuntu 24.04 LTS
### Which JCB version are you using?
v4.1.3-alpha4
### Where in JCB did this issue occur?
Other
### On which browsers did you encounter the issue?
Firefox
### Additional Comments
Please note that J5 is still working perfectly. So this issue was only introduced with the [v4.1.3-alpha3](https://git.vdm.dev/joomla/Component-Builder/commit/3935084b9198f7186e8de759becbf063c0485e34#diff-3a366cc0070f5a0c5d3af3a60b8aa6e201741340) release.
Lemuel
added the Bug label 2025-11-04 10:45:36 +00:00
I think it's time to have seperate J5 folder in the compiler "file templates". is it possible to only put the files in there that supersede the J4? So you only need to create files that should be different from J4?
I also noticed for instance in J5 compiled components we're still calling getUser instead of getIdentity and we're still using "get" method instead of direct property targeting.
I think it's time to have seperate J5 folder in the compiler "file templates". is it possible to only put the files in there that supersede the J4? So you only need to create files that should be different from J4?
I also noticed for instance in J5 compiled components we're still calling getUser instead of getIdentity and we're still using "get" method instead of direct property targeting.
We've discussed the idea of decoupling multiple times internally, and while it remains on the roadmap, I've been intentionally postponing it for as long as possible. The main reason is our standing policy of maintaining only two active template sets at any given time. This is a deliberate choice to keep JCB manageable in size and complexity.
Currently, we maintain both Joomla 3 and Joomla 4 template sets. However, JCB already supports class structures for Joomla 3, 4, 5, and 6, which adds a fair bit of overhead. It's not unmanageable, but it does make maintenance more cumbersome.
The moment we create a new Joomla 5 template set, we'll be dropping Joomla 3 support entirely — including all Joomla 3-related class relationships. That transition will happen cleanly, and Joomla 3 users will still have access to stable older versions of JCB that remain compatible with their systems.
Our intention has been to align that transition with the release of Joomla 7, which feels like a natural point to remove Joomla 3. This timeline gives everyone ample runway and stability.
That said, you raise a fair point: perhaps it is time to consider this move sooner. With the recent toolbar refactoring, we've introduced a number of new classes specifically designed to handle Joomla version differences more gracefully — particularly in how toolbars are generated and manipulated. This gives us more flexibility than we've had before.
We also did some preliminary testing with an additional template set earlier on, and the resulting package size grew substantially, which reinforced our cautious approach. Still, the discussion is valid, and we'll take this under advisement as we continue to refine version management within JCB.
We've discussed the idea of decoupling multiple times internally, and while it remains on the roadmap, I've been intentionally postponing it for as long as possible. The main reason is our standing policy of maintaining only two active template sets at any given time. This is a deliberate choice to keep JCB manageable in size and complexity.
Currently, we maintain both Joomla 3 and Joomla 4 template sets. However, JCB already supports class structures for Joomla 3, 4, 5, and 6, which adds a fair bit of overhead. It's not unmanageable, but it does make maintenance more cumbersome.
The moment we create a new Joomla 5 template set, we'll be dropping Joomla 3 support entirely — including all Joomla 3-related class relationships. That transition will happen cleanly, and Joomla 3 users will still have access to stable older versions of JCB that remain compatible with their systems.
Our intention has been to align that transition with the release of Joomla 7, which feels like a natural point to remove Joomla 3. This timeline gives everyone ample runway and stability.
That said, you raise a fair point: perhaps it is time to consider this move sooner. With the recent toolbar refactoring, we've introduced a number of new classes specifically designed to handle Joomla version differences more gracefully — particularly in how toolbars are generated and manipulated. This gives us more flexibility than we've had before.
We also did some preliminary testing with an additional template set earlier on, and the resulting package size grew substantially, which reinforced our cautious approach. Still, the discussion is valid, and we'll take this under advisement as we continue to refine version management within JCB.
To resolve this issue, we introduced a new method in ADMIN_VIEW_TABLE.php that detects the Joomla version and calls the appropriate database handler accordingly.
This fix is included in the latest alpha5 release and is now available for testing.
To resolve this issue, we introduced a new method in [ADMIN_VIEW_TABLE.php](https://git.vdm.dev/joomla/Component-Builder/commit/88349e0bce87921866eb47fdc3236cf3fc94ca99#diff-3a366cc0070f5a0c5d3af3a60b8aa6e201741340) that detects the Joomla version and calls the appropriate database handler accordingly.
This fix is included in the latest [**alpha5**](https://git.vdm.dev/joomla/Component-Builder/tags) release and is now available for testing.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What Happened?
The
ADMIN_VIEW_TABLE.phpwas refactored to use the new J5+ convention to call the database using$this->getDatabase()since the$this->getDbo()is depreciated.But once again this is a J5+ update and it broke J4 since the table class in J4 does not have the
protected function getDatabase().To fix the issue for JCB 4 currently you have to replace everywhere we use
$this->getDatabase()in the compiler with$this->getDbo(), but this is a refactoring issue and to resolve this correctly will require restructuring this area into into version-specific classes.Steps to reproduce the Bug
Edit a View in JCB v4.1.3-alpha4 and try to save your changes.
This results in the following error:
0 Resource 'Architecture.SiteViews.J4.AddToolBar' has not been registered with the containerWhich Joomla version are you compiling in?
v4.4.14
Which PHP version are you compiling in?
v8.0
Which Joomla versions are you targeting?
v4.4.14
Which PHP version are you targeting?
8.1
Which Web server is JCB running on?
Apache 2.4
Which Relational Database is JCB running on?
Mysqli Latest
Which OS is JCB running on?
Ubuntu 24.04 LTS
Which JCB version are you using?
v4.1.3-alpha4
Where in JCB did this issue occur?
Other
On which browsers did you encounter the issue?
Firefox
Additional Comments
Please note that J5 is still working perfectly. So this issue was only introduced with the v4.1.3-alpha3 release.
I think it's time to have seperate J5 folder in the compiler "file templates". is it possible to only put the files in there that supersede the J4? So you only need to create files that should be different from J4?
I also noticed for instance in J5 compiled components we're still calling getUser instead of getIdentity and we're still using "get" method instead of direct property targeting.
We've discussed the idea of decoupling multiple times internally, and while it remains on the roadmap, I've been intentionally postponing it for as long as possible. The main reason is our standing policy of maintaining only two active template sets at any given time. This is a deliberate choice to keep JCB manageable in size and complexity.
Currently, we maintain both Joomla 3 and Joomla 4 template sets. However, JCB already supports class structures for Joomla 3, 4, 5, and 6, which adds a fair bit of overhead. It's not unmanageable, but it does make maintenance more cumbersome.
The moment we create a new Joomla 5 template set, we'll be dropping Joomla 3 support entirely — including all Joomla 3-related class relationships. That transition will happen cleanly, and Joomla 3 users will still have access to stable older versions of JCB that remain compatible with their systems.
Our intention has been to align that transition with the release of Joomla 7, which feels like a natural point to remove Joomla 3. This timeline gives everyone ample runway and stability.
That said, you raise a fair point: perhaps it is time to consider this move sooner. With the recent toolbar refactoring, we've introduced a number of new classes specifically designed to handle Joomla version differences more gracefully — particularly in how toolbars are generated and manipulated. This gives us more flexibility than we've had before.
We also did some preliminary testing with an additional template set earlier on, and the resulting package size grew substantially, which reinforced our cautious approach. Still, the discussion is valid, and we'll take this under advisement as we continue to refine version management within JCB.
To resolve this issue, we introduced a new method in ADMIN_VIEW_TABLE.php that detects the Joomla version and calls the appropriate database handler accordingly.
This fix is included in the latest alpha5 release and is now available for testing.
This fix has been verified and confirmed to work correctly across JCB versions 4, 5, and 6.
The issue can therefore be closed.