有个网站是用tipask来搭建的问答系统,今天客户要求添加热门问题模块,之前都是用tipask的原生模块,比如说推荐问答、未解决问答等,看来只能自己二次开发了,上网找了下关于tipask的二次开发还真是少……于是简单翻了下tipask的代码,用我的方式增加了热门问题模块。
tipask的主要函数都在model文件夹下,找到系统核心文件base.class.php,里面有这样一个函数fromcache,用于生成函数下各种模块,例如悬赏问题、精彩推荐等,我们要做的就是在这里按照前后代码加上一条我们需要的热门问题模块。
例如在代码
case 'notelist'://首页右侧公告列表
前加上我们的模块代码:
case 'hotlist'://热门问题
$this->load('hot');
$cachedata = $_ENV['hot']->get_list();
break;
这里我是仿照recommend推荐模块,又新建的一个hot.class.php用于上面代码的调用,其实完全可以仿照上面的调用question.class.php文件里的list_by_condition函数,但是通过到question.class.php文件下查看list_by_condition函数只能够加入sql的where判断,而我需要的热门模块只需要改动一下order by,所以我只能新建一个hot.class.php文件自己写数据库调用了。
hot.class.php文件如下:
base = $base;
$this->db = $base->db;
}
function get_list($start = 0, $limit = 7) {
$hotlist = array();
$query = $this->db->query("SELECT * FROM " . DB_TABLEPRE . "question ORDER BY views DESC LIMIT $start,$limit");
while ($hot = $this->db->fetch_array($query)) {
$hot['category_name'] = $this->base->category[$hot['cid']]['name'];
$hot['format_time'] = tdate($hot['time']);
$hot['category_name'] = $this->base->category[$hot['cid']]['name'];
$hot['url'] = url('question/view/' . $hot['qid'], $hot['url']);
$hot['image'] =$hot['image']?$hot['image']:'css/default/recomend.jpg' ;
$hotlist[] = $hot;
}
return $hotlist;
}
}
?>
好了,tipask关于新建模块的二次开发就结束了,只要仿照这来就行了