supeiste的模型分类页面中增加RSS功能
介绍一下在supeiste的模型分类页面中增加RSS功能的方法
1,修改mthemes/default/category.html.php文件
查找
<!--{loop $guidearr $value}--> >> <a href="$value[url]">$value[name]</a> <!--{/loop}--> |
在下面添加
<a href="#action/rss/catid/$_GET[mo_catid]/#"><img src="http://www.365coding.com/{S_URL}/templates/$_SCONFIG[template]/images/icon_rss_ext.gif"></a> |
2,修改rss.php文件
将整个文件全部替换为
<?php /* [SupeSite] (C) 2007-2009 Comsenz Inc. $Id: rss.php 13359 2009-09-22 09:06:19Z zhaofei $ $modify by zj 2010-07-23 23:49:23Z $ */ if(!defined('IN_SUPESITE')) { exit('Access Denied'); } $catid = empty($_SGET['catid'])?0:intval($_SGET['catid']); $rssdateformat = 'D, d M Y H:i:s T'; $query = $_SGLOBAL['db']->query("SELECT * FROM ".tname('categories')." WHERE catid='$catid'"); $catvalue = $_SGLOBAL['db']->fetch_array($query); if(empty($catvalue)) { $catid = 0; } $ismodel = 0; if($_SCONFIG['channel'][$catvalue['type']]['type']=='model') $ismodel = 1; $itemsarr = $wherearr = array(); $rssarr = array( 'charset' => $_SCONFIG['charset'], 'title' => $_SCONFIG['sitename'], 'link' => S_URL_ALL, 'description' => $_SCONFIG['sitename'], 'copyright' => 'Copyright(C) '.$_SCONFIG['sitename'], 'generator' => '365coding', 'lastBuildDate' => sgmdate($_SGLOBAL['timestamp'], $rssdateformat), 'items' => array() ); if(!empty($catid)) { $rssarr['title'] = $catvalue['name']; if($ismodel) $rssarr['link'] = S_URL.'/m.php?name='.$catvalue['nameid'].'&mo_catid='.$catid; else $rssarr['link'] = geturl('action/category/catid/'.$catvalue['catid'], 1); $rssarr['description'] = $catvalue['name']; $rssarr['copyright'] = 'Copyright(C) '.$_SCONFIG['sitename']; } $itemsarr = getrss($catid,$ismodel); if(!empty($itemsarr)) { foreach($itemsarr as $key => $value) { $zj_url = ''; if($ismodel) $zj_url = geturl('action/model/name/'.$catvalue['type'].'/itemid/'.$value['itemid'],1); else $zj_url = geturl('action/viewnews/itemid/'.$value['itemid'], 1); $rssarr['items'][] = array( 'title' => $value['subject'], 'link' => $zj_url, 'description' => $value['message'], 'category' => $value['name'], 'author' => $value['username'], 'pubDate' => sgmdate($value['dateline'], $rssdateformat) ); } } showrss($rssarr); function showrss($rssarr) { header("Content-type: application/xml"); echo '<?xml version="1.0" encoding="'.$rssarr['charset'].'"?> <rss version="2.0"> <channel> <title>'.$rssarr['title'].'</title> <link>'.$rssarr['link'].'</link> <description>'.$rssarr['description'].'</description> <copyright>'.$rssarr['copyright'].'</copyright> <generator>'.$rssarr['generator'].'</generator> <lastBuildDate>'.$rssarr['lastBuildDate'].'</lastBuildDate>'; if(!empty($rssarr['items'])) { foreach($rssarr['items'] as $key => $value) { echo '<item> <title>'.$value['title'].'</title> <link>'.$value['link'].'</link> <description><![CDATA['.$value['description'].']]></description> <category>'.$value['category'].'</category> <author>'.$value['author'].'</author> <pubDate>'.$value['pubDate'].'</pubDate> </item> '; } } echo ' </channel> </rss>'; } function getrss($catid,$ismodel) { global $_SGLOBAL, $_SCONFIG ; if($ismodel) include_once(S_ROOT.'/data/system/category.cache.php'); $rssarr = array(); $attacharr = array(); if(empty($_SCONFIG['rssnum'])) $_SCONFIG['rssnum'] = 10; if($ismodel){ $sql = "SELECT si.itemid, si.uid, si.username, si.subject, sn.*, si.dateline, c.name FROM ".tname($_SGLOBAL['category'][$catid]['type'].'items')." si INNER JOIN ".tname('categories')." c ON si.catid = c.catid LEFT JOIN ".tname($_SGLOBAL['category'][$catid]['type'].'message')." sn ON si.itemid = sn.itemid "; }else{ $sql = "SELECT si.itemid, si.uid, si.username, si.subject, sn.*, si.dateline, c.name FROM ".tname('spaceitems')." si INNER JOIN ".tname('categories')." c ON si.catid = c.catid LEFT JOIN ".tname('spacenews')." sn ON si.itemid = sn.itemid "; } if(!empty($catid)) { $sql .= " where si.catid='$catid' "; $sql .= " ORDER BY si.dateline DESC LIMIT 100"; } $query = $_SGLOBAL['db']->query($sql); while($items = $_SGLOBAL['db']->fetch_array($query)) { $othermsgarr = array(); $items['message'] = cutstr($items['message'], 255, 1); if(!empty($othermsgarr)) $items['message'] = implode('<br>', $othermsgarr).'<br>'.$items['message']; if(!empty($items['hash'])) $attacharr[] = trim($items['hash']); $rssarr[$items['itemid']] = $items; } return $rssarr; } ?> |
搞定