CMSB v3.79 Beta Released (Developer Tools)
2 posts by 1 authors in: Forums > CMS Builder
Last Post: Yesterday at 8:11pm (RSS)
By Dave - Yesterday at 2:23pm
Hi everyone,
We've just released v3.79 beta! We're already running this version on our site, and it has some great new developer tools.
What's New
- Developer Console: This has been completely rewritten with last command memory, command history, and tons of usability features for MySQL, Shell, and PHP commands.
- Admin Debug Footer: We've updated this with a MySQL Query log at the bottom of each page (admins only - in the HTML footer comment) that lists EVERY MySQL query executed on the page, how long it took to run and the file and line that called it. This makes it super easy to track down slow queries.
- A number of bug fixes and other UI improvements.
- Note: We still have a queue of pending user feature requests. We're releasing what we have now so you can start using it. Feel free to remind us what you'd like to see next.
Here's an example of the debug footer from our own website's CMS Builder home page:
<!-- DEBUG FOOTER (visible to admins only)
PAGE PERFORMANCE SERVER LIMITS OPTIMIZATIONS SERVER INFO
---------------- ------------- ------------- -----------
Total Time: 0.002s PHP Max Time: 120s PHP Xdebug: Off (faster) CMS Version: 3.79 (build 2925)
- CMS Core: 0.001s (66%) PHP Max Memory: 512M PHP OpCache (2s): On (faster) PHP Version: 8.4.11
- MySQL: 0.001s (25%) PHP Output Buffer: On (faster) MySQL Server: MariaDB 10.3.39
- Plugins: 0.000s (8%) MySQL Persist Conn: On (faster) MySQL Client: mysqlnd 8.4.11
Peak Memory: 615.02 KB MySQL General Log: Off (faster) Remote IP: 184.3.210.221
You'll note that CMS Builder and our server are so optimized that the page returns in two thousandths of a second. Meaning we could serve this page 500 times in one second. We have a dedicated server, but these optimizations stack up, especially when end-clients are on shared hosting that might otherwise make their website load slower than usual.
Here's an example of the MySQL query log from the bottom. This works on both CMS backend pages, and frontend viewer pages as well.
MySQL Queries Calls Avg Time Total (ms) Total (s) Query
---------------------------------------------------- ----- ---------- ---------- --------- ------------------------------------------------------------------------------------------------------------------------
/cmsb/lib/User.php:335 2 0.065ms 0.129ms 0.000s SELECT tableName, accessLevel, maxRecords FROM `website__accesslist` WHERE userNum=1
/cmsb/lib/SessionHandler.php:275 1 0.127ms 0.127ms 0.000s SELECT data FROM `website__sessions` WHERE id = /*HIDDEN*/ AND `expires` > NOW() LIMIT 1
/cmsb/lib/User.php:253 1 0.092ms 0.092ms 0.000s SELECT * FROM `website_accounts` WHERE `num` = "1" LIMIT 1
/cmsb/lib/database_functions.php:90 1 0.089ms 0.089ms 0.000s * MySQL Connection (p:Localhost via UNIX socket)
/cmsb/plugins/reportBuilder/reportBuilder.php:62 1 0.059ms 0.059ms 0.000s SELECT * FROM website__reports_list ORDER BY dragSortOrder
/cmsb/lib/database_functions.php:90 1 0.040ms 0.040ms 0.000s SET time_zone = '-07:00', sql_mode = 'STRICT_ALL_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
---------------------------------------------------- ----- ---------- ---------- --------- ------------------------------------------------------------------------------------------------------------------------
TOTAL 7 0.077ms 0.536ms 0.001s
You can see that queries are sorted from slowest to fastest under the Total column, and all queries together run in less than a millisecond. Where this is useful is on servers where you're seeing load times of 1 to 2 seconds or more. This helps you identify exactly which queries are slow, allowing you to focus on optimizing them.
The full changelog for this release is as follows:
*** August 15, 2025 - Version 3.79 (Developer Tools)
SERVER REQUIREMENTS (Since Jun 2025): PHP 8.1+ and MySQL 5.7+ (or MariaDB 10.2+)
DEVELOPER CONSOLE ENHANCEMENTS
- All Consoles Now Include:
- Command Memory: Opening a console automatically displays the last command/query run in that console
- Command History: History button shows dropdown of previous commands for easy re-execution
- Keyboard Shortcuts: Ctrl+Enter (Cmd+Enter on Mac) to execute commands without clicking Run
- Execution Time Display: Shows how long operations take for performance monitoring
- ACE Editor: Syntax highlighting and code editing (expanded from MySQL-only)
- MySQL Console:
- Multi-Query Execution: Run multiple SQL statements in a single operation
- Hide Columns: Click [×] or double-click headers to focus on relevant data
- Expand Cells: Click expand icon or double-click cells to view full contents
- Quick Editing: Primary keys link directly to CMS edit page for that record
- Export to JSON: One-click export of query results for external processing
- PHP Console:
- Isolated Output: Results render in iframe - display images, HTML, or any content type
- Output Format: Select Content-Type header (text/plain, HTML, JSON) via dropdown
- Timeout Control: Choose execution limits (5s-5min) to prevent runaway scripts or allow long operations
- Shell Console:
- Directory Browser: Visual folder navigation to set working directory
- Real-Time Output: Live updates as commands execute (on supported servers)
- Error Detection: Errors display in red above output, no 2>&1 needed (on supported servers)
ADMIN DEBUG FOOTER ENHANCEMENTS
- Enable in Admin > General Settings to add performance metrics as HTML comments in page footer
- MySQL Query Tracking (NEW):
- Every MySQL query displayed with execution time and source location (file:line)
- Queries sorted slowest-first for quick bottleneck identification
- Total MySQL query time displayed in debug header
- Server Optimizations (NEW):
- Displays status of high-overhead features: Xdebug, OpCache, Output Buffer, MySQL persistence, MySQL General Log
- Each setting labeled "(faster)" or "(slower)" to guide configuration decisions
MINOR CHANGES
- Admin > Server Info: Added OPcache reset functionality with continuous refresh option for clearing cached PHP files
- Database Backups: Now use consistent snapshot transactions instead of table locking for better performance and reliability
- Upload processing: Skip image-specific operations for non-image files to improve performance
- Settings file: Removed 'set_innodb_strict_mode' setting (left commented line devs can uncomment in DB::Connect() if needed)
- ACE Editor: Theme can now be customized globally via settings('advanced.aceEditorTheme') or per-textarea with data-ace-theme attribute
FOR PROGRAMMERS
- Cache class: New file-based key-value store with TTL support for caching temporary data (see /lib/Cache.php)
- CMS Internal: Added data-disable-with="Loading..." attribute to disable buttons and change their text during form submission to prevent double-clicks.
BUG FIXES
- DateTime fields: Improved error messages for invalid dates (like February 31st) to provide clearer feedback to users
- Drag sorting: Fixed issue where table headers could become sortable when tables had only one row
- Image processing: Fixed potential error with GIF transparency when color index is out of range
- Image processing: Fixed divide-by-zero error by gracefully handling missing or invalid images
- Fixed MySQL 8.0 error when error log cleanup triggered during upload removal (Error 1093: target table for update in FROM clause)
- Fixed issue that prevented CMS from running directly web root folder (without a subfolder)
- Fixed issue where web root detection didn't always work when using /~user/ alias urls
- Fixed form controls (checkboxes, radio buttons) showing OS accent colors in Chrome/Edge 137+
- Fixed browser caching issue where deleted and re-uploaded images with identical filenames would show old cached versions in admin interface
- Misc code and other minor improvements
You can download the latest beta here:https://www.interactivetools.com/download/
Please post (or email) any feedback, questions, concerns, or bugs you find. Your help with beta testing allows us to release new features even faster.
Thanks. We look forward to your feedback! :)
interactivetools.com
By Dave - Yesterday at 8:11pm
Hi All,
We just released Beta 2 with a small fix.
If Admin > General > Server Info isn't loading, it means the web root is not being detected correctly. This will prevent a number of css and js files from loading.
Feel free to download the latest beta, and it will fix that.
Let us know any other issues that you come across. Thanks!
interactivetools.com