简单生活

Simple life , it's as easy as 1,2,3...

PHP168的RSS优化

RSS目前还只能算是小众应用,随着QQ邮箱、QZone阅读空间的推出,相信RSS订阅会被更多人接受并使用。在Blog程序中对RSS的依赖要大于CMS程序,RSS订阅数量也作为blogger们衡量自己blog好坏的一个标准,CMS程序一般对此没有过多的追求。

在PHP168中,开启了全站静态的情况下,RSS输出中的地址仍然是动态地址。默认的模板中是没有加入RSS订阅的代码的,可能很多新手甚至不知道PHP168有RSS输出的功能。

本文将就以上问题对PHP168进行一些简单合理的优化。

1、在PHP168模板中加入RSS订阅的代码

打开head.htm模板,在<head></head>之间加入以下代码

XML/HTML代码复制内容到剪贴板
  1. <link rel="alternate" type="application/rss+xml" title="RSS" href="$webdb[www_url]/do/rss.php?fid=$fid" />  

2、修改源文件达到输出静态url的目的

打开do/rss.php,找到66行至74行

PHP代码复制内容到剪贴板
  1.     $erp=$Fid_db[iftable][$fid];  
  2.     $query = $db->query("SELECT * FROM {$pre}article$erp WHERE fid='$fid' AND yz=1 ORDER BY aid DESC LIMIT 30");  
  3.     while($rs = $db->fetch_array($query)){  
  4.         $rs[posttime]=date("r",$rs[posttime]);  
  5. print<<<EOT  
  6. <item>  
  7.  <title><![CDATA[{$rs[title]}]]></title>  
  8.  <description><![CDATA[{$rs[description]}]]></description>  
  9.  <link><![CDATA[{$webdb[www_url]}$webdb[path]/bencandy.php?fid={$rs[fid]}&id={$rs[aid]}]]></link>  

修改为

PHP代码复制内容到剪贴板
  1.     $erp=$Fid_db[iftable][$fid];  
  2.     $query = $db->query("SELECT * FROM {$pre}article$erp WHERE fid='$fid' AND yz=1 ORDER BY aid DESC LIMIT 30");  
  3.     while($rs = $db->fetch_array($query)){  
  4.         $rs[posttime]=date("r",$rs[posttime]);  
  5.   
  6.         if($webdb[NewsMakeHtml]==1){  
  7.             global $rsdb,$aid,$fidDB,$fid,$page;  
  8.             $rsdb = $rs;  
  9.             $aid  = $rs[aid];  
  10.             $fid  = $rs[fid];  
  11.             $page = 1;  
  12.             $fidDB$db->get_one("SELECT * FROM {$pre}sort WHERE fid='$rs[fid]'");  
  13.             $array= get_html_url();  
  14.             $showurl  = $array[showurl];  
  15.         }else{  
  16.             $showurl = replace_url("$webdb[www_url]$webdb[path]/bencandy.php?fid={$rs[fid]}&id={$rs[aid]}");  
  17.         }  
  18.           
  19.         $_fiddb[$fid]++;  
  20.   
  21. print<<<EOT  
  22. <item>  
  23.  <title><![CDATA[{$rs[title]}]]></title>  
  24.  <description><![CDATA[{$rs[description]}]]></description>  
  25.  <link><![CDATA[{$showurl}]]></link>  

关于静态地址的获得参考了 admin/googlemap.php

3、首页输出全站内容

在首页fid为0,这时输出网站的栏目目录,而不是全站内容,这是绝对影响用户体验的。

还是打开do/rss.php,27行至37行

PHP代码复制内容到剪贴板
  1.     $query = $db->query("SELECT * FROM {$pre}sort WHERE fup=0");  
  2.     while($rs = $db->fetch_array($query)){  
  3.   
  4. print<<<EOT  
  5. <item>  
  6.  <title><![CDATA[{$rs[name]}]]></title>  
  7.  <description><![CDATA[]]></description>  
  8.  <link><![CDATA[{$webdb[www_url]}{$webdb[path]}/list.php?fid={$rs[fid]}]]></link>  
  9.  <author><![CDATA[{$rs[admin]}]]></author>  
  10.  <category><![CDATA[{$rs[descrip]}]]></category>  
  11.  <pubdate><![CDATA[{$time}]]></pubdate>  

修改为

PHP代码复制内容到剪贴板
  1.     $query = $db->query("SELECT * FROM {$pre}article WHERE yz=1 ORDER BY aid DESC LIMIT 30");  
  2.     while($rs = $db->fetch_array($query)){  
  3.         $rs[posttime]=date("r",$rs[posttime]);  
  4.   
  5.         if($webdb[NewsMakeHtml]==1){  
  6.             global $rsdb,$aid,$fidDB,$fid,$page;  
  7.             $rsdb = $rs;  
  8.             $aid  = $rs[aid];  
  9.             $fid  = $rs[fid];  
  10.             $page = 1;  
  11.             $fidDB$db->get_one("SELECT * FROM {$pre}sort WHERE fid='$rs[fid]'");  
  12.             $array= get_html_url2();  
  13.             $showurl  = $array[showurl];  
  14.         }else{  
  15.             $showurl = replace_url("$webdb[www_url]$webdb[path]/bencandy.php?fid={$rs[fid]}&id={$rs[aid]}");  
  16.         }         
  17.   
  18. print<<<EOT  
  19. <item>  
  20.  <title><![CDATA[{$rs[title]}]]></title>  
  21.  <description><![CDATA[{$rs[description]}]]></description>  
  22.  <link><![CDATA[{$showurl}]]></link>  
  23.  <author><![CDATA[{$rsdb[username]}]]></author>  
  24.  <category><![CDATA[{$rsdb[keywords]}]]></category>  
  25.  <pubdate><![CDATA[{$rs[posttime]}]]></pubdate>  

4、在大分类中无法正常输出

还没有仔细研究,日后会给出合理解决方案。

« 09年最后一天最后一次 Google PageRank更新2009年11月起床时间统计图 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-Blog 1.8 Walle Build 91204

©2007-2010 Wilf.cn - 皖ICP备07003355号 - About - Archiver - TOP