电脑技术学习

DEDECMS内容页责任编辑调用代码

admin

上班时间紧 写了有点乱 大家要看仔细点; 不要改错了 (郑重声明:修改前请备份原文件)

第一步 先修改内容页模板吧 (打开 templetsdefault 目录下的 article_article.htm)

在你需要调用责任编辑的地方加入如下代码:

责任编辑:{dede:adminname/}

这一步改完了:)

第二步 要修改的文件是变量输出代码 (打开 include 目录下的 inc_archives_view.php)

并找到如下代码:

var $PartView;
var $TempSource;
var $IsError;
var $SplitTitles;
var $MemberInfos;

在这段代码的下面加入:

var $Adminname;

再找到:

else if($ctag->GetName()=="memberinfo")
{
$this->dtp->Assign($tagid,$this->GetMemberInfo());
}
在这段代码的后面加入

Copy code; else if($ctag->GetName()=="adminname")//责任编辑调用
{
$this->dtp->Assign($tagid,$this->GetAdminname());
}

再找:

//----------------------
//获得本文的投稿作者信息
//----------------------
function GetMemberInfo()
{
if(!isset($this->MemberInfos['ID'])){
if($this->Fields['memberID']==0) return '';
else{
$this->MemberInfos = $this->dsql->GetOne("Select ID,userid,uname,spacename,spaceimage From dede_member where ID='{$this->Fields['memberID']}' ");
}
}
if(!isset($this->MemberInfos['ID'])) return "";
else{
$minfo; = "<a href='".$cfg_memberurl."/index.php?uid=".$this->MemberInfos['userid']."'>浏览 <font color='red'><b>";
$minfo .= $this->MemberInfos['uname']."</font></b> 的个人空间</a>/r/n";
return $minfo;
}
}

在这段代码下面加入

//--------------------------
//责任编辑调用
//----------------------
function GetAdminname()
{
$adm = "";
$rid = $this->ArcID;
$query = "Select a.ID,a.adminID,b.id,b.uname from dede_archives a left join dede_admin b on a.adminid=b.ID where a.id order by a.ID=$rid; desc";
$editor = $this->dsql->GetOne($query);
if(is_array($editor)){
$this->adminer = $this->dsql->GetOne("Select ID,userid,uname From dede_member where uname='{$editor['uname']}' ");
if(!isset($this->adminer['uname'])){
$adm; = "{$editor['uname']}";
}else{
$adm; = "<a href='".$GLOBALS['cfg_cmspath']."/member/index.php?uid=".$this->adminer['userid']."'>{$editor['uname']}</a>
";
}

}
return $adm;
}

这一步下也可以了。

第三步 要修改后台文件 (打开 dede 目录下的 article_eidt_action.php)

注:修改这一步的目地是当文章如果被另一位管理员重新编辑时,责任编辑人会重新更新当前编辑人ID。如果不修改这一步的话,责任编辑人永远显示是原发布人的ID或文章审核人管理员的ID。

找这段代码:

$inQuery = "
update dede_archives set
typeid='$typeid',
typeid2='$typeid2',
sortrank='$sortrank',
redirecturl='$redirecturl',
iscommend='$iscommend',
ismake='$ismake',
arcrank='$arcrank',
money='$money',
title='$title',
color='$color',
writer='$writer',
source='$source',
litpic='$litpic',
pubdate='$pubdate',

在这段代码的下面加入

adminID='$adminID',

大功告成。

大家一步一步看清楚了再改,应该不会出错。

特别提示:责任编辑人和前台投稿人是完全不同; 投稿人是显示作者 代码是{dede:field name='writer'/}

而责任编辑人 显示是管理员ID;

也就是说当前台会员投一遍文章时都要经过后台管理员审核才能通过,而责任编辑显示的就是审核该文章的管理员,还有就是当管理员直接从后台发布的文章时,责任编辑显示的是该管理员。