Home >Backend Development >PHP Tutorial >Detailed explanation of how ThinkPHP uses Ueditor, thinkphpueditor_PHP tutorial
This article explains how ThinkPHP uses Ueditor. Share it with everyone for your reference, the details are as follows:
I believe that many people are still using FCkeditor. I used to use it before, but after discovering Baidu’s Ueditor, I found that Ueditor is better looking than Fckeditor and its operability is much better than Fckeditor, so I still try to use ueditor. , but I still encountered some problems when using ueditor under the ThinkPHP framework, and it took some time to solve these problems. In this way, I will write a tutorial on using ueditor under ThinkPHP for those who need to use it.
1. Create a "Public" folder in the root directory of the website. This folder can be replaced with __PUBLIC__ in ThinkPHP, so it is convenient for us to write programs, and then put the ueditor file into this file Clamped.
2. Import the js and css used by ueditor in the template file where we need to use ueditor. For example, I add the following code to App/Tpl/default/Venter/createvent.html:
<script type="text/javascript" src="__PUBLIC__/ueditor/editor_config.js"></script> <script type="text/javascript" src="__PUBLIC__/ueditor/editor_all.js"></script> <link rel="stylesheet" href="__PUBLIC__/ueditor/themes/default/ueditor.css"/>
3. Configure the location of Ueditor relative to the root directory of the website. Here I recommend using an absolute path, that is, a path similar to http://localhost:1080, because ueditor will be used in many places during the development of website projects. , but due to the different locations used, the relative path between the current directory and the server root directory changes, which makes ueditor unusable. For example, the path I configured (configuration file: editor_config.js in the ueditor directory), change the following code Make a substitution:
URL= tmp.substr(0,tmp.lastIndexOf("\/")+1).replace("_examples/",""); //这里你可以配置成ueditor目录在您网站的相对路径或者绝对路径(指以http开头的绝对路径)Replace
with:
URL = "http://localhost:1080/Public/ueditor/";
4. The following is an application that uses forms:
<form action="__ROOT__/index.php/Venter/ventChk" method="post"> <script type="text/plain" id="Vent" style="width:500px;"></script> <input type="checkbox" name="opened" value="1"/>公开发表 <input type="submit" value="发泄" /> </form> <!--注册百度ueditor--> <script type="text/javascript"> var editor = new baidu.editor.ui.Editor({ toolbars:[['Spechars','Emotion','InsertImage','Bold','Italic','ForeColor','FontFamily','FontSize', ]],//自定义ueditor工具栏 initialContent: '<span style="color:#ccc">点击这里发泄吧</span>', minFrameHeight: 100,//初始化框架大小 autoFloatEnabled: false,//工具栏自动浮动-》关闭 textarea:'myVent'//form表单将通过该参数获得表单提交的数据 }); editor.render("Vent"); </script> <!--百度Ueditor注册完毕-->
As shown in the above code, the content of the Ueditor editing area can be obtained through $_POST['myVent'].
5. How to use it in Thinkphp? First, the obtained content must be submitted for escape. Here we use the following code:
$content = htmlspecialchars(stripslashes(POST['myVent']));
The next operation is to insert $content into the database (no more details here).
6. Extract data from the data and escape it so that the content can be displayed normally:
$vent = new VenterModel; $list = $vent->select(); $this->assign("list",$list)
In this way, the content can be displayed in the corresponding html template like this:
<volist name="list" id="vo"> {$vo.content|htmlspecialchars_decode} </volist>
A usage of thinkphp templates is used here, that is, functions can be used in templates. The function htmlspecialchars_decode is used here to escape $vo, content. The above code can be seen as follows:
htmlspecialchars_decode($vo.content), I spent a long time choosing this method here. I didn’t consider this method at the time. I just thought about it because the passed value accepted by the htmlspecialchars_decode function cannot be an array, so The data extracted from the database cannot be passed directly to him. Later, I thought that I could traverse the array to htmlspecialchars_decode each element in the array. Although the content can be escaped, it cannot be displayed in the template until the end. I came up with this after reading some official manuals. Therefore, when doing programs, you must read more official documents, and many problems can be solved.
PS: Here are several formatting/beautifying/conversion tools recommended on this site to help you sort out the messy code. I believe everyone can use it in future development:
php code online formatting and beautification tool:
http://tools.jb51.net/code/phpformat
JavaScript code beautification/compression/formatting/encryption tool:
http://tools.jb51.net/code/jscompress
Online XML formatting/compression tool:
http://tools.jb51.net/code/xmlformat
JSON code formatting and beautification tool:
http://tools.jb51.net/code/json
Online XML/JSON conversion tool:
http://tools.jb51.net/code/xmljson
JSON code online formatting/beautifying/compressing/editing/conversion tool:
http://tools.jb51.net/code/jsoncodeformat
SQL code online formatting and beautification tool:
http://tools.jb51.net/code/sqlcodeformat
Readers who are interested in more thinkPHP-related content can check out the special topics on this site: "Introduction to ThinkPHP Tutorial", "Summary of Common Methods of ThinkPHP", "Summary of Cookie Usage in PHP", "Basic Tutorial for Getting Started with Smarty Templates" and "PHP Template technology summary".
I hope this article will be helpful to everyone’s PHP programming based on the ThinkPHP framework.