zdcms文章内容增加密码验证阅读权限功能

用zdcms做网站如何实现文章输入密码才能查看功能呢?今天就来说说实现这个功能的详细步骤。

1. 首先点击设置、内容设置、模块管理、找到你要加密码的模块,点击模块内容字段;这里以默认news模块举例,如下图:

zdcms模块内容字段添加


2. 添加一个密码字段,类型选择文本text类型,其他默认,然后点保存。如下图:

zdcms添加文本字段


3. 找到news模块的控制器路径 \dayrui\App\News\Controllers\创建一个控制器文件 Password.php 写入下面代码:

<?php namespace Phpcmf\Controllers;

/**
 * 二次开发时可以修改本文件,不影响升级覆盖
 */

class Password extends \Phpcmf\Common
{

    public function index() {
        
  $id = (int)$_GET['id'];
  $pwd = trim($_GET['pwd']);
  $this->_module_init();
   $data = $this->content_model->get_data($id);
  if (!$data) {
   $this->_json(0, dr_lang('%s内容(#%s)不存在', $this->module['name'], $id));
  }
  if ($pwd!=$data['password']) {
   $this->_json(0, '密码不正确');
  }
 
  $this->_json(1, html_entity_decode($data['content']));
        
    }

}


4. 接下来在news模块的内容模板show.html里面加入下面验证代码:

{if $password}
<div class="input-group" id="password_form">
 <input type="text" id="yz_password" value="" class="form-control">
 <span class="input-group-btn"><a class="btn red"  target="_blank" href="javascript:yz_password();">验证密码</a></span>
</div>
<div id="neirong"></div>
 <script>
 function yz_password() {
  $.get("{dr_url_prefix('index.php')}?is_ajax=1&s={MOD_DIR}&c=password&id={$id}&pwd="+$("#yz_password").val(), function(data){
   if (data.code) {
    $('#neirong').html(data.msg);
    $("#password_form").hide();
   } else {
    dr_cmf_tips(0, data.msg);
   }
  }, 'json');
 }
</script>
{else}
{$content}
{/if}


5. 最后在news模块的栏目下发一篇文章浏览试试看。

评论