4thstar |
01-21-2013 09:42 PM |
Hello all.
I hope you dont mind me asking here, i wanted to create an rss feed for my events, i dont know php so its all trial and error for me..
I have edited the code as below which creates afilename.rss, when this file is called it shows an rss feed..
i had issues with some strange characters breaking the page but things seem ok..
I currently have this on my index page as a widget, it cant stay there as it will create to much server work.
Question...
can this be turned into a php file to run as a sheduled task? If so how?
many thanks in advance.
Carl
PHP Code:
ob_start(); global $db,$vbulletin; $calendarid="1"; $per_page = "60"; //################################################ $d=date("d"); $m=date("m"); $y=date("y"); $sdate = mktime(0, 0, 0, date("$m"), date("$d"), date("$y")); $edate = mktime(0, 0, 0, date("$m"), date("31"), date("$y")); $and=" and dateline_from >= '".$sdate."'";
$getevents=$db->query_read("SELECT eventid, event, title, customfields, dateline_from from " . TABLE_PREFIX . "event WHERE calendarid='".$calendarid."' $and order by dateline_from ASC LIMIT $per_page"); $count=0; if(!$db->num_rows($getevents)) { } else { WHILE ($events=$db->fetch_array($getevents)) { $eventdetails=$events['event']; $eventdetails=substr($eventdetails, 0, 300); $eventdetails .= "......"; $customfield=$events['customfields']; $customfield = str_replace('a:0:{}', '', $customfield ); $customfield =strstr ($customfield, '"'); $customfield = str_replace('"', '', $customfield ); $customfield = str_replace(';}', '', $customfield );
$dtitle=$events['title']; $did=$events['eventid']; $date = vbdate('d-m-y',$events['dateline_from'], false,true,false,true); $dateext = vbdate('l jS F Y',$events['dateline_from'], false,true,false,true); if ($count = 2){$class="alt2";}else {$class="alt1";} $year=date("Y"); $pagetitle = $f; $pagetitle .= " "; $pagetitle.=$year; $eventbits .="";
$dateext = htmlentities($dateext); $eventdetails = htmlentities($eventdetails);
$eventbitsExt .=" <item> <title>$dateext</title> <description><![CDATA[$eventdetails]]></description> <link><![CDATA[http://www.bidefordmarket.co.uk/calendar.php?do=getinfo&e=$did&c=$calendarid]]></link> <guid><![CDATA[000000$did]]></guid> <pubDate><![CDATA[$sdate]]></pubDate> </item> "; $count++; } }
$bidefordmarketeventlist = "bidefordmarketeventlist.rss"; $fh = fopen($bidefordmarketeventlist, 'w') or die("can't open file"); fwrite($fh, "<?xml version='1.0' encoding='UTF-8' ?> <rss version='2.0'> <channel> <title>Bideford Market Events</title> <description>This is the RSS feed for Bideford Markets Latest Events</description> <link>http://www.bidefordmarket.co.uk</link> <lastBuildDate>$sdate</lastBuildDate> <pubDate>$sdate</pubDate> <ttl>1800</ttl> ");
//$eventbitsExt = str_replace("?", "?", $eventbitsExt); //$eventbitsExt = str_replace("&", "&", $eventbitsExt);
$strfinda .= chr(150); $eventbitsExt = str_replace($strfinda, " ", $eventbitsExt);
fwrite($fh, $eventbitsExt); fwrite($fh, "</channel> </rss>"); fclose($fh);
$db->free_result($getevents); unset($events); $output=ob_get_contents(); ob_end_clean();
yes i know i probably look very tatty in the way i did things, but i am a novice with php :)
|