Seite 1 von 1
RSS/RDF
Verfasst: 18.11.2002 16:03
von Manjunja
Hi Leutz,
die Suchfunktion hat mich nicht wirklich weitergebracht ...
Also, ich nutze phpBB 2.0.3 und möchte gerne einen RSS/RDF-Newsfeed generieren.
Der Hintergund:
Ich habe auf dem einen Server meine HP mit PHPNuke 6.0 installiert und habe auf einen anderen Server eine Forum mit phpBB laufen. Sinn und Zweck der Sache ist es jetzt, eine gewisse Anzahl an Topics auf meiner HP anzuszeigen. Was ich dazu brauche ist eine RSS/RDF-Datei, da nur die von PHPNuke unterstützt wird.
Ich habe einen Link hier im Forum gefunden, der aber nur den unvollständigen Quellcode anzeigt:
http://www.itst.org/php/scripts/rdf.phps
Kann mir hier jemand weiterhelfe, es ist echt zum verzweifeln
Thx in @vance
Manjunja
Verfasst: 18.11.2002 17:02
von M@ster
Bei mir funktioniert es mit dieser Datei im Root Verzeichnis des Forums:
(Dateiname rdf.php)
Code: Alles auswählen
<?php
/***************************************************************************
* rdf.php
* -------------------
* begin : Saturday, Mar 2, 2002
* copyright : (C) 2002 Matthijs van de Water
* Sascha Carlin
* email : matthijs@beryllium.net
* sc@itst.org
*
* $Id: rdf.php,v 1.2 2002/04/15 13:15:01 mvdwater Exp $
*
*
***************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
/***************************************************************************
*
* PHPBB 2.0 RDF CONTENT SYNDICATOR
* Shows last active topics RDF XML form
*
***************************************************************************
*
* Put this file in your phpBB2 directory.
* You can call this script without parameters, what will
* result in an RDF with the 10 latest posts from all your forums.
* You can specify the number of posts via the url parameter count:
*
* http://www.domain.com/phpBB2/rdf.php?count=50
*
* This will result in an RDF file with the latest 50 posts from
* all your forums.
*
* You can also specify to look only at a specified forum using the
* fid parameter:
*
* http://www.domain.com/phpBB2/rdf.php?fid=9
*
* This will result in an RDF file with the latest 10 posts from
* your forum with the id 9.
*
* You can also mix the paramters:
*
* http://www.domain.com/phpBB2/rdf.php?fid=5&count=3
*
* will show you the latest 3 posts from forum 5.
*
* THIS SCRIPT WILL ONLY SHOW POSTS FROM PUBLIC FORUMS
*
***************************************************************************/
// XML and nocaching headers
header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
header ('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header ('Content-Type: text/xml');
// Includes of phpBB scripts
define ('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
// If not set, set the output count to 10
$count = ( !isset($HTTP_GET_VARS['count']) ) ? 10 : intval($HTTP_GET_VARS['count']);
$count = ( $count == 0 ) ? 10 : $count;
// Create main board url (some code borrowed from functions_post.php)
$script_name = preg_replace('/^\/?(.*?)\/?$/', '\1', trim($board_config['script_path']));
$viewtopic = ( $script_name != '' ) ? $script_name . '/viewtopic.' . $phpEx : 'viewtopic.'. $phpEx;
$index = ( $script_name != '' ) ? $script_name . '/index.' . $phpEx : 'index.'. $phpEx;
$server_name = trim($board_config['server_name']);
$server_protocol = ( $board_config['cookie_secure'] ) ? 'https://' : 'http://';
$server_port = ( $board_config['server_port'] <> 80 ) ? ':' . trim($board_config['server_port']) . '/' : '/';
$index_url = $server_protocol . $server_name . $server_port . $index;
$viewtopic_url = $server_protocol . $server_name . $server_port . $viewtopic;
$rdf = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>
<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://my.netscape.com/rdf/simple/0.9/\">
<channel>
<title>" . $board_config['sitename'] . " Forum</title>
<link>" . $index_url . "</link>
<description>" . $board_config['site_desc'] . "</description>
</channel>
";
$fid = ( isset($HTTP_GET_VARS['fid']) ) ? intval($HTTP_GET_VARS['fid']) : '';
$sql_where = ( !empty($fid) ) ? " AND f.forum_id = $fid " : " ";
// SQL statement to fetch active topics of public forums
$sql = "SELECT DISTINCT t.topic_title, t.topic_last_post_id, p.post_time, f.forum_name
FROM " . TOPICS_TABLE . " AS t, " . POSTS_TABLE . " AS p, " . FORUMS_TABLE . " AS f
WHERE
t.forum_id = f.forum_id
AND f.auth_view = " . AUTH_ALL . "
AND p.topic_id = t.topic_id
AND p.post_id = t.topic_last_post_id
$sql_where
ORDER BY p.post_time DESC LIMIT $count";
$topics_query = $db->sql_query($sql);
if ( !$topics_query )
{
die("Failed obtaining list of active topics");
}
else
{
$topics = $db->sql_fetchrowset($topics_query);
}
if ( count($topics) == 0 )
{
die("No topics found");
}
else
{
// $topics contains all interesting data
for ($i = 0; $i < count($topics); $i++)
{
$title = $topics[$i]['topic_title'];
$url = $viewtopic_url . "?" . POST_POST_URL . "=" . $topics[$i]['topic_last_post_id'] . "#" . $topics[$i]['topic_last_post_id'];
$rdf .= "
<item>
<title>" . $title . "</title>
<link>" . $url . "</link>
</item>
";
}
}
// Create RDF footer
$rdf .= "
</rdf:RDF>";
// Output the RDF
echo $rdf;
?>
Verfasst: 18.11.2002 17:03
von Simpson
Verfasst: 18.11.2002 17:08
von itst
Das Script auf itst.org ist das gleiche wie das unter
phpBB.de für Webmaster angebotene.
Verfasst: 18.11.2002 17:19
von Manjunja
Hi Leutz,
@Master
Thx, das funzt
@Simpson
Das würde wahrscheinlich auch gehen
@itst
Dann kannst Du meine eMail alias Micha, die ich Dir heute geschrieben habe vergessen
Manjunja
Verfasst: 18.11.2002 18:28
von M@ster
Freut mich

Womit greifst du die RDF Datei ab?