ThinkPHP整合百度Ueditor,基于黄永成老师的视频说明的
申明:最好大家都能写绝对路径的都写好绝对路径比如:window.UEDITOR_HOME_URL
他在教程里面已经说了的,我就不再次说了啊,就一笔带过,好了不废话!
在调用编辑器的时候首先先初始化一些值:
<span><span> 1</span> <script type="text/javascript" charset="utf-8"> <span> 2</span> window.UEDITOR_HOME_URL = "/Public/ueditor/"; <span>//</span><span>UEDITOR_HOME_URL、config、all这三个顺序不能改变</span> <span> 3</span> window.onload=<span>function</span><span>(){ </span><span> 4</span> window.UEDITOR_CONFIG.initialFrameHeight=300;<span>//</span><span>编辑器的高度</span> <span> 5</span> window.UEDITOR_CONFIG.imageUrl="{:U('admin/Category/checkPic')}"; <span>//</span><span>图片上传提交地址</span> <span> 6</span> window.UEDITOR_CONFIG.imagePath=' /Uploads/thumb/';<span>//</span><span>编辑器调用图片的地址</span> <span> 7</span> UE.getEditor('contents');<span>//</span><span>里面的contents是我的textarea的id值</span> <span> 8</span> <span> 9</span> <span> } </span><span>10</span> <span>11</span> </script></span>
然后再引入2个js文件,分别是:1、ueditor.all.min.js 2、ueditor.config.js
在这里申明一下 我以上说的调用方式,顺序绝对不能乱,乱了就会出问题了,所以你就按照我的按部就班的做吧!
因为我重写了编辑器的图片提交地址,所以我还得在控制器里面写一个对图片处理的方法。
代码如下:
<span><span> 1</span> <span>//</span><span>改变Ueditor 默认图片上传路径</span> <span> 2</span> <span>public</span> <span>function</span><span> checkPic(){ </span><span> 3</span> import('ORG.Net.UploadFile'<span>); </span><span> 4</span> <span>$upload</span> = <span>new</span> UploadFile();<span>//</span><span> 实例化上传类</span> <span> 5</span> <span>$upload</span>->allowExts = <span>array</span>('jpg', 'gif', 'png', 'jpeg');<span>//</span><span> 设置附件上传类型</span> <span> 6</span> <span>$upload</span>->autoSub =<span>true</span><span> ; </span><span> 7</span> <span>$upload</span>->subType ='date'<span> ; </span><span> 8</span> <span>$upload</span>->dateFormat ='ym'<span> ; </span><span> 9</span> <span>$upload</span>->savePath = './Uploads/thumb/';<span>//</span><span> 设置附件上传目录</span> <span>10</span> <span>if</span>(<span>$upload</span>-><span>upload()){ </span><span>11</span> <span>$info</span> = <span>$upload</span>-><span>getUploadFileInfo(); </span><span>12</span> <span>echo</span> json_encode(<span>array</span><span>( </span><span>13</span> 'url'=><span>$info</span>[0]['savename'], <span>14</span> 'title'=><span>htmlspecialchars</span>(<span>$_POST</span>['pictitle'], ENT_QUOTES), <span>15</span> 'original'=><span>$info</span>[0]['name'], <span>16</span> 'state'=>'SUCCESS' <span>17</span> <span> )); </span><span>18</span> }<span>else</span><span>{ </span><span>19</span> <span>echo</span> json_encode(<span>array</span><span>( </span><span>20</span> 'state'=><span>$upload</span>-><span>getErrorMsg() </span><span>21</span> <span> )); </span><span>22</span> <span> } </span><span>23</span> <span>24</span> }</span>
我首先给大家看看代码先,在继续说明,
1、引入tp官方的文件上传处理类,然后初始化一些配置,这些都不介绍了啊!
2、判断他是否上传成功了,如果上传成功了,就先获取他的上传成功的信息,然后把数组转成json,用phpjson_encode。如果上传失败就把上传失败的信息直接返回!
以上都是在黄永成老师教程里面已经说明了的!就不详细说明了,不懂的就去看视频!
在整合好了上传后,发现上传的图片路径被转义了,一直显示不出来如图:
我就在显示出数据的哪里用反转义函数,进行操作了一下{$article.content|stripslashes}这样就是把转义的字符串进行反转义,这样数据就能正常显示了
如图:
然后在前台模版显示数据的时候不仅要反转义还要去掉html实体化,{$article.content|htmlspecialchars_decode|stripslashes}这样就能正常显示了!
还有哟个问题,百度编辑器当里面的内容增长时,他的高度也是增长的,如图:
解决方案就是在Ueditor的配置文件ueditor.config.js,里面的第428行打开注释,改成true,还有430行注释打开把他改成你初始化的的高度对应就好了。如图:
这样编辑器就不会撑高了!如图:
完结!!! 说的不好的大神勿喷~~这个只是分享交流,如果说错了 指出来就行了 谢谢~~~
补充说明:关于Ueditor在ie7下面调用不出来的bug问题解决办法,这个是前天逛官网的时候,发现一个人的这个问题的,因为我只有人见人爱的ie6,也都没有去测试,所以还是别人提醒,现在更正一下ie7的bug解决方案~感谢这位大湿啊~
如图:
在imageUp.php的上传配置里面修改:
$config = array("savePath" => "../../Public");
thinkphp是个轻量级的框架,小型项目用得多些,你要学PHP,就专心把原生的PHP开发学好,不然光学框架学不出个什么名堂来的 恩,大师我观你有旺财的