CMSB v3.80 Beta Released (Upload Management Features & More)

6 posts by 3 authors in: Forums > CMS Builder
Last Post: October 1   (RSS)

Hi everyone,

We've just released v3.80 beta! We're already running this version on our site, and it has lots of interesting and useful new features!

Here are some of the highlights:

  • Uploads > Multi-Upload Manager: You can now select multiple files with checkboxes to delete or download them as a single ZIP archive.
  • Uploads > Image Preview Popups: Image thumbnails now open full-size previews in floating modal window instead of a new tab.
  • Admin > Backup & Restore: Database restore operations are now 3x faster
  • Admin > Security > PHP Error Display: We have 3 options for error display: generic "An error occurred #123", message, or message and file:line for debugging
  • Admin > Security > Admin Error View: Admins can now choose to always view full errors (including backtraces) even when they're hidden from users
  • Admin > General > Server Info > Recent Changes: Added "Remove oldest duplicates..." link to compact server change history
  • Plugins > Developer Console > MySQL:
    • Added dual scrollbars (top/bottom) to make it easier to scroll long tables right away
    • Re-added "Records as Columns" checkbox to swap rows/columns (transpose view) for easier data viewing
  • 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. 

  • Prev/Next record paging and saving: I know a few people were asking for this, if someone wants to start a new thread we can explore adding that in an upcoming release.  Just tell us how other systems you use work and what you like and don't.

The full changelog for this release is as follows:

*** September 21, 2025 - Version 3.80 (Upload Management Features & More)

SERVER REQUIREMENTS (Since Jun 2025): PHP 8.1+ and MySQL 5.7+ (or MariaDB 10.2+)

NEW FEATURES
- Upload Management:
- Image Preview: Click images to view in popup modal instead of opening new tabs
- Bulk Operations: Select multiple files with checkboxes to delete or download as ZIP
- Admin > Backup & Restore: Database restore operations are now 3x faster
- Admin > Security
- PHP Error Display: Errors can now be hidden, displayed as messages only (new), or displayed as messages with file:line for debugging
- Admin Error View: Allows admins to always see full errors with file:line and backtraces, even when errors are hidden from regular users
- Plugins > Developer Console > MySQL:
- Added dual scrollbars (top/bottom) to make it easier to scroll long tables right away
- Re-added "Records as Columns" checkbox to swap rows/columns for easier data viewing
- Smarter column widths based on content length
- Admin > General > Server Info > Recent Changes: Added "Remove oldest duplicates..." link to compact server change history

MINOR CHANGES
- Admin > Website Backup: Included database backup is now zipped and saved in the 'data/backups/' folder for easy access and reduced disk usage
- For Programmers
- SmartArray & SmartString: Added orRedirect() method to redirect to a URL when missing (null or '')
- SmartArray: Optional new SmartArrayRaw/SmartArrayHtml subclasses provide explicit typing for IDE autocomplete and static analysis
- SmartArray: New asRaw()/asHtml() methods to switch between raw PHP values and HTML-safe SmartStrings with IDE type hints
- CMS Core: Added requestArray() helper function to always return arrays from form inputs

BUG FIXES
- Developer Console > Shell: Fixed issue where multi-line shell commands would return errors on Linux due to carriage return characters (\r)
- Developer Console > Shell: Fixed HTML escaping issue where some command presets weren't appearing correctly
- Admin > General: Fixed issue where general.css and js wouldn't load if Website Prefix Url was set and CMS folder wasn't under it
- Admin > Website Backup: Fixed issue where compressed SQL backup files (*.sql.zip) were incorrectly included in website backups
- Admin Debug Footer: Fixed issue where files above web root displayed error message instead of relative path
- 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! :)

Dave Edis - Senior Developer
interactivetools.com

I ran into some issues with a few installs and used Claude to guide me through a fix. I asked it to report back what was going on and here's the report:

Title: CMS Builder 3.80 Beta - PHP open_basedir missing /dev/null causes proc_open errors

Environment:

  • CMS Builder v3.80 (Build: 2952) Beta
  • Server: AlmaLinux 8.10 with DirectAdmin
  • PHP 8.1.25 with PHP-FPM (proxy_fcgi)
  • Apache/2

Issue: After upgrading from v3.79 to v3.80 beta, the Server Info page (admin.php?menu=admin&action=general) generates hundreds of PHP warnings:

Warning: proc_open(): open_basedir restriction in effect. File(/dev/null) is not within the allowed path(s)
Warning: proc_open(/dev/null): Failed to open stream: Operation not permitted

These errors occur in /cmsb/lib/shell_functions.php at line 101 where proc_open() attempts to redirect stderr to /dev/null.

Root Cause: CMS Builder 3.80 appears to use shell commands more extensively than previous versions, particularly in the Server Info section. The proc_open() function in shell_functions.php uses /dev/null for stderr redirection, but many PHP configurations (especially in shared/managed hosting with DirectAdmin or cPanel) don't include /dev/null in the open_basedir allowed paths by default.

Solution: Added /dev/null to PHP's open_basedir configuration. For DirectAdmin users with PHP-FPM, this requires updating each user's pool configuration in /usr/local/directadmin/data/users/*/php/php-fpm81.conf

Suggestion for CMS Builder Team: Consider modifying _shellCommand_proc_open() in shell_functions.php to handle environments where /dev/null isn't accessible. Perhaps use a pipe for stderr instead:

php

// Instead of:
2 => array("file", "/dev/null", "a")
// Use:
2 => array("pipe", "w")

This would make CMS Builder more compatible with restrictive hosting environments without requiring server configuration changes.

Note: Reverting to v3.79 resolves the issue immediately, confirming this is specific to changes in v3.80.

MySQL Console presets are not using the table prefix

The preset queries are adding

SELECT * FROM star_trek_trivia LIMIT 100

instead of 

SELECT * FROM cms_star_trek_trivia LIMIT 100


I went back and looked at a different 3.79 install and it does the same thing. I really never use the presets, but I was checking them out in 3.80 and saw that they didn't work

Hi, Dave.

I’ve been testing Beta 2 and really like the new upload management features and the zipped database backups.

While testing Convert existing images, I hit a PHP memory limit when a batch included one or more large originals. The process returned a 500 error mid-run, the offending original was reduced to 0 bytes, and the rest of the batch didn’t process.

I raised memory_limit in the site's .user.ini from 128MB to 512MB, which let me process larger images, but I haven’t tested batches as large as some of my client sites.

To avoid any risk of losing original images, I’m planning to temporarily increase the memory limit significantly during conversions—unless you have a better approach.

Also, please tell me where I can find Menu view mode so I can review that as well.

Thanks!
Deborah

I've been using it on a website I am developing and haven't run into any issues with it. All the previous problems have been resolved. 

For the next version, can you add a spot where instead of Exporting JSON, it just shows me the JSON I can copy? It's faster to copy and paste into Claude than to download and upload to Claude.

Thanks!

Kenny H