Drupal使用笔记
Thursday, 5. November 2009, 14:22:00
不定期更新……
- 使用opera上传文件作为附件时会产生一个js错误,然后显示一堆js代码,ie无问题,而且文件的确也在site/xxxx/files/目录底下,说明不是php的上传设置问题。
参考了 http://drupal.org/node/434394#comment-2199670 ,下载一个新的jquery.form.js文件,替换drupal/misc/下面的同名文件,搞定。
- image api模块的gd在php 5.3.0下工作不正常,不能正确地传递参数给crop, resize等功能,于是导致一票模块比如image cache工作不了。
这个帖子提供了了patch, http://drupal.org/node/540486#comment-2142956 ,windows下可以用这里的patch工具,注意需要先转换行符,不知道为什么不能自动处理掉。
- drupal的上传图片并且插入正文一直不能无痛地一键解决。现有的处理方式主要分几种:把图片插入为node,比如image模块就是这么干的,酱紫就可以统一地管理,而且属性可以加很多,坏处就是一个node必须要有标题等玩意儿,导致上传的表单特别复杂,老太太们肯定就花眼了。而且node其实管理起来对于最终用户来说还是麻烦,比如要删掉某个文章node里面的图片,操作就多了点,删除文章node时删除附属的图片node也会导致交叉引用的问题。所以node方式仅仅是权宜之计。
第二种方式就是上传到模块附属的文件系统里,比如bueditor推荐的imce就是如此。好处就是安装相对比较简单。坏处就是文件不是附属于文章的,而是在用户文件夹下或者服务器文件夹下面,所以没法方便地管理尤其是删除某个文章的文件。这种方法给管理带来很大困难。
第三种就是直接使用drupal自己的附件功能,酱紫文件都是附属于文章的,而且不用额外增加节点。现有的方案是通过cck增加文章的字段,然后通过filefield或者imagefield管理附件,再用insert插入正文,图片的缩略图可以用image cache处理掉。但这种方法还是有不足,首先就是需要添加字段,而不是直接使用原有的附件上传表单,所以表单比较多,容易产生困惑。其次就是drupal的comment不是node,所以没法让comment用这些字段来上传文件。如果要把所有的comment变成node,那麻烦会不小。
- 使用imagecache、imagefield以及insert来控制图片上传看起来还是不错,不过俺更喜欢bbcode的插入方式,于是需要把
drupal\sites\yoursite\modules\insert\templates\imagecache-insert-image.tpl.php
里面的最后一行<img src="<?php print $url ?>" alt="__alt__" title="__title__" class="imagecache-<?php print $preset_name ?><?php print $class ? ' ' . $class : '' ?>" />
换成[img]<?php print $url ?>[/img]
如果需要给图片加上超链接的话,把上面一行换成[url=<?php print $systemfilepath?>][img]<?php print $url ?>[/img][/url]
,同时需要把drupal\sites\yoursite\modules\insert\includes\imagecache.inc
里面的最后一段的function template_preprocess_imagecache_insert_image(&$vars)
后面的花括号里加上$vars['systemfilepath'] = file_create_url($vars['item']['filepath']);
这么一行。
当然bbcode模块是要先启用的。

