<?xml version="1.0" encoding="UTF-8"?>    <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
      <channel>
        <title></title>
        <link>https://interactivetools.com/forum/forum-search.php?k=user%3ADave</link>
        <description></description>
        <pubDate>Sun, 19 Apr 2026 09:33:13 -0700</pubDate>
        <language>en-us</language>
        <atom:link href="https://interactivetools.com/forum/forum-search.php?k=user%3ADave&amp;rss=1" rel="self" type="application/rss+xml" />

                <item>
          <title>CMSB v3.83 Beta (Show/Hide Fields &amp; MCP Server)</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248405#post2248405</link>
          <description><![CDATA[<p class="whitespace-pre-wrap break-words">Hi everyone,</p>
<p class="whitespace-pre-wrap break-words">We've just released v3.83 beta (our biggest single release to date!), and we're already running it on our site.</p>
<p class="whitespace-pre-wrap break-words">Here are some highlights from this release:&nbsp;</p>
<ul>
<li class="whitespace-pre-wrap break-words">Field Editor
<ul>
<li class="whitespace-pre-wrap break-words">Show If: New option allows you to dynamically show/hide fields based on the values of other fields</li>
<li class="whitespace-pre-wrap break-words">Show for: Replaces old "Admin only" setting with options for everyone, editor, admin only, or new: Nobody (completely hidden)</li>
<li class="whitespace-pre-wrap break-words">Placeholder: New option for text and textbox fields to set hint text inside the field when empty</li>
<li class="whitespace-pre-wrap break-words">Field List UI: Lock and eye icons now mark restricted and conditional fields in your field list</li>
<li class="whitespace-pre-wrap break-words">Reorganized and simplified the field editor UI</li>
</ul>
</li>
<li class="whitespace-pre-wrap break-words">Admin → Advanced → MCP Server
<ul>
<li>AI coding assistants like Claude Code can now read and update your CMS directly</li>
<li>Read and write records, upload files, run queries, and view your database schema</li>
<li>Built-in /fix-cms command: AI reviews your recent PHP errors and offers fixes</li>
</ul>
</li>
<li class="whitespace-pre-wrap break-words">Admin → Backup &amp; Restore → Website → Restore from Zip
<ul>
<li>Added restore button to restore from previous website backup zips (for uploading a local or dev site)</li>
</ul>
</li>
<li class="whitespace-pre-wrap break-words">Fields → List → <span>pillbox (multi value)</span>
<ul>
<li>Selected values can now be drag sorted to change the order</li>
<li>Dropdown options show checkboxes to select multiple values (easier for end-users)</li>
</ul>
</li>
<li class="whitespace-pre-wrap break-words">Admin → Advanced
<ul>
<li>Admin Favicon: Pick a colored favicon (green/yellow/red) to tell CMS installs apart in your browser tabs (e.g. dev, staging, live)</li>
<li>Server Links: Add dev, staging, and live server URLs for quick-switching between environments</li>
</ul>
</li>
<li class="whitespace-pre-wrap break-words">Developer Console
<ul>
<li>Automatically decrypts and displays contents from encrypted fields</li>
</ul>
</li>
<li class="whitespace-pre-wrap break-words">General code modernization and cleanup</li>
</ul>
<p>Note: We still have a queue of pending user feature requests.&nbsp; We're releasing what we have now so you can start using it.&nbsp; Feel free to remind us what you'd like to see next.&nbsp;</p>
<p>The full changelog for this release is as follows:</p>
<blockquote>
<pre>*** April 14, 2026 - Version 3.83 (Show/Hide Fields &amp; MCP Server)<br /><br />SERVER REQUIREMENTS (Since Jun 2025): PHP 8.1+ and MySQL 5.7+ (or MariaDB 10.2+)<br /><br />FIELD EDITOR<br />    - Show/Hide Fields: Fields now show/hide automatically based on what users select<br />        - Example: Show "Speaker Name" only when Event Type is "Webinar"<br />        - Example: Show "Shipping Address" only when Delivery Method is "Mail"<br />        - Works with all field types: text, checkboxes, tabs, upload fields, related records<br />        - Custom expressions allow for multi-field AND rules (e.g. type=article AND status!=draft|hidden)<br />        - Configure in: Database &gt; Edit Field &gt; Visibility &gt; Show If<br />    - Field Access: "Admin Only" replaced with clearer "Show for" dropdown<br />        - Options: Everyone, Editor and above, Admin only, or new: Nobody (completely hidden)<br />    - Placeholder: New option for text and textbox fields to set hint text inside the field when empty<br />    - Lock and eye icons now mark restricted and conditional fields in your field list<br />    - Simplified field editor interface with cleaner organization<br />    - Textbox Fields: "Auto Format" renamed to "Line Breaks" (nl2br) and deprecated. Off for new fields, can be turned off but not back on<br /><br />MCP SERVER<br />    - AI coding assistants like Claude Code can now read and update your CMS directly<br />    - Read and write records, upload files, run queries, and view your database schema<br />    - Configure in: Admin &gt; Advanced &gt; MCP Server (IP allowlist, API keys, permissions)<br />    - Built-in /fix-cms command: AI reviews your recent PHP errors and offers fixes<br />    - Security: IP allowlist required, Bearer token auth, read-only enforced at MySQL session level<br />    - Write operations logged to the audit log<br /><br />ADMIN &gt; BACKUP &amp; RESTORE<br />    - Website: Added restore button to restore from previous website backup zips<br />    - Website: Previous Backups dropdown now shows relative dates (e.g., "5 min ago", "yesterday")<br />    - Website: Removed "Only include code files" option (use .cms-no-backup marker files to exclude folders instead)<br />    - Database: Backup dropdown now offers option to include log tables in backup ("include skipped")<br /><br />PILLBOX &amp; FOREIGN KEY FIELDS<br />    - Replaced form dropdown component Select2 with Tom Select<br />    - Pillbox: drag pills to reorder selected values<br />    - Pillbox: dropdown options show checkboxes so you can see all options and their selection state at a glance<br />    - Type-ahead search to filter options instantly<br /><br />ADMIN &gt; ADVANCED (New Page)<br />    - Reorganized admin settings into "Admin Interface" and "Advanced Settings" sections<br />    - Admin Favicon: Pick a colored favicon (green/yellow/red) to tell CMS installs apart in your browser tabs<br />    - Server Links: Add dev, staging, and live server URLs for quick-switching between environments<br />    - Admin Shortcuts, Debug Footer, and WYSIWYG/Menu/Cookie settings moved here from General Settings<br /><br />MINOR CHANGES<br />    - Email Settings: Developer Email now accepts multiple comma-separated addresses<br />    - File Uploads: Files are saved with dashes instead of underscores for better SEO, and .jpeg is normalized to .jpg<br />    - Audit Log: Expanded logging coverage for fields, tables, uploads, backups, and database operations<br />    - Security: Added additional .htaccess hardening for data directories (Apache 2.4+ compatibility)<br />    - Improved text contrast for input fields, selects, and placeholders<br />    - Admin menus updated and reorganized for better usability<br />    - Upgraded Dependencies: PHPMailer v6 to v7, Firebase/JWT v6 to v7, and other library updates<br /><br />BUG FIXES<br />    - SmartArray: Fixed TypeError when calling load() on SmartArrayHtml (changed type hint to SmartArrayBase)<br />    - Language: Fixed "No such file or directory" error when developer mode was enabled without a language selected<br />    - Upload Fields: Fixed "Create Thumbnail" checkbox re-enabling itself after saving when unchecked<br />    - Edit Page: Fixed false "unsaved changes" warning appearing after clicking in fields without editing them<br />    - Misc code and other minor improvements<br /><br />**FOR PROGRAMMERS**<br />    - Modern PHP features enabled:<br />        - Native types: Database queries now return native PHP types (int/float) instead of strings<br />        - mysqli::execute_query() for one-line parameterized queries (available natively in PHP 8.2+, backported for PHP 8.1):<br />            $rows = DB::$mysqli-&gt;execute_query("SELECT * FROM users WHERE id = ?", [$id])-&gt;fetch_all(MYSQLI_ASSOC);<br />            DB::$mysqli-&gt;execute_query("UPDATE users SET name = ? WHERE id = ?", [$name, $id]);<br />    - Database Encryption: Key now cached as MySQL session variable @ek<br />        - Faster: Computed once per-connection, not per-query<br />        - Simpler: AES_ENCRYPT(val, @ek) instead of AES_ENCRYPT(val, UNHEX(SHA2('key',512)))<br />        - Cleaner: Key hidden from SHOW PROCESSLIST and error messages<br />        - On-demand: Only initialized when encrypted fields are used<br />    - MySQL Console: Record edit page database icon now opens console with that record in column mode<br />    - MySQL Console: New {{column}} shortcut auto-expands to AES_DECRYPT(`column`, @ek) for encrypted columns<br />    - Moved /api.php to /api/ to better organize future API endpoints<br /><br />**FOR PROGRAMMERS (BREAKING CHANGES)**<br />    - Note: These changes only impact developers who have written custom PHP code<br />    - Database queries now return native PHP types (int/float) instead of strings<br />        - If your code expects strings, cast them: (string)$row['id']<br />    - MySQL queries now throw exceptions instead of returning false (following PHP 8.1+ standard behavior).<br />        - Before: $result = mysqli()-&gt;query($sql) or die("MySQL Error: " . mysqli()-&gt;error);<br />        - After:  try { $result = mysqli()-&gt;query($sql); } catch (mysqli_sql_exception $e) { die("MySQL Error: " . $e-&gt;getMessage()); }<br />    - Library Updates: ZenDB has been moved to composer with several renamed and deprecated methods<br />        - DB::get() renamed to DB::selectOne() (DB::get() still works but is deprecated)<br />        - See ZenDB docs for full list of changes: <a href="https://github.com/interactivetools-com/ZenDB/" rel="nofollow">https://github.com/interactivetools-com/ZenDB/</a></pre>
</blockquote>
<p>You can download the latest beta here: <a href="https://www.interactivetools.com/download/" rel="nofollow">https://www.interactivetools.com/download/</a></p>
<p>Please post (or email) any feedback, questions, concerns, or bugs you find.&nbsp; &nbsp;Your help with beta testing allows us to release new features even faster.</p>
<p><span>Thanks. We look forward to your feedback! :)</span></p>]]></description>
          <pubDate>Tue, 14 Apr 2026 12:53:50 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248405#post2248405</guid>
        </item>
                <item>
          <title>Update to CMSB v. 8 from 3.56</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248404#post2248404</link>
          <description><![CDATA[<p>Hi pgplast,</p>
<p>Okay, perfect. Since you've done the CMS upgrade before, the CMSB side should be straightforward.</p>
<p>For any custom PHP code or plugins, the most common issue is type handling. PHP 7 was more forgiving - it would silently accept `null` where a string was expected. PHP 8 throws deprecation warnings (and PHP 9 will make them errors).</p>
<p>An example might be @$_REQUEST['city']; if that form field wasn't submitted, it would return null.</p>
<p>So if you see warnings like `trim(): Passing null to parameter #1` or `strlen(): Passing null to parameter #1 ($string) of type string is deprecated`, the fix is usually one of:</p>
<pre class="language-php"><code>// Option A: null coalesce to set a default for null values
$value = trim($record['middle_name'] ?? '');

// Option B: cast to string
$value = strlen((string) $record['notes']);</code></pre>
<p>What I recommend is upgrading, then clicking through all the pages and checking the CMS Developer for any errors.</p>
<p>Let me know if you run into anything specific, and we can help you sort it out.</p>]]></description>
          <pubDate>Sat, 11 Apr 2026 00:03:53 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248404#post2248404</guid>
        </item>
                <item>
          <title>Update to CMSB v. 8 from 3.56</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248401#post2248401</link>
          <description><![CDATA[<p>Hi pgplast,</p>
<p>First, make sure your database is supported by the latest version - you'll want MySQL 5.7+ or MariaDB 10.2+.</p>
<p>But in general, it's pretty straightforward. Backup everything (files and MySQL), upload the new CMSB files over top of the old ones, then upgrade any plugins that need upgrading.</p>
<p>If you run into any PHP 7 to 8 coding errors in your custom code, any of the AI coding agents (Claude, ChatGPT, etc.) can help you come up with a fix pretty quickly.</p>
<p>That said, feel free to fill out a 2nd-level support request if you'd like me to take a look either before or after: <a href="https://interactivetools.com/support/request/" rel="nofollow">https://interactivetools.com/support/request/</a></p>
<p>Also, feel free to email me at dave@interactivetools.com if you run into any issues. I'll be around this weekend and can help make sure you're back up and running by Monday if needed.</p>
<p>Hope that helps, let me know any questions!</p>]]></description>
          <pubDate>Fri, 10 Apr 2026 13:50:55 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248401#post2248401</guid>
        </item>
                <item>
          <title>Upload Field - Custom List Option</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248382#post2248382</link>
          <description><![CDATA[<p>Hi Ryan,&nbsp;</p>
<p>Unfortunately, there's no built-in functionality for that, or quick fixes.</p>
<p>Can you let me know what you want to use it for and how you'd want it to work?&nbsp;</p>
<p>For example, what problem are you trying to solve?</p>
<p>Thanks!</p>]]></description>
          <pubDate>Wed, 11 Mar 2026 21:05:46 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248382#post2248382</guid>
        </item>
                <item>
          <title>editor feature request</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248381#post2248381</link>
          <description><![CDATA[<p>Hi Jeff,&nbsp;</p>
<p>We're currently working on a big update for the next release, but I can keep this in the queue for a future release.</p>
<p>We actually wanted to redo the date component already for better multi-lingual support.</p>
<p>The browser date fields are generally considered not to have the best user experience compared to some of the custom ones.&nbsp; &nbsp;</p>
<p>The benefit of the multi-field is that it's quick to select, but it depends on your use case, though.&nbsp; You'll see most of the big sites (airbnb, google flights, etc) use custom date controls.&nbsp; We were looking into some of the more popular date field components a while back.</p>
<p>We've already got some requests for Date field modifications already. &nbsp;Can you let me know how you'd like it to work differently so we can consider that as well?</p>
<p>Thanks!</p>
]]></description>
          <pubDate>Wed, 11 Mar 2026 21:04:10 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248381#post2248381</guid>
        </item>
                <item>
          <title>BUG: tinymce field can&apos;t use media library image CMSB 3.82</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248378#post2248378</link>
          <description><![CDATA[<p>Hi all,&nbsp;</p>
<p>This took us a bit to track down.&nbsp; Can you try this fix:&nbsp;</p>
<p>In /cmsb/lib/menus/default\wysiwygMedia.php</p>
<p>Replace this:&nbsp;</p>
<pre class="language-javascript"><code>uploadIframe.contentDocument.location.reload();</code></pre>
<p>With this:&nbsp;</p>
<pre class="language-javascript"><code>uploadIframe?.contentDocument?.location.reload();</code></pre>
<p>Let me know if that works for you.&nbsp; If not, feel free to submit a 2nd level support request, and we'd be happy to help you track it down and resolve it.</p>
<p>Thanks!</p>]]></description>
          <pubDate>Sat, 07 Mar 2026 21:36:58 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248378#post2248378</guid>
        </item>
                <item>
          <title>Error: Cannot access offset of type string on string</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248346#post2248346</link>
          <description><![CDATA[<p>Hi Gary,&nbsp;</p>
<p>Can you submit a 2nd-level support request?&nbsp; We'll take a look and resolve this for you:&nbsp;</p>
<p><a href="https://interactivetools.com/support/request/" rel="nofollow">https://interactivetools.com/support/request/</a></p>
<p>Thanks!</p>]]></description>
          <pubDate>Sun, 22 Feb 2026 13:56:01 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248346#post2248346</guid>
        </item>
                <item>
          <title>BUG: tinymce field can&apos;t use media library image CMSB 3.82</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248345#post2248345</link>
          <description><![CDATA[<p>Hi all,&nbsp;</p>
<p>Thanks, we'll look into this and get back to you shortly.</p>]]></description>
          <pubDate>Sun, 22 Feb 2026 13:54:29 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248345#post2248345</guid>
        </item>
                <item>
          <title>Possible issue with CMSB 3.82 + Newsletter Builder (PHP 8 date() error)</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248344#post2248344</link>
          <description><![CDATA[<p>Hi Jeff,&nbsp;</p>
<p>This will be easier for us to confirm and debug on your server directly.&nbsp; Can you send in a 2nd level support request, and we'll take a look?</p>
<p><a href="https://interactivetools.com/support/request/" rel="nofollow">https://interactivetools.com/support/request/</a></p>
<p>Thanks!</p>]]></description>
          <pubDate>Sun, 22 Feb 2026 13:52:39 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248344#post2248344</guid>
        </item>
                <item>
          <title>Feature Request: Editor, images and media </title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248343#post2248343</link>
          <description><![CDATA[<p>Hi jasmar222,&nbsp;</p>
<p>Thanks for the suggestion.&nbsp; That makes sense. We'll take a look at that for a future release to see how we can improve the UX.</p>]]></description>
          <pubDate>Sun, 22 Feb 2026 13:49:33 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248343#post2248343</guid>
        </item>
                <item>
          <title>Repeater Field</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248342#post2248342</link>
          <description><![CDATA[<p>Hi Codee,&nbsp;</p>
<p>We're busy working on the next release, which is probably 1-2 weeks out before the beta, but can revisit repeater fields in the future.</p>
<p>Can you give me an example use case?&nbsp; How you'd actually be using it.&nbsp; e.g., What's a real-world example of some fields you'd be repeating?&nbsp;</p>]]></description>
          <pubDate>Sun, 22 Feb 2026 13:46:36 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248342#post2248342</guid>
        </item>
                <item>
          <title>Repeater Field</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248341#post2248341</link>
          <description><![CDATA[<p>Hi Codee,&nbsp;</p>
<p>We're busy working on the next release, which is probably 1-2 weeks out before the beta, but can revisit repeater fields in the future.</p>
<p>Can you give me an example use case?&nbsp; How you'd actually be using it.&nbsp; e.g., What's a real-world example of some fields you'd be repeating?&nbsp;</p>]]></description>
          <pubDate>Sun, 22 Feb 2026 13:46:35 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248341#post2248341</guid>
        </item>
                <item>
          <title>Is there a maximum files size limit to the autobackup plugin?</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248340#post2248340</link>
          <description><![CDATA[<p>Hi Codee,</p>
<p>Auto Backup backs up your MySQL database, so it shouldn't include PDFs. But yes, once your backup files become very large or the server times out, the next step is to check for other backup options available through your hosting provider.</p>
<p>If you're thinking of the "Website Backup" feature under Admin &gt; Backup &amp; Restore &gt; Website Backup, it can also experience similar timeout issues with large sites. What you can do is create an empty file named <strong>.cms-no-backup</strong> in any folder to exclude it from backups.&nbsp; That way, you can skip those large PDFs. Just make sure you back up those PDFs somewhere else.</p>
<p>And yes, once your backup files become very large or the server times out, it's worth checking with your hosting provider for other backup options.</p>
<p>Hope that helps!</p>]]></description>
          <pubDate>Sun, 22 Feb 2026 13:45:09 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248340#post2248340</guid>
        </item>
                <item>
          <title>BUG: tinymce field can&apos;t use media library image CMSB 3.82</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248325#post2248325</link>
          <description><![CDATA[<p>Hi Jeff,&nbsp;</p>
<p>You might have an old schema file or mysql column definitions from an old backup.&nbsp;&nbsp;</p>
<p>The upload section is hidden in the database editor but you can direct link to it like this:&nbsp;<br />/cmsb/admin.php?menu=database&amp;action=editTable&amp;tableName=uploads&amp;tab=mysql</p>
<p>Check what filePath is, it should be:&nbsp;</p>
<pre class="language-php"><code>`filePath` varchar(255) DEFAULT NULL,</code></pre>
<p><span>For any fields that don't have "DEFAULT NULL", just click modify and save on the field and it will ensure it has the right type.</span></p>
<p><span>Hope that helps!</span></p>]]></description>
          <pubDate>Tue, 03 Feb 2026 18:36:07 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248325#post2248325</guid>
        </item>
                <item>
          <title>Multilingual</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248324#post2248324</link>
          <description><![CDATA[<p>Hi moh3,&nbsp;</p>
<p><span>Will all language content be exactly mirrored, or might some languages have more or different content than others?</span></p>
<p><span>There's lots of ways to set it up.&nbsp; I'd start at the end and thing about how's you'd like it to be and work in reverse.&nbsp;&nbsp;</span></p>
<p><span>Think about how you'd most like it to be structured on the back end (single record, multiple records, multiple sections) and on the front end (language pulldown, /en/ language subfolders, subdomains, etc.).</span></p>
]]></description>
          <pubDate>Tue, 03 Feb 2026 18:27:32 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248324#post2248324</guid>
        </item>
                <item>
          <title>PermaLinks conflict</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248323#post2248323</link>
          <description><![CDATA[<p>Hi moh3,&nbsp;</p>
<p>So in .htaccess we have something like this that checks to the see if the URL or permalink exists as a file or directory.&nbsp; If it doesn't it passes the request to the dispatcher:&nbsp;</p>
<pre class="language-php"><code>### Pass URL to permalinks dispatcher (do this last after any other redirects)
RewriteRule ^permalinks_dispatcher\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /cmsb/plugins/permalinks/permalinks_dispatcher.php [L]</code></pre>
<p>But if you're password protecting your admin folder with .htaccess and .htpasswd, that can interfere with the directory detection and redirect.</p>
<p>You can try adding a condition to skip your admin folder when processing permalinks.&nbsp; Something like this:&nbsp;</p>
<pre class="language-php"><code>### Pass URL to permalinks dispatcher (do this last after any other redirects)
RewriteRule ^permalinks_dispatcher\.php$ - [L]
RewriteCond %{REQUEST_URI} !^/cmsb/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /cmsb/plugins/permalinks/permalinks_dispatcher.php [L]</code></pre>
<p>Let me know if that works for you!</p>]]></description>
          <pubDate>Tue, 03 Feb 2026 18:24:31 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248323#post2248323</guid>
        </item>
                <item>
          <title>CMSB v3.82 Released (Improved UI, Menu Count Badges, &amp; .env support)</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248319#post2248319</link>
          <description><![CDATA[<p>Hi All,&nbsp;</p>
<p>Thanks for the feedback!</p>
<p>@Kenny, excellent, glad to hear the .env files are working well for you!</p>
<p>@JeffC, thanks for the report.&nbsp; We can't recreate this locally.&nbsp; Can you send me an email or support ticket and we can take a look.</p>
<p>@JeffS, thanks, I posted a fix for this in the other thread and we'll have it updated for the next release.</p>
<p>We've got some really exciting features coming in the next beta.&nbsp; Appreciate all your support and feedback!</p>]]></description>
          <pubDate>Fri, 30 Jan 2026 16:17:07 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248319#post2248319</guid>
        </item>
                <item>
          <title>BUG: tinymce field can&apos;t use media library image CMSB 3.82</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248318#post2248318</link>
          <description><![CDATA[<p>Hi Jeff,&nbsp;</p>
<p>Great find, thanks for reporting that.&nbsp;</p>
<p>We'll have that patched in the next beta and here's some updated code if you want to try it now:&nbsp;</p>
<pre class="language-php"><code>// Validate field exists (upload or wysiwyg with allowUploads) and user has access
$fieldName   = request('fieldName');
$fieldSchema = Schema::fields($GLOBALS['tableName'])[$fieldName] ?? null;
$canUpload   = $fieldSchema &amp;&amp; ($fieldSchema['type'] === 'upload' || ($fieldSchema['type'] === 'wysiwyg' &amp;&amp; !empty($fieldSchema['allowUploads'])));
match (true) {
    empty($fieldSchema)               =&gt; die("Invalid field: $fieldName"),
    !$canUpload                       =&gt; die("Field doesn't allow uploads: $fieldName"),
    !userHasFieldAccess($fieldSchema) =&gt; die("No access to field: $fieldName"),
    default                           =&gt; null,
};</code></pre>
<p>Let me know if you run into any other issues.&nbsp; Thanks!</p>]]></description>
          <pubDate>Fri, 30 Jan 2026 16:11:49 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248318#post2248318</guid>
        </item>
                <item>
          <title>Feature Request: Automatic decryption of encrypted fields in MySQL Developer Console</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248317#post2248317</link>
          <description><![CDATA[<p>Hi Kenny,&nbsp;</p>
<p>This is a tricky one, but an interesting idea.</p>
<p>The MySQL Console gives you raw access to the MySQL, and the data IS encoded there.&nbsp; So we want both honest data and a way to access it for usability.</p>
<p>Currently, you'd need to type a lot of MySQL in the query to decode those values (or we'd need to generate and replace your query or do it behind the scenes as a secondary query).</p>
<p>I've made some updates to the upcoming beta so you'll be able to type a lot less:</p>
<pre class="language-php"><code>AES_DECRYPT(name, @ek) // @ek is the encryption key</code></pre>
<p>So, for example:&nbsp;</p>
<pre class="language-php"><code>SELECT num, AES_DECRYPT(name, @ek), AES_DECRYPT(name, @ek) FROM cms_users</code></pre>
<p>Note, this doesn't work yet, but will in the upcoming beta.</p>
<p>We could probably come up with a checkbox or something that lets you auto-decode.&nbsp; So * gets replaced with the decode expressions.</p>
<p>I'll think on it some more.&nbsp; Are you mostly using this on SELECT * FROM queries (getting all columns)?&nbsp; And is it mostly single-table queries, or are there joins as well?</p>]]></description>
          <pubDate>Fri, 30 Jan 2026 15:36:00 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248317#post2248317</guid>
        </item>
                <item>
          <title>Repeater Field</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248316#post2248316</link>
          <description><![CDATA[<p>Hey all,&nbsp;</p>
<p>Great suggestion.&nbsp; We'll put that on the list and look into how to implement it.</p>]]></description>
          <pubDate>Fri, 30 Jan 2026 13:53:21 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248316#post2248316</guid>
        </item>
                <item>
          <title>Multilingual</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248315#post2248315</link>
          <description><![CDATA[<p>Hi moh3,</p>
<p>There are a few different approaches. A good starting point is to think about the end-user experience you wantΓÇöwhat should the URLs look like, how should the CMS edit screen be organized, etc.</p>
<p>Here are the main options:</p>
<p><strong>Separate records per language:</strong>&nbsp;Each article has multiple records (one per language), and you toggle or filter by language. The site uses a default language unless another is specified.</p>
<p><strong>Single record with multiple languages:</strong> If you don't have too many languages, you can duplicate the fields within the same record. You'd use the tab interface (one tab per language) or organize them into sections.</p>
<p>Will all language content be exactly mirrored, or might some languages have more or different content than others?</p>
<p>For the front end, you could use a language selector dropdown (stored in a cookie), filter articles by language, or use different directories/subdomains for each language.</p>
<p>Sorry for the delay in responding. If you're still working on this, let me know how you'd like it to work or how far you've gotten so far.</p>]]></description>
          <pubDate>Fri, 30 Jan 2026 13:49:24 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248315#post2248315</guid>
        </item>
                <item>
          <title>Free Plugin: Conditional Error Checking Pro</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248302#post2248302</link>
          <description><![CDATA[<p>Hi Kenny,&nbsp;</p>
<p>These look great, I'm looking forward to trying them out.&nbsp; Nice work!</p>]]></description>
          <pubDate>Tue, 20 Jan 2026 19:27:35 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248302#post2248302</guid>
        </item>
                <item>
          <title>Plugins error with upgrade to 3.82 from 3.56</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248301#post2248301</link>
          <description><![CDATA[<p>Hi All,&nbsp;</p>
<p>Just a heads up for anyone else with this issue.&nbsp; We tracked it down to a bug that happens when these two settings are enabled together:&nbsp;</p>
<ul>
<li>Program Language = "default"</li>
<li>Developer Mode [X] Automatically add new language strings to language files (disable in production)</li>
</ul>
<p>We'll have a fix for it in the next release, and the short-term fix is to just uncheck the language "Developer Mode".</p>
<p>Thanks!</p>]]></description>
          <pubDate>Tue, 20 Jan 2026 19:24:06 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248301#post2248301</guid>
        </item>
                <item>
          <title>PHP 8.3 Compatibility Issue in ZenDB/Config.php</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248300#post2248300</link>
          <description><![CDATA[<p>Hi Kenny,</p>
<p>Thanks for the report and sorry for the delayed response; we're working through a queue of site launches.</p>
<p>That RFC is about things like "Hello ${name}" which should now be written as "Hello {$name}" (dollar sign on the inside).</p>
<p>The self::${$key} syntax in Config.php is actually the standard way to access class properties when the property name is in a variable, which is a different feature entirely and isn't affected by that deprecation.&nbsp;</p>
<p>Here's what it does - the Config class has properties like $hostname, $database, $tablePrefix, $logFile, etc. When you call:</p>
<pre class="language-php"><code>DB::config('logFile')  // $key = 'logFile'
$key = 'logFile';      // set by config
self::${$key}          // resolves to Config::$logFile</code></pre>
<p>The ${} tells PHP "evaluate what's inside first, then use that as the property name." So it returns whichever property matches the string you passed in.</p>
<p>Easy to mix up since they look similar! I had to double-check myself when I saw your post.</p>
<p>If you do see any actual deprecation warnings in your error logs, definitely let us know, and we'll get them sorted out.</p>
<p>PS: You can copy-and-paste this post to Claude and ask them to fact-check it.</p>
<p>Also, I really appreciate that you're taking such a deep dive into the code.&nbsp; Let me know any other questions or feedback.&nbsp; Thanks!</p>]]></description>
          <pubDate>Tue, 20 Jan 2026 19:21:13 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248300#post2248300</guid>
        </item>
                <item>
          <title>Plugins error with upgrade to 3.82 from 3.56</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248299#post2248299</link>
          <description><![CDATA[<p>Hi Deborah,&nbsp;</p>
<p>Thanks for the report!&nbsp; I can't recreate that locally, can you send over server details?&nbsp; I can debug it live and get you a fix.</p>
<p>Thanks!</p>]]></description>
          <pubDate>Sat, 17 Jan 2026 14:52:58 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248299#post2248299</guid>
        </item>
              </channel>
    </rss>
  