一直都没有使用过MT的QuickPost功能,因为MT的后台编辑器一直太简陋,基本都不在后台写文章。但如果拿来做一些网摘和随感,那后台编辑器还是足够的,而且比客户端和自己加装可视化编辑器的启动速度要快。
只是MT后台生成的QuickPost书签有一个很严重的问题:不支持中文。
没想到MT这样一个元老级的CMS系统竟然还是有这样的低级兼容问题,准确的说,是在javascript中使用了不太合适的函数导致了不合适的数据提交。凡是碰到网页标题是中文,或者你选中的文字是中文,那浏览器一定返回给你一个406 Error(很稀有的错误提示吧):
IIS服务器上会不会有这样的问题不清楚,但我想大部分的MT都是安装在Apache服务器上的吧。这个该死的问题直接导致了我另一个文章分类的难产。
这个问题在网上几乎没有找到任何有帮助的资料,大致了解到问题的原因是提交数据是因为编码问题,可能造成类似Hack攻击的数据提交,结果导致服务器报错。但那个老外也没有给出问题解决方法。
MT后台生成的原版QuickPost书签如下("show="后面的一小段因个人设置而不同):
几乎修改过所有参数,依旧无效,我几乎都想去让盘古修改服务器设置来避免这个问题了,但那毕竟不是我一个人的服务器。眼见往左移,QuickPost书签左边是Delicious的收藏书签。
灵光乍现:
嗯,Delicious书签也是javascript代码,提交方式和QuickPost也很类似,也许可以用Delicious中函数来替换QuickPost书签中的函数,毕竟到目前为止还没听说有人用Delicious收藏中文网页是看到406错误。
Delicious的收藏书签代码如下:
最明显的差别就是QuickPost使用的是escape函数,而Delicious使用的是encodeURIComponent函数。
其他一切不变,直接用encodeURIComponent替换掉escape(共三处),修改好后替换到收藏夹中。
修改后的代码:
找个中文网页一试,一切OK,标题以及选中的中文都完全正常显示。于是这里的最后一个文章分类顺利诞生。
引用地址:9
我装了个MT en 3.35。怎么也用不了(主要是不会用。。。汗)。
不知道你有没有中文包。
评论者: faydao | 04月15日16时09分
3.35。。。。我又落伍了
评论者: dimlau | 04月18日21时07分