<?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%3AgregThomas</link>
        <description></description>
        <pubDate>Thu, 21 May 2026 03:12:18 -0700</pubDate>
        <language>en-us</language>
        <atom:link href="https://interactivetools.com/forum/forum-search.php?k=user%3AgregThomas&amp;rss=1" rel="self" type="application/rss+xml" />

                <item>
          <title>Mysql console plugin amendments not displaying in cms section editor</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2245442#post2245442</link>
          <description><![CDATA[<p>Hey Elliot,</p>
<p>In future, I'd recommend altering the names of tables and fields via the CMS itself. If I want to duplicate a section, I normally make a duplicate of the schema itself, then go into the CMS and it's automatically imported, then I can modify the fields from there.</p>
<p>To fix the issue with the unlinked fields, go to the cmsb/data/schema directory and open table_name.ini.php and rename the array keys that are the field names that have been changed. </p>
<p>Thanks!</p>
<p>Greg</p>]]></description>
          <pubDate>Fri, 05 Mar 2021 09:20:41 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2245442#post2245442</guid>
        </item>
                <item>
          <title>Connect membership to payment platform</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2245412#post2245412</link>
          <description><![CDATA[<p>Hi Andreas,</p>
<p>Would the subscription give the user access to certain features on the site? This is something that we've built before a few times using different methods.</p>
<p>One method is to use the Stripe subscription API to allow a user to sign up to certain monthly subscriptions, each month their subscription is automatically renewed until they cancel. </p>
<p>Another method is to use Simple Cart to create a one-off subscription product. When a user purchases the product we give them a subscription for a certain amount of time. Once that that has expired they have to purchase the product again. This method is much simpler for us to implement, but the subscription is not automatically renewed.</p>
<p>If this is something you'd be interested in us helping you with, you can send an email to support@interactivetools.com and I can give you more details.</p>
<p>Cheers,</p>
<p>Greg</p>]]></description>
          <pubDate>Wed, 24 Feb 2021 09:02:53 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2245412#post2245412</guid>
        </item>
                <item>
          <title>URGENT: No access to cmsAdmin after upgrade</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2245328#post2245328</link>
          <description><![CDATA[<p>Hey Arif, </p>
<p>I'll take a look into this one now. I've just responded to your support email asking for a few more details.</p>
<p>Thanks,</p>
<p>Greg</p>]]></description>
          <pubDate>Tue, 19 Jan 2021 15:29:02 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2245328#post2245328</guid>
        </item>
                <item>
          <title>Got error 28 from storage engine </title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244960#post2244960</link>
          <description><![CDATA[<p>Hey mbareara,</p>
<p>Is this on a fresh install of CMS builder, or has it started happening on a site that had been working previously? I've done some quick research into that error, it's coming from the MySQL server itself and usually happens when there isn't enough disk space remaining for MySQL to operate.</p>
<p>I'd recommend raising a support ticket with your hosting provider regarding the issue and asking them if they can resolve it, as I don't think its an error that's coming from CMS Builder itself.</p>
<p>Let me know if you have any additional questions.</p>
<p>Cheers,</p>
<p>Greg</p>]]></description>
          <pubDate>Thu, 06 Aug 2020 10:11:37 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244960#post2244960</guid>
        </item>
                <item>
          <title>Password reset link expiry time</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244956#post2244956</link>
          <description><![CDATA[<p>Thanks Greg, glad I was able to help! You could also add to the message that if the link has expired they can use the normal password reset page to generate another one. </p>]]></description>
          <pubDate>Wed, 05 Aug 2020 09:09:51 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244956#post2244956</guid>
        </item>
                <item>
          <title>Password reset link expiry time</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244953#post2244953</link>
          <description><![CDATA[<p>Hey Greg,</p>
<p>I'd highly recommend avoiding increasing the password reset time if possible, as you're reducing the security of your password reset process. Also, as you're changing a core function of one of our plugins we can't provide any support that arises from this change in future. First, you'll need to add this function to your user-password-request.php page after the viewer library has loaded:</p>
<pre class="language-php"><code>  function _custom_isValidPasswordResetCode($userNum, $resetCode) {
    $userNum = (int) $userNum;
  
    // load user
    $user = mysql_get(accountsTable(), $userNum);
    if (!$user) { return false; }
  
    // reset codes are valid for 24-48 hours, check both days
    $codeToday     = _generatePasswordResetCode($userNum, 0);
    $codeYesterday = _generatePasswordResetCode($userNum, -1);
    $threeDaysAgo  = _generatePasswordResetCode($userNum, -2);
    $fourDaysAgo   = _generatePasswordResetCode($userNum, -3);
    $validCodes    = array($codeToday, $codeYesterday, $threeDaysAgo, $fourDaysAgo);
    $isValid       = (int) in_array($resetCode, $validCodes);
  
    //
    return $isValid;
  }
</code></pre>
<p>Then, update the line that calls the _isValidPasswordResetCode (line 63 on the default user-password-request.php page) to use our updated function:</p>
<pre class="language-php"><code>    $isValidResetCode = _custom_isValidPasswordResetCode($_REQUEST['userNum'], $_REQUEST['resetCode']);
</code></pre>
<p>This code should increase the password security reset time from a maximum of 2 days to 4. </p>
<p>Thanks,</p>
<p>Greg</p>]]></description>
          <pubDate>Tue, 04 Aug 2020 09:56:50 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244953#post2244953</guid>
        </item>
                <item>
          <title>Password reset link expiry time</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244951#post2244951</link>
          <description><![CDATA[<p>Hey Greg,</p>
<p>The password reset link should remain active for up to 48 hours. Is this for resetting passwords on the front end of the site or in the CMS itself? Updating the reset password code in the CMS would require modifying the core codebase, so it's not recommended. But I can provide you with some sample code for updating the length of the password resets via the Website Membership plugin on the front end of the site if needed.</p>
<p>Cheers,</p>
<p>Greg</p>]]></description>
          <pubDate>Mon, 03 Aug 2020 09:39:54 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244951#post2244951</guid>
        </item>
                <item>
          <title>can&apos;t clear error log</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244945#post2244945</link>
          <description><![CDATA[<p>Thanks Craig!</p>
<p>I'm basing this on my understanding of your previous posts, so I can't be 100% sure. But, if you're using the same database for the old and new installation, the cmsb_ prefixed tables are likely from the old installation. I can't really make the call if you're safe to delete those tables without investigating myself. </p>
<p>If you do decide to delete them, you should ensure you make a full backup of the database before making any modifications and perhaps test by deleting a single table first (perhaps the error log) then confirming that change hasn't had any impact on the new installation. Also, I'd recommend confirming that none of your other sites is using this database and they could be the source of the cmsb_ prefixed tables as well.</p>
<p>You should also make sure that all of your front end pages are connected to the new CMS and any pages that perform CRUD functions on records are being made in the new tables. </p>
<p>Cheers,</p>
<p>Greg</p>]]></description>
          <pubDate>Thu, 30 Jul 2020 09:35:02 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244945#post2244945</guid>
        </item>
                <item>
          <title>can&apos;t clear error log</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244935#post2244935</link>
          <description><![CDATA[<p>Hey Craig,</p>
<p>A couple of questions to help me diagnose the issue:</p>
<ul><li>Are the other sections appearing in the database with the correct prefix? For example, is there a table called cms_accounts or cmsb_accounts?</li>
<li>It sounds like the old version of the CMS and upgraded version is on the same server, is that correct?</li>
</ul><p>Cheers,</p>
<p>Greg</p>]]></description>
          <pubDate>Wed, 29 Jul 2020 13:24:24 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244935#post2244935</guid>
        </item>
                <item>
          <title>Keeping prepopulated information in textarea after errors &amp; 1 more related issue</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244934#post2244934</link>
          <description><![CDATA[<p>Thanks Jerry! Good to hear it's up and running.</p>]]></description>
          <pubDate>Wed, 29 Jul 2020 08:48:12 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244934#post2244934</guid>
        </item>
                <item>
          <title>Keeping prepopulated information in textarea after errors &amp; 1 more related issue</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244923#post2244923</link>
          <description><![CDATA[<p>Hey Jerry, sorry I've been slow to get back to you on this one. </p>
<p>I think I've worked out the source of the issue, on line 146 the form starts that submits the updater record, but it doesn't include the record number. So when the form submits the page can no longer find the record it's supposed to be updating. </p>
<p>If you change line 145 from this:</p>
<pre class="language-php"><code>&lt;form method="post" action="?"&gt;
  &lt;input type="hidden" name="save" value="1" /&gt;
  &lt;table border="0" cellspacing="0" cellpadding="2"&gt;</code></pre>
<p>to this:</p>
<pre class="language-php"><code>&lt;form method="post" action="?"&gt;
  &lt;input type="hidden" name="save" value="1" /&gt;
  &lt;input type="hidden" name="recNum" value="&lt;?php echo intval($recNum); ?&gt;" /&gt;
  &lt;table border="0" cellspacing="0" cellpadding="2"&gt;
</code></pre>
<p>Let me know if this resolves this issue.</p>
<p>Thanks!</p>
<p>Greg</p>]]></description>
          <pubDate>Tue, 28 Jul 2020 10:41:51 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244923#post2244923</guid>
        </item>
                <item>
          <title>Adding additional  specific refers to eliminate external source security warnings</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244887#post2244887</link>
          <description><![CDATA[<p>Hey Jerry, </p>
<p>I'm not sure what's causing that, are there any errors appearing in the error log? It might be that an error is appearing somewhere and causing the formatting of the page to be off. </p>
<p>Cheers,</p>
<p>Greg</p>]]></description>
          <pubDate>Wed, 08 Jul 2020 09:05:07 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244887#post2244887</guid>
        </item>
                <item>
          <title>Adding additional  specific refers to eliminate external source security warnings</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244881#post2244881</link>
          <description><![CDATA[<p>Hey Jerry,</p>
<p>It would be great if you could give me a few more details on why users from those search pages are being redirected into the CMS, I'd recommend trying to avoid having that action happen if possible.</p>
<p>But if it is necessary, updating your code to the following should work:</p>
<pre class="language-php"><code>  $programBaseUrl = _security_getProgramBaseRefererUrl();
  $popsearch1= '<a href="https://popupdude.com/search.php" rel="nofollow">https://popupdude.com/search.php</a>';
  $popsearch2= '<a href="https://popupdude.com/m/search.php" rel="nofollow">https://popupdude.com/m/search.php</a>';
  $isInternalReferer = ( startsWith($programBaseUrl, $_SERVER['HTTP_REFERER']) || startsWith($popsearch1, $_SERVER['HTTP_REFERER']) || startsWith($popsearch2, $_SERVER['HTTP_REFERER']) );
  if (!$isInternalReferer) {
    $format = "Security Warning: A link from an external source has been detected and automatically disabled.\n";</code></pre>
<p>The problem was the previous code would pass true if any of the variables existed instead of passing a string, the code above will check if the referrer starts with the pop search 1 or 2 or the CMS base url.</p>
<p>As these are customizations to the CMS core, we can't provide any support if they cause any unforeseen issues, I'd recommend avoiding making these changes if you can.</p>
<p>Cheers,</p>
<p>Greg</p>
]]></description>
          <pubDate>Tue, 07 Jul 2020 12:03:33 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244881#post2244881</guid>
        </item>
                <item>
          <title>Use two upload fields in a listing</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244880#post2244880</link>
          <description><![CDATA[<p>Hey Furcat,</p>
<p>To expand on Deborah's answer a bit, I'd create two upload fields, one that contains the book cover image called 'cover_image' and one that contains the book PDF called 'pdf'. I'd limit the fields so that each can only contain one upload. With this setup, Deborah's code would return one image and pdf per book record.</p>
<p>Thanks,</p>
<p>Greg</p>]]></description>
          <pubDate>Tue, 07 Jul 2020 11:46:13 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244880#post2244880</guid>
        </item>
                <item>
          <title>UTM Google and other parameter problems</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244863#post2244863</link>
          <description><![CDATA[<p>Hey Everyone, </p>
<p>The problem was the function whereRecordNumberInUrl(0) would retrieve the number from the request before the internal link, so for the following link:<br /><br /><a href="https://www.example.com/order.php?location=2&amp;utm_medium=email&amp;utm_source=sharpspring&amp;sslid=MzM3NjQxMzWzMDcwBwA&amp;sseid=MzIwszAzMTA3NwQA&amp;jobid=75ea5113-e600-43aa-8a68-349d0be02a" rel="nofollow">https://www.example.com/order.php?location=2&amp;utm_medium=email&amp;utm_source=sharpspring&amp;sslid=MzM3NjQxMzWzMDcwBwA&amp;sseid=MzIwszAzMTA3NwQA&amp;jobid=75ea5113-e600-43aa-8a68-349d0be02a</a><b><u>9</u></b>f#/restaurants/nalleyfreshhuntvalley/1063/<br /><br />It would use the value 9 (the final number before the hash and after the question mark) instead of the actual correct location of 2.<br /><br />I've updated the code on the order page so that if it finds a location request variable, it will use that instead of the last value in the URL. Here is the updated code:<br /><br /></p>
<pre class="language-php"><code>$recordNum = (!empty($_REQUEST['location']))? intval($_REQUEST['location']) : getLastNumberInUrl();


list($locationsRecords, $locationsMetaData) = getRecords(array(
'tableName' =&gt; 'locations',
'where' =&gt; "`num` = ".$recordNum,
'loadUploads' =&gt; true,
'allowSearch' =&gt; true,
'limit' =&gt; '1',
));
$locationsRecord = @$locationsRecords[0];
if (!$locationsRecord) { dieWith404("Record not found!"); }</code></pre>

<p>Cheers,</p>
<p>Greg</p>]]></description>
          <pubDate>Mon, 29 Jun 2020 09:27:42 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244863#post2244863</guid>
        </item>
                <item>
          <title>Re: LinkArray include category permalink</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244842#post2244842</link>
          <description><![CDATA[<p>Hey Tom,</p>
<p>I think I understand now, so you want to show the <em>summary</em> field for entries from the listings section and the <em>title</em> field for entries from the home pages section?</p>
<p>The results returned by the <em>searchMultipleTables</em> function include the table name, you can use this to work out which results came from which table and display the appropriate data like this:</p>
<pre class="language-php"><code>&lt;?php if($record['tablename'] == 'homepages'): ?&gt;
  &lt;a href="&lt;?php echo $record['field5'] ?&gt;"&gt;&lt;?php echo $record['_title'] ?&gt;&lt;/a&gt;  &lt;!--This result was gained from the homepages table--&gt;
&lt;?php elseif($record['tablename'] == 'listings'): ?&gt;
  &lt;a href="&lt;?php echo $record['field3'] ?&gt;"&gt;&lt;?php echo $record['_summary'] ?&gt;&lt;/a&gt;  &lt;!--This result was gained from the listings table--&gt;
&lt;?php endif; ?&gt;</code></pre>
<p>Cheers,</p>
<p>Greg</p>]]></description>
          <pubDate>Thu, 25 Jun 2020 09:42:11 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244842#post2244842</guid>
        </item>
                <item>
          <title>Re: LinkArray include category permalink</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244836#post2244836</link>
          <description><![CDATA[<p>Hey Tom,</p>
<p>So the issue is that the search results are not being returned in the same set of results and you're having to call the <em>searchMultipleTables</em> function twice? I think the problem is that the variable searchTables is declared twice, which will remove the search options you've already set for the homepage. You need to remove it the second time it's appears:</p>
<pre class="language-php"><code>...
  'titleField'   =&gt; 'fullname',
  'summaryField' =&gt; 'fullname',
  'searchFields' =&gt; array('fullname'),
  'field5'       =&gt; 'permalink',
);

$searchTables = array(); //REMOVE THIS LINE!
$searchTables['listings'] = array(
  'viewerUrl' =&gt; 'movie.html',
  'titleField' =&gt; 'user_movie',
...</code></pre>
<p>Cheers,</p>
<p>Greg</p>]]></description>
          <pubDate>Wed, 24 Jun 2020 12:02:55 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244836#post2244836</guid>
        </item>
                <item>
          <title>Re: LinkArray include category permalink</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244830#post2244830</link>
          <description><![CDATA[<p>Hey Tom,</p>
<p>Thanks for posting your code, here is an example using your sections that should point you in the right direction:</p>
<pre class="language-php"><code>&lt;?php
  /* STEP 1: LOAD RECORDS - Copy this PHP code block to the TOP of your page BEFORE anything else. */
  require_once "init.php";

  list($listingRecords, $listingDetails) = getRecords(array(
    'tableName' =&gt; 'listings',
    'joinTable' =&gt; 'homepages',
    'perPage'   =&gt; '16',
  ));

$homePageNums    = [];
$homepageRecords = [];

//Step 1) Get all of the home page values
foreach($listingRecords as $listing) {
  if(!empty($listing['model:values'])) {
    foreach($listing['model:values'] as $modelNum) {
      if(!in_array($modelNum, $homePageNums)) {
        $homePageNums[] = $modelNum;
      }
    }
  }
}

//Step 2) Get all of the home page records that are used by the listings
if($homePageNums) {
  list($homepageRecords, $homepageDetails) = getRecords(array(
    'tableName'   =&gt; 'homepages',
    'where'       =&gt; '`num` IN('.mysql_escapeCSV($homePageNums).')',
    'allowSearch' =&gt; false,
  ));
  //Group them by the home page num to make them easy to find
  $homepageRecords = array_groupBy($homepageRecords, 'num');
}


?&gt;
&lt;!-- listing-item-container --&gt;
&lt;?php foreach ($listingRecords as $listing): ?&gt;
  &lt;?php foreach ($listing['model:values'] as $modelNum): ?&gt;
    &lt;!-- Get the linked home page record from the home page records array --&gt;
    &lt;?php $homepage = ($homepageRecords[$modelNum])? $homepageRecords[$modelNum] : [] ?&gt;
    &lt;?php if($homepage): ?&gt;
      &lt;a href="&lt;?php echo $homepage['_link']; ?&gt;"&gt;&lt;?php echo $homepage['fullname']; ?&gt;&lt;/a&gt;
    &lt;?php endif; ?&gt;
  &lt;?php endforeach ?&gt;
&lt;?php endforeach ?&gt;
&lt;!-- listing-item end --&gt;</code></pre>
<p>So the code above collects all num values for the home pages that are used on this page, then collects the home page records and groups them by their num to make them easier to find later on.</p>
<p>Then, when you're cycling through all the listings, the code checks if a home page record is in the array that has that num, then displays it if it exists. </p>
<p>Cheers,</p>]]></description>
          <pubDate>Tue, 23 Jun 2020 09:52:27 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244830#post2244830</guid>
        </item>
                <item>
          <title>Contact Form - SendMessage</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244829#post2244829</link>
          <description><![CDATA[<p>Hey AlanAlonso, </p>
<p>You can call the <em>emailTemplate_loadFromDB</em> and <em>sendMessage</em> functions for each email that you need to send. For example, if you have two templates called TEST-MAIL-ME and TEST-MAIL-ME-2, you could send both using the following code:</p>
<pre class="language-php"><code>if (!$errorsAndAlerts) {
  
  //Create the placeholders that will be used in both emails
  $placeholders = [
    'visitor.name'      =&gt; $fullname,
    'visitor.email'     =&gt; $email,
    'visitor.phone'     =&gt; $phone,
    'visitor.message'   =&gt; $message,
    'visitor.agree'     =&gt; $agree,
  ];

  //Send the first email
  $emailHeaders = emailTemplate_loadFromDB(array(
    'template_id'        =&gt; 'TEST-MAIL-ME',
    'addHeaderAndFooter' =&gt; false,
    'placeholders'       =&gt; $placeholders,
  ));
  $mailErrors = sendMessage($emailHeaders);


  //Send the second
  $emailHeaders = emailTemplate_loadFromDB(array(
    'template_id'        =&gt; 'TEST-MAIL-ME-2',
    'addHeaderAndFooter' =&gt; false,
    'placeholders'       =&gt; $placeholders,
  ));
  $mailErrors = sendMessage($emailHeaders);
</code></pre>
<p>This just example code, so you'll have to make a few changes to get it working (for example; updating the email template ID's), but it should point you in the right direction.</p>
<p>Cheers,</p>]]></description>
          <pubDate>Tue, 23 Jun 2020 09:21:04 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244829#post2244829</guid>
        </item>
                <item>
          <title>Re: LinkArray include category permalink</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244819#post2244819</link>
          <description><![CDATA[<p>Hey Tom,</p>
<p>You'll need to create a foreach loop at the top of the page that gets all of the subcategory num's into a single array then makes a call to the database to select all the num values in one go using a MySQL IN statement.</p>
<p>Would it be possible to post the code you've created so far that shows all the permalinks? Then I can give you more details on how to set this up.</p>
]]></description>
          <pubDate>Mon, 22 Jun 2020 12:34:18 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244819#post2244819</guid>
        </item>
                <item>
          <title>Create record here functionality in a multi image upload field?</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244818#post2244818</link>
          <description><![CDATA[<p>Hey Jerry, </p>
<p>This is a great idea, I've added it to our internal list of feature requests. It would also be possible to create this feature using a plugin if it's something you'd be interested in us developing for you. If it is, you send an email to support@interactivetools.com and I can give you an estimate for building it.</p>
<p>Cheers,</p>
<p>Greg</p>]]></description>
          <pubDate>Mon, 22 Jun 2020 12:20:33 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244818#post2244818</guid>
        </item>
                <item>
          <title>Related Pages using leftJoin?</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244817#post2244817</link>
          <description><![CDATA[<p>Hey Tim,</p>
<p>Your method would work great, the only change I would make is to check the <em>related_pages</em> values exist before imploding them, or you might get an error:</p>
<pre class="language-php"><code>&lt;?php

  // load record from 'pages'
  list($pagesRecords, $pagesMetaData) = getRecords(array(
  'tableName'   =&gt; 'pages',
  'where'       =&gt; '`num` =' .$selectedCategory['num'],
  'loadUploads' =&gt; true,    'allowSearch' =&gt; false,
  'limit'       =&gt; '1',
  ));

  $pagesRecord = @$pagesRecords[0]; // get first record
  if (!$pagesRecord) { dieWith404("Record not found!"); } // show error message if no record found

  if (!empty($related['related_pages:values'])) {
    $relatedNums = implode(", ", $related['related_pages:values']);
    if($relatedNums) { $pagesRecord['related_pages:records'] = mysql_select('pages', "`num` IN ($relatedNums)"); }
  }</code></pre>
<p>I also noticed that the HTML contains an image URL, so you might need to swap out the mysql_select for a getRecords so that the upload records are included.</p>
<p>Cheers,</p>
<p>Greg</p>]]></description>
          <pubDate>Mon, 22 Jun 2020 12:12:31 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244817#post2244817</guid>
        </item>
                <item>
          <title>Blank Page after save</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244720#post2244720</link>
          <description><![CDATA[<p>Hey petrogus,</p>
<p>I've not come across that issue before, it would be great if I could have a look at the site affected so I can work out the source of the issue.</p>
<p>Please could you send an email to support@interactivetools.com and include the URL and login credentials for the sites CMS, as well as the FTP credentials?</p>
<p>Thanks!</p>
]]></description>
          <pubDate>Thu, 14 May 2020 14:29:26 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244720#post2244720</guid>
        </item>
                <item>
          <title>Auto create hyperlinks from multiple URLs in a text box</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244719#post2244719</link>
          <description><![CDATA[<p>Hey Jerry,</p>
<p>Your mention of the forum made me think of a really easy way to do this. Do you have a copy of the Simple Forum plugin? If you do, it comes with a function that will convert any URL's it finds to links as well as removing any malicious looking HTML from a string. If you had the Simple Forum plugin installed you could call the function anywhere in your site like this:</p>
<pre class="language-php"><code>&lt;?php
  include_once 'cmsb/lib/viewer_functions.php'; //Include the viewer functions (if not already included)
  $testString = 'Here is my test string with a URL: <a href="https://www.google.com" rel="nofollow">https://www.google.com</a>'; //Example string which you want any URLs converted to links.
  $testString = sforum_cleanAndFormatHTML($testString); //Forum function to convert the url to a link.
  echo $testString; //Display the string</code></pre>
<p>If you don't have that plugin, I found this article from css-tricks.com that explains how you can convert a URL to a link:</p>
<p><a href="https://css-tricks.com/snippets/php/find-urls-in-text-make-links/" rel="nofollow">https://css-tricks.com/snippets/php/find-urls-in-text-make-links/</a></p>
<p>I've not tested the method in this article, but css-tricks are normally reputable. It also looks like it wouldn't be difficult to modify this method to add the span around the link.</p>
<p>Thanks!</p>]]></description>
          <pubDate>Thu, 14 May 2020 14:21:16 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244719#post2244719</guid>
        </item>
                <item>
          <title>Contact Form - SendMessage</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2244715#post2244715</link>
          <description><![CDATA[<p>Hey petrogus,</p>
<p>Good to hear the issue is resolved.</p>
<p>When sending the values from a set of multi-select checkbox fields, the simplest solution is to send the values as a comma-separated string using the implode function.</p>
<p>For example, if you had a set of multi-select checkboxes like this:</p>
<pre class="language-markup"><code>&lt;input name="cities[]" value="London" /&gt;
&lt;input name="cities[]" value="New York" /&gt;
&lt;input name="cities[]" value="Tokyo" /&gt;</code></pre>
<p>You could add the values as a placeholder to your email using the following method:</p>
<pre class="language-php"><code>  $cities = "";
  if( !empty($_REQUEST['cities']) &amp;&amp; is_array($_REQUEST['cities']) ) {
    $cities = implode(", ", $_REQUEST['cities']);
  }

  $placeholders = [
    'visitor.name'      =&gt; $fullname,
    'visitor.email'     =&gt; $email,
    'visitor.phone'     =&gt; $phone,
    'visitor.message'   =&gt; $message,
    'visitor.agree'     =&gt; $agree,
    'visitor.cities'    =&gt; $cities
  ];</code></pre>
<p>This is just sample code, so you'll probably need to make a few changes to get it working with your codebase, but hopefully, it will point you in the right direction.</p>
<p>Thanks!</p>
<p>Greg</p>]]></description>
          <pubDate>Tue, 12 May 2020 10:39:46 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2244715#post2244715</guid>
        </item>
              </channel>
    </rss>
  