POST TIME:2017-12-28 22:33
要讓未登錄會員只能查看文章的一部分,這里需要修改dedecms本身的文件,修改后,你會發現上面有兩個全局變量 $cfg_ckbodyopen 和 $cfg_ckbodynum ,你可以在后臺系統設置里面增加這兩個系統變量,以便控制改代碼是否生效, $cfg_ckbodyopen 是Y表示啟用,其他任何字符都不使用,默認打開使用。 $cfg_ckbodynum 是未登陸的來客顯示顯示文章的字數,默認500字符,即250個中文字符。 還有,上面的<div 和 </div>之間的是沒有登陸時打開文章顯示在文章下面的,可以自行修改,但是注意,修改的時候不要用雙引號,當然你會加上轉義符的除外。
打開include\arc.archives.class.php文件
找到“//End foreach”
在下面加上
Quote:
global $cfg_ckbodyopen,$cfg_ckbodynum;
$this->Fields['$cfg_ckbodyopen'] = (empty($cfg_ckbodyopen) ? "Y" : "$cfg_ckbodyopen" );
$this->Fields['$cfg_ckbodynum'] = (empty($cfg_ckbodynum) ? "500" : "$cfg_ckbodynum" );
if(($this->Fields['$cfg_ckbodyopen'] == "Y" || $this->Fields['$cfg_ckbodyopen'] == "y") && $this->Fields['ismake']==-1){
require_once(DEDEINC.'/memberlogin.class.php');
$this->MemberLogin = new MemberLogin();
$this->Fields['ckbodyhtml'] = " <br /> <div class='ckbodyhtml' style='width:80%;margin-left:10%;margin-top:30px;float:left;border:1px solid #000;background:#dedede;text-align:center;'> 你沒有登陸,無法閱讀全文內容,點擊此處登陸 </div>";
if($this->MemberLogin->IsLogin()){
$this->Fields['ckbody'] = $this->Fields['body'];
//已經登陸
}else{
$this->Fields['ckbody'] = cn_substr(Html2Text($this->Fields['body']),$this->Fields['$cfg_ckbodynum']);
$this->Fields['ckbody'] .= $this->Fields['ckbodyhtml'];
//未登陸
}
}else{
$this->Fields['ckbody'] = $this->Fields['body'];
}
還有 在 //php5構造函數 前面加上
Quote:
var $MemberLogin;
到此就可以了,在模板用{dede:field.ckbody/} 代替原來的{dede:field.body/}。