程序员人生 网站导航

DedeCms原作者和发布人昵称同时调用的方法

栏目:DedeCMS时间:2014-05-02 22:57:16

怕大家看不明白。先上个图片说明下。有需要的就要,不需要的闪吧。

如果你的网站是新闻类的网站,可能会避免不了的去转载别人的文章。DEDE的文章标题下一般会有个作者。

但是我们发现,如果你在后台添加新闻时作者里填的人只有一个,要么就是发布者,要么就是新闻的原作者。

如果想要区分开来就得就网站进行动手术了。

如图,比如我在别的网站上转载的文章,记者名字叫:司马连竹 而我的后台昵称是:xiaoyi

如此这般可以在文章标题下的作者改成 原作者。而文章结束的地方弄成 责任编辑

文章标题下的原作者:

文章末尾处的责任编辑:

下面说下实现方法:

下载备份/修改:/include/extend.func.php

打开这个文件,在文件中最后的?>上一行加入以下代码:


//功能:获取任意会员的信息;
function GetMemberInfos($fields,$mid){
global $dsql;
if($mid <= 0){
$revalue = "Error";
}
else{
$row=$dsql->GetOne("select * from dede_member where mid = '{$mid}'");
if(!is_array($row)){
$revalue = "Not user";
}
else{
$revalue = $row[$fields];
}
}
return $revalue;
}

保存后上传覆盖

以后升级只需要备份一下这个文件即可

调用方法:

要使用这个函数,可以利用系统自带的function与runphp来使用。在底层模板字段中,通常使用function方法。比如:
[field:mid function="GetMemberInfos('uname',@me)"/]
这样就可以很轻松的调用出某个会员的昵称了,那么要调用会员的用户名,则只需要将uname更换为userid即可。这里的值是支持member表的所有字段的。大致为如下一些:
mid 表示会员的唯一编号,由于其唯一的特性,一般用于区别会员;
mtype 表示会员的类型(如自带的“个人”与“企业”);
userid  表示会员用户名(也就是用于登陆);
pwd  表示用户的密码;
uname 表示用户的昵称;
sex  表示用户的性别;
rank 表示用户的等级(也就是后台的用户级别);
uptime 表示用户升级会员组的时间;
exptime 表示用户会员组的有效期天数;
money  表示用户拥有的剩余金币数量;
email  表示用户的注册邮箱地址;
scores  表示用户拥有的剩余积分数量;
matt  表示用户的级别(0为普通,1为推荐,10为后台超级管理员)
知道了以上的这些信息,还有什么不能调用的呢?

调用实例

刚才我们说到了调用方法,那么我们来看一下几个简单的实例:
 
1)在首页的arclist调用文档的所属会员昵称:

{dede:arclist row='8' titlelen='20'}
    <li>标题:[field:title/] 昵称:[field:mid function="GetMemberInfos('uname',@me)"/]</li>
{/dede:arclist}

2)在内容页的field中调用闻到那股的所属会员昵称:

{dede:field.mid function="GetMemberInfos('uname',@me)"/}

其它的情况大家去尝试一下吧

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐