Thinkphp编辑器扩展类kindeditor使用方法

一, 使用前的准备。

使用前请确认你已经建立好了一个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时显示浏览服务器图片功能(点击上传图片按钮可以看到此功能),定义方法如

$ke-> allowFileManager=ture;

注意,属性值为布尔值时不要放在引号中。

5,imageUploadJson指定上传图片的服务器端程序,默认值为 /index.php/Keditor/upload

6,fileManagerJson:指定浏览远程图片的服务器端程序,

默认值为/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”(一般是绝对地址),假设我们上传了一张图片,服务器端生成的图片名为 12345.gif。上传会显示的图片地址则为/Public/Upload/12345.gif ,因为我们使用的是绝对地址,所以编辑器发布的内容不管在网站的哪儿,图片都能正常显示。

允许上传的图片格式:定义一个数组,默认值为array(‘gif‘,‘jpg‘,‘jpeg‘,‘png‘,‘bmp‘)

允许的图片大小:默认值为,1000000 ,单位是bk。

2,filemanager,浏览服务器的图片。此方法在浏览图片处理过程中使用。使用方法:

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使用方法

时间: 2024-10-26 01:53:16

Thinkphp编辑器扩展类kindeditor使用方法的相关文章

Thinkphp编辑器扩展类kindeditor用法

一, 使用前的准备. 使用前请确认你已经建立好了一个Thinkphp站点项目. 1,Keditor.class.php和JSON.class.php 是编辑器扩展类文件,将他们拷贝到你的站点项目的ThinkPHP\Lib\ORG\Net 目录下. 2,editor目录是kindeditor的核心包.将其拷贝到你项目的Public目录下(和入口文件同级的那个Public),并在Public下再建立一个Upload目录.用于存放使用编辑器上传的图片. 3,KeditorAction.class.ph

unity shader 编辑器扩展类 ShaderGUI

这应该unity5才出的新功能了,今天看文档时刚巧看到了,就来尝试了一下. 效果如图: shader 的编辑器扩展分为2种方法: 是通过UnityEditor下的ShaderGUI类来实现的,形式比较近似于我们一般对unity编辑器的扩展方式. 是通过直接在shader代码上通过unity为我们预定义好的一些命令来扩展. 个人比较推荐使用第一种方法,第二种在尝试时发现 ①是第二种控件的种类有限.限制还特别多,变量申请的不对的话,有时也不报错,不利于维护. ②是文档里还有错误+没说清楚的地方. ③

HTML扩展类的所有方法都有2个参数:

——摘自Rocky Ren 以textbox为例子 public static string TextBox( this HtmlHelper htmlHelper, string name, Object value, IDictionary<string, Object> htmlAttributes ) public static string TextBox( this HtmlHelper htmlHelper, string name, Object value, Object h

Unity编辑器扩展chapter1

Unity编辑器扩展chapter1 unity通过提供EditorScript API 的方式为我们提供了方便强大的编辑器扩展途径.学好这一部分可以使我们学会编写一些工具来提高效率,甚至可以自制一些小的插件应用的项目工程中去,达到复用的目的.今天首先创建一个新场景生成的菜单项,生成的场景已经绑定好需要的游戏对象及脚本. Tips:1.官方API 2.编辑器扩展脚本都需放在Editor文件夹下,Editor的层级和数目没有要求 EditorUtil.cs :编辑器扩展类,向外部提供编辑器扩展方法

Unity 编辑器扩展 场景视图内控制对象

http://blog.csdn.net/akof1314/article/details/38129031 假设有一个敌人生成器类,其中有个属性range用来表示敌人生成的范围区域大小,那么可以用OnDrawGizmos函数来绘制它在场景视图所代表的区域大小,便于开发调试.这个敌人生成器类,类似如下: 12345678910111213141516171819   using UnityEngine;using System.Collections; public class EnemySpa

Django视图扩展类

Django视图扩展类 扩展类必须配合GenericAPIView使用扩展类内部的方法,在调用序列化器时,都是使用get_serializer 需要自定义get.post等请求方法,内部实现调用扩展类对应方法即可 . 一.mixins的视图子类 作用: 提供了几种后端视图(对数据资源进行曾删改查)处理流程的实现,如果需要编写的视图属于这五种,则视图可以通过继承相应的扩展类来复用代码,减少自己编写的代码量 . 这五个扩展类需要搭配GenericAPIView父类,因为五个扩展类的实现需要调用Gen

DRF框架之视图的扩展类简介

这里呢,我将为大家介绍一下DRF框架,为我们提供的试图扩展类的使用方法即作用. 在使用视图扩展类时,需要将mixins模块导入到view文件中. from rest_framework import mixins 并且,在使用视图扩展类时,必须结合GenericAPIView基类一起使用. 所谓,视图的扩展类,就是GenericAPIView的子类,他们继承自GenericAPIView类,并在此基础上封装了增删改查的功能函数. 模板代码: class BookInfoAPIView(mixin

python学习:扩展类的方法

一:先看一段小程序 <span style="font-size:18px;"><strong>class person: def __init__(self): print "new person" self.name = "lyl" def setName(self,name): self.name = name def printName(self): print self.name p = person(); p.

.NET中那些所谓的新语法之二:匿名类、匿名方法与扩展方法

开篇:在上一篇中,我们了解了自动属性.隐式类型.自动初始化器等所谓的新语法,这一篇我们继续征程,看看匿名类.匿名方法以及常用的扩展方法.虽然,都是很常见的东西,但是未必我们都明白其中蕴含的奥妙.所以,跟着本篇的步伐,继续来围观. /* 新语法索引 */ 1.自动属性 Auto-Implemented Properties 2.隐式类型 var 3.参数默认值 和 命名参数 4.对象初始化器 与 集合初始化器 { } 5.匿名类 & 匿名方法 6.扩展方法 7.系统内置委托 Func / Acti