Cannot save Component Builder Configuration with 5.0.0-Alpha 2 #1074

Closed
opened 2024-03-11 20:18:42 +00:00 by jjs · 2 comments

Steps to reproduce the issue

at Component Builder Configuration
Fill all in under Company
Select plugins under compiler

Expected result

Save normally

Actual result

Filled in credentials are not saved
Selected plugins are not saved
Configuration is not saved

System information (as much as possible)

  • OS Name & Version: Linux Ubuntu
  • MySql Version: 8.3.3
  • Apache Version: Apache/2.4.52 (Ubuntu)
  • PHP Version: 8.3.3
  • Joomla Version: 5.0.3
  • JCB Version: 5.0.0-Alpha (had the same with Alpha 1)
  • Browser: Firefox

Additional comments

I have all write permissions.
This works ok in joomla 3.10.12 with JCB 3.20 Beta 6

There are no errors displayed by the system.

### Steps to reproduce the issue at Component Builder Configuration Fill all in under Company Select plugins under compiler ### Expected result Save normally ### Actual result Filled in credentials are not saved Selected plugins are not saved Configuration is not saved ### System information (as much as possible) - OS Name & Version: Linux Ubuntu - MySql Version: 8.3.3 - Apache Version: Apache/2.4.52 (Ubuntu) - PHP Version: 8.3.3 - Joomla Version: 5.0.3 - JCB Version: 5.0.0-Alpha (had the same with Alpha 1) - Browser: Firefox ### Additional comments I have all write permissions. This works ok in joomla 3.10.12 with JCB 3.20 Beta 6 There are no errors displayed by the system.
Owner

Hmmm this is a Joomla issue really, or lets say its the permission area in the global Configuration that are to large for the default input_var size of PHP.

So the way they fixed this in Joomla 3 was to store the Permission via Ajax... but someone who moved this area to Joomla 4 and 5 thought that is no longer needed, or just did not care, or just did not have the time... and bang we took a step back in time.

The reality is the permissions area of Joomla is not done right at all, since it was not build for extensions like JCB... only for small extensions like com_content. I mean we have 105 views... com_content has 3, so JCB has 50+ tables, and 2078 fields, that is 2000+ table columns. and if you want to control the permissions of so many views, and fields... it breaks the permissions area.

When you open the global configuration area... it opens all those permissions as part of the form... and that for each group on the Joomla system. Imagine what that can look like? Like if your control only 500 fields permissions, this is 500 x 8 groups as part of the form which is 4000 = input_vars (Just for the field permissions, not yet counting the normal system permissions like Configure Options). Which honestly is bad design and yet... since I still do not have the time to contribute a fix... I can't complain, besides this little rant here.

Okay the way forward for now... we add the following to the PHP.ini file:

; Resource Limits and File Uploads
upload_max_filesize = 128M
post_max_size = 128M
max_execution_time = 60
max_input_vars = 5000
max_input_time = 60
memory_limit = 256M

Drum roll.... and then it still did not resolve the issue. Okay why? well the max_input_vars was still to low... so I bumped it to max_input_vars = 10000 and then it saved as expected.

I am planning to add this piece of documentation to the package installer script so other can know what to do...

Please make the change and let me know.

Hmmm this is a Joomla issue really, or lets say its the permission area in the global Configuration that are to large for the default input_var size of PHP. So the way they fixed this in Joomla 3 was to store the Permission via **Ajax**... but someone who moved this area to Joomla 4 and 5 thought that is no longer needed, or just did not care, or just did not have the time... and bang we took a step back in time. The reality is the permissions area of Joomla is not done right at all, since it was not build for extensions like JCB... only for small extensions like com_content. I mean we have 105 views... com_content has 3, so JCB has 50+ tables, and 2078 fields, that is 2000+ table columns. and if you want to control the permissions of so many views, and fields... it breaks the permissions area. When you open the global configuration area... it opens all those permissions as part of the form... and that for each group on the Joomla system. Imagine what that can look like? Like if your control only 500 fields permissions, this is 500 x 8 groups as part of the form which is 4000 = input_vars (Just for the field permissions, not yet counting the normal system permissions like `Configure Options`). Which honestly is bad design and yet... since I still do not have the time to contribute a fix... I can't complain, besides this little rant here. #### Okay the way forward for now... we add the following to the **PHP.ini** file: ``` ; Resource Limits and File Uploads upload_max_filesize = 128M post_max_size = 128M max_execution_time = 60 max_input_vars = 5000 max_input_time = 60 memory_limit = 256M ``` Drum roll.... and then it still did not resolve the issue. Okay why? well the `max_input_vars` was still to low... so I bumped it to `max_input_vars = 10000` and then it saved as expected. I am planning to add this piece of documentation to the package installer script so other can know what to do... Please make the change and let me know.
Author

Thanks!

I think the most important ones are these:
max_execution_time = 60
max_input_vars = 5000
max_input_time = 60

It did the trick.

Thanks! I think the most important ones are these: max_execution_time = 60 max_input_vars = 5000 max_input_time = 60 It did the trick.
jjs closed this issue 2024-03-12 18:10:09 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: joomla/Component-Builder#1074
No description provided.