网络营销电子商务研究中心

网络营销电子商务研究中心 (https://www.0058.net/index.php)
-   vBulletin技术交流 (https://www.0058.net/forumdisplay.php?f=6)
-   -   Vbulletin Display your latest threads on an external page using an RSS2 feed (https://www.0058.net/showthread.php?t=5070)

Maine 2015-04-05 03:11 PM

Vbulletin Display your latest threads on an external page using an RSS2 feed
 
This post explains what needs to be done to include the 10 latest threads from your forums on an external PHP page using the RSS2 feed.

1. Near the top of your php page, but after the <?php code include the following:
Code:

// ######################################################
// ## configuration
 // ##
 // ## $rss2_file= 'http://www.vbulletin.com/forum/external.php?type=rss2';
 // ## Adjust this variable to point to your RSS2 feed
 
 $rss2_file = 'http://www.vbulletin.com/forum/external.php?type=rss2';
   
 // ## configuration end
 // ######################################################
 // ## Do not touch code below!
   
   
 $is_item = false;
 $tag = '';
 $title = '';
 $description = '';
 $link = '';
 $date = '';
 $author = '';
   
 function character_data($parser, $data)
 {
    global $is_item, $tag, $title, $description, $link, $date, $author;
    if ($is_item)
    {
        switch ($tag)
        {
            case "TITLE":
            $title .= $data;
            break;
   
            case "DESCRIPTION":
            $description .= $data;
            break;
   
            case "LINK":
            $link .= $data;
            break;
   
            case "PUBDATE":
            $date .= $data;
            break;
   
            case "AUTHOR":
            $author .= $data;
            break;
        }
    }
 }
   
 function begin_element($parser, $name)
 {
    global $is_item, $tag;
    if ($is_item)
    {
        $tag = $name;
    }
    else if ($name == "ITEM")
    {
        $is_item = true;
    }
 }
   
 function end_element($parser, $name)
 {
    global $is_item, $title, $description, $link, $date, $author, $rss2_output;
    if ($name == "ITEM")
    {
        $rss2_output .= "<dt><strong><a href='" . trim($link) . "'>" . htmlspecialchars(trim($title)) . "</a></strong> - " . htmlspecialchars(trim($date)) . " by <em>" . htmlspecialchars(trim($author)) . "</em></dt><dd>" . htmlspecialchars(trim($description)) . "</dd>";
        $title = "";
        $description = "";
        $link = "";
        $date = "";
        $author = "";
        $is_item = false;
    }
 }
   
   
 $parser = xml_parser_create();
   
 xml_set_element_handler($parser, "begin_element", "end_element");
 xml_set_character_data_handler($parser, "character_data");
 $fp = fopen($rss2_file,"r");
   
 while ($data = fread($fp, 4096))
 {
    xml_parse($parser, $data, feof($fp));       
 }
   
 fclose($fp);
 xml_parser_free($parser);

2. Make sure to adjust the $xml_file variable at the very top of the code you just added.
3.Add the following code to wherever on that page you want to display the output:

Code:

echo $rss2_output;


All times are GMT +8. The time now is 10:38 PM.

Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.