CMSB v3.78 Released (PHP 8.1 Required, Plugin and Debug Tools)
1 posts by 1 authors in: Forums > CMS Builder
Last Post: Thursday at 9:44am (RSS)
By Dave - Thursday at 9:44am
Hi everyone,
We've just released v3.78! We're already running this version on our site, and it has some new plugin and debugging features.
What's New
- PHP 8.1+ Required: PHP 8.0 reached end-of-life in December 2023 and no longer receives security updates
- Plugins > Disable Plugins: New toggle switch to temporarily disable all plugin hooks for troubleshooting
- Admin > General > Admin Debug Mode: New toggle lets admins see debug information in the view-source footer of HTML pages (see below)
- Modernized Plugin API with 33% performance improvement and support for PHP 8.1 first-class callables (existing plugins work unchanged)
- Developer Console: Long data values now scroll within 75px containers for better readability
- A number of bug fixes and other UI improvements.
The updated debug footers make it easier to see where the current page is loading additional files from, the available plugin hooks, and the page load impact of existing plugins.
Here's an example of what you'd see on a frontend page when you view-source and scroll to the bottom when logged in as an Admin with Debug Mode on. Especially when using permalinks, this feature enables you to locate the files to edit quickly.
Note: Our server is very fast, and we've optimized the code so that pages often load in under 1/100 of a second. However, on slower servers or less optimized sites, this will help you track down bottlenecks. And our server certainly demonstrates what's possible as far as optimizations go.
This is for: https://interactivetools.com/showcase/
<!-- DEBUG FOOTER (visible to admins only)
PAGE PERFORMANCE PHP SETTINGS SYSTEM
---------------- ------------ ------
Total Time: 0.006s PHP Version: 8.4.8 CMS: v3.78 (build 2902)
- CMS Core: 0.006s (92%) Max Time: 120s Remote IP: 154.5.30.171
- Plugins: 0.000s (8%) Max Memory: 128M
Peak Memory: 1.39 MB OpCache: On (2s)
Included Files Available Plugin Hooks (call count)
--------------------------------------------------------- -----------------------------------
/showcase/index.php
/_init.php
/showcase/_showcase_functions.php
/_footer.php
Plugin Hooks Called Hook Calls Avg Time Total (ms) Total (s)
-------------------------------------------------------- ------------------------------------ ----- ---------- ---------- ---------
/cmsb/plugins/websiteMembership/websiteMembership.php:37 viewer_postinit 1 0.445ms 0.445ms 0.000s
/cmsb/plugins/facebookLogin/facebookLogin.php:23 _websiteLogin_init.pre_actionHandler 1 0.024ms 0.024ms 0.000s
/cmsb/plugins/permalinks/permalinks.php:29 viewer_output_rows 5 0.003ms 0.013ms 0.000s
/cmsb/plugins/permalinks/permalinks.php:27 init_complete 1 0.005ms 0.005ms 0.000s
/cmsb/plugins/simpleCart/simpleCart.php:18 viewer_postinit 1 0.002ms 0.002ms 0.000s
/cmsb/plugins/simpleCart/customCart.php:78 viewer_postinit 1 0.001ms 0.001ms 0.000s
/cmsb/plugins/facebookLogin/facebookLogin.php:24 _websiteLogin_init.pre_actionHandler 1 0.000ms 0.000ms 0.000s
-------------------------------------------------------- ------------------------------------ ----- ---------- ---------- ---------
TOTAL 11 0.045ms 0.490ms 0.000s
-->
Here's an example of the updated debug footer you'll see on a CMS page. Very useful for when you want to know which plugin hooks are available and where.
This is for: /cmsb/admin.php?menu=test
PAGE PERFORMANCE PHP SETTINGS SYSTEM
---------------- ------------ ------
Total Time: 0.004s PHP Version: 8.4.8 CMS: v3.78 (build 2902)
- CMS Core: 0.004s (95%) Max Time: 120s Remote IP: 154.5.30.171
- Plugins: 0.000s (5%) Max Memory: 128M
Peak Memory: 695.51 KB OpCache: On (2s)
Included Files Available Plugin Hooks (call count)
---------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------
/cmsb/admin.php admin_prelogin, admin_postlogin
/cmsb/lib/init.php init_complete
/msb/lib/common.php admin_getRequestedAction (3), includeCDN (17)
/cmsb/lib/schema_functions.php post_loadSchema (3)
/cmsb/lib/admin_functions.php userSectionAccess (42), userHasFieldAccess (3)
/cmsb/lib/adminUI_functions.php adminUI_args, admin_footer_preButtons
/cmsb/lib/menus/default/actionHandler.php section_init, viewerOnly_allowed_actions, section_preDispatch
/cmsb/lib/menus/default/common.php
/cmsb/lib/menus/default/list.php list_postselect, list_advancedCommands, list_postAdvancedSearch, list_preListTable, list_postListTable_inner
/cmsb/lib/menus/default/list.php (cont'd) list_postListTable
/cmsb/lib/menus/default/list_functions.php list_where, record_access_where, list_orderBy, list_addSelectExpr, list_having, list_showListSchema
/cmsb/lib/menus/default/list_functions.php (cont'd) list_showListRecords, listHeader_checkAll, listHeader_thAttributes (2), listHeader_displayLabel (2), listRow_record
/cmsb/lib/menus/default/list_functions.php (cont'd) listRow_trStyle, listRow_trClass, listRow_displayValue (2), listRow_tdAttributes (2), listRow_showView
/cmsb/lib/menus/default/list_functions.php (cont'd) listRow_showModify, listRow_showErase, listRow_actionLinks, listRow_html
/cmsb/lib/viewer_functions.php viewer_postinit, viewer_link_field_content, viewer_output_rows
/cmsb/lib/menus/header.php headers, admin_head
/cmsb/lib/menus/header_functions.php tableList, menulinks_array, menulinks_myAccount (2), menulinks_rowHtml (70)
/cmsb/lib/menus/header_css.php
/cmsb/lib/menus/footer.php execute_seconds, admin_footer, admin_footer_final
Plugin Hooks Called Hook Calls Avg Time Total (ms) Total (s)
---------------------------------------------------------------- -------------------------- ----- ---------- ---------- ---------
/cmsb/plugins/reportBuilder/reportBuilder.php:22 menulinks_rowHtml 70 0.001ms 0.100ms 0.000s
/cmsb/plugins/reportBuilder/reportBuilder.php:20 admin_postlogin 1 0.034ms 0.034ms 0.000s
/cmsb/plugins/csvImport/csvImport.php:62 admin_prelogin 1 0.012ms 0.012ms 0.000s
/cmsb/plugins/facebookLogin/facebookLogin.php:22 section_init 1 0.010ms 0.010ms 0.000s
/cmsb/plugins/simpleForum/simpleForum.php:39 admin_postlogin 1 0.008ms 0.008ms 0.000s
/cmsb/plugins/csvImport/csvImport.php:65 admin_postlogin 1 0.006ms 0.006ms 0.000s
/cmsb/plugins/permalinks/permalinks.php:27 init_complete 1 0.003ms 0.003ms 0.000s
/cmsb/plugins/reportBuilder/reportBuilder.php:21 admin_postlogin 1 0.002ms 0.002ms 0.000s
/cmsb/plugins/newletterBuilder/newsletterBuilder_cmsMenus.php:18 listHeader_displayLabel 2 0.001ms 0.002ms 0.000s
...
/cmsb/plugins/permalinks/permalinks_cmsMenus.php:19 adminUI_args 1 0.001ms 0.001ms 0.000s
/cmsb/plugins/reportBuilder/reportBuilder.php:23 admin_head 1 0.001ms 0.001ms 0.000s
/cmsb/plugins/developerConsole.php:26 admin_footer_final 1 0.001ms 0.001ms 0.000s
/cmsb/plugins/newletterBuilder/newsletterBuilder_cmsMenus.php:4 section_init 1 0.000ms 0.000ms 0.000s
/cmsb/plugins/newletterBuilder/newsletterBuilder_cmsMenus.php:5 section_init 1 0.000ms 0.000ms 0.000s
/cmsb/plugins/newletterBuilder/newsletterBuilder_cmsMenus.php:19 section_init 1 0.000ms 0.000ms 0.000s
/cmsb/plugins/newletterBuilder/newsletterBuilder_cmsMenus.php:21 section_init 1 0.000ms 0.000ms 0.000s
/cmsb/plugins/newletterBuilder/newsletterBuilder_cmsMenus.php:7 listRow_displayValue 2 0.000ms 0.000ms 0.000s
---------------------------------------------------------------- -------------------------- ----- ---------- ---------- ---------
TOTAL 120 0.002ms 0.201ms 0.000s
The full changelog for this release is as follows:
*** June 19, 2025 - Version 3.78 (PHP 8.1 Required, Plugin and Debug Tools)
SERVER REQUIREMENTS (Since Jun 2025): PHP 8.1+ and MySQL 5.7+ (or MariaDB 10.2+)
IMPORTANT: PHP 8.1 NOW REQUIRED
- PHP 8.1+ is now required (PHP 8.0 reached end-of-life in Dec 2023 and no longer receives security updates)
- Upgrading provides ongoing security patches and improved performance
NEW FEATURES
- Admin > General Settings: Added "Admin Debug Mode" toggle for development diagnostics
- Plugins > Disable Plugins: New toggle switch to temporarily disable all plugins for troubleshooting
- Enhanced Debug Footer: Performance monitoring for developers
- Displays execution time, memory usage, and per-plugin hook performance metrics
- Shows time spent in each plugin hook to identify bottlenecks
- Lists all available plugin hooks on current page
- Works in both admin interface and frontend pages
MINOR CHANGES
- Developer Console: Long data values now scroll within 75px containers for better readability
- Source Files: Converted all line endings from Windows (CRLF) to Unix (LF) format
FOR PROGRAMMERS
- Server::pathToUrl(): Converts absolute file paths to web URLs, with optional ?t=timestamp for cache-busting
- adminUI(): New BUTTONS_HEADER and BUTTONS_FOOTER arrays for positioning action buttons above or below content
- adminUI(): Button definitions now accept 'rawHtml' => '<custom html>' for complex button layouts
- adminUI_toggleSwitch(): Creates Bootstrap-style toggle switches for binary settings in admin forms
- PLUGIN SYSTEM IMPROVEMENTS
- Modernized Plugin API with 33% performance improvement
- New method names (old methods still work):
- Plugin::on() replaces addAction()/addFilter()
- Plugin::action() replaces doAction()
- Plugin::filter() replaces applyFilters()
- Full backward compatibility - existing plugins work unchanged
- Added support for PHP 8.1 first-class callables
- Traditional: pluginAction_addHandler('functionName', 'admins')
- Modern: pluginAction_addHandler(functionName(...), 'admins')
BUG FIXES
- formatBytes(): Fixed inconsistent decimal display and missing thousands separators in file sizes
- Database Editor: Fixed menu cache not updating after manually creating schema tables
- Admin > Server Info: Improved display of very long open_basedir paths with proper line breaks
- Field Editor: Fixed default values incorrectly showing for blank upload info fields
- Related Records: Fixed colspan issue in "No records found" messages
- Admin > Server Info: Fixed error when php_ini_loaded_file() returns false
- Misc code and other minor improvements
You can download the latest version here: https://www.interactivetools.com/download/
Please feel free to ask any questions or post any feedback, comments or questions.
Thank you!
interactivetools.com