用zdcms做网站如何实现文章输入密码才能查看功能呢?今天就来说说实现这个功能的详细步骤。
1. 首先点击设置、内容设置、模块管理、找到你要加密码的模块,点击模块内容字段;这里以默认news模块举例,如下图:

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

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模块的栏目下发一篇文章浏览试试看。