From 0a32df9d171c843b5871c27cafcdee5a3019da86 Mon Sep 17 00:00:00 2001 From: otrok7 <50595291+otrok7@users.noreply.github.com> Date: Tue, 27 Oct 2026 15:08:15 +0100 Subject: [PATCH 1/4] Refactor how service bodies are stored in configuration. Previously, the service bodies were stored in the options table as an array of arrays. Now, they are stored as an associative array with the service body ID as the key and the service body data as the value. This change allows for easier access to service body data by ID and improves performance when retrieving service body information. --- admin/class-bread-admin.php | 2 +- admin/js/bmlt_meeting_list.js | 3 +- admin/js/bread-wizard.js | 5 +- admin/partials/_bmlt_server_setup.php | 2 +- bmlt-meeting-list.php | 4 +- includes/class-bread-bmlt.php | 44 ++--- includes/class-bread.php | 185 +++++++++--------- public/class-bread-content-generator.php | 9 +- public/class-bread-meeting-enhancer.php | 21 +- public/class-bread-meetingslist-structure.php | 12 +- readme.txt | 2 +- tests/mock/class-bread-bmlt.php | 9 - 12 files changed, 131 insertions(+), 167 deletions(-) diff --git a/admin/class-bread-admin.php b/admin/class-bread-admin.php index ed1642d..5a6e875 100644 --- a/admin/class-bread-admin.php +++ b/admin/class-bread-admin.php @@ -511,7 +511,7 @@ function pwsix_process_wizard() while (0 === strpos(bin2hex($encode_options), 'efbbbf')) { $encode_options = substr($encode_options, 3); } - $settings = json_decode($encode_options, true); + $settings = $this->bread->upgrade_settings(json_decode($encode_options, true)); $ncols = substr_count($settings['meeting_template_content'], 'bread->loadAllSettings([]); $id = $this->bread->isInitialSetting() ? 1 : ((is_numeric($_POST['wizard_setting_id'])) ? intval($_POST['wizard_setting_id']) : $this->bread->getMaxSetting() + 1); diff --git a/admin/js/bmlt_meeting_list.js b/admin/js/bmlt_meeting_list.js index c806032..bcfb1bb 100644 --- a/admin/js/bmlt_meeting_list.js +++ b/admin/js/bmlt_meeting_list.js @@ -380,10 +380,9 @@ ) { let prefix = ""; for (i = 0; i < level; i++) prefix += "-"; - const sbVal = [sb.name, sb.id, sb.parent_id, my_parent].join(","); const option = ''); + options.push(''); found = parents.find((p) => p.id == sb.id); if (typeof found !== 'undefined') found.children.forEach((child) => @@ -178,7 +177,7 @@ jQuery(document).ready(function($){ break; case 2: const services = $('#wizard_service_bodies').val().reduce((carry,item) => { - carry += '&services[]='+item.split(',')[1]; + carry += '&services[]='+item; return carry; }, '&recursive=1'); const formats = (Number($('#wizard_format_filter').val()) > 0) ? '&formats='+$('#wizard_format_filter').val() : ''; diff --git a/admin/partials/_bmlt_server_setup.php b/admin/partials/_bmlt_server_setup.php index 995a89d..20a0c6e 100644 --- a/admin/partials/_bmlt_server_setup.php +++ b/admin/partials/_bmlt_server_setup.php @@ -18,7 +18,7 @@ function Bread_bmlt_server_setup_page_render(Bread_AdminDisplay $breadAdmin)