jemproject / JEM-Project

JEM - an Event Manager for Joomla
https://www.joomlaeventmanager.net
GNU General Public License v3.0
25 stars 37 forks source link

2.3.11: Control Panel Settings: Error on Save (is back) #1401

Closed Heklaterriol closed 1 year ago

Heklaterriol commented 1 year ago

Joomla 4.2.7, PHP 8.1.14. Fresh install of JEM 2.3.7. JEM Controlpanel > Settings Changed some time and image handling settings

Save Then got the error: 0 Attempt to assign property "css_backend_usecustom" on string

jojo12 commented 1 year ago

I can reproduce this issue with Joomla 4.2.7, PHP 8.1.12. Fresh install of JEM 2.3.7. After this, it makes no sense to continue testing!

Heklaterriol commented 1 year ago

@jojo12 : can you check if it still exists. The coder asked for it. On my site it is fixed.

jojo12 commented 1 year ago

Sorry, I am away for some days, can't check. bad ressources

jojo12 commented 1 year ago

it is really strange. When I start after installation, the problem is there, even with cache cleaned. But after some time (I don't know why, it works. (Perhaps after installing the examples?)

jojo12 commented 1 year ago

I get

0 Attempt to assign property "css_backend_usecustom" on string

Call stack

| Function | Location

1 | () | JROOT\libraries\vendor\joomla\registry\src\Registry.php:766 2 | Joomla\Registry\Registry->bindData() | JROOT\libraries\vendor\joomla\registry\src\Registry.php:761 3 | Joomla\Registry\Registry->bindData() | JROOT\libraries\vendor\joomla\registry\src\Registry.php:302 4 | Joomla\Registry\Registry->loadObject() | JROOT\components\com_jem\classes\config.class.php:150 5 | JemConfig->bind() | JROOT\administrator\components\com_jem\models\settings.php:95 6 | JemModelSettings->store() | JROOT\administrator\components\com_jem\controllers\settings.php:121 7 | JemControllerSettings->save() | JROOT\libraries\src\MVC\Controller\BaseController.php:672 8 | Joomla\CMS\MVC\Controller\BaseController->execute() | JROOT\administrator\components\com_jem\jem.php:51 9 | require_once() | JROOT\libraries\src\Dispatcher\LegacyComponentDispatcher.php:71 10 | Joomla\CMS\Dispatcher\LegacyComponentDispatcher::Joomla\CMS\Dispatcher{closure}() | JROOT\libraries\src\Dispatcher\LegacyComponentDispatcher.php:73 11 | Joomla\CMS\Dispatcher\LegacyComponentDispatcher->dispatch() | JROOT\libraries\src\Component\ComponentHelper.php:355 12 | Joomla\CMS\Component\ComponentHelper::renderComponent() | JROOT\libraries\src\Application\AdministratorApplication.php:143 13 | Joomla\CMS\Application\AdministratorApplication->dispatch() | JROOT\libraries\src\Application\AdministratorApplication.php:186 14 | Joomla\CMS\Application\AdministratorApplication->doExecute() | JROOT\libraries\src\Application\CMSApplication.php:294 15 | Joomla\CMS\Application\CMSApplication->execute() | JROOT\administrator\includes\app.php:61 16 | require_once() | JROOT\administrator\index.php:32

jojo12 commented 1 year ago

JEM 2.3.9 Problem persists!

jojo12 commented 1 year ago

if you go directly after installing to JEMsettings and save -> you get this error: saving is not possible. Even after clean cache and refresh. But e.g. after importing events, the problem is gone. For me it seems like that: it is looking perhaps for some table which does not yet exist. After it seems there and works with no problem.

mckillo commented 1 year ago

In this case, the css entry isn't inicializate in the jem_setting table. If it is 'css' entry is a string, after BindData of Registry.php (J4) can't change to stdClass. At first, BindData must read structure fo content css (JEM clear installation).

Soluction, change admin\sql\install.mysql.utf8.sql and change 297 with: ('css', ''), for this other one: ('css', '{"css_backend_usecustom":"1","css_backend_customfile":"eee","css_calendar_usecustom":"0","css_calendar_customfile":"","css_colorpicker_usecustom":"0","css_colorpicker_customfile":"","css_geostyle_usecustom":"0","css_geostyle_customfile":"","css_googlemap_usecustom":"0","css_googlemap_customfile":"","css_jem_usecustom":"0","css_jem_customfile":"","css_print_usecustom":"0","css_print_customfile":"","css_color_bg_filter":"","css_color_bg_h2":"","css_color_bg_jem":"","css_color_bg_table_th":"","css_color_bg_table_td":"","css_color_bg_table_tr_entry2":"","css_color_bg_table_tr_hover":"","css_color_bg_table_tr_featured":"","css_color_border_filter":"","css_color_border_h2":"","css_color_border_table_th":"","css_color_border_table_td":"","css_color_font_h2":"","css_color_font_table_th":"","css_color_font_table_td":"","css_color_font_table_td_a":""}'),

Solved jemproject/JEM-Project#1401. See the commit b219c4d68c0d7ba143bf755b7357c36a7cbd7cf9, check it and apply to close (one less).

jojo12 commented 1 year ago

I tested mckillos solution, works fine! Thanks

mckillo commented 1 year ago

New commit 78005abfbf6340bf8cc8812354c7223af45a72e5, into is update 2.3.16.sql file with the solution of this problem. When we migrate J3+JEM2.3.5 to J4+JEM2.3.1x, the global setting isn't modificated/updated and now, with this commit during install process 2.3.16 (updated), the solution jemproject/JEM-Project#1401 is aplied.

Check it. Testing the new ZIP file for v.2.3.16 from: https://github.com/mckillo/JEM-Project/blob/JEM-4beta2/pkg_jem_v2.3.16_updated.zip