修复WeCenter游客不能查看专栏的Bug

Bug信息

WeCenter3.31在游客未登录的情况下,不能访问专栏,提示请先登陆,这是一个bug

为什么说这是一个Bug?

因为游客默认是可以随意访问专栏里的文章,但是专栏封面却被要求登录才能查看。
我认为这毫无意义,这不是feature,这是一个bug
这不仅仅会让游客体验下降,对SEO来说也是大忌,不能访问,就意味着不会被收录。

解决方法

首先,找到/app/column/main.php文件的public function details_action()函数代码片段,
然后,将下面这4行注释或者删除就可以了,大概在79-84行左右。

        if(!$this->user_id)
        {
            H::redirect_msg(AWS_APP::lang()->_t('请先登陆'), '/');
        }

我选择的是注释掉,就像下面这样,每行代码前面加两个斜杠就可以了:

    public function details_action()
    {   

        //if(!$this->user_id)
        //{
        //    H::redirect_msg(AWS_APP::lang()->_t('请先登陆'), '/');
        //}

        if (!$column_info = $this->model('column')->get_column_by_id($_GET['id']))
        {
            H::redirect_msg(AWS_APP::lang()->_t('专栏不存在'), '/');
        }
        if ($column_info['is_verify'] != 1 && $this->user_id != $column_info['uid'])
        {   
            H::redirect_msg(AWS_APP::lang()->_t('专栏未启用或者未审核'), '/');
        }

本人不懂PHP,这个bug解决方法不一定是最好的,
所以希望WeCenter有更好的解决办法,这个方法大家可以先暂时用着!

Leave a Reply