Creating an Automatic News Archive - 2018 Version

3 posts by 2 authors in: Forums > CMS Builder
Last Post: May 2, 2018   (RSS)

By jreddigital - April 22, 2018 - edited: April 22, 2018

Hi,

I would like to do exactly what mizrahi, requested in this Post 2234008 [https://www.interactivetools.com/forum/forum-posts.php?postNum=2234008#post2234008]

My url for the test News Archive page is :  http://strafford.org/newsarchiveList.php

Current news items are shown on the home page of http://strafford.org and on this page http://strafford.org/notices.php 

Using the same table "notices_srpc" which holds news items, I would like to have items older than a year appear on another page "newsarchiveList.php" 

When I add Greg's suggested code from Post 2234008 for s separate listing of items a year old, as below, the page does not appear at all.

// load records from 'notices_srpc'
list($notices_srpcRecords, $notices_srpcMetaData) = getRecords(array(
'tableName' => 'notices_srpc',
'loadUploads' => true,
'allowSearch' => false,
'where' => "`createdDate` < '".date('Y-m-d H:i:s', strtotime('-1 year'))."')"
'ignoreRemoveDate' => true,
));


If the 'ignoreRemoveDate' is removed from the above, I get an error message as follows:

MySQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND `notices_srpc`.hidden = 0 AND `notices_srpc`.publishDate <= NOW() AND (`no' at line 3

I noticed a forum post from a user in Post 2235844 https://www.interactivetools.com/forum/forum-posts.php?postNum=2235844#post2235844 that they  received this kind of message after a server move.

Indeed after the CMSB was updated by you guys (thanks again) this site was recently moved to a new and better host. I suspect, however, that the where query isn't structured correctly.

I have left the test page (http://strafford.org/newsarchiveList.php) showing the error message. The code on it is:

// load viewer library
$libraryPath = 'cmsAdmin/lib/viewer_functions.php';
$dirsToCheck = array('/usr/home/straffordrpc/public_html/','','../','../../','../../../');
foreach ($dirsToCheck as $dir) { if (@include_once("$dir$libraryPath")) { break; }}
if (!function_exists('getRecords')) { die("Couldn't load viewer library, check filepath in sourcecode."); }

// load records from 'notices_srpc'
list($notices_srpcRecords, $notices_srpcMetaData) = getRecords(array(
'tableName' => 'notices_srpc',
'loadUploads' => true,
'allowSearch' => false,
'where' => "`createdDate` < '".date('Y-m-d H:i:s', strtotime('-1 year'))."')"
));

So in summary, can you help me get a News Archive List page showing items over a) 6 months old and b) over 1 year old? (The client can choose which range they want.)

I am assuming that the same Detail page can be used with both the Current News items and with the Archived News items.

Thanks in advance, J

Note: this site Running CMSB 3.10  and PHP v7.1.15 

macwebster

By leo - April 24, 2018

Hi,

You can try replacing the where statement with the following and see if the error is still there:

'where' => "`createdDate` < '".date('Y-m-d H:i:s', strtotime('-1 year'))."'"

Let me know if this works!

Thanks,

Leo - PHP Programmer (in training)
interactivetools.com