Typecho如何判断是否加密文章
typecho判断加密文章的方法
if ($this->hidden) {
//是加密文章并且未解锁
} else {
//不是加密文章或者已解锁
}
下面是老的判断方法:
代码摘自后台然后修改了一下,完整代码如下(这个是最初的方法,等于是上面新方法的详细说明,建议使用上面的新方法)
if (isset($this->password) && $this->password !== Typecho_Cookie::get('protectPassword') && $this->authorId !== $this->user->uid && !$this->user->pass('editor', true)) {
//是加密文章并且未解锁
} else {
//不是加密文章或者已解锁
}
//解释一下这几个因素:文章设置了密码 且 输入的密码不正确 且 用户不是作者 且 用户无编辑及以上权限
如果单纯的只判断是否加密文章,只用第一个因素isset($this->password)就行。
我的还在用0.9版本 用的默认文章加密 第一次输入密码正确能打开 后面就一直说密码错误 是什么原因啊?
/** 处理密码保护流程 */
if (!empty($value['password']) &&
$value['password'] != $this->request->protectPassword &&
$value['authorId'] != $this->user->uid &&
!$this->user->pass('editor', true)) {
$value['hidden'] = true;
/** 抛出错误 */
if ($this->request->isPost() && isset($this->request->protectPassword)) {
throw new Typecho_Widget_Exception(_t('对不起,您输入的密码错误'), 403);
}
}
$value = $this->pluginHandle(__CLASS__)->filter($value, $this);
/** 如果访问权限被禁止 */
' .if ($value['hidden']) {
$value['text'] = '
'
' . _t('请输入密码访问') . '
' .
'
' .
'
';
//$value['title'] = _t('此内容被密码保护');
$value['tags'] = array();
$value['commentsNum'] = 0;
}
return $value;
}
去更新最新版本吧