在織夢CMS v5.7 中打開官方默認(rèn)模板article_artcile.htm,我們可以提取調(diào)用文章所屬會員信息標(biāo)簽的代碼
{dede:memberinfos}
會員頭像:<a href=”[field:spaceurl /]“ class=”userface”><img src=”[field:face/]“ width=”52″ height=”52″ /></a>
會員用戶名:<a href=’[field:spaceurl /]‘ class=”username”>[field:uname/]</a>
會員詳細(xì)資料:<a href=”[field:spaceurl /]“ class=”useract-vi”>查看詳細(xì)資料</a>
給他留言:<a href=”[field:spaceurl /]&action=guestbook” class=”useract-pm”>發(fā)送留言</a>
加為好友:<a href=”[field:spaceurl /]&action=newfriend” class=”useract-af”>加為好友</a>
用戶等級:[field:rankname /]
注冊時(shí)間:[field:jointime function="MyDate('Y-m-d H:m',@me)"/]
最后登錄:[field:logintime function="MyDate('Y-m-d H:m',@me)"/]
{/dede:memberinfos}
|
用戶信息(memberinfos) 用戶信息標(biāo)簽的適用范圍是全局使用,之所以把它歸檔到內(nèi)容頁來講,是因?yàn)檫@個(gè)標(biāo)簽在內(nèi)容頁的使用更加普遍。 該標(biāo)簽是屬于有底層模板的調(diào)用標(biāo)簽,它有且只有一個(gè)參數(shù) mid = '1' 指定要獲取的用戶ID 如果在文檔閱讀頁,該參數(shù)為空的話,那么就默認(rèn)指定該文檔的發(fā)布者會員ID,通常用來調(diào)用“發(fā)布者資料”類似功能。其完整代碼為:
{dede:memberinfos} 昵稱:[field:uname/] {/dede:memberinfos}
|
底層模板的取值范圍是:dede_member所有字段及spacename(空間名稱)、sign(用戶簽名)
5.1版本:
1.在內(nèi)容頁加 如下代碼:
本文作者:{dede:memberinfo /}
2.然后找到include/inc_archives_view.php 把原來的添加如下的代碼
5.3版本:
1.在內(nèi)容頁加 如下代碼:
本文作者:{dede:memberinfo /}
2.然后找到include/arc.archives.class.php 把原來的添加如下的代碼
//----------------------
//獲得本文的投稿作者信息
//----------------------
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='/member/index.php?uid=".$this->MemberInfos['userid']."&action=memberinfo'>";
$minfo .= $this->MemberInfos['uname']."</font></a>\r\n";
$minfo .= "<a href='/member/index.php?uid=".$this->MemberInfos['userid']."&action=feedback'>留言</a>\r\n";
$minfo .= "空間:<a href='/member/index.php?uid=".$this->MemberInfos['userid']."'>";
$minfo .= $this->MemberInfos['spacename']."</a>\r\n";
return $minfo;
}
}
---------------------------
|
DEDECMS列表頁/內(nèi)容頁調(diào)用當(dāng)前文檔作者的會員頭像的方法
一、實(shí)現(xiàn)方法
1)內(nèi)容頁
首先,我們知道,在內(nèi)容頁調(diào)用當(dāng)前文檔作者的ID代碼為{dede:field.mid/},但這個(gè)標(biāo)簽只能調(diào)用出作者的mid編碼。要想調(diào)用具體的文檔ID,就必須對會員表(dede_member)來進(jìn)行檢索,檢索的SQL語句為:
折疊SQL 代碼復(fù)制內(nèi)容到剪貼板
select * from dede_member where mid = 會員MID編號
剛才呢,我們已經(jīng)將mid使用{dede:field.mid/}標(biāo)簽調(diào)用出來了,現(xiàn)在我們要做的就是賦值進(jìn)去查詢即可。故,完整代碼為:
{dede:field.mid runphp='yes'}
$id = @me;
if($id <> 0){
$sql = "select * from dede_member where mid = $id";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
if($row['face'] == ''){
@me = '作者頭像:<img src="/member/templets/images/dfboy.png" />';
}
else{
$face = $row['face'];
@me = '作者頭像:<img src="'.$face.'" />';
}
}
else{
@me = '游客發(fā)表';
}
{/dede:field.mid}
|
2)列表頁
和1)中分析的原理是完全一樣的,只是在這里由于在列表頁,需要賦值的不是{dede:field.mid/},而是[field:mid/]。故完整代碼為:
[field:mid runphp='yes']
$id = @me;
if($id <> 0){
$sql = "select * from dede_member where mid = $id";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
if($row['face'] == ''){
@me = '作者頭像:<img src="/member/templets/images/dfboy.png" />';
}
else{
$face = $row['face'];
@me = '作者頭像:<img src="'.$face.'" />';
}
}
else{
@me = '游客發(fā)表';
}
[/field.mid]
|
二、分析及解釋
1)本文上述代碼的特點(diǎn)有:
對文檔作者進(jìn)行了判斷,如果是游客投稿,則不進(jìn)行查詢而直接輸出“游客發(fā)表”,當(dāng)前,這里您也可以直接置空;
對會員頭像做了簡單的判斷,如果會員沒有上傳頭像(即頭像為空)時(shí),則輸出“/member/templets/images/dfboy.png”路徑的默認(rèn)圖片;
2)其它說明及輔助:
本實(shí)例還有繼續(xù)優(yōu)化的可能性(比如會員頭像為空時(shí),判斷會員的性別,對不同的姓別分別輸出不同的默認(rèn)頭像);