使用 Drupal 过程中遇到的一些问题,问题的描述以及这些问题的解决办法。主要来自于实际项目过程中遇到的问题,是一些实用性强的技巧性资源。
某个项目需要指定的节点包含多个可拖拽、无限数量、带富文本编辑器的文本输入区域。
使用 CCK 模块为节点添加文本框字段
在字段配置页面将文本框的数量设置为 Unlimited,将文本过滤设置为 Filtered text (这样就能应用富文本编辑器了,否则只有文本框)
使用此方法,可以实现为指定内容类型添加可拖拽的、不限制数量、带富文本编辑器的文本框,但在实际使用过程中遇到一些问题。最主要的问题是在对文本框进行拖拽排序时,文本框内的内容会丢失。
其实一开始不太好确定是哪个模块的问题,CCK? CKEditor? 还是 WYSIWYG? 所以试了 CKEditor 模块、Wysiwyg 模块 + CKEditor 编辑器、Wysiwyg 模块 + TinyMCE 编辑器等几种解决办法,最终确定是 wysiwyg 模块的问题。通过查询 wysiwyg 模块的问题队列,找到了这个问题的解决办法 —— 即安装一个(实际上是四个)专门针对这个问题而开发的模块 —— Wysiwyg API CCK Integrate。
说明:最终安装以上模块之后,Wysiwyg 模块 + TinyMCE 编辑器表现不正常了。因为 Wysiwyg 模块 + CKEditor 编辑器在拖拽时还存在页面布局出错的问题,所以没有选用。
参考文档:http://drupal.org/node/452678
如果在创建 CCK 字段之前没有很好的考虑字段的类型,那么在项目后期很可能就需要对字段进行修改。对于刚刚创建的 CCK 字段,如果字段的类型选择错了,最简单的办法就是把字段删除,然后添加一个类型正确的字段。这倒不会有什么伤害。
不过并不是所有情况都是这么简单,有时候网站运行了很长时间之后才发现之前定义的字段类型已不能满足需要了。例如一开始创建的是 float 类型的字段,但因为数据的增长,发现需要将内容类型转换成 decimal。在这种情况下,如果删除 float 字段,所有存储在 float 字段里的数据也都一同被删除了。所以,要最大限度地保证原有数据不丢失,应该如何更改 CCK 字段的类型。
注意:执行以下操作前,请先备份数据库
按照以上步骤更改 CCK 字段的类型虽然有点麻烦,但最重要的是能够保全数据。因为数据类似不一样,可能会导致一些数据丢失精度,但小面积的损失远远好过于丢失全部数据 :D
参考文档:http://drupal.org/node/769784