替换Phpcms2008的编辑器FckEditor为TinyMce

phpcms2008不知道有没有人觉得Phpcms的默认编辑器FckEditor不好用,而Wordpress的TinyMce好用一些,于是今天把Fckeditor替换成了tinymce。下面就讲解一下是如何替换的。

替换的过程中,丢掉了一些功能:上传图片、恢复数据、增加(减小)编辑器高度、标题分页功能不好用等等。毕竟这是刚刚修改,在以后我看看能不能再改改这几个功能。警告:目前为测试,请在本地测试,勿在网站上测试。

Phpcms2008使用TinyMce效果

Phpcms2008使用TinyMce效果

这次修改了两处文件,所以替换的编辑器只有后台的内容管理和会员中心的内容管理,其它如留言本的编辑器未作修改。

1、修改include\fields\editor\form.inc.php

由于tinymce需要textarea不能为隐藏,所以

$data = “<textarea name=\”info[$field]\” id=\”$field\” style=\”display:none\”>$value</textarea>\n”;

要修改为

$data = “<textarea name=\”info[$field]\” id=\”$field\”>$value</textarea>\n”;

2、修改include\form.class.php

这个文件修改的内容比较多,先后替换了编辑器的代码和分页、分页标题等功能的代码。对于tinymce,用的是advanced模式,全功能,具体参考TinyMce中文参考手册。第七行完全替换为:

$str = “<script type=\”text/javascript\” src=\”/images/js/tinymce/tiny_mce.js\”></script>\n”;
$str .= “<script type=\”text/javascript\”>\n”;
$str .= “tinyMCE.init({\n”;
$str .=”language : \”zh\” ,\n”;
$str .= “mode : \”exact\”,\n”;
$str .= “elements : \””.$textareaid.”\”,\n”;
$str .= “theme : \”advanced\”,\n”;
$str .=”width:\””.$width.”\”,\n”;
$str .=”height:\””.$height.”\”,\n”;
$str .= “plugins : \”safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups\”,\n”;
$str .= “theme_advanced_buttons1 : \”save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect\”,\n”;
$str .= “theme_advanced_buttons2 : \”cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor\”,\n”;
$str .= “theme_advanced_buttons3 : \”tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen\”,\n”;
$str .= “theme_advanced_buttons4 : \”insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak\”,\n”;
$str .= “theme_advanced_toolbar_location : \”top\”,\n”;
$str .= “theme_advanced_toolbar_align : \”left\”,\n”;
$str .= “theme_advanced_statusbar_location : \”bottom\”,\n”;
$str .= “theme_advanced_resizing : true,\n”;
$str .= “content_css : \”css/content.css\”,\n”;
$str .= “template_external_list_url : \”lists/template_list.js\”,\n”;
$str .= “external_link_list_url : \”lists/link_list.js\”,\n”;
$str .= “external_image_list_url : \”lists/image_list.js\”,\n”;
$str .= “media_external_list_url : \”lists/media_list.js\”,\n”;
$str .= “template_replace_values : {\n”;
$str .= “username : \”Some User\”,\n”;
$str .= “staffid : \”991234\”\n”;
$str .= “}\n”;
$str .= “});\n”;

$str = “<script type=\”text/javascript\” src=\”/images/js/tinymce/tiny_mce.js\”></script>\n”;

$str .= “<script type=\”text/javascript\”>\n”;

$str .= “tinyMCE.init({\n”;

$str .=”language : \”zh\” ,\n”;

$str .= “mode : \”exact\”,\n”;

$str .= “elements : \””.$textareaid.”\”,\n”;

$str .= “theme : \”advanced\”,\n”;

$str .=”width:\””.$width.”\”,\n”;

$str .=”height:\””.$height.”\”,\n”;

……………………(此处省略,可参考附件)

$str .= “}\n”;

$str .= “});\n”;

又替换了分布、标题分页等功能的代码。其它功能未改动,当然也就不起作用了。

3、把tinyMce放到images/js目录下

附件中已有整合好的tinymce,也可以从官方网站下载TinyMce,再到Languages Pack页面下载中文语言包。

注意:语言包的下载,需要在简体中文上打勾,再到下面点击download。

我是把tiny_mce改名为tinymce,然后放到了images/js目录下,这个可以凭喜好放置,但是调用时,路径一定要写对。

进行了以上操作,就可以在后台内容管理和会员中心的内容管理里使用基本的tinymce编辑器了。

Phpcms2008使用tinyMce出现的问题

Phpcms2008使用tinyMce出现的问题

已知缺点:

1、由于没有集成上传图片的插件,所以该编辑器不能上传图片,虽然TinyMCE有一个图片上传插件MCimagemanager,但是收费插件。 可以变相的进行上传操作就是在上传缩略图那个地方上传图片,然后在编辑器里插入图片。

2、恢复数据、增加(减小)编辑器高度功能不可用,未修改代码。

3、分页功能、标题分页功能不好用,对分页功能来说,主要是<p></p>的问题,未发现该编辑器有<br />模式。该解决办法就是修改分页的函数把<p>[page]</p>和<p>[page]标题1[/page]</p>作为分页的分隔符。

附件下载

附件下载

本文持续更新…

替换Phpcms2008的编辑器FckEditor为TinyMce》上有4条评论

  1. jojo

    我也感觉 自带的编辑器不是很好.

    但是我安装您修改的附件 到我的phpcms sp2中 会出现乱码 好像我的是gbk的缘故?

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注