21 06 11

Typecho使用AJAX自动填写游客信息思路分享

Typecho使用AJAX自动填写游客信息思路分享

灵感来源35个月前写过一篇《Typecho使用AJAX实时获取评论头像》文章,当时只是获取ajax处理了邮箱,然后将gravatar头像地址给到头像。昨天看了大佬的文章《写了一个很鸡肋的功能》,通过邮箱读取gravatar网站的api获取用户昵称,然后自动填入到评论区昵称上,觉得灵感很棒,本来想抄下的,后来一想gravatar有墙啊,那就有点难受了。实现于是经过几秒钟的思考,觉得直接读取历史评论里面的信息不就好了嘛,只要填过一次,下次评论时只要写下邮箱,别的信息就自动获取到了。流程:用户填写邮箱地址,然后ajax请求api,api这里返回三个数据(头像地址,昵称,网站地址),然后将返回的信息自动填入。重点就是api返回的三个数组的实现,头像地址比较简单,就是将邮箱用md5加密下,然后拼上地址就行了。//差不多就是这种感觉 $avatar = 'https://secure.gravatar.com/avatar/'.md5($email).'?d=mm';然后就是昵称和网站地址的查询了,通过邮箱使用sql查询评论列表,然后抽取最新一条的信息...

19 04 28

Typecho不使用插件实现Ajax评论功能

Typecho不使用插件实现Ajax评论功能

我之前写过《Typecho不使用插件实现Ajax评论功能》这篇文章,文章中对绛木子的函数完善了评论触发的接口,但是评论过滤部分的接口没有完善,只是单纯的给出了替代方案,其实很早之前就解决了,只是一直没有写出来,今天就把完善好的函数放出来。原文绝大部分代码出自绛木子博客:https://lixianhua.com/te_ajax_comment_without_pluign.html为了不使用插件实现Ajax评论功能需要实现:1,监听评论表单,改用ajax方式提交2,创建新的评论表单提交地址(用Typecho主题提供的系统方法themeInit实现)当访问文章加载主题时,themeInit方法首先被加载,可在此方法中判断是否为添加评论的操作,即新的评论表单地址为文章的链接(permalink).具体判断方法如下// 主题初始化 function themeInit($archive){ // 判断是否是添加评论的操作 // 为文章或页面、post操作,且包含参数`themeAction=comment`(自定义) if($archive->is(�...