开发笔记📐 发现👽 人物👮 趣闻💦
PHPCMS后台更新/安装CKEDITOR步骤 美观大气的编辑器

PHPCMS后台更新/安装CKEDITOR步骤 美观大气的编辑器
2018-06-02 10:37:20   点击:

阅读步骤之前,老九希望大家看教程或者步骤的时候,能够先花一点时间研究每一步的逻辑和作用.

准备工作:

1.当前phpcms最新版本(自带ckeditor 版本为3.6.6)

2.准备替换的最新ckeditor,以版本4.2.1举例
 

下面开始替换。

1.备份phpcms的 /statics/js/ckeditor 文件夹(重命名即可)。以及/phpcms/libs/classes/form.class.php (这个文件中有个方法就是创建一个编辑器,使用一些编辑器的工具栏配置需要在这里操作)

2.把新版ckedtior复制到/statics/js/下。打开/statics/js/ckeditor/config.js 文件,用旧版的config.js替换。但请注释掉 config.extraPlugins = ''; 这一行(我想应该是插件不兼容问题) 

3.复制旧版ckeditor/skins/kama/images/文件夹下的文件 到 新版ckeditor/skins/moono/images/下。目的是一些样式的需要。

到此,ckeditor编辑器升级完成,需要说明一下的是,phpcms本身自带一个capture插件,升级中没有考虑。

另外,由于PHPCMS自带的子标题等按钮功能新版CKEDITOR不支持,以及分页默认采用分页线,需要做适配请参考下面的原文地址。

以上内容原文地址:http://www.jb51.net/cms/109820.html

 

另附录:

phpcms处理多元化表单的方式

在phpcms的lib目录下的classes文件夹下有一个form.class.php文件,这个就是form表单类。打开一个,将近400行的代码。但是 如果你明白原理的话,就会知道大部分的代码都是拼接字符串。如果我们不需要很多配置的话,那么一个表单我们可以写一个方法,然后方法里面返回html表单代码就行了。

但是这样做事不灵活的,不可配置的。所以我们需要一个灵活性高的表单类,简化我们以后的工作,这样做的代价就是配置项增多,拼接字符串、判断代码增多,这是不可避免的。

editor方法

这个方法用来调用输出一个编辑器

public static function editor($textareaid = ‘content’, $toolbar = ‘basic’, $module = ”, $catid = ”, $color = ”, $allowupload = 0, $allowbrowser = 1,$alowuploadexts = ”,$height = 200,$disabled_page = 0, $allowuploadnum = ’10′) {//代码}

他有10个可配置参数。多吗?确实很多。看代码也很复杂。所以我建议你在看这些参数的意思之前先应该去看看ckeditor配置,这个才是editor方法的原理性的东西。

好了,假定你已经把上面的配置文档看完了,也明白了ckeditor的配置方法,那么下面你就应该知道,这个方法其实就是ckeditor配置字符串的拼接。上面的10个参数都是ckeditor的配置项,这个方法通过你传入的10个参数来配置好ckeditor,然后就返回配置好的js字符串。你把它输出到页面上配合textarea表单就可以生成一个编辑器了。

* @param int $textareaid:这是你页面上textarea表单的name值。ckeditor也就是通过这个值来识别你的textarea的。
* @param int $toolbar :用来配置你的编辑器的功能项。如果是basic,那么就会生成基础的编辑器,功能很少。如果是full,就会生成一个功能项很全的编辑器。
* @param string $module 模块名称:你的模块名称。为什么会有这个?ckeditor里面有一个上传组件,需要你的上传地址。
* @param int $catid 栏目id:同上
* @param int $color 编辑器颜色:不解释
* @param boole $allowupload 是否允许上传:不解释
* @param boole $allowbrowser 是否允许浏览文件:不解释
* @param string $alowuploadexts 允许上传类型:不解释
* @param string $height 编辑器高度:不解释
* @param string $disabled_page 是否禁用分页和子标题:不解释

看例子:
建立一个test模块,一个index控制器,一个init方法,在这个index文件中引入form表单类,写入一下代码:

defined(‘IN_PHPCMS’) or exit(‘No permission resources.’);
pc_base::load_app_class(‘admin’,’admin’,0);
pc_base::load_sys_class(‘form’, ”, 0);
class index extends admin {
function __construct() {
parent::__construct();
}
function init(){
echo “请输入.”;
echo form::editor(‘content’,’full’,’tieba’);
}
}
?>

这样一个丰富的文本编辑器就展现在后台了,看结果:

如果你的只是显示一个文本框,请检查你的ckeditor路径是否正确。

 

images方法

defined(‘IN_PHPCMS’) or exit(‘No permission resources.’);
pc_base::load_app_class(‘admin’,’admin’,0);
pc_base::load_sys_class(‘form’, ”, 0);
class index extends admin {
function __construct() {
parent::__construct();
}
function init(){
echo form::images(“test”);
}
}
?>

 

date方法

defined(‘IN_PHPCMS’) or exit(‘No permission resources.’);
pc_base::load_app_class(‘admin’,’admin’,0);
pc_base::load_sys_class(‘form’, ”, 0);
class index extends admin {
function __construct() {
parent::__construct();
}
function init(){
echo form::date(“test”);
}
}
?>

 

栏目选择方法:select_category

defined(‘IN_PHPCMS’) or exit(‘No permission resources.’);
pc_base::load_app_class(‘admin’,’admin’,0);
pc_base::load_sys_class(‘form’, ”, 0);
class index extends admin {
function __construct() {
parent::__construct();
}
function init(){
echo form::select_category();
}
}
?>

 

checkcode验证码方法

defined(‘IN_PHPCMS’) or exit(‘No permission resources.’);
pc_base::load_app_class(‘admin’,’admin’,0);
pc_base::load_sys_class(‘form’, ”, 0);
class index extends admin {
function __construct() {
parent::__construct();
}
function init(){
echo form::checkcode();
}
}
?>

上面的代码写得有点简单,省略的很多步骤。建议在看这个之前要有phpcms mvc的基础,模块安装的基础和控制器写法的基础。
 

php phpcms 编辑器

上一篇:Laravel的Facade实现原理 用实践来理解PHP的魔术方法
下一篇:CSS:after选择器简单说明 以及如何用after对clearfix进行改进