简单的tp式实现rss
时间:2011-08-01
来源:互联网
本人在用tp做毕业设计(一个音乐播客)时,由于自己写了个rss 的需求,所以也尝试了多个rss开源的类。但是英文还好,遇到中文,就只生成内容节点,浏览器里显示不出来。后来想了实在没办法,找了wp的rss代码,自己改了一下,居然能输出了。
因此,就着技术共享的原则,详细的说明下。希望对大家有帮助。
首先看下效果图:
这是订阅全站-火狐的,
这是世界之窗(ie内核)下。
分类订阅:
先看数据处理模块rss2:
由于是公共内容,我放在首模块IndexAction.class.php里的
$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/"
因此,就着技术共享的原则,详细的说明下。希望对大家有帮助。
首先看下效果图:
这是订阅全站-火狐的,
这是世界之窗(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");
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28