最近在整合dedecms5.6和discuz! x1.5,希望能通过dede首页来调用discuz的相关帖子数据,由于discuzx 后台-门户-模块管理-数据调用 只能以JS方式远程调用论坛的数据,这里说说用DEDE的标记语言直接从数据库调用,这样的优点就是方便蜘蛛的抓取,但同时也会加重服务器的负担。 一、DEDECMS官方的调用动态地址代码: 论坛新帖子:
<br/>
{dede:loop table="pre_forum_thread " sort="tid" row="10"}
<a href="http://bbs.xx.com/viewthread.php?tid=[field:tid /]">
[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])
</a>
<br/>
{/dede:loop}
其中的 http://bbs.xx.com/ 是论坛的地址;pre_forum_thread 数据库的表名;('@me',30)调用标题的字符数30,相当于15个汉字;([field:lastpost function="date('m-d H:M','@me')" /]) 标题后调用发帖的时间,可按需要调用。 二、调用Discuz论坛伪静态地址代码,dedecms数据库和discuzx数据库不在同一库内。 {dede:loop table="discuzbbs.pre_forum_thread " sort="tid" row="10"}
<a href="http://bbs.xx.com/thread-[field:tid /]-1-1.html" target="_blank">
[field:subject function="cn_substr('@me',30)" /]
</a>
{/dede:loop}
说明:discuzbbs.pre_forum_thread,其中红色的“discuzbbs”是discuz论坛的数据库名,pre_forum_thread是帖子表名,pre_替换为你的具体的表前缀。由此,也能看出DedeCMS的数据库和discuz的数据库不在同一个库内。 注:非同一库内的数据调用格式:discuz论坛数据库名. ps.记得后面的点。 蓝色字体就是你的论坛地址 过这这能调用第一页的内容 thread-[field:tid /]-1-*.html *代表页数 三、DEDECMS调用指定分类文章 demo1:
{dede:loop table="discuzbbs.pre_forum_thread " if="fid=6 and displayorder!=-1" sort="tid" row="10" }
<a href="http://bbs.xx.com/thread-[field:tid /]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',28)"/]</a>
[field:author /] [field:dateline function='GetDateMk(@me)'/]
{/dede:loop} demo2:
{dede:loop table="discuzbbs.pre_forum_thread " if="fid=1||fid=2 and displayorder!=-1" sort="tid" row="6"}
<a href="http://bbs.xx.com/viewthread.php?tid=[field:tid /]" target="_blank">
[field:subject function="cn_substr('@me',50)" /]
</a>
{/dede:loop}
说明:[field:author /] [field:dateline function='GetDateMk(@me)'/] 调用作者和文章时间 fid=6 是discuz栏目的ID
|