首先对这两个到底是什么东西介绍一下,Drupal是一个多用户的BLOG系统,基于PHP+MySql,特点是比较灵活,而且非常小巧,大多数功能都靠插件来提供。FCKEditor是一个基于JSP的文字编辑器,现在CSDN的blog编辑器使用的就是这个工具,它可以直接在文档中插入图片,修改文字格式等等,这些都是所见即所得的。
Drupal中默认的文字编辑器功能比较单一,不太方便,正好Drupal中也有一个插件支持FCKEditor嵌入的,可以在这里找到 http://drupal.org/project/fckeditor ,但是非常不幸,在我的Drupal 4.6中安装后,在IE下一切表现良好,到了FireFox下,竟然显示出了一块白板,经过整整一下午跟代码,并在最后参考了CSDN上的调用方式后发现,这是由于调用时的路径造成的,CSDN上使用了绝对路径,而Drupal的这个插件中使用了相对路径,最后,把插件使用的FCKEditor代码搬到www的根目录下,并采用绝对路径进行调用,一切问题解决。
最后贴一下修改的相关代码:
fckeditor.module
function fckeditor_create_editor($name) {
$html = '';
//$base_path = variable_get("fckeditor_base_path", 'modules/fckeditor/lib/');
$base_path = "/fckeditor/lib/";
$link = "$base_path" . "editor/fckeditor.html?InstanceName=edit-$name";
$link .= '&Toolbar=' . variable_get("fckeditor_toolbar", 'Default');
$height = variable_get("fckeditor_height", '500');
$width = variable_get("fckeditor_width", '100%');
// Render the configurations hidden field.
$html .= '<input type="hidden" id="edit-';
$html .= $name;
$html .= '___Config" value="';
//$html .= fckeditor_config_string();
$html .= '">';
// Render the editor IFRAME.
$html .= '<iframe id="edit-';
$html .= $name;
$html .= '___Frame" src="';
$html .= $link;
$html .= "\" width=\"$width\" height=\"$height\" frameborder=\"no\" scrolling=\"no\"></iframe>" ;
return $html;
}