DedeCMS内容隐藏指定字段仅对会员显示对游客不可见的实现方法

大家都知道,Discuz程序在发文章时有个【隐藏】功能,可以限制这个隐藏内容供某些级别的会员查看。 在织梦模板中,做些改动,也是可以实现的。例如:电话号码,下载地址等等。

前提是开启会员功能,已经有了自定义字段。 

一、建立文件 ajax_loginsta_c.php

建立名称为ajax_loginsta_c.php的php文件,放到/member/目录下,内容如下:

<?php

require_once(dirname(__FILE__).
“/config.php”);

AjaxHead();


if($myurl ==
)

{

  exit(
);

}


if ($cfg_ml->fields[
‘rank’] >=
’20’)

{

$row = $dsql->GetOne(
” Select * From `dede_addonarticle` where `aid`=$val “);

echo $row[
‘字段英文名’];

}

?>

 

说明,上边三处根据自己情况修改。 1,上述中数字20,指的是会员级别值,织梦默认注册会员是10,在后台调整会员级别时可以自己设置,2,上述dede_addonarticle,是默认文章模型的附加表名,你用的别的模型请对应附加表;3、字段英文名,这个在你新增字段时会有对应的英文名称。

二、模板文件修改

1、首先模板头部引入文件:

<script language=
“javascript” type=
“text/javascript” src=
“{dede:global.cfg_cmsurl/}/include/dedeajax2.js”></script>

<script language=
“javascript” type=
“text/javascript”>

<!–

function CheckLogin_c(){

            var taget_obj = document.getElementById(
‘_userlogin_c’);

        var req = document.getElementById(
‘hid’).value;

        myajax =
new DedeAjax(taget_obj,
false,
false,
,
,
);

        myajax.SendGet2(
“{dede:global.cfg_cmspath/}/member/ajax_loginsta_c.php?val=”+req); DedeXHTTP = null;}

–>

</script>

 

2、在你要显示自定义字段的位置引入:

<span id=
“_userlogin_c”><a href=
“/member/index_do.php?fmdo=user&dopost=regnew”>请注册后查看!</a></span>

<input type=
“hidden” value=
“{dede:field.aid/}” id=
“hid”/>

<script language=
“javascript” type=
“text/javascript”>CheckLogin_c();</script>

 

说明:上述 span 标签内的内容可以自己定义,id值不能修改。