Drupal核心autocomplete功能出错

一些nginx服务器的配置硬性隐藏了index.php,导致drupal的autocomplete功能出错(返回404)。

临时解决方法:

修改include/form.inc

field_collection与multifield的简单对比

field_collection比较完美地实现了子字段的使用,但由于collection是通过entity+field实现的,据说有性能问题,还带来了数据迁移时的复杂性。drupal的entity+field可以被理解为扁平化结构的数据表,在扁平化结构中记录父子关系,对于复杂的数据查询是比较难构建的。试想一下,要提取某个node的所有field,首先得先将各个子字段表join到父字段(其实是个entity)表,再join到node表,还要join上其它非collection的field表。

Linux message日志出现大量 “net_ratelimit: N callbacks suppressed” 信息

Linux has a mechanism to avoid a DoS attack – with regard to logging – called rate limit. Every message logged by the kernel (including its modules), with printk(), is checked if it’s allowed to be actually printed through this mechanism.

成功导入drupal6的节点到drupal7(带图片)

使用migrate_d2d进行d6到d7的迁移,有几点要注意:

Services模块的user login/logout方法

网上找了许多方法都是旧的(包括官网),都说要session/cookie、system.connect什么的。

其实步骤很简单。。。

首先去services/session/token获取当前的token

然后添加header:X-CSRF-Token: $your_token

要logout的话,以post方式提交至$endpoint/user/logout,无需任何参数

要loing的话,以post方式提交至$endpoint/user/login,需提交username=XXX&password=XXX参数

apache配置静态文件客户端缓存时间

参照html5boilerplate里的.htaccess的配置:

linux一行命令批量修改文件名中的部分字符(包含子目录下的文件)

起因是为tinymce安装汉化包,安装后效果如下:
通过find命令查找: find ./ -name zh-cn*

再见了,APC!

本来就瞧着不爽,apc无论速度和内存占用都比不上eAccelerator,可惜eAccelerator在centos6上的版本有问题。随着时间的推移,php5.5将自带opcode缓存,apc项目结束,ZendOpcache横空出世。

关于Invalid multibyte sequence in argument in check_plain() 的报错

在drupal的使用过程中,某些情景会固定出现这个错误:

Warning: htmlspecialchars(): Invalid multibyte sequence in argument in check_plain() (line 1156 of /drupal_root/includes/bootstrap.inc).

而1156行的代码是这样的:

google feed api的时差问题

通过google feed api解析的得到的publishedDate,日期后面总是带上 -0800(有时是 -0700,不知道是什么原因),中国时区明明是+8的,所以出来的时间“大”了16个小时。

依靠强大的javascript,硬编码减去16个小时的毫秒数,暂时解决问题。

date = new Date(Date.parse(publishedDate)-16*3600*1000)