+ -
当前位置:首页 → 问答吧 → 简单的tp式实现rss

简单的tp式实现rss

时间:2011-08-01

来源:互联网

本人在用tp做毕业设计(一个音乐播客)时,由于自己写了个rss 的需求,所以也尝试了多个rss开源的类。但是英文还好,遇到中文,就只生成内容节点,浏览器里显示不出来。后来想了实在没办法,找了wp的rss代码,自己改了一下,居然能输出了。
因此,就着技术共享的原则,详细的说明下。希望对大家有帮助。

首先看下效果图:
这是订阅全站-火狐的,

这是世界之窗(ie内核)下。

分类订阅:


先看数据处理模块rss2:
由于是公共内容,我放在首模块IndexAction.class.php里的
public function rss2(){
        $Art = D("Article");
        if(isset($_GET['cid'])) {
            $cid = $_GET['cid'];
            $Class = D("Class");
            $Class = $Class->find($cid);
            $p['title'] = $Class['name'];
            $p['des'] = $Class['des'];
            $sitelink = 'http://'.$_SERVER['HTTP_HOST'].'__APP__/Index/rss2/cid/'. $cid;
            $Art = $Art->where('classid=' . $cid)->order('id desc')->select();
        }else{
            $p['title'] = '音乐无国界,好歌永流传--藏音阁。';
            $p['des']   = '这里有不同风格的不同歌手翻唱的同一首歌曲,同一种旋律,不一样的调调哦!';
            $sitelink = 'http://'.$_SERVER['HTTP_HOST'].'__APP__/Index/rss2';
            $Art = $Art->order('id desc')->select();
        }
        $this->assign("p", $p);
        $this->assign("siteLink", $sitelink);
        $this->assign("item", $Art);
        $this->display();
    }
解释
$Art = D("Article");//实例化Article表的对象,rss的来源
if(isset($_GET['cid'])) {}else{}//通过$_GET['cid'] 参数判断是查询全站还是某一分类的日志

$p['title'] = '音乐无国界,好歌永流传--藏音阁。';
            $p['des']   = '这里有不同风格的不同歌手翻唱的同一首歌曲,同一种旋律,不一样的调调哦!';

//全站的标题描述、分类的写在表里了
$cid = $_GET['cid'];
            $Class = D("Class");
            $Class = $Class->find($cid);
            $p['title'] = $Class['name'];
            $p['des'] = $Class['des'];


$sitelink = 'http://'.$_SERVER['HTTP_HOST'].'__APP__/Index/rss2';//全站频道链接
$sitelink = 'http://'.$_SERVER['HTTP_HOST'].'__APP__/Index/rss2/cid/'. $cid;//分类频道链接

$Art = $Art->order('id desc')->select();//全站数据
$Art = $Art->where('classid=' . $cid)->order('id desc')->select();//分类数据

#模板赋值并显示
$this->assign("p", $p);
$this->assign("siteLink", $sitelink);
$this->assign("item", $Art);
$this->display();


rss2显示模板rss2.html

[quote]/**
* RSS2 Feed Template for displaying RSS2 Posts feed.
*
* @package WordPress
*/
header('Content-Type: text/xml;charset=UTF-8');
?>

<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"

作者: yangweijie   发布时间: 2011-08-01