Discuz调用dedecms文章 完美解决方法

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】
首先需要满足一个条件,就是他们俩在同一个数据库中呦。好了不多说了。
首先既然是同库,我们先来在 dede_archives 的表中建立一个字段,用来储存文章的URL,因为如果要在Discuz中调用dedecms文章的静态地址,非常复杂,需要添加很多语句来处理,咱们直接化繁为简,直接建立一个字段,用来储存文章的URL地址。(无论动态静态) 现在开始建立一个字段名为 wzurl 类型 varchar(255) 排序规则 gbk_chinese_ci (如果是UTF8这里要注意) 默认为空 null 建立好字段后,咱们进行下一步,因为这个字段需要储存文章的URL,咱们下一步就是修改dedecms的PHP文件。首先找到后台文件夹中的如下文件:archives_sg_add.php archives_sg_edit.php article_add.php article_edit.php 找到这4个文件(如果开启会员投稿还需要到member中找到同样的文件)。然后我们在上诉文件中找到如下代码:
1 2 3 4 | if($artUrl=='') { $artUrl = $cfg_phpurl."/view.php?aid=$arcID"; } |
在此代码下添加如下代码:
1 2 3 4 | if($artUrl<>'') { $dsql->ExecuteNoneQuery("UPDATE `#@__archives` SET wzurl='$artUrl' WHERE id='$arcID'; "); //这里注意,如果文件名中含add的用$arcID,文件名中含edit的就用$id。 } |
以上都搞定后,基本就没dedecms什么事了。下面咱们讲Discuz如何调用的。
首先我想在我的 Discuz首页显示dedecms的最新文章,所以,我找到module\portal\portal_index.php 这个是我的首页文件,然后再首页文件中添加如下代码:
1 2 3 4 5 6 7 8 | $dezshjg = get_dezshjg_job(3); function get_dezshjg_job($parentid){ $query = DB::query("SELECT id,typeid,title,wzurl FROM `dede_archives` where channel=1 order by id DESC limit 0,{$parentid}"); while($row = DB::fetch($query)){ $re['list'][] = $row; } return $re; } |
这段代码是调用dedecms 最新文章! get_dezshjg_job(3) 中的3意思是调用3篇。下面我们更改模板文件template\default\portal\index.htm 在需要调用的地方调用如下代码:
1 2 3 | <!--{loop $dezshjg['list'] $id $dezshjg}--> <li><a href="$dezshjg[wzurl]" target="_blank">$dezshjg[title]</a></li> <!--{/loop}--> |
相信大家也都看到了,这是DZ的loop循环显示函数。至此,Discuz调用最新dedecms文章就算OK啦。个人觉得非常简单。
提示,如果转载本博客文章,请注明出处:https://woj.app/41.html 如果不注明的朋友,小心本人把博客中饲养的神兽放出去咬你!
我可以说我也是劲乐团迷嘛~ ^-^
布施恩德可便相知重
微信扫一扫打赏
支付宝扫一扫打赏