Hi -
I added RSS 1.0 (RDF) functionality to my install of vB Journal. Basically, you have to change "SELECT journalist,journalist_id" to "SELECT journalist,journalist_id,journalname,journaldesc" in the downloadjournal section of journal.php, make sure your Unregistered usergroup can view journals in the Admin CP, and paste this code in journal.php after the XML download part:
Code:
// RSS 1.0 Begins
else if($type=="rss1")
{
require_once('./includes/class_bbcode.php');
$rss1_header .= "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n\r\n";
$rss1_header .= "<rdf:RDF\r\n";
$rss1_header .= " xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\r\n";
$rss1_header .= " xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\r\n";
$rss1_header .= " xmlns:content=\"http://purl.org/rss/1.0/modules/content/\"\r\n";
$rss1_header .= " xmlns=\"http://purl.org/rss/1.0/\"\r\n";
$rss1_header .= ">\r\n\r\n";
$rss1_header .= "<channel rdf:about=\"".$vbulletin->options['bburl']."/journal.php?do=downloadjournal&j=".$j."&type=rss1\">\r\n";
if ($journalinfo['journalname'] == "") { $journalinfo['journalname'] = $journalinfo['journalist'] . "'s Blog"; }
$rss1_header .= "<title>".htmlspecialchars($journalinfo['journalname'])."</title>\r\n";
$rss1_header .= "<link>".$vbulletin->options['bburl']."/journal.php?do=showjournal&j=".$j."</link>\r\n";
if (empty($journalinfo['journaldesc'])) { $journalinfo['journaldesc'] = $journalinfo['journalist']."'s Blog at ".$vbulletin->options['bbtitle']; }
$rss1_header .= "<description>".htmlspecialchars($journalinfo['journaldesc'])."</description>\r\n\r\n";
$rss1_header .= "<items>\r\n";
$rss1_header .= "\t<rdf:Seq>\r\n";
$totalentries = 0;
while($entry= $db->fetch_array($getentries))
{
if($entry['private']!=1)
{
$totalentries++;
$parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());
$entry['entrytext'] = $parser->do_parse($entry['entrytext']);
$entry['entrytext']= unhtmlspecialchars(stripslashes($entry['entrytext']));
$entry['entrytext']= ereg_replace("{smilies}", $vbulletin->options['bburl']."/images/smilies", $entry['entrytext']);
$entry['entrytitle']= stripslashes($entry['entrytitle']);
$rss1_header .= "\t\t<rdf:li rdf:resource=\"".$vbulletin->options['bburl']."/journal.php?do=showentry&e=".$entry['entry_id']."\" />\r\n";
$rss1_body .= "\t<item rdf:about=\"".$vbulletin->options['bburl']."/journal.php?do=showentry&e=".$entry['entry_id']."\">\r\n";
$rss1_body .= "\t\t<title>".htmlspecialchars($entry['entrytitle'])."</title>\r\n";
$W3CDTFdate = preg_replace("/(\+|\-)([0-9]{2})([0-9]{2})/","$1$2:$3", date("O",$entry['entrydate']));
$rss1_body .= "\t\t<dc:date>".date("Y-m-d",$entry['entrydate'])."T".date("H:i:s",$entry['entrydate']).$W3CDTFdate."</dc:date>\r\n";
$rss1_body .= "\t\t<link>".$vbulletin->options['bburl']."/journal.php?do=showentry&e=".$entry['entry_id']."</link>\r\n";
$rss1_body .= "\t\t<content:encoded><![CDATA[".$entry['entrytext']."]]></content:encoded>\r\n";
$rss1_body .= "\t\t<description>".htmlspecialchars(strip_tags($entry['entrytext']))."</description>\r\n";
$rss1_body .= "\t</item>\r\n\r\n";
}
if($totalentries=="15") { break; }
}
$rss1_header .= "\t</rdf:Seq>\r\n";
$rss1_header .= "</items>\r\n\r\n";
$rss1_header .= "</channel>\r\n\r\n";
$rss1_body .= "</rdf:RDF>";
$filestring = utf8_encode($rss1_header.$rss1_body);
$filename = "$journalinfo[journalist]_blog_".vbdate($vbulletin->options['dateformat'], TIMENOW).'.rdf';
header("Content-Type: application/rdf+xml; charset=utf-8");
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Content-Disposition: attachment; filename="' . $filename . '"');
header('Content-Length: ' . strlen($filestring));
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
echo $filestring;
}
// RSS 1.0 Ends
You'll then need to add a link to download it in the drop down menu. More as I figure it out...
Edit (2005-03-30): The template is called journal_journalpage - change type=xml to type=rss1 and XML Format to RSS 1.0 Format. Fixed problem with a missing private check.
Edit (2005-03-31): Added content:encoded CDATA, and removed UBB tags. Changed items to use URL instead of an arbitrary sequence number. I also like to change "ORDER by entrydate ASC" to DESC in downloadjournal, but this is personal preference.
Edit (2005-04-14): I've made quite a few changes to the code, namely adding UTF-8 encoding and using corresponding content-type, adding a check to make sure the journal title isn't empty, limiting the number of items to 15.
Edit (2005-11-28): Updated for vB 3.5.