PDA

View Full Version : forum post widget that needs an evaluation


steven s
01-03-2010, 09:44 PM
Could someone please evaluate the coding.
I don't know what I am doing, other than I got it to work.
I'd like to learn where I can improve it.

What it does.
This is used for a calendar of events widget on my CMS homepage.
http://www.nccbmwcca.org
Each event is a forum post that uses a thread prefix 'chapter event' and the title begins with MM/DD/YYYY -.

The script uses today() to find any post starting with today().
It also adds a <br /> between each month.
It's pretty convoluted, in my opinion.

ob_start();

$output_bits = '';
$today_m = date("m");
$today_d = date("d");
$today_y = date("Y");
$spacer = $today_m; //used to separate months

$get_calendarofevents = vB::$db->query_read("
SELECT *
FROM ".TABLE_PREFIX."thread
WHERE prefixid='Chapter_Event' AND LEFT(title, 2) >= $today_m AND MID(title, 4, 2) >= $today_d AND MID(title, 7, 4) >= $today_y
ORDER BY title ASC");


while($calendarofevents = vB::$db->fetch_array($get_calendarofevents))
{
$str = substr($calendarofevents[title], 0, 2); //get month of event
if ( $str == $spacer )
{
$output_bits .='<a target="_blank" href="showthread.php?t='.$calendarofevent[threadid].'">'.$calendarofevents[title].'</a><br />';
}
else
{
$output_bits .='<br /><a target="_blank" href="showthread.php?t='.$calendarofevents[threadid].'">'.$calendarofevents[title].'</a><br />';
}
$spacer = $str;
}
$output = $output_bits;
ob_end_clean();
Thanks!

steven s
01-07-2010, 11:19 PM
I edited the script a bit.
Each thread found starts with MM/DD/YYYY -
I want to find only those threads that have today's date and future in the beginning of the title.

I thought I could create a variable
$today = date("m/d/Y");

and use LEFT(title, 10) >= $today as part of my search criteria.
Obviously it does not work.
http://www.nccbmwcca.org

How can I find only from today and future?

ob_start();
$output_bits = '';
$today = date("m/d/Y");
$spacer = date("m");

$get_schedule = vB::$db->query_read("
SELECT *
FROM ".TABLE_PREFIX."thread
WHERE prefixid='Chapter_Event' OR prefixid ='other' AND LEFT(title, 10) >= $today
ORDER BY title ASC");

while($schedule = vB::$db->fetch_array($get_schedule))
{

$str = substr($schedule[title], 0, 2); /* get month of event */

/* separates posts by month */

if ( $str == $spacer )
{
$output_bits .='<a target="_blank" href="showthread.php?t='.$schedule[threadid].'">'.$schedule[title].'</a><br />';
}
else
{
$output_bits .='<br /><a target="_blank" href="showthread.php?t='.$schedule[threadid].'">'.$schedule[title].'</a><br />';
}
$spacer = $str;
}
/* done */

$output = $output_bits;
ob_end_clean();