一, 使用前的准备。
使用前请确认你已经建立好了一个Thinkphp站点项目。
1,Keditor.class.php和JSON.class.php 是编辑器扩展类文件,将他们拷贝到你的站点项目的ThinkPHP\Lib\ORG\Net 目录下。
2,editor目录是kindeditor的核心包。将其拷贝到你项目的Public目录下(和入口文件同级的那个Public),并在Public下再建立一个Upload目录。用于存放使用编辑器上传的图片。
3,KeditorAction.class.php是编辑器的上传图片功能和浏览远程图片功能,将其拷贝到你项目的lib\Action 目录下。
二, 对象的调用
在控制器方法中调用对象:
import("ORG.Net.Keditor");
$ke=new Keditor();
$ke->id="content";//指定textarea的id
$keshow=$ke->show();//生成js代码
$this->assign("keshow",$keshow);
$this->display();
在方法相应的模版文件里显示编辑器:
<html>
<head>{$keshow}</head><!--输出js。建议放在head-->
<body>
<form id="form1" name="form1" method="post" action="">
<textarea name="content" id="content" cols="70" rows="20"><!-文本域。id为content-->
</textarea>
<input name="img" id="img" type="hidden" value="" /><!--隐藏域存储编辑器上传的图片地址,id为img-->
</form>
</body>
</html>
上面的是最简单的调用方法,扩展类还有非常多属性和方法。要想实现更完美的功能,接着往下读。
三, 对象的属性
我把属性分为两种。一种是kindeditor自带属性,一种是扩展新增属性。假设你曾经就使用过kindeditor,你应该知道kindeditor自身有id、items、width、height、afterCreate等等30个属性。这些属性如今能够用过php直接定义,比方定义id:$ke->id=”content”,定义宽度:$ke->width=”700px”; 我先说对象新增属性。
对象的新增属性:
1。jspath:定义kindeditor的核心js文件。默认值为/Public/editor/kindeditor.js ,假设你的editor目录没有放在Publib下须要指定此属性,如$ke->jspath=”/kind/ kindeditor.js”;
2,form:指定提交的表单(from)的id。默觉得form1,这个属性是结合ctrl+enter提交功能使用的。比方有个你的编辑器放在表单id为 “formid”内,要实现ctrl+enter提交formid表单。须要定义$ke->form=”formid” 。
ctrl+enter提交功能还要设置其它属性。后面再解说。
3。imgid:指定存放图片地址的隐藏域id。默觉得img。
编辑器每上传一张图片。会把图片地址存储到该隐藏域。在向数据库加入数据时,能够把此隐藏域中的数据也保存到数据库字段中。在删除数据时候。先读取数据库存放的图片地址,进行删除。删除过程仅仅要调用对象的delimg方法就可以。此方法后面具体解释。这样就达到删除内容同一时候删除图片的目的。
自带属性:
1,items:配置编辑器的工具栏,定义方法如
$ke->items=”['source', '|', 'fullscreen', 'undo', 'redo', 'print', 'cut', 'copy', 'paste']”;
我添加了little关键词,能够高速定义一个精简模型的编辑器。用法$ke->items=”little”;
2,afterCreate:设置编辑器创建后运行的回调函数,定义方法如
$ke->afterCreate=”function(id){
alert(‘成功创建’+id)
}”;
我添加了ctrlenter关键词,能够高速定义ctrl+enter提交表单,用法:
$ke->afterCreate=”ctrlenter”;
同一时候须要定义$ke->form=”formname”, formname换为你编辑器所在的表单id。
3。resizeMode:2或1或0,2时能够拖动改变宽度和高度。1时仅仅能改变高度。0时不能拖动。定义方法如:$ke->resizeMode=1; 注意,数字类型的属性值不要放在引號中,如$ke->resizeMode=”1”;这么定义是错误的。
4,allowFileManager:true或false,true时显示浏览server图片功能(点击上传图片button能够看到此功能)。定义方法如
$ke-> allowFileManager=ture;
注意,属性值为布尔值时不要放在引號中。
5,imageUploadJson指定上传图片的server端程序,默认值为 /index.php/Keditor/upload
6。fileManagerJson:指定浏览远程图片的server端程序,
默认值为/index.php/Keditor/filemanager
注:之前你复制过的KeditorAction.class.php就是供上传图片和浏览远程图片使用的。文件内的upload方法定义了上传图片处理过程,文件内的filemanager方法定义了浏览图片的处理过程。你能够在这两个方法上增加推断权限的代码,实现仅仅有管理员才干上传图片或浏览图片。你也能够不使用默认的KeditorAction.class.php,自定义上传处理过程和浏览图片处理过程。则是你须要又一次定义imageUploadJson属性值和fileManagerJson属性值。 自定义处理过程,后面具体解释。
还有其它自带属性。我就不一一列举了。大家能够查看kindeditor官方文档
http://www.kindsoft.net/doc.php?cmd=config
注意。数字类型或布尔类型的属性值,不要放在引號内。其它属性值放在引號中,属性值的格式和kindeditor自身格式一样。
四 对象的方法。
1。upload。上传图片。
此方法在编辑器上传图片处理过程中使用,用法:
import("ORG.Net.Keditor");
Keditor::upload('./Public/Upload/','/Public/Upload/',array('gif','jpg','jpeg','png','bmp'),1000000);
upload方法有三个參数。依次是。“上传图片文件夹”,“图片显示地址”,“同意上传图片格式”,“同意的图片大小(单位kb)”
上传图片文件夹:默认值“./Public/Upload/”(注意Public前面有个“点”符号。是使用的相对地址,不可使用绝对地址),上传图片文件夹地址是相当于处理文件的。
Thinkphp全部的代码都是通过入口文件执行的,所以这个地址事实上是相对于入口文件的。
显示图片地址:默认值“/Public/Upload”(通常是绝对地址)。如果我们上传了一张图片。server端生成的图片名为 12345.gif。上传会显示的图片地址则为/Public/Upload/12345.gif ,由于我们使用的是绝对地址,所以编辑器公布的内容无论在站点的哪儿,图片都能正常显示。
同意上传的图片格式:定义一个数组。默认值为array('gif','jpg','jpeg','png','bmp')
同意的图片大小:默认值为,1000000 。单位是bk。
2,filemanager。浏览server的图片。此方法在浏览图片处理过程中使用。用法:
import("ORG.Net.Keditor");
Keditor::filemanager("./Public/Upload/","/Public/Upload/",array('gif','jpg','jpeg', 'png', 'bmp'));
參数依次是:“浏览图片文件夹”,“图片显示地址”,“同意浏览的图片格式”,和upload方法一样,浏览图片文件夹是相对地址。图片显示地址是认为地址。
3,delimg:删除通过编辑器上传的图片。此方法一般在你删除数据库数据时使用。
import("ORG.Net.Keditor");
Keditor::delimg($imgfield);
//$imgfield 通常是你数据库存放图片地址的字段。
4,show:返回生成的js代码。此方法一般在显示编辑器的控制器中使用。
show方法能够使用一个參数定义kindeditor自带属性。
如:
import("ORG.Net.Keditor");
$ke=new Keditor();
$ke->show(“{
id : ”content”,
width: ‘700px’;
height : ”300px”;
imgid : ”img”
}”);
不建议用show传參方式定义kindeditor属性。show传參方式不能定义jspath和form两个新站属性。也不能使用little和ctrlenter关键词。
Thinkphp编辑器扩展类kindeditor用法的更多相关文章
-
unity shader 编辑器扩展类 ShaderGUI
这应该unity5才出的新功能了,今天看文档时刚巧看到了,就来尝试了一下. 效果如图: shader 的编辑器扩展分为2种方法: 是通过UnityEditor下的ShaderGUI类来实现的,形式比较 ...
-
Unity编辑器扩展chapter1
Unity编辑器扩展chapter1 unity通过提供EditorScript API 的方式为我们提供了方便强大的编辑器扩展途径.学好这一部分可以使我们学会编写一些工具来提高效率,甚至可以自制一些 ...
-
Unity 编辑器扩展 场景视图内控制对象
http://blog.csdn.net/akof1314/article/details/38129031 假设有一个敌人生成器类,其中有个属性range用来表示敌人生成的范围区域大小,那么可以用O ...
-
Unity3D编辑器扩展(五)——常用特性(Attribute)以及Selection类
前面写了四篇关于编辑器的: Unity3D编辑器扩展(一)——定义自己的菜单按钮 Unity3D编辑器扩展(二)——定义自己的窗口 Unity3D编辑器扩展(三)——使用GUI绘制窗口 Unity3D ...
-
针对thinkphp 5框架存储过程bug而重写的存储过程的扩展类
近期用tp5框架调取存储过程发现有bug,借鉴了一些官方的函数.以及找了个mysqli的类把存储过程重新写了个扩展类,下面两个类直接放置项目extend目录的stored(这个文件夹名称请按个人习惯命 ...
-
Unity 3D编辑器扩展介绍、教程(一) —— 创建菜单项
Unity编辑器扩展教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 一 Brief Introduct ...
-
Unity3D使用经验总结 编辑器扩展篇
一个引擎,最重要的就是工具,工具除了提升开发速度,提供可视化操作环境以外,还带了容错功能. 它使得大家的工作局限在一定的范围内,比如一个变量的配置,或者是一些类型的选择. 使用编辑器,使得既使不太明白 ...
-
php class类的用法详细总结
以下是对php中class类的用法进行了详细的总结介绍,需要的朋友可以过来参考下 一:结构和调用(实例化): class className{} ,调用:$obj = new className(); ...
-
Unity3D编辑器扩展(六)——模态窗口
前面我们已经写了5篇关于编辑器的,这是第六篇,也是最后一篇: Unity3D编辑器扩展(一)——定义自己的菜单按钮 Unity3D编辑器扩展(二)——定义自己的窗口 Unity3D编辑器扩展(三)—— ...
随机推荐
-
MS SQL 错误:The operation could not be performed because OLE DB provider ";SQLNCLI10"; for linked server ";test"; was unable to begin a distributed transaction.
一同事在测试服务器(系统:Windows 2008 R2 Standard 数据库:SQL SERVER 2008 R2)通过链接服务器test使用分布式事务测试时出错,出错信息如下: set ...
-
c++中的一些容易混淆的研究
(1).TRUE/FALSE与ture/false以及NULL与null的区别是什么? 1.首先我们要了解true/false是标准c++中定义的关键字,在c语言中是没有bool类型的. 所以为了弥补 ...
-
Unicode : RLO
分类:备忘,Unicode,Perl 我们一般的输入文字的方向是从左往右,但是世界上总有特例,阿拉伯国家是从右到左的书写方式.经常看到微信里面好友得瑟,也就拿过来总结一下. 每个语言都能实现字符串反转 ...
-
UNICODE,GBK,UTF-8区别
简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那三种编码是一兼容的,同一个汉字,那三个码值是完全不一样的.如"汉"的uncode值与g ...
-
Python 基础【第六篇】字典
1.字典定义: 字典和列表类似 只是字典标示符用的是字符而列表用的是0开始的数字,字典中每个元素对应一个值 这个元素叫做键(key)键值不能重复 value(值)可以重复 2.字典格式: 格式一: [ ...
-
Android各种屏幕分辨率(VGA、HVGA、QVGA、WQVGA、WVGA、FWVGA) 具体解释
看资料的时候常常看到各种VGA,全都混了,无奈,找了些资料总结了下,分享给大家: 这些术语都是指屏幕的分辨率. VGA:Video Graphics Array,即:显示画图矩阵,相当于640×480 ...
-
USACO1.3.4 Combination Lock
题目链接:1.3.4 为了防止有重复的数字,我开了个三维数组来标记,爆内存,又用vector标记,爆内存... 不得不感慨这份代码. /* ID:wang9621 PROG:combo LANG:C+ ...
-
[python] 修改Tkinter 的默认图标
先上一个不修改的样式,如下: import easygui as g g.msgbox("hello","hi") 注意左上角的图标为红色的Tk字样 修改后: ...
-
让PHP7达到最高性能的几个Tips(转)
PHP7已经发布了, 作为PHP10年来最大的版本升级, 最大的性能升级, PHP7在多放的测试中都表现出很明显的性能提升, 然而, 为了让它能发挥出最大的性能, 我还是有几件事想提醒下. PHP7 ...
-
Are you looking forward to this 11s Black Stingray
The Derek Jeter Air Jordan 11 Navy Suede has quietly dropped a number of various colorways over the ...