<?xml version="1.0" encoding="UTF-8"?>    <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
      <channel>
        <title>Forums</title>
        <link>https://interactivetools.com/forum/forum.php</link>
        <description></description>
        <pubDate>Wed, 26 Aug 2026 17:14:27 -0700</pubDate>
        <language>en-us</language>
        <atom:link href="https://interactivetools.com/forum/forum.php?rss=1" rel="self" type="application/rss+xml" />

                <item>
          <title>Whc.ca shared hosting</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248479#post2248479</link>
          <description><![CDATA[<p>The developer console is failing to load on ...parameters on functions. Even turning off psr does not fix it.</p>]]></description>
          <pubDate>Wed, 26 Aug 2026 13:29:27 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248479#post2248479</guid>
        </item>
                <item>
          <title>Whc.ca shared hosting</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248478#post2248478</link>
          <description><![CDATA[<p>Hey Jeff,</p>
<blockquote>
<p>Whc.ca has the psr extension enabled by default. This is causing CMSB developer console to fail to load.</p>
</blockquote>
<p>What's the exact error message you're seeing? And is it just the CMSB developer console which fails to load, or any other pages as well?</p>
<blockquote>
<p>I also use cacheing with Symphony/Cache via composer.</p>
<p>What is the recommended solution.</p>
</blockquote>
<p>The <em>psr</em> extension does conflict with composer's Psr/* packages, because Symfony/Cache requires Psr/Cache, and composer will install it even while the extension is enabled, which creates the conflict.</p>
<p>If your host lets you, you can try disabling the <em>psr</em> extension, as it sounds like that's the most probable fix, but I should be able to give you a more concrete answer if you can provide the exact error message text, along with any other details you have.</p>]]></description>
          <pubDate>Wed, 26 Aug 2026 13:14:56 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248478#post2248478</guid>
        </item>
                <item>
          <title>loadINI: Undefined array key &quot;PATH_INFO&quot; while upgrading from 2.14 to 3.65</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248477#post2248477</link>
          <description><![CDATA[<p>That's great.&nbsp; Thank you for getting back to me.</p>
]]></description>
          <pubDate>Wed, 26 Aug 2026 12:23:09 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248477#post2248477</guid>
        </item>
                <item>
          <title>OfflineMode plugin on new share host</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248476#post2248476</link>
          <description><![CDATA[<p>Hi Jeff,</p>
<p>I am assuming here that you are using offlineMode v1.02.&nbsp;</p>
<p>Around line 264 in the offlineMode_getUrl() function, you see a $curl_options being set with CURLOPT_USERAGENT. Change that line to...</p>
<pre class="language-php"><code>$curl_options = [CURLOPT_USERAGENT =&gt; $userAgent, CURLOPT_TIMEOUT =&gt; 10];</code></pre>
<p>You can give that a try and test different values. You don't want it to be too long. Currently the default is set to 4.&nbsp;</p>
<p>I believe that will achieve what you are looking for when it comes to setting CURL timeouts. I am not sure if this is going to solve the issue if the script is hanging for another reason. Worth giving it a try.</p>
<p>Let us know if it works out for you.</p>]]></description>
          <pubDate>Wed, 26 Aug 2026 11:58:29 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248476#post2248476</guid>
        </item>
                <item>
          <title>OfflineMode plugin on new share host</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248475#post2248475</link>
          <description><![CDATA[<p>My offlineMode plugin is timing out. Support says to increase the timeout in the script, but it seems to be outside the script. Where do I set the timeouts for curl?</p>]]></description>
          <pubDate>Wed, 26 Aug 2026 11:45:53 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248475#post2248475</guid>
        </item>
                <item>
          <title>loadINI: Undefined array key &quot;PATH_INFO&quot; while upgrading from 2.14 to 3.65</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248474#post2248474</link>
          <description><![CDATA[<p>Hey Gary,</p>
<blockquote>
<p>I commented out the die() statement from within loadINI and it seemed to work without issue...at least that I have seen.</p>
</blockquote>
<p>That fix is fine to leave in, it won't cause any problems elsewhere.</p>
<p>We tracked down the root cause on our end, and it's patched in the next release.</p>]]></description>
          <pubDate>Wed, 26 Aug 2026 11:14:54 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248474#post2248474</guid>
        </item>
                <item>
          <title>loadINI: Undefined array key &quot;PATH_INFO&quot; while upgrading from 2.14 to 3.65</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248473#post2248473</link>
          <description><![CDATA[<p>Wow, that is strange...The PATH_INFO error was coming out of parse_ini_file which is built in to PHP.&nbsp;&nbsp;</p>
<p>I commented out the die() statement from within loadINI and it seemed to work without issue...at least that I have seen.</p>
<p>I'm going to do the same for the other site that is a problem right now, but food for thought on this one.&nbsp;&nbsp;</p>
]]></description>
          <pubDate>Tue, 25 Aug 2026 10:43:15 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248473#post2248473</guid>
        </item>
                <item>
          <title>loadINI: Undefined array key &quot;PATH_INFO&quot; while upgrading from 2.14 to 3.65</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248472#post2248472</link>
          <description><![CDATA[<p>I did that!</p>]]></description>
          <pubDate>Tue, 25 Aug 2026 09:55:38 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248472#post2248472</guid>
        </item>
                <item>
          <title>loadINI: Undefined array key &quot;PATH_INFO&quot; while upgrading from 2.14 to 3.65</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248471#post2248471</link>
          <description><![CDATA[<p>Hi Gary,&nbsp;</p>
<p>If you can fill out the 2nd level support request we can take a look for you to get you up and running ASAP:</p>
<p><a href="https://interactivetools.com/support/request/" rel="nofollow">https://interactivetools.com/support/request/</a></p>
]]></description>
          <pubDate>Tue, 25 Aug 2026 07:44:07 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248471#post2248471</guid>
        </item>
                <item>
          <title>loadINI: Undefined array key &quot;PATH_INFO&quot; while upgrading from 2.14 to 3.65</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248470#post2248470</link>
          <description><![CDATA[<p>Now I have two sites that won't upgrade because of loadINI: Undefined array key "PATH_INFO".&nbsp; I will have to solve this condition quickly.</p>
]]></description>
          <pubDate>Tue, 25 Aug 2026 07:38:38 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248470#post2248470</guid>
        </item>
                <item>
          <title>loadINI: Undefined array key &quot;PATH_INFO&quot; while upgrading from 2.14 to 3.65</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248469#post2248469</link>
          <description><![CDATA[<p>I am not running through the command line nor is there any more for the error message.&nbsp; That is it.&nbsp; I will look at the database directly to see if there are any scheduled tasks, but I doubt it.</p>
<p>I was hoping you'd have a bit of a better answer :).&nbsp; Oh well, I will try to solve it on my own.</p>
]]></description>
          <pubDate>Tue, 25 Aug 2026 05:03:41 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248469#post2248469</guid>
        </item>
                <item>
          <title>loadINI: Undefined array key &quot;PATH_INFO&quot; while upgrading from 2.14 to 3.65</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248468#post2248468</link>
          <description><![CDATA[<p>Hi Gary,</p>
<p>Well I know that $_SERVER["PATH_INFO"] would not be defined if you are attempting to run the code through the Command Line Interface (CLI) like can be done through scheduled tasks. I would start there in finding a cause. In the error message, does it show a filename and line number or is that just appearing on the front-end of the site as a generic error? Do you see anything in the error logs of CMSB?</p>
<p>Have you tried disabling all your scheduled tasks? I am not too familiar with the very old versions of CMSB so perhaps there is a script there that is breaking on the upgrade and could be ran through a scheduled task.</p>
<p>Let us know if you find any additional information. :)</p>]]></description>
          <pubDate>Mon, 24 Aug 2026 17:15:47 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248468#post2248468</guid>
        </item>
                <item>
          <title>loadINI: Undefined array key &quot;PATH_INFO&quot; while upgrading from 2.14 to 3.65</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248467#post2248467</link>
          <description><![CDATA[<p>I have a site that I have to upgrade from 2.14 to 3.65.&nbsp; I get the following error while doing the upgrade:</p>
<p><span>loadINI: Undefined array key "PATH_INFO"</span></p>
<p><span>This is at the earliest spot in the upgrade, so I think it's OK to not restore the database.&nbsp; If I take it back to the saved cmsAdmin folder, it comes up OK.</span></p>
<p>I looked at the software and it seems to be doing the right thing with PATH_INFO, but I can't say for sure.</p>
<p>I am looking at the code now, but there is quite a bit.&nbsp; Has anyone run into this?</p>

]]></description>
          <pubDate>Sat, 22 Aug 2026 07:06:51 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248467#post2248467</guid>
        </item>
                <item>
          <title>Whc.ca shared hosting</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248466#post2248466</link>
          <description><![CDATA[<p>Whc.ca has the psr extension enabled by default. This is causing CMSB developer console to fail to load.</p>
<p>I also use cacheing with Symphony/Cache via composer.</p>
<p>What is the recommended solution.&nbsp;</p>
]]></description>
          <pubDate>Fri, 21 Aug 2026 05:24:47 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248466#post2248466</guid>
        </item>
                <item>
          <title>this is a newer error customer reports, over last 2 months</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248464#post2248464</link>
          <description><![CDATA[<p>Hi Codee,</p>
<p>Thanks for the report! We tracked this down, and it's a timing issue with bulk uploads, not a permissions problem or an upload limit.</p>
<p>Two things are going on:</p>
<ol>
<li>The upload form doesn't limit how many files it sends at once. Browsers used to cap this at about 6 requests per server, but on newer hosting with HTTP/2 that cap is gone, so dropping 100 images can start 100 uploads at the same time. Each one is a separate server process resizing images into thumbnails, and 100 of those at once is likely what's causing the hangs.</li>
<li>Each upload request also cleans up old temporary upload files. With that many requests running at once, they all try to erase the same files - the first one wins, and the others report "No such file or directory". The CMS was treating that as an error, but nothing is actually wrong: the file was already removed. That's the "Unable to remove file" message your client is seeing.</li>
</ol>
<p>Here's a patch you can apply to the 3.84 site now. Both changes will also be in the next release.</p>
<p>In cmsb/lib/upload_storage_strategy.php (around line 123), find:</p>
<pre class="language-php"><code>if (!@unlink($filepath)) {
    $error  = "Unable to remove file '" .htmlencode($filepath). "'\n\n";
    $error .= "Please ask your server administrator to check permissions on that file and directory.\n\n";
    $error .= "The PHP error message was: " .errorlog_lastError(). "\n";
    throw new RuntimeException($error);
}</code></pre>
<p>And replace it with:</p>
<pre class="language-php"><code>if (!@unlink($filepath)) {
    clearstatcache(true, $filepath);
    if (is_file($filepath)) {
        \Itools\Cmsb\CMS::log("Unable to remove upload file '$filepath': " . errorlog_lastError());
    }
}</code></pre>
<p>Then in cmsb/lib/menus/default/edit_functions.js (around line 192), find 'multi' : true, and add this line below it:</p>
<pre class="language-php"><code>'simUploadLimit': 10,</code></pre>
<p>That uploads 10 files at a time - the rest queue up in the browser and go automatically, so your client can still select all 100 at once. It should take care of the hangs as well. After updating the .js file, have your client do a hard refresh (Ctrl+F5) so the browser picks up the new version.</p>
<p>Give that a try and let me know if that fixes it for your client. Thanks!</p>]]></description>
          <pubDate>Fri, 07 Aug 2026 15:42:51 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248464#post2248464</guid>
        </item>
                <item>
          <title>this is a newer error customer reports, over last 2 months</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248463#post2248463</link>
          <description><![CDATA[<p>While I did recently update this client's cmsb version (to 3.84), he says he's had this challenge for about 2 months (version 2.77).&nbsp; Sometimes, not every time, when he's uploading a lot of images at one time the browser/system hangs and locks up.&nbsp; Initially I put it off as a glitch, or the hosting company at those times was running tight on resources or had some temp issue.&nbsp; It just happened again, about an hour ago, but the error on the backend seems a little different than past ones so I'm writing in to see if there's something that can be done.</p>
<p>On the error list page (modified for privacy/security):</p>
<blockquote>
<p>#135579 - Unable to remove file '/home/xxxxxx/public_html/images/uploads/thumb2/35-img-6665-jpg.webp' Please ask your server administrator to check permissions on that file and directory. The PHP error message was: unlink(/home/xxxxxx/public_html/images/uploads/thumb2/35-img-6665-jpg.webp): No such file or directory<br />/home/xxxxxx/public_html/cmsuAMGP383/lib/upload_functions.php:679<br /><span class="label bg-secondary-subtle text-muted-bold px-2 py-1px">POST</span> <a href="https://xxxxxxxxxx.com/cmsuAMGP383/admin.php" rel="nofollow">https://xxxxxxxxxx.com/cmsuAMGP383/admin.php</a></p>
</blockquote>
<p>and inside the details of the error, the mention of the "upload strategy" file caught my attention:</p>
<blockquote>
<p>Backtrace</p>
<pre style="color:#24292e;">#0 Script started                                         at /home/xxxxxx/public_html/cmsuAMGP383/admin.php:0
#1 require()                                              at /home/xxxxxx/public_html/cmsuAMGP383/admin.php:82
#2 require()                                              at /home/xxxxxx/public_html/cmsuAMGP383/lib/menus/default/actionHandler.php:106
#3 require()                                              at /home/xxxxxx/public_html/cmsuAMGP383/lib/menus/default/uploadForm.php:4
#4 submitUploadForm()                                     at /home/xxxxxx/public_html/cmsuAMGP383/lib/menus/default/uploadForm_functions.php:24
#5 removeExpiredUploads()                                 at /home/xxxxxx/public_html/cmsuAMGP383/lib/menus/default/uploadForm_functions.php:38
#6 DefaultUploadStorageStrategy-&gt;removeUploadsForRecord() at /home/xxxxxx/public_html/cmsuAMGP383/lib/upload_functions.php:679
#7 RuntimeException thrown                                at /home/xxxxxx/public_html/cmsuAMGP383/lib/upload_storage_strategy.php:130
   -&gt; Unable to remove file '/home/xxxxxx/public_html/images/uploads/thumb2/35-img-6665-jpg.webp'

Please ask your server administrator to check permissions on that file and directory.

The PHP error message was: unlink(/home/xxxxxx/public_html/images/uploads/thumb2/35-img-6665-jpg.webp): No such file or directory<br /><br />and <br />RAW LOG DATA: <br />errfile          =&gt; "/home/xxxxxx/public_html/cmsuAMGP383/lib/upload_storage_strategy.php"<br />errline          =&gt; 130<br />errno            =&gt; "RuntimeException"<br />errstr           =&gt; "Unable to remove file '/home/xxxxxx/public_html/images/uploads/thumb2/35-img-6665-jpg.webp'\n\nPlease ask your server administrator to check permissions on that file and directory.\n\nThe PHP error message was: unlink(/home/xxxxxx/public_html/images/uploads/thumb2/35-img-6665-jpg.webp): No such file or directory\n"<br />exceptionClass   =&gt; "RuntimeException"<br />exceptionCode    =&gt; 0<br />externalFilePath =&gt; "/home/xxxxxx/public_html/cmsuAMGP383/lib/upload_functions.php"<br />externalLineNum  =&gt; 679<br />logType          =&gt; "exception"</pre>
</blockquote>
<p>&nbsp;So I am just wondering (because I'm still a programming neophyte) if the "upload strategy" file has some limiter in this case, or something?&nbsp; Or is it just a challenge with the hosts' resources?</p>
<p>It seems when he's uploading around 100 images at one time it occurs, and if he has a problem, he gets around it uploading 20 at a time (but it drives him crazy).&nbsp; I will mention here that there was a similar challenge that was worked out several years ago and he does have a plugin (built by IT) for resorting the images after saving.&nbsp;</p>

<p>Thank you for your attention to this.</p>]]></description>
          <pubDate>Tue, 04 Aug 2026 14:58:46 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248463#post2248463</guid>
        </item>
                <item>
          <title>Can we change the order of the activity buttons at the top of CMSB interface (like on a record editing page)?</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248460#post2248460</link>
          <description><![CDATA[<p>Thank you Christine, Dave and IT crew!</p>]]></description>
          <pubDate>Fri, 31 Jul 2026 15:49:19 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248460#post2248460</guid>
        </item>
                <item>
          <title>Can we change the order of the activity buttons at the top of CMSB interface (like on a record editing page)?</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248459#post2248459</link>
          <description><![CDATA[<p>Hi Codee,</p>
<blockquote>
<p>does it have to do with the '_action=' placement?</p>
</blockquote>
<p>That's exactly it - it's the '_action=save' that's doing it.</p>
<p>So '_action=save' is the internal name of the Save button, and the Save &amp; Copy plugin gives its own button that exact same internal name as well.</p>
<p>While the ordering plugin was matching on names, it saw two buttons called _action=save and kept them together, which is why Save &amp; Copy came along with Save when you moved it to the front.</p>
<p>I've attached an updated version of the plugin Dave posted that matches on the label shown on the button instead. The labels are all distinct, so Save &amp; Copy can now sit wherever you'd like.</p>
<p>For the specific order your customer wants:</p>
<pre class="language-php"><code>$buttonOrder = ['Save', 'Preview', 'Save &amp; Copy', 'Erase', 'Cancel'];</code></pre>

<p>Let me know if that works for him!</p>]]></description>
          <pubDate>Fri, 31 Jul 2026 14:18:31 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248459#post2248459</guid>
        </item>
                <item>
          <title>Can we change the order of the activity buttons at the top of CMSB interface (like on a record editing page)?</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248458#post2248458</link>
          <description><![CDATA[<p>Hi Dave,</p>
<p>It ALMOST works perfectly...I changed the top line order to be:</p>
<p>$buttonOrder = ['_action=save', 'preview', '*', 'Erase', 'cancel'];</p>
<p>but the "save and copy" button appears first...does it have to do with the '_action=' placement?</p>

<p>He prefers the following visual order: save &gt; preview &gt; save and copy &gt; erase &gt; cancel</p>
<p>Thank you kindly! This is awesome.</p>
]]></description>
          <pubDate>Thu, 30 Jul 2026 18:22:38 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248458#post2248458</guid>
        </item>
                <item>
          <title>Can we change the order of the activity buttons at the top of CMSB interface (like on a record editing page)?</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248457#post2248457</link>
          <description><![CDATA[<p>Hi Codee,</p>
<p>Happy to help with this one. In v3.83 we standardized the button order across all the admin pages: destructive actions (like Erase) on the far left, and the primary action (Save) always on the far right with Cancel beside it. That follows the convention Mac, iOS, and Android all use, but I can see how a change like that would throw off someone who's had years of muscle memory with the old layout.</p>
<p>I've attached a plugin that restores the buttons to their previous order (Cancel, Erase, Preview, Save). Just upload it to your cmsb/plugins/ folder and activate it under Admin → Plugins.</p>
<p>If your customer wants a different arrangement, there's a single line at the top of the plugin you can edit:</p>
<pre class="language-php"><code>// Buttons appear left to right in the order below - rearrange as desired
// '*' is where buttons added by other plugins appear, e.g. "Save &amp; Copy".
$buttonOrder = ['cancel', 'Erase', 'preview', '*', '_action=save'];</code></pre>
<p>Rearrange those as desired. The '*' is where buttons added by other plugins (like Save &amp; Copy) appear.</p>
<p>And good news on the "keep it from future changes" part: the plugin re-sorts whatever buttons the CMS generates, so the order will stick through future updates.</p>
<p>Let me know if that works for him!</p>
<p>Dave</p>]]></description>
          <pubDate>Thu, 30 Jul 2026 16:33:59 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248457#post2248457</guid>
        </item>
                <item>
          <title>Free Plugin - Content Exporter</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248456#post2248456</link>
          <description><![CDATA[<p>Hi Kenny,&nbsp;</p>
<p>Just tried this out.&nbsp; It's really slick, nice work!&nbsp; And thanks for contributing.&nbsp; I'm sure a lot of people will find this helpful.</p>]]></description>
          <pubDate>Thu, 30 Jul 2026 16:09:56 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248456#post2248456</guid>
        </item>
                <item>
          <title>Can we change the order of the activity buttons at the top of CMSB interface (like on a record editing page)?</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248455#post2248455</link>
          <description><![CDATA[<p>My customer's buttons at the top of a record editor page is erase &gt; save and copy &gt;preview &gt; cancel &gt; save (see screenshot attached).&nbsp; I know it's a "small" issue but it changed order after updating his cmsb versio from 3.77 to 3.84.&nbsp; He's kind of an older guy (78 yrs) and sometimes small changes can upset him a bit - but he's a fabulous guy so if I can easily rearrange the order for him (and keep it from future changes?) it would be a good thing to do for him.</p>
<p>Thank you in advance!</p>]]></description>
          <pubDate>Thu, 30 Jul 2026 15:56:11 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248455#post2248455</guid>
        </item>
                <item>
          <title>Free Plugin - Content Exporter</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248454#post2248454</link>
          <description><![CDATA[<p>Hi everyone,</p>
<p>I'm releasing a free plugin that exports your CMS Builder content straight from the database in nine formats - ready to hand to a developer or paste into an AI assistant like Claude or ChatGPT. I've been using it across my own sites and think it's ready for others to try.</p>
<p><strong>The Problem</strong></p>
<p>Every so often you need to get content <em>out</em> of CMS Builder - to hand a section off to a developer, migrate data, or give an AI assistant the full context of a site so it can answer questions or help you write. Copying records by hand is tedious, and a raw database dump is full of noise you don't want to share.</p>
<p><strong>The Solution</strong></p>
<p>Content Exporter gives you an admin dashboard where you pick any combination of tables, choose a format, and get clean, formatted output you can copy to the clipboard or download in one click. It runs entirely server-side inside your existing admin login - there's no API endpoint and no external service, so the data never leaves your server until you copy or download it. It's admin-only, and the download endpoint is CSRF-protected.</p>
<p><strong>Features</strong></p>
<ul>
<li><strong>Nine output formats</strong> - JSON (compact + pretty), Markdown, CSV, XML, YAML, SQL INSERT, HTML, and plain text — pick what fits the task</li>
<li><strong>Pick any combination of tables</strong> - a single section, several, or the whole site</li>
<li><strong>Per-export filters</strong> - skip hidden records, system fields, and upload metadata; strip HTML to make wysiwyg content AI-friendly</li>
<li><strong>Schema summary</strong> - optionally include a field-type/label map so the consumer knows the structure</li>
<li><strong>AI Prompt mode</strong> - wrap the output in a customizable preamble ({site} and {date} placeholders) for direct paste into Claude/ChatGPT</li>
<li><strong>Public URL injection</strong> - adds _publicUrl to records with a permalink so an AI can cite or link back</li>
<li><strong>Token count + size estimate</strong> - know whether the output will fit a context window before you paste it</li>
<li><strong>Copy or download</strong> - one-click clipboard copy, or a dated .json / .md / .csv (etc.) download</li>
<li><strong>Available-table picker</strong> in Settings - choose which tables appear on the dashboard; system, session, log, and account tables are skipped by default</li>
<li>Security and accessibility are top-of-mind with all plugins we develop</li>
</ul>
<p><strong>Download</strong></p>
<ul>
<li>GitHub:&nbsp;<a href="https://github.com/sagentic/cmsb-plugin-content-exporter" rel="nofollow">https://github.com/sagentic/cmsb-plugin-content-exporter</a></li>
<li>Screenshots &amp; direct download: <a href="https://public.sagentic.dev/plugins/" rel="nofollow">https://public.sagentic.dev/plugins/</a></li>
</ul>
<p><strong>Installation</strong></p>
<ol>
<li>Copy the&nbsp;contentExporter&nbsp;folder to&nbsp;/cmsb/plugins/</li>
<li>Log into CMS admin and activate the plugin</li>
<li>Access via Admin &gt; Plugins &gt; Content Exporter</li>
</ol>
<p><strong>Requirements</strong></p>
<ul>
<li>CMS Builder 3.50+</li>
<li>PHP 7.1+</li>
</ul>
<p><strong>Feedback Welcome</strong></p>
<p>I built this because I kept needing to feed site content to AI assistants and other developers in a clean, structured form. I'd love to hear your feedback, bug reports, or feature suggestions. MIT licensed - modify as needed.</p>]]></description>
          <pubDate>Mon, 20 Jul 2026 10:53:44 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248454#post2248454</guid>
        </item>
                <item>
          <title>Confirmation not waiting when deleting sections</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248452#post2248452</link>
          <description><![CDATA[<p>Hi All,</p>
<p>Thanks for the report! We were able to reproduce this locally and track it down, and we'll have this fixed in the next release.</p>
<p>If you'd like to patch it now, edit cmsb/lib/data-attr-handlers.js and search for "element.blur()"</p>
<p>And replace this:</p>
<pre class="language-javascript"><code>                if (!confirm(message)) {
                    e.preventDefault();
                    e.stopImmediatePropagation();
                    element.blur();
                }
            }
        });</code></pre>
<p>With this (adding ", true" before the final brace):</p>
<pre class="language-javascript"><code>            if (!confirm(message)) {
                    e.preventDefault();
                    e.stopImmediatePropagation();
                    element.blur();
                }
            }
        }, true);</code></pre>
<p>That makes the confirmation dialog run before anything else, so Cancel works again.</p>
<p>Hope that helps, and thanks so much for the bug report and confirmation!&nbsp; Let me know if you any other questions.</p>]]></description>
          <pubDate>Thu, 09 Jul 2026 19:17:18 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248452#post2248452</guid>
        </item>
                <item>
          <title>Changing manually created permalink to old does not redirect</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2248451#post2248451</link>
          <description><![CDATA[<p>Hi Chrstine,</p>
<p>Thank you so much for your help!</p>
<p>It is working now!</p>
<p>Hiroko</p>]]></description>
          <pubDate>Mon, 06 Jul 2026 07:08:46 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2248451#post2248451</guid>
        </item>
              </channel>
    </rss>
  