A-A+

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

2014年09月05日 13:39 学习笔记 暂无评论 阅读 228 views 次

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是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啦。个人觉得非常简单。
提示,如果转载本博客文章,请注明出处:http://gdd.gd/41.html 如果不注明的朋友,小心本人把博客中饲养的神兽放出去咬你!

00:00/00:00

我可以说我也是劲乐团迷嘛~ ^-^

标签:

给我留言