RuleUser通过API的方式完全接管typecho的用户系统,让Typecho网站拥有一个独立会员中心的同时,还可以将前台用户的操作全部API化。
具体演示请查看 Typecho独立用户中心上线-
RuleUser安装及介绍请查看 Typecho独立会员中心,前后端分离,充值付费功能集成,APP扫码登录
本文讲解会员系统接管typecho的教程(不接管也没事,看自己心情就好),这里我只写我网站Joe主题的修改,仅供参考,其他主题去看看不暇的教程 会员系统接管教程 。

2022.5.15更新接管版文件,可以直接替换主题文件完成接管
Joe主题RuleUser接管版文件-

l35hlmo3.png
l35hlza6.png

方案有两种,第一种是php实现,第二种是js实现

  • 方案一的好处是不会对模板进行大改,可以很方面的接管,而且完全按照php的标签规范,但是坏处是如果挂了cdn就会导致登录状态被缓存,就比如我自己网站的首页。而且性能的提升不如纯js前后端分离。
  • 方案二的好处是完全js前后端分离,无论是用户交互还是网站性能都可以依靠js达到很高的提升,缺点就是需要有js的基础知识,对个人能力有要求,并且如果碰到复杂的模板,改起来也废时间。

我使用的是方案二 js前后端分离
,需要在typecho模板中引入RuleUser,只需要修改模板的footer.php文件,在的上方,加入如下代码(ruleuser是我前面步骤自定义的文件夹名称,代表RuleUser所在目录):




然后,在文章模板,post.php合适的位置(一般是文章内容底下,加入如下代码):

l37cu1ja.png

这样,就可以调用出文章插入的付费商品和操作按钮,截图如下:
l33xl8h5.png

会员的登录注册

1.在 themes/Joe/public/footer.php 文件最后添加以下代码
(注意修改ruleuser的文件目录)




2.修改/usr/themes/joezhinian/Joe-master/public/ 下的 header.php 文件
第23行代码

                

修改为

                

第228行代码

 
user->hasLogin()) : ?>

登录
options->allowRegister) : ?>
/
注册

修改为

            

第308行代码

            博主昵称

修改为

            博主昵称

311行代码

                options->JAside_Author_Nick ? $this->options->JAside_Author_Nick() : ($this->authorId ? $this->author->screenName() : $this->user->screenName()); ?>

修改为

                options->JAside_Author_Nick ? $this->options->JAside_Author_Nick() : $this->author->screenName(); ?>

如果报错就把恋爱计时这个模块删掉,也就是删除以下315行以下代码:

       
        options->LoveTime) :  ?>
            options->LoveTime;
                if ($LoveTime_text) {
                    $leftQq = trim(explode("||", $LoveTime_text)[0]);
                    $RightQq = trim(explode("||", $LoveTime_text)[1]);
                    $loveDate = trim(explode("||", $LoveTime_text)[2]);
                }
            ?>
            

    love

    love

    love

最后418行代码

        

修改为

        

3.修改themes/Joe/publiccomment.php 文件
第4行代码

    $CommentCoid = @$_POST["coid"];
    $db->query($db->update('table.comments')->rows(array('status' => @$_POST["type"]))->where('coid = ?', $CommentCoid));

修改为

    $CommentCoid = $_POST["coid"];
    $db->query($db->update('table.comments')->rows(array('status' => $_POST["type"]))->where('coid = ?', $CommentCoid));

第25行代码

 

修改为

                
                    

第47行代码

                                

修改为

                                

第51行代码

                                 

修改为

                                

第80行代码

                            

修改为

                            

可能应该大概就是这样了....我不太确定...备份一下再测试哈家人们!!!!!

本文来自投稿,不代表本站立场,如若转载,请注明出处:
最后修改:2023 年 08 月 27 日
如果觉得我的文章对你有用,请随意赞赏