zblog不用js调用DZ论坛数据
关于zblog调用discuz论坛数据的方法有很多种,一般说来都是js方式,在discuz的后台可以直接生成调用代码,然后在需要调用的页面相关位置放上调用代码就可以了,这种方法没有局限性,可以在任何位置进行调用,是最方便的一种方法!
但是有人问有没有不用js的方式调用的方法,为了页面的SEO,当然直接调用内容是最好的方法,这种方法是有的,但是这种方法只局限于二级目录的情况,不能跨站调用,本站结构大家一目了然,主站程序是zblog程序,discuz论坛是在本站二级目录bbs下,实现原理即是通过discuz论坛的计划任务,定时生成更新文件,而根据zblog的程序特点,zblog的调用数据都存放在网站的INCLUDE下面,在zblog模版中可以以文件名作为调用标签,直接读取文件内容!所以,我们可以得出这样一个结论,利用discuz计划任务,在主站的include文件夹里面生成discuz论坛最新帖子的文件,然后通过zblog调用文件就可以了!下面看看这个直观的架构图:
计划任务文件sean_cron_daily.php文件的源代码如下:
PHP代码
- <?php
- if(!defined('IN_DISCUZ')) {
- exit('Access Denied');
- }
- $query = DB::query("SELECT tid,subject,lastpost FROM ".DB::table('forum_thread')." order by tid desc limit 0,14");
- while ($value = DB::fetch($query)) {
- $txtstr.= "<li><a href='/bbs/thread-".$value['tid']."-1-1.html' title='".$value['subject']."' target='_blank'>".$value['subject']."</a></li>\n";
- }
- file_put_contents('../include/sean_bbs_new.txt', $txtstr);
- ?>
将文件上传到论坛目录中的source/include/cron/ 中,然后在discuz论坛后台的工具->计划任务中新增一项“论坛最新贴调用”,然后设置它的执行周期,在运行脚本那填写文件名sean_cron_daily.php就可以了,保存后回到计划任务,点击执行,大功告成!
根据大家站点目录的情况可对源文件进行稍微的调整。