学习NO.1 发表于 2015-10-28 15:18:56

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

第一步 先修改内容页模板吧 (打开 templetsdefault 目录下的 article_article.htm)
责任编辑:{dede:adminname/}
第二步 要修改的文件是变量输出代码 (打开 include 目录下的 inc_archives_view.php)

并找到如下代码:
var $TypeLink;
var $ChannelUnit;
var $dsql;
var $Fields;
var $dtp;
var $ArcID;
var $SplitPageField;
var $SplitFields;
var $NowPage;
var $TotalPage;

在这段代码的下面加入:

var $Adminname;

再找到:

//热门关键字
else if($tagname=="hotwords"){
$this->dtp->Assign($tagid,
GetHotKeywords($this->dsql,$ctag->GetAtt('num'),$ctag->GetAtt('subday'),$ctag->GetAtt('maxlength')));
}
在这段代码的下面加入

//责任编辑调用
else if($tagname=="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>
";
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

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

页: [1]
查看完整版本: dedecms 内容页责任编辑调用代码