TinyMCE插件:FileManager [4.x-6.x] 配置及BUG处理
FileManager最新版已升级到9.x,9.x新增了对文件的批量处理,但仍然有部分同学在继续使用6.x,这里大叔整理了一份自己在配置6.x时,遇到的问题和解决方案。
安装
下载安装包解压后,在根目录下会找到两个文件夹:langs(语言包)与plugins(核心程序/插件包),分别将两个文件夹拷至TinyMCE的语言目录下和插件目录下,如果有覆盖冲突,建议将原有文件夹复制一份。
配置
FileManager 6.x 的Bug较多,大叔配合Chrome的调试工具,才将错误一一找出来,并修正。
9.x 是一个全新的版本,修正了4.x-6.x所有的错误,如果不愿意修改错误的同学可以考虑转向9.x
配置:Config.php
- //连接前缀,自动添加在文件 src=‘http://xxxx’ 中
- $base_url = 'http://localhost';
- //上传路径
- $upload_dir = '/uploads/';
- //上传路径(绝对路径)
- $current_path = '../../../Uploads/';
修改:dialog.php
在修改文件内容前,有一些同学的网站上可能会提示:Notice:Undefined varialbe
这个经典错误,如果网站放在服务器上的同学,大叔不建议去PHP.ini关闭这个提示,直接在页面顶部:
- <?php
- error_reporting(E_ALL & ~E_NOTICE);
- ...
修改:图片自动更换二级域名
在文件的<body>
下面增加:
- <input type="hidden" id="src_dirs" value="<?php echo $subdir; ?>" />
修改:图片自动更换二级域名 - include.js文件
- function apply_img(file,type_file,external){ //缩略图
- if ($('#popup').val()==1) var window_parent=window.opener;
- else var window_parent=window.parent;
- //var path = $('#cur_dir').val();
- //将#cur_dir更换成#cur_dirs
- //#cur_dir 图片默认长路径,上传用,路径重写向的网站这个路径无效
- //#cur_dirs 大叔自己做了一个短路径,这样就和TP5的route不冲突了
- var src_path = $('#src_dirs').val();
- var base_url = $('#base_url').val();
- var track = $('#track').val();
- if (external=="") {
- var target = window_parent.document.getElementsByClassName('mce-img_'+track);
- var closed = window_parent.document.getElementsByClassName('mce-filemanager');
- $(target).val(base_url+'/'+src_path+file);
- $(closed).find('.mce-close').trigger('click');
- }else{
- var target = window_parent.document.getElementById(external);
- $(target).val(base_url+'/'+src_path+file);
- close_window();
- }
- }
Bug:无法删除文件&文件夹
将$root.
参数注释掉,否则删除文件及文件夹时,Jquery传值的路径会出错,导致删除无效。
- { //删除文件
- delete_folder(
- '<?php echo /*$root. */$cur_dir .$file; ?>',
- '<?php echo $thumbs_path.$subdir .$file; ?>'
- );
- $(this).parent().parent().parent().hide(200); return false;
- }
- { //删除文件夹
- delete_file(
- '<?php echo /*$root. */$cur_dir .$file; ?>',
- '<?php echo $thumbs_path.$subdir .$file; ?>'
- );
- $(this).parent().parent().parent().parent().hide(200); return false;
- }
Bug:无法浏览查看大图
因为$src的路径问题,会导致大图之前无法查看,这里大叔新写了一个$src_dirs,为自定义路径,变成适合自己的网站可以正常查看的路径
- //先找到这行,大约在290行左右
- $src = $base_url . $cur_dir . $file;
- //在上一行下面新增这一行
- $src_dirs = $base_url.$upload_dir.$subfolder.$subdir.$file;
找到<a class="preview"
将data-url=
的值换成$src_dirs
- <a class="preview"
- title="<?php echo lang_Preview?>"
- data-url="<?php echo $src_dirs;?>"
- data-toggle="lightbox"
- href="#previewLightbox"
- >
- <i class=" icon-eye-open"></i>
- </a>
修改:delete_file.php
前面将$root.
参数注释,是为了防止路径传值出错,所以这里重新将绝对地址加上去,不然将会导致删除文件时,变成无法删除。
- //unlink($path);
- unlink($root.$path);
- unlink($path_thumbs);
修改:delete_folder.php
- //deleteDir($path);
- deleteDir($root.$path);
- deleteDir($path_thumbs);
TinyMCE插件:FileManager [4.x-6.x] 配置及BUG处理的更多相关文章
- vim插件管理器的安装和配置-windows
# vim插件管理器的安装和配置-windows ### 前言------------------------------ vim做一框功能强大的编辑器,扩展功能令人称奇,插件机制非常灵活- 本篇推荐 ...
- TinyMCE插件:RESPONSIVE filemanager 9 安装与配置
RESPONSIVE filemanager 功能: 文件上传 文件下载 重命名文件 删除文件 新建文件夹 为每个用户创建子目录 上传文件效果图: 浏览文件效果图: 文件说明: filemanager ...
- TinyMCE插件:RESPONSIVE filemanager 9 图片自动添加水印
跟踪function() 搜索(filemanager/upload.php) 在代码中发现,上传成功后,会传回JSON信息数据,于是最后找到方法是 $upload_handler = new Upl ...
- TinyMCE插件:RESPONSIVE filemanager 9 文件名统一格式化
上传图片方法(filemanager/UploadHandler.php) 在上传图片的函数中查看,发现$file->name是一个完整的[文件名.后缀名],所以使用explode(),文件名和 ...
- TinyMCE插件:Filemanager [4.x-6.x] 文件名统一格式化
上传图片程序(filemanager/upload.php) 在if (!empty($_FILES) && $upload_files)中上传图片时,在文件正式上传至服务器前,有一次 ...
- TinyMCE插件:Filemanager [4.x-6.x] 图片自动添加水印
上传图片程序(filemanager/upload.php) 在if (!empty($_FILES) && $upload_files)有一个move_uploaded_file() ...
- Myeclipse插件快速生成ssh项目并配置注解 在action层注入service的超详细过程
最近发现,我对于ssh的 自动注入配置 还是不熟悉,于是整理了一下 终于做了一个 简单的 注入配置出来. 以前都是在applicationContext.xml 里面这样配 <bean id=& ...
- Bootstrap Multiselect插件使用步骤以及常见参数配置介绍
Multiselect是基于jQuery插件的,它可以以下拉列表的形式为用户提供选择内容,能进行单选或者多选.它应用的主要步骤如下: 一,引入需要的相关js和css文件 既然是Bootstrap插件, ...
- datetimepicker bootstrap的时间插件显示位置问题及其他配置
位置问题: 在bootstrap中用 datetimepicker 时默认是在输入框下面弹出的, 但是遇到输入框在屏幕最下面时,日期选择框会有一部分在屏幕下面,显示不了,因此需要能够从上面弹出. 可以 ...
随机推荐
- 两步让你的mobile traffic通过fiddler代理传送
mobile app运行时由于调试网络相关的内容非常不便,所以如果能够让iphone通过桌面主机来跑traffic,那么在pc上就能非常清楚地检查mobile app和后端之间有什么问题了. 幸运的是 ...
- 【Leetcode】【Medium】Generate Parentheses
Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...
- HTML5新增功能
HTML5日期输入类型(date) 1.HTML5规范里只规定date新型input输入类型 HTML5里的dateinput类型给了给了浏览器实现原生日历的机会,从此之后,JavaScript版的日 ...
- CPP11实践
- 001 以lambda作为返回值该如何声明? 标准库提供了function模板可以直接声明,如std::function<void (int, int)>.如下函数foo返回了一个函数 ...
- Hibernate缓存策略
Hibernate的一级缓存又称为Session缓存,其适用范围是在当前的会话之中,其生命周期和Session相同,随着Session的销毁,一级缓存也会随之销毁.一级缓存是不能取消的,Hiberna ...
- January 25 2017 Week 4 Wednesday
In every triumph, there's a lot of try. 每个胜利背后都有许多尝试. There's a lot of try behind every success, and ...
- macbook pro 2016 2017 15寸 雷电3 外接显卡 epu 简单教程(不修改UEFI)
雷电3外接显卡效果还不错,但是除了akitio node 其他厂家并不会维护自己的固件来适配新机型,我自己买的mbp 2016 15''就出现了和AORUS Gaming Box 1070不兼容的问题 ...
- SAP CRM settype的创建,背后发生了什么
来自我的同事Sara. 当我们在CRM系统里创建一个settype之后,其实系统后台悄悄的帮我们创建了很多ABAP对象,比如对应的database tables, other ABAP Diction ...
- sql语句中where,have,on的区别
一.where和on的区别 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left jion时,on和where条件的区别如下: 1. ...
- 使用Vue-cli脚手架
使用vue-cli脚手架开发vue项目,有以下好处: (1)成熟的Vue项目架构设计. (2)本地测试服务器(热更新). (3)集成打包上线方案. Vue-cli系统要求: Node.js(>= ...