Typecho实现评论增加用户网址Url功能

发布时间:2022-04-01 13:37

在本地安装了 Typecho 的程序,发现这程序的后台简洁得不一样,和它的前台一样简洁,也没有在后台可以设置显示网址啥的,那就干脆撸代码吧。

看Typecho的数据库,应该是支持用户评论提交网址的,有这个字段。

下面说下怎么修改:

一、前台修改

打开模板文件夹下的 \usr\themes\Joe-master\public\comment.php 文件:

在用户提交信息的任意位置增加一行网址表单:

<\div class="list"><\input type="text" value="{C}user->hasLogin() ? $this->user->url() : $this->remember('url') ?>" autocomplete="off" name="url" placeholder="请输网址..." /><\/div>

图片[1] - Typecho实现评论增加用户网址Url功能 - 尘心网

上面代码为了防止解析成 Html,我这里加了反斜杠。

二、修改前端提交js文件

打开 \Joe-master\assets\js\joe.global.js 文件,按下图说明修改。

图片[2] - Typecho实现评论增加用户网址Url功能 - 尘心网

说明:

第1行,将原来的 url 替换一个新词,这个主题作者把 url 用来作 Ajax 的提交地址了,导致下面要用数据库字段 url 就不好用了。

第2行,新增加一行,获取表单信息的,因为上面改了 url 变量,这里就可以直接用了,代码:

const url = $(".joe_comment__respond-form .head input[name='url']").val();

第3行:把Ajax提交址修改为上面我们定义的变量地址。

第4行:增加 url 变量。

上面修改了 joe.global.js 文件,如果博客引用的是 joe.global.min.js 文件,记得修改 usr\themes\Joe-master\public\include.php 文件中的引用js文件名称,当然上面的修改,可以直接压缩替换 min 文件。

下面说显示网址的,我发现 Typecho 默认也是不显示网址的。

三、修改后端文件

打开 \var\Widget\Abstract\Comments.php 文件,找到作者输出函数:

function author($autoLink = NULL, $noFollow = NULL)

图片[3] - Typecho实现评论增加用户网址Url功能 - 尘心网

e c h o '<\a target="_blank" href="' , $this->url , '"' , ($noFollow ? ' rel="external nofollow"' : NULL) , '>' , $this->author , '<\/a>';

直接把后面一个判断修改了,这就所有用户显示网址了。

最终效果:

图片[4] - Typecho实现评论增加用户网址Url功能 - 尘心网

文档下载:Typecho实现评论增加用户网址Url功能.doc文档

THE END
喜欢就支持一下吧