This is a sitelog of Easun.org.
因为 PSGI 运行 MT ,貌似服务器执行效率不再是瓶颈, so 渐渐取消了了一些为了节省资源的"优化",简单记录如下:
- 评论后博文重建的改变
原来为了效率。我的博文页其实有两个。一个是博文本身,另一个是json
格式的评论全集。 比如这个: http://easun.org/blog/archives/json/311.json。 当每次有新的评论发表时候,我的原设计是并不刷新本页,只是重载json
罢了。 通过自写的JS
把json
中的所有评论更新一遍。 而且每个页面的评论也都加入了"刷新
" 和"重载
"两个按钮。 其中"刷新
"的含义是重载json
文件, "重载
"则从数据库重载。 抓图如下:
而现在,考虑再三, 取消了json
格式的博文页, 减少一次服务器写文件的次数? 同理,改写了 JS,移除了在加载文件同时加载 json 文件。 当然,保留了从数据库直接重载评论的设计。 顺便改了一下 "重载
" 的UI
,让它更 醒目 一点 (也许是更*丑陋*了一点。哈哈),抓图如下:
针对 未关联 Gravatar 头像的Email用户的头像显示优化。
不在显示默认头像,而是仿照 手机邮件 APP 的邮件显示,直接显示 Name 的 首字。 其实以前也是这样显示的,只是通过 JS 更新成了 默认头像罢了。 另外,还有其他一些关于 JS 的修改,主要是彻底移除了 duoshuo 的相关代码等等。后端修改,主要暴力 Hack 了
MT
的评论逻辑(lib/MT/App/Comments.pm
)
在开启不登录评论的情况下,判断是否填写的 Email 是否关联了 Gravatar 头像,如果关联,则直接通过而不审核,否则,进入审核流程。
核心代码如下:code
sub eval_comment { ... if ( $blog->publish_unauthd_commenters ) { ### by EasunLee 2017 if( $comment->email && is_valid_email( $comment->email) && is_gravatar_ok( $comment->email) ) {$comment->approve;} else { $comment->moderate;} } ... } ## is_gravatar_ok( $email) by Easunlee 2017 sub is_gravatar_ok { my ($email) = @_; require Digest::MD5; my $md5 = Digest::MD5::md5_hex(lc($email)) ; my $image_url = "http://cn.gravatar.com/avatar/" . $md5 . '?s=50&d=404' ; my $ua = MT->new_ua( { paranoid =1 } ) or return; my $resp = $ua->get($image_url); return 0 unless $resp->is_success; return 0 if $resp->code eq '404'; return 0 unless $resp->content; return 0 unless $resp->header('Content-Type'); return 1 ; } ## ---- End is_gravatar_ok
叹息一下, 貌似 WP 直接就有相关设置。。。
修改JS, 增加“关闭/打开右栏”的按钮,让阅读更舒适。
从 佐仔 那里获得灵感和代码,增加了“回到顶部”按钮。
另外,对于登陆用户,修改了 “修改资料” 页面,方便登录用户更改在本站的显示名,Email,和网址,有限开放上传头像功能。 地址参见: http://easun.org/cgi-bin/mt/cp?__mode=edit
测试全站 Https 中, 重新设置后台为 mt.easun.org 和前端域名分开。。
不错的文章
谢谢,站务日志罢了 :D
欢迎来访