2009年4月11日星期六

评: 为 Drupal 安装所见即所得的编辑器 FCKeditor

Drupal自带的编辑器功能很简单,通常需要安装一个 WYSIWYG 的编辑器,其中 FCKeditor 是一款比较优秀的编辑器,下面说明 FCKeditor 的安装方法。

1,下载安装包,需要两个,一个是FCKeditor本身,另一个是 drupal 的fckeditor 接口模块:

http://www.fckeditor.net/download 下载FCKeditor, 目前最新的版本是FCKeditor_2.6.2.zip。

http://drupal.org/project/fckeditor 下载接口模块,我的 drupal 是 5.8,所以下载一个 for 5.x 的:

fckeditor-5.x-2.2-beta2.tar.gz

2,解压上传到站点

先 解压接口模块,得到一个 fckeditor 文件夹,把它上传到sites/all/modules/ 目录下,如果没有 moudules 子目录,就自己建一个。不要直接上传到根目录下的modules中,那里是drupal的核心模块,不要动里面的东西。 fckeditor/README.txt里有详细的安装指令,必要时可以参考。

sites/all/modules/fckeditor/fckeditor/ 目录下有个文件 COPY_HERE.txt, FCKeditor_2.6.2.zip 解压后,把里面的东西通通放在这个目录下。

3,启用模块

主页 >> 管理 >> 站点创建 >> 模块

other 里面启用 FCKeditor, 保存配置。

4,设置用户权限

主页 >> 管理 >> 用户管理 >> 访问控制

"fckeditor 模块",设置“认证用户”允许“access fckeditor”,如果允许上传文件则选上“allow fckeditor file uploads”.

5,启用 teaser break 和 page break 按钮

打开 sites/all/modules/fckeditor/fckeditor.config.js 把下面三行的注释去掉:

FCKConfig.PluginsPath = '../../plugins/' ;
FCKConfig.Plugins.Add( 'drupalbreak' ) ;
FCKConfig.Plugins.Add( 'drupalpagebreak' ) ;

下面添加工具条按钮,还是在这个文件里,找到这行:

['Image','Flash','Table','Rule','SpecialChar']

改成:

['Image','Flash','Table','Rule','SpecialChar', 'DrupalBreak', 'DrupalPageBreak']

6,修改 FCKeditor profile,

主页 >> 管理 >> 站点配置 >> FCKeditor

编辑各种角色的权限,在 File browser settings 中设置允许上传文件为 true;Editor Appearance 中的 Toolbar 改成"DrupalFull", 这样两个break按钮才能显示出来。

7,另外,sites/all/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php 中,找到第30行的:

$Config['Enabled'] = false ;

改为 ture,否则上传文件时会出现连接器错误。

8, 主页 >> 管理 >> 站点配置 >> 输入格式,把 Full HTML 设为默认格式,否则插入的图片会显示不出来

通过编辑sites/all/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php文件,
设置如下信息

$Config['Enabled'] = true ;
$Config['UserFilesPath'] = '/drupal/userfiles/' ; #相对于/var/www/这个DocumentRoot变量的路径
$Config['UserFilesAbsolutePath'] = '/var/www/drupal/userfiles/' ; #这里是绝对路径,注意linux和windows的区别。

这三项都是必须的,否则通过FCKeditor上传都无法工作,出现相应错误。

更多功能:

修改上传方式

Fckeditor编辑器上传方法有两种:QuickUpload 和 FileUpload。
QuickUpload是所有的上传文件都是一个文件夹中,也就是图片img,flash动画swf等都存放在userfiles文件夹中。
FileUpload是把不同类型的文件区别,自动在userfiles文件夹下生成image,flash等目录用以存放相应的文件。
默认为QuickUpload上传方式。

修 改上传方式:打开sites/all/modules/fckeditor/fckeditor/editor/filemanager /connectors/php/upload.php文件,找到 $sCommand = 'QuickUpload' ; 修改为 $sCommand = 'FileUpload' ; 就可以了。

自动生成随机文件名

Fckeditor上传文件都不会改变原来的文件名字,即a.jpg上传到服务器上还是a.jpg,当有上传同名的文件时就会出现问题,上传中文名字的文件时也会出现访问乱码。所以,要改为自动生成随机文件名。

找到 fckeditor\editor\filemanager\upload\php 下面的commands.php文件,打开。
在183行 $sExtension = strtolower( $sExtension ) ; 下面增加如下语句:
// GetID
$sFileName = GetID( ".".$sExtension );
$sOriginalFileName = $sFileName ;

在文件末尾添加GetID函数

//生成随机文件名
function GetID($prefix) {
//第一步:初始化种子
//microtime(); 是个数组
$seedstr =split(" ",microtime(),5);
$seed =$seedstr[0]*10000;
//第二步:使用种子初始化随机数发生器
srand($seed);
//第三步:生成指定范围内的随机数
$random =rand(1000,10000);

$filename = date("YmdHis", time()).$random.$prefix;

return $filename;
}

自动按日期创建目录

默认文件保存方式都在文件目录中,当文件量大的时候管理就很不方便。所以需要根据日期自动创建目录。

在这里修改config.php即可,在文件最后增加以下内容:

//===============================================================================
//Auto creat upload document folder
//===============================================================================

// Auto creat upload document folder.
$Config['AutoDocumentFolder'] = date("Ymd", time()) . '/' ;

$Config['FileTypesPath']['File'] .= $Config['AutoDocumentFolder'];
$Config['FileTypesAbsolutePath']['File'] .= $Config['AutoDocumentFolder'];
$Config['QuickUploadPath']['File'] .= $Config['AutoDocumentFolder'];
$Config['QuickUploadAbsolutePath']['File'] .= $Config['AutoDocumentFolder'];

$Config['FileTypesPath']['Image'] .= $Config['AutoDocumentFolder'];
$Config['FileTypesAbsolutePath']['Image'] .= $Config['AutoDocumentFolder'];
$Config['QuickUploadPath']['Image'] .= $Config['AutoDocumentFolder'];
$Config['QuickUploadAbsolutePath']['Image'] .= $Config['AutoDocumentFolder'];

$Config['FileTypesPath']['Flash'] .= $Config['AutoDocumentFolder'];
$Config['FileTypesAbsolutePath']['Flash'] .= $Config['AutoDocumentFolder'];
$Config['QuickUploadPath']['Flash'] .= $Config['AutoDocumentFolder'];
$Config['QuickUploadAbsolutePath']['Flash'] .= $Config['AutoDocumentFolder'];

$Config['FileTypesPath']['Media'] .= $Config['AutoDocumentFolder'];
$Config['FileTypesAbsolutePath']['Media'] .= $Config['AutoDocumentFolder'];
$Config['QuickUploadPath']['Media'] .= $Config['AutoDocumentFolder'];
$Config['QuickUploadAbsolutePath']['Media'] .= $Config['AutoDocumentFolder'];
//===============================================================================
//end
//===============================================================================

NOTE: 如果要卸载某个模块,先要把该模块的Enabled的“对勾”给去掉,然后通过Administer->Site building->Menus->Modules最上面右侧的Uninstall按钮把它卸载掉。


-------------------------------------------
i3server
i3server
www.86-00.com

没有评论: