thinkphp 编辑器kindeditor

  首先,去官网下载最新版的kindeditor,然后把里面asp,jsp,net,example的全删除,然后改名为editor放进public(最外层目录的public)文件夹里面

     在目录lib目录建立ORG文件夹(个人习惯用ORG存储公用类),建立一个共用类,editor.class.php

下面是这个类的具体代码   

<?php

/*编辑器调用的初始化类

 *

 */

class editor {

var $Width;

var $Height;

var $Value;

/* 此方法是编辑器的构造方法

 *第一个参数,$Height是高度,不填默认是500px

 *第二个参数,$Width是宽度,不填默认是700px

 *第三个参数,$Value是编辑器默认内容,不填默认是“<h2>欢迎使用编辑器</h2><br>”

 *

 */

function editor($Height="500px",$Width="700px",$Value="<h2>欢迎使用编辑器</h2><br>") {

$this->Value = $Value;

$this->Height = $Height;

$this->Width = $Width;

}

 

 

/*此方法是在线编辑器的调用

 * 在需要编辑器的地方调用此函数

 */

function createEditor(){

return "<textarea name='content1' style='width:$this->Width;height:$this->Height;visibility:hidden;'>$this->Value</textarea>";

}

 

/*使用在线编辑器必须在html<head></head>之间调用此方法,才能正确调用,

 * 内容主要都是script

 */

function usejs(){

$str=<<<eot

<link rel="stylesheet" href="__PUBLIC__/editor/themes/default/default.css" />

<link rel="stylesheet" href="__PUBLIC__/editor/plugins/code/prettify.css" />

<script charset="utf-8" src="__PUBLIC__/editor/kindeditor.js"></script>

<script charset="utf-8" src="__PUBLIC__/editor/lang/zh_CN.js"></script>

<script charset="utf-8" src="__PUBLIC__/editor/plugins/code/prettify.js"></script>

<script>

KindEditor.ready(function(K) {

var editor1 = K.create('textarea[name="content1"]', {

cssPath : '__PUBLIC__/editor/plugins/code/prettify.css',

uploadJson : '__PUBLIC__/editor/php/upload_json.php',

fileManagerJson : '__PUBLIC__/editor/php/file_manager_json.php',

allowFileManager : true,

afterCreate : function() {

var self = this;

K.ctrl(document, 13, function() {

self.sync();

K('form[name=example]')[0].submit();

});

K.ctrl(self.edit.doc, 13, function() {

self.sync();

K('form[name=example]')[0].submit();

});

}

});

prettyPrint();

});

</script>

eot;

return $str;

}

 

/*取得在线编辑器的值并返回

 */

 function getEditorContent(){

    $htmlData = '';

   if (!empty($_POST['content1'])) {

if (get_magic_quotes_gpc()) {

$htmlData = stripslashes($_POST['content1']);

} else {

$htmlData = $_POST['content1'];

}

return $htmlData;

   }

 }

 

}

代码注释都写的比较清楚了,然后在action建立个文件,是IndexAction.class.php

<?php

class IndexAction extends Action {

public function _initialize() {       

header("Content-Type:text/html; charset=utf-8");

}

 

    public function index(){

     import("@.ORG.editor");  //导入类

    $editor=new editor();     //创建一个对象

$a=$editor->createEditor();   //返回编辑器

$b=$editor->usejs();             //js代码

$this->assign('usejs',$b);     //输出到html

        $this->assign('editor',$a);

        $this->display();      

 

    }

    public function php(){

    import("@.ORG.editor");

    $editor=new editor();   

    $a=$editor->getEditorContent();   //获取编辑器的内容

$this->assign('a',$a);

$this->display();

// $this->success('数据添加成功!');

    }

}

 

然后在tpl建立index文件夹,在里面建立2个html文件,

index.html    //使用编辑器

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

   {$usejs}

</head>

<body>

<form name="example" method="post" action="__URL__/php">

<?php //<textarea name="content1" style="width:700px;height:200px;visibility:hidden;"></textarea>   ?>

        {$editor}

<br />

<input type="submit" name="button" value="提交内容" /> (提交快捷键: Ctrl + Enter)

</form>

</body>

</html>

 

php.html    //获取编辑器的内容

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

{$a}

</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265521.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

equation

equation 题目描述 有一棵n 个点的以 1 为根的树, 以及 n 个整数变量xi。树上 i 的父亲是 fi&#xff0c; 每条边(i,fi)有一个权值wi&#xff0c;表示一个方程 xi xfi wi&#xff0c;这 n-1个方程构成了一个方程组。 现在给出q 个操作&#xff0c;有两种类型: 1 u v s&#x…

Ubuntu开启FTP服务方法(Ubuntu和Windows之间互传文件需要开启——服务器端)

目录Ubuntu开启FTP服务步骤&#xff1a;Ubuntu开启FTP服务步骤&#xff1a; 工作中Ubuntu和Windows之间互传文件&#xff0c;需要服务器端&#xff08;Ubuntu&#xff09;开启FTP服务&#xff0c;客户端&#xff08;Windows&#xff09;安装FileZilla。平时自己学习电脑安装虚拟…

舞伴配对问题java_舞伴配对问题

循环队列的应用——舞伴配对问题&#xff1a;在舞会上&#xff0c;男、女各自排成一队。舞会开始时&#xff0c;依次从男队和女队的队头各出一人配成舞伴。如果两队初始人数不等&#xff0c;则较长的那一队中未配对者等待下一轮舞曲。假设初始男、女人数及性别已经固定&#xf…

逆元

复习逆元…… 逆元 求法&#xff1a; 1&#xff0c;快速幂     根据费马小定理有\(a^{p - 1} \equiv 1 \quad (mod \quad p)\),把左边拆开一下得到     \[a \cdot a^{p - 2} \equiv 1 \quad (mod \quad p)\]     因此\(a^{p - 2}\)为\(a\)在\(mod \quad p\)意义下的…

java如何让线程等待_如何使Java线程等待另一个线程的输出?

我真的建议你经历一个教程&#xff0c;如Sun’s Java Concurrency&#xff0c;你开始在多线程的魔法世界。还有一些好书出来了(google for“Concurrent Programming in Java”&#xff0c;“Java Concurrency in Practice”)。要得到你的答案&#xff1a;在你必须等待dbThread的…

win7共享wifi

为什么80%的码农都做不了架构师&#xff1f;>>> 1.从开始菜单找到“命令提示符”&#xff0c;或直接键入cmd快速搜索&#xff0c;右键单击它&#xff0c;选择“以管理员身份运行” 2.运行以下命令启用虚拟无线网卡&#xff1a; netsh wlan set hostednetwork mod…

Ubuntu开启NFS、SSH服务(驱动开发用到、电脑端登录ARM板用到)

参考&#xff1a;Ubuntu下NFS服务的开启 作者&#xff1a;一只青木呀 发布时间&#xff1a;2020-08-04 14:06:58 网址&#xff1a;https://blog.csdn.net/weixin_45309916/article/details/107784877 目录NFS服务的开启1.安装NFS服务2.创建 linux 工作目录3.配置NFSUbuntu下SSH…

【整理】MySQL 之 autocommit

2019独角兽企业重金招聘Python工程师标准>>> mysql 默认是开启 auto commit 的。可以通过如下命令查看 session 级别和 global 级别的设置&#xff1a; mysql> select session.autocommit; ---------------------- | session.autocommit | ---------------------…

java某个类避免findbug检查_Findbugs能否在java中检测到捕获RuntimeException?

你能不能让我知道Findbugs可以在java中检测到catcing RuntimeException吗&#xff1f;有效的java建议我们不要捕获RuntimeException.所以我想知道Findbugs可以抓错了.另外,我已经检查过Klocwork JD.CATCH和checkstyle IllegalCatch是否适用于此目的.最佳答案 有点.在findbugs中…

交叉编译链的安装

参考&#xff1a;嵌入式 交叉编译链的安装 作者&#xff1a;一只青木呀 发布时间&#xff1a;2020-08-04 18:13:13 网址&#xff1a;https://blog.csdn.net/weixin_45309916/article/details/107789879 目录什么是交叉编译器交叉编译器的下载交叉编译器的安装1.把下载的文件放到…

Scrapy将爬取的段落整合为字符串

使用Scrapy框架爬取文章的时候&#xff0c;经常会遇到要爬取多个段落的问题&#xff0c;如果这个时候使用的是&#xff1a; text response.xpath("......").extract() 那么会发现爬取下来的文章是以段落为单位的list&#xff0c;不方便直接展示。 这个时候可以将lis…

Ubuntu下安装VS Code以及C/C++插件(PS工作目录的创建)

参考&#xff1a;Visual Studio Code Ubuntu下安装 以及C/C插件大全 作者&#xff1a;一只青木呀 发布时间&#xff1a;2020-08-05 11:55:53 网址&#xff1a;https://blog.csdn.net/weixin_45309916/article/details/107811506 目录为何选择安装VS CodeVisual Studio Code 安装…

Common Lisp中调用R

2019独角兽企业重金招聘Python工程师标准>>> R是功能强大的统计软件&#xff0c;和Lisp一样也有一个交互式的命令行环境&#xff0c;还有众多的扩展库&#xff0c;可以用来进行专业的统计分析。要在Common Lisp中方便的调用R的功能&#xff0c;可以试用rcl这个库。安…

java生成pdf加密_java使用iText 生成PDF全攻略(表格,加密)

java使用iText 生成PDF全攻略,包括创建文档,设置字体,添加表格(PdfPTable),创建新页(newPage),设置布局,加密主要使用的jar包: itextpdf-5.4.2.jar,itext-pdfa-5.4.2.jar,itext-xtra-5.4.2.jar,如果用到中文&#xff0c;需要CJK字体的扩展包&#xff1a;itext-asian.jar如果用到…

恩智浦NXP I.MX6ULL芯片介绍下载官网资料

参考&#xff1a;NXP I.MX6ULL芯片介绍以及资料的获取 作者&#xff1a;一只青木呀 发布时间&#xff1a;2020-09-26 10:54:26 网址&#xff1a;https://blog.csdn.net/weixin_45309916/article/details/108808573 目录I.MX6ULL芯片介绍以及官网资料的获取I.MX6ULL芯片介绍以及…

变速不变调方法

语音变速不变调&#xff0c;即语音时长规整&#xff0c;是指不改变原说话人的音调及语义信息&#xff0c;只改变说话人的语速。 语音变速不变调算法有三大类&#xff1a;时域法、频域法、参量法&#xff0c;如表2-1所示。 表2-1 变速不变调算法分类 时域法 频域法 参量法 剪…

java开发高端说法_关于Java代码的设计和开发注意事项,下列哪些说法符合《集合开发规约》:...

案例分析一&#xff1a;假定CPU的主频是500MHz。硬盘采用DMA方式进行数据传送&#xff0c;其数据传输率为4MB/s, 每次DMA传输的数据量为8KB, 要求没有任何数据传输被错过。如果CPU在DMA初始化设置和启动硬盘操作等方面用了1000个时钟周期&#xff0c;并且在DMA传送完成后的中断…

ES6学习笔记六(Iterator和for..of)

{let arr[hello,world];let maparr[Symbol.iterator](); //返回false时继续执行&#xff0c;true停止执行&#xff01;console.log(map.next());console.log(map.next());console.log(map.next()); }{let obj{start:[1,3,2],end:[7,8,9],[Symbol.iterator](){let selfthis;let…

判定点是否在不规则多边形内部的问题

2019独角兽企业重金招聘Python工程师标准>>> 问题如下&#xff1a; 话说在平面内有一个任意的不规则的封闭多边形&#xff0c;另外在这个平面内还有一个点&#xff0c;问题&#xff1a;如何高效的判定这个点是在这个多边形内部还是外部&#xff1f;补充&#xff1a…

Cortex-A7 MPCore 架构详细介绍(九种运行模式、内核寄存器组R0~R15,有特定的名字和功能)

目录0.ARM架构的历史简介1.Cortex-A7 MPCore(即多核) 简介2.Cortex-A 处理器九种运行模式3.Cortex-A 寄存器组&#xff08;内核寄存器&#xff09;3.1通用寄存器3.1.1未备份寄存器(R0~R7)3.1.2备份寄存器(R8~R12、SP指针R13、备份R14也叫LR)3.1.3程序计数器R15(PC)3.2程序状态寄…