v3.22发布

pull/86/head
warlee 2016-08-10 11:59:23 +08:00
parent 94ed0841e4
commit 80c477e21e
32 changed files with 2838 additions and 2702 deletions

View File

@ -1,6 +1,21 @@
###ver3.2 `2015/10/25` ### ver3.22 `2016/8/10`
----- -----
####update: #### update:
- 去掉异常请求判断问题(有误判)
- 删除默认存入到回收站;相关优化
- 没有GD库含有图片则默认显示
- 远程下载优化
- 本地文件输出加入缓存机制;支持断点续传;多线程下载
#### fix bug
- 修复验证码出错问题
- 优化对话框打开问题
### ver3.21 `2015/10/25`
-----
#### update:
- 编辑器函数列表匹配优化;底部高度优化 - 编辑器函数列表匹配优化;底部高度优化
- 文件文件夹属性:文件下载地址:下载临时地址【永久下载地址、临时下载地址】 - 文件文件夹属性:文件下载地址:下载临时地址【永久下载地址、临时下载地址】
- 扩展名限制优化 - 扩展名限制优化
@ -15,7 +30,7 @@
- 3.菜单处理 - 3.菜单处理
- 4.文件打开预览处理 - 4.文件打开预览处理
####fix bug #### fix bug
- 远程下载windows下重命名失败问题 - 远程下载windows下重命名失败问题
- 自动更新失败问题 - 自动更新失败问题
- 编辑器 中文光标错位问题 - 编辑器 中文光标错位问题
@ -39,18 +54,18 @@
- 视频播放关闭问题 - 视频播放关闭问题
###ver3.12 `2015/3/31` ### ver3.12 `2015/3/31`
----- -----
####update: #### update:
- 兼容ie中文导致菜单保存丢失问题 - 兼容ie中文导致菜单保存丢失问题
###ver3.11 `2015/3/30` ### ver3.11 `2015/3/30`
----- -----
####update: #### update:
- 用户没有权限,提示优化 - 用户没有权限,提示优化
- 用户配置数据保存,写入失败提示 - 用户配置数据保存,写入失败提示
####fix bug #### fix bug
- 分享mp3音乐播放路径问题 - 分享mp3音乐播放路径问题
- 火狐bug修复 - 火狐bug修复
- 分享页面、文件夹office预览问题 - 分享页面、文件夹office预览问题
@ -61,14 +76,14 @@
工具栏火狐兼容性bug 工具栏火狐兼容性bug
###ver3.1 `2015/3/26` ### ver3.1 `2015/3/26`
----- -----
####update: #### update:
- 分享可以修改路径;避免文件移动后原始分享路径失效问题 - 分享可以修改路径;避免文件移动后原始分享路径失效问题
- 分享后自动刷新当前目录;跟新配置数据 - 分享后自动刷新当前目录;跟新配置数据
- 文件管理 当前文件夹不可写,对应右键菜单功能屏蔽 - 文件管理 当前文件夹不可写,对应右键菜单功能屏蔽
####fix bug #### fix bug
- cookie自动登录失败导致页面css丢失问题 - cookie自动登录失败导致页面css丢失问题
- cookie路径导致语言设置失败问题 - cookie路径导致语言设置失败问题
- 应用中心css丢失问题 - 应用中心css丢失问题
@ -79,9 +94,9 @@
- 菜单编辑中文部分乱码 - 菜单编辑中文部分乱码
- 图片预览优化 - 图片预览优化
###ver3.0 `2015/3/23` ### ver3.0 `2015/3/23`
----- -----
####update: #### update:
- 文档分享[文件、文件夹分享;支持添加密码;文件分享支持多种格式在线预览] - 文档分享[文件、文件夹分享;支持添加密码;文件分享支持多种格式在线预览]
- 回收站;(避免误删除) - 回收站;(避免误删除)
- 系统设置(自定义程序的一些配置) - 系统设置(自定义程序的一些配置)
@ -132,7 +147,7 @@
- 统一proxy后office打开权限问题解决加密方式生成临时访问地址 - 统一proxy后office打开权限问题解决加密方式生成临时访问地址
- 播放器更多格式支持wmv、avi、mpg等 - 播放器更多格式支持wmv、avi、mpg等
####fix bug and 优化: #### fix bug and 优化:
- win下 中文路径导致的问题处理 - win下 中文路径导致的问题处理
- public中拖拽问题 复制粘贴问题 - public中拖拽问题 复制粘贴问题
- 桌面任务栏,右键菜单绑定丢失问题 - 桌面任务栏,右键菜单绑定丢失问题
@ -158,7 +173,7 @@
- 下载有BOM问题 - 下载有BOM问题
- wwwroot识别问题 - wwwroot识别问题
####fix bug 3.01 beta1: #### fix bug 3.01 beta1:
- 新建用户下拉菜单出不来问题 - 新建用户下拉菜单出不来问题
- 分享bug - 分享bug
- 设置中心开启游客ui兼容性问题 - 设置中心开启游客ui兼容性问题
@ -180,38 +195,38 @@
###ver2.8 `2014/11/23` ### ver2.8 `2014/11/23`
----- -----
####update: #### update:
- 上传控件优化 - 上传控件优化
- 兼容性优化支持ie8以上 - 兼容性优化支持ie8以上
- 更新font-awesome到最新版本 - 更新font-awesome到最新版本
####fix bug: #### fix bug:
- 安全优化 - 安全优化
- 上传图片取消大文件压缩选项 - 上传图片取消大文件压缩选项
- 优化部分操作下显示问题 - 优化部分操作下显示问题
###ver2.73 `2014/9/17` ### ver2.73 `2014/9/17`
####fix bug: #### fix bug:
- 安全优化补丁 - 安全优化补丁
###ver2.72 `2014/9/16` ### ver2.72 `2014/9/16`
####fix bug:bug解决和程序优化 #### fix bug:bug解决和程序优化
- 任意执行远程下载apache 扩漏洞:判断扩展名中是否含有.php. - 任意执行远程下载apache 扩漏洞:判断扩展名中是否含有.php.
- 不存在的用户 - 不存在的用户
- 桌面开始按钮被tab盖住了 - 桌面开始按钮被tab盖住了
- 主题切换,错位问题 - 主题切换,错位问题
- 透明对话框拖动时 标题栏不显示问题 - 透明对话框拖动时 标题栏不显示问题
###ver2.71 `2014/8/31` ### ver2.71 `2014/8/31`
----- -----
####update: #### update:
- 编辑器配置保存:文字大小、主题风格;主题修改 - 编辑器配置保存:文字大小、主题风格;主题修改
- 精简初始桌面应用 - 精简初始桌面应用
####fix bug:bug解决和程序优化 #### fix bug:bug解决和程序优化
- 修改用户密码失败: - 修改用户密码失败:
- 打开设置设置壁纸,关掉,再打开个人中心,桌面乱掉 - 打开设置设置壁纸,关掉,再打开个人中心,桌面乱掉
- 桌面开始菜单 最大化问题 - 桌面开始菜单 最大化问题
@ -220,9 +235,9 @@
- appstore 添加应用tips不见 - appstore 添加应用tips不见
###ver2.7 `2014/8/25` ### ver2.7 `2014/8/25`
----- -----
####update: #### update:
- 安全及性能优化 - 安全及性能优化
- 静态文件加入?版本标识,版本更新后不缓存 - 静态文件加入?版本标识,版本更新后不缓存
- webuploader 升级到0.14 优化部分上传问题 - webuploader 升级到0.14 优化部分上传问题
@ -231,7 +246,7 @@
- 自建office解析服务器配置 - 自建office解析服务器配置
- 最大化全屏 - 最大化全屏
####fix bug:bug解决和程序优化 #### fix bug:bug解决和程序优化
- install 加入iconv、mbstring检测 - install 加入iconv、mbstring检测
- 右键重命名 快捷键冒泡处理 - 右键重命名 快捷键冒泡处理
- 文件列表图片缩略图拖拽问题 - 文件列表图片缩略图拖拽问题
@ -240,15 +255,15 @@
###ver2.61 `2014/7/12` ### ver2.61 `2014/7/12`
----- -----
####update: #### update:
- 实时搜索,根据搜索框内容变化,实时选中匹配到的结果; - 实时搜索,根据搜索框内容变化,实时选中匹配到的结果;
- 弹出搜索框遍历子文件夹递归搜索 - 弹出搜索框遍历子文件夹递归搜索
- session key 加入kod_前缀 避免和其他系统key冲突 - session key 加入kod_前缀 避免和其他系统key冲突
- 编辑器选中优化 选择鼠标到窗口外事件处理 - 编辑器选中优化 选择鼠标到窗口外事件处理
####fix bug:bug解决和程序优化 #### fix bug:bug解决和程序优化
- backspace后退截获浏览器事件,作为后退前一次访问的文件夹; - backspace后退截获浏览器事件,作为后退前一次访问的文件夹;
- 搜索首字母不匹配问题 - 搜索首字母不匹配问题
- 弹出层中的弹出层关闭,父窗口失去焦点问题。 - 弹出层中的弹出层关闭,父窗口失去焦点问题。
@ -265,9 +280,9 @@
- ie 8~10样式问题调整 - ie 8~10样式问题调整
###ver2.6 `2014/7/6` ### ver2.6 `2014/7/6`
----- -----
####update: #### update:
- 完全性优化;加入严格的校验机制 - 完全性优化;加入严格的校验机制
- 首次运行环境检测[data目录检测必须的函数支持提示] - 首次运行环境检测[data目录检测必须的函数支持提示]
- 上传已存在处理——创建副本(另外包括粘贴,解压) - 上传已存在处理——创建副本(另外包括粘贴,解压)
@ -278,7 +293,7 @@
- 右键等部分菜单效果优化 - 右键等部分菜单效果优化
- 远程下载加入进度条,下载速度等信息 - 远程下载加入进度条,下载速度等信息
####fix bug:bug解决和程序优化 #### fix bug:bug解决和程序优化
- 下载前判断当前目录可写 - 下载前判断当前目录可写
- 文件扩展名处理,分为用户方式和扩展名权限方式 - 文件扩展名处理,分为用户方式和扩展名权限方式
- 上传结束提示:是否成功、失败原因 - 上传结束提示:是否成功、失败原因
@ -294,9 +309,9 @@
- 选中文件时,移动到屏幕可视区域(解决上下左右选中文件滚动条不一致问题) - 选中文件时,移动到屏幕可视区域(解决上下左右选中文件滚动条不一致问题)
###ver2.51 `2014/6/22` ### ver2.51 `2014/6/22`
----- -----
####fix bug:bug解决和程序优化 #### fix bug:bug解决和程序优化
- 登录多次密码输入错误验证码bug解决 - 登录多次密码输入错误验证码bug解决
- 修复漏洞:创建副本加入权限控制。和拖文件拽权限一致 - 修复漏洞:创建副本加入权限控制。和拖文件拽权限一致
@ -304,23 +319,23 @@
- 树目录同步优化 - 树目录同步优化
###ver2.5 `2014/6/15` ### ver2.5 `2014/6/15`
----- -----
####update: #### update:
- 增加创建副本功能 按住ctrl拖拽即可可以到当前也可以到文件夹。 - 增加创建副本功能 按住ctrl拖拽即可可以到当前也可以到文件夹。
- 多选拖拽优化:剪切到、移动到某个文件夹 - 多选拖拽优化:剪切到、移动到某个文件夹
- 创建副本功能 - 创建副本功能
- 树目录和文件列表一致性保持 更新相互通知 - 树目录和文件列表一致性保持 更新相互通知
####fix bug:bug解决和程序优化 #### fix bug:bug解决和程序优化
- 桌面重命名bug - 桌面重命名bug
- 统一对话框部分bug - 统一对话框部分bug
- php notice 提示解决 - php notice 提示解决
- ajax返回非json 则展示服务错误的返回 - ajax返回非json 则展示服务错误的返回
- 所有入口都加入index.php 解决部分服务器没有设置默认入口问题 - 所有入口都加入index.php 解决部分服务器没有设置默认入口问题
###ver2.4 `2014/6/8` ### ver2.4 `2014/6/8`
####update: #### update:
- 语言选择 - 语言选择
- 远程下载文件名优化 - 远程下载文件名优化
- 树目录事件优化 - 树目录事件优化
@ -331,9 +346,9 @@
- 懒加载优化 - 懒加载优化
###ver2.3 `2014/6/2` ### ver2.3 `2014/6/2`
----- -----
####update: #### update:
- 拖动url——创建ext app - 拖动url——创建ext app
- 文件管理,树目录变化后(增删改)自动同步到文件列表 - 文件管理,树目录变化后(增删改)自动同步到文件列表
- 文件管理,文件列表变化后(增删改)自动同步到树目录 - 文件管理,文件列表变化后(增删改)自动同步到树目录
@ -341,7 +356,7 @@
- 对话框打开关闭动画 - 对话框打开关闭动画
- 其他多处优化 - 其他多处优化
####fix bug:bug解决和程序优化 #### fix bug:bug解决和程序优化
- 文件名限制bug - 文件名限制bug
- 同目录多个程序cookie bug修复 - 同目录多个程序cookie bug修复
- 地址栏 最后显示宽度问题 - 地址栏 最后显示宽度问题
@ -349,9 +364,9 @@
- 树目录显示优化 - 树目录显示优化
- 登录记住密码优化 - 登录记住密码优化
###ver2.2 `2014/5/11` ### ver2.2 `2014/5/11`
----- -----
####update: #### update:
- 公共目录支持(多个用户可以共享目录,写权限跟随用户组权限设定) - 公共目录支持(多个用户可以共享目录,写权限跟随用户组权限设定)
- 自动升级优化 - 自动升级优化
- 文件管理工具栏 增加菜单选项,方便移动设备操作 - 文件管理工具栏 增加菜单选项,方便移动设备操作
@ -359,15 +374,15 @@
- 树目录去掉库,改为个人目录等多处文案修改 - 树目录去掉库,改为个人目录等多处文案修改
- 默认打开用户目录 - 默认打开用户目录
####fix bug:bug解决和程序优化 #### fix bug:bug解决和程序优化
- 桌面任务栏点不中bug - 桌面任务栏点不中bug
- 部分文案问题 - 部分文案问题
- 众多细节优化 - 众多细节优化
###ver2.1 `2014/4/2` ### ver2.1 `2014/4/2`
----- -----
####update: #### update:
- 文件夹拖拽上传,完美解决(保持原始目录结构) - 文件夹拖拽上传,完美解决(保持原始目录结构)
- 解压缩优化;解压中文问题。解压缩整体速度 - 解压缩优化;解压中文问题。解压缩整体速度
- 树目录增加快捷键支持(上下、左右展开树目录;复制、粘贴、剪切、删除、打开、搜索、新建文件(夹)、) - 树目录增加快捷键支持(上下、左右展开树目录;复制、粘贴、剪切、删除、打开、搜索、新建文件(夹)、)
@ -378,7 +393,7 @@
- 编辑文件打开出错,自动关闭标签;文件打开20M限制(大于20M则不处理,浏览器会卡死) - 编辑文件打开出错,自动关闭标签;文件打开20M限制(大于20M则不处理,浏览器会卡死)
- 标签关闭提示:检测是否有未保存文件,文件修改实时修改是否修修改的按钮状态 - 标签关闭提示:检测是否有未保存文件,文件修改实时修改是否修修改的按钮状态
####fix bug:bug解决和程序优化 #### fix bug:bug解决和程序优化
- 文本文件编辑 文件名含有url编码则出错bug - 文本文件编辑 文件名含有url编码则出错bug
- 右键菜单在最下面时,右键位置重叠导致点击菜单问题 - 右键菜单在最下面时,右键位置重叠导致点击菜单问题
- 编辑器打开文件时光标问题处理移动到行尾编辑器enter建不显示自动提示 - 编辑器打开文件时光标问题处理移动到行尾编辑器enter建不显示自动提示
@ -395,10 +410,10 @@
- -
###ver2.0 `2014/3/2` ### ver2.0 `2014/3/2`
----- -----
####fix bug:bug解决和程序优化 #### fix bug:bug解决和程序优化
- body右键屏蔽(保留input、textarea) - body右键屏蔽(保留input、textarea)
- 重命名&新建时 右键(编辑内容系统菜单) - 重命名&新建时 右键(编辑内容系统菜单)
- 对话框 不显示边框(位移处理,opacity0 - 对话框 不显示边框(位移处理,opacity0
@ -437,12 +452,12 @@
- 更换主题【css load 后载入】 - 更换主题【css load 后载入】
- 删除。不清除选中。提前准备数据 - 删除。不清除选中。提前准备数据
- 构建打包,合并压缩。添加版本、版权 - 构建打包,合并压缩。添加版本、版权
- 自动升级(本地记录版本,服务器js调用 参数 url、###version忽略此版本。cookie。统计用户) - 自动升级(本地记录版本,服务器js调用 参数 url、### version忽略此版本。cookie。统计用户)
###ver2.0 debug `2014/3/2` ### ver2.0 debug `2014/3/2`
----- -----
####fix bug:bug解决和程序优化 #### fix bug:bug解决和程序优化
- 优化文件打开处理 - 优化文件打开处理
- 文件&文件夹:含有%、+号的处理(显示不出等问题,encoenURIComponent——rawurldecode) - 文件&文件夹:含有%、+号的处理(显示不出等问题,encoenURIComponent——rawurldecode)
- 文件下载,支持大文件下载、断点续传。 - 文件下载,支持大文件下载、断点续传。
@ -461,7 +476,7 @@
- 树目录:收藏夹优化(右键绑定);右键操作优化,拖拽优化(文件管理&编辑器) - 树目录:收藏夹优化(右键绑定);右键操作优化,拖拽优化(文件管理&编辑器)
- 收藏夹优化(右键 >编辑删除) - 收藏夹优化(右键 >编辑删除)
####update: #### update:
**新增功能** **新增功能**
- 多用户、权限控制: - 多用户、权限控制:
@ -513,16 +528,16 @@
- 路由权限控制 - 路由权限控制
- 后端统一json输出。 - 后端统一json输出。
###ver1.21 `2013/11/6` ### ver1.21 `2013/11/6`
----- -----
####fix bug: #### fix bug:
- 修复文件下载bug - 修复文件下载bug
- 修复编辑器自动补全问题,<aa bb /> ——> <aa bb></a> - 修复编辑器自动补全问题,<aa bb /> ——> <aa bb></a>
- 兼容部分服务器问题。 - 兼容部分服务器问题。
###ver1.2 `2013/10/16` ### ver1.2 `2013/10/16`
----- -----
####fix bug: #### fix bug:
- 设置,外部通用调用方式 - 设置,外部通用调用方式
- 打包中文乱码问题。 - 打包中文乱码问题。
- simple,default主题,navbar 下拉菜单右边位置问题。 - simple,default主题,navbar 下拉菜单右边位置问题。
@ -530,7 +545,7 @@
- 文件大小写不敏感设置,扩展名获取bug - 文件大小写不敏感设置,扩展名获取bug
- 目录读取权限判断,解决“系统错误”相关问题。 - 目录读取权限判断,解决“系统错误”相关问题。
####update: #### update:
- 地址栏宽度自适应优化,支持浏览器窗口调整 - 地址栏宽度自适应优化,支持浏览器窗口调整
- 增加远程下载功能;上传功能优化, - 增加远程下载功能;上传功能优化,
- 整体样式风格优化, - 整体样式风格优化,
@ -548,36 +563,36 @@
- 优化影音播放器,皮肤及相关配置信息存储于js中,不用之前的服务器请求方式,修改皮肤后可以直接更新到界面上。 - 优化影音播放器,皮肤及相关配置信息存储于js中,不用之前的服务器请求方式,修改皮肤后可以直接更新到界面上。
###ver1.01 `2013/9/10` ### ver1.01 `2013/9/10`
----- -----
####fix bug: #### fix bug:
- 添加到收藏 - 添加到收藏
- simple,default主题,navbar 下拉菜单右边位置问题。 - simple,default主题,navbar 下拉菜单右边位置问题。
####update: #### update:
- 添加到收藏夹,修改收藏夹,更新文件管理收藏夹部分。 - 添加到收藏夹,修改收藏夹,更新文件管理收藏夹部分。
- 修改主题,同时修改编辑器主题。【编辑区,文件管理,桌面】 - 修改主题,同时修改编辑器主题。【编辑区,文件管理,桌面】
- 优化setting部分代码,整合为一个整体。 - 优化setting部分代码,整合为一个整体。
- 优化debug,增加less编译,导出功能优化,先编译后复制再操作 - 优化debug,增加less编译,导出功能优化,先编译后复制再操作
###ver1.0 `2013.9.1` ### ver1.0 `2013.9.1`
----- -----
####update: #### update:
- 代码模块化优化,静态文件分离,可以分开部署 - 代码模块化优化,静态文件分离,可以分开部署
- 编辑器单独逻辑提取,完整融合到文件管理,树目录融合文件管理,懒加载语法高亮 - 编辑器单独逻辑提取,完整融合到文件管理,树目录融合文件管理,懒加载语法高亮
- 多标签实现,弹层对话框多标签支持,桌面任务栏实现;编辑器多标签支持 - 多标签实现,弹层对话框多标签支持,桌面任务栏实现;编辑器多标签支持
- 弹层功能优化,实现最大最小化,最小化关联多标签任务栏管理 - 弹层功能优化,实现最大最小化,最小化关联多标签任务栏管理
####fix bug: #### fix bug:
- linux 下浏览器打开文件和文件夹,中文问题 - linux 下浏览器打开文件和文件夹,中文问题
- 重命名&新建&上传 刷新列表使用动画,当前选中失效问题,不使用动画加载方式。 - 重命名&新建&上传 刷新列表使用动画,当前选中失效问题,不使用动画加载方式。
- html5拖拽上传优化 - html5拖拽上传优化
###ver0.8 `2013.6.15` ### ver0.8 `2013.6.15`
----- -----
####update: #### update:
- 整体优化,实现全部操作ajax本地化 ,进一步提升体验 - 整体优化,实现全部操作ajax本地化 ,进一步提升体验
- 浏览器强刷新,保持之前最后所在路径 - 浏览器强刷新,保持之前最后所在路径
- 重命名,新建,粘贴操作后添加选中状态 - 重命名,新建,粘贴操作后添加选中状态
@ -590,7 +605,7 @@
- 历史记录完美实现,前进后退按钮实时变化状态。 - 历史记录完美实现,前进后退按钮实时变化状态。
- 快捷键backspace实现后退(left header main 分别加入函数,屏蔽默认history(-1)操作) - - 快捷键backspace实现后退(left header main 分别加入函数,屏蔽默认history(-1)操作) -
####fix bug: #### fix bug:
- 完善修改windows以及linux获取文件列表,中文路径属性获取失败问题。 - 完善修改windows以及linux获取文件列表,中文路径属性获取失败问题。
- 复制,剪切。剪贴板内容覆盖判空处理 - 复制,剪切。剪贴板内容覆盖判空处理
- 修复一些地方ajax线程同步问题,重命名后选中失效问题解决 - 修复一些地方ajax线程同步问题,重命名后选中失效问题解决

View File

@ -105,7 +105,6 @@ if(isset($in['PHPSESSID'])){//office edit post
} }
@session_start(); @session_start();
check_post_many();
session_write_close();//避免session锁定问题;之后要修改$_SESSION 需要先调用session_start() session_write_close();//避免session锁定问题;之后要修改$_SESSION 需要先调用session_start()
$config['autorun'] = array( $config['autorun'] = array(
array('controller'=>'user','function'=>'loginCheck'), array('controller'=>'user','function'=>'loginCheck'),

View File

@ -1,2 +1,2 @@
<?php <?php
define('KOD_VERSION','3.21'); define('KOD_VERSION','3.22');

View File

@ -250,12 +250,14 @@ class explorer extends Controller{
} }
public function pathDelete(){ public function pathDelete(){
$list = json_decode($this->in['list'],true); $list = json_decode($this->in['list'],true);
if (!is_writable(USER_RECYCLE)) show_json($this->L['no_permission_write'],false); if (!is_dir(USER_RECYCLE)){
mk_dir(USER_RECYCLE);
}
$success=0;$error=0; $success=0;$error=0;
foreach ($list as $val) { foreach ($list as $val) {
$path_this = _DIR($val['path']); $path_this = _DIR($val['path']);
$filename = get_path_this($path_this); $filename = get_path_this($path_this);
$filename = get_filename_auto(USER_RECYCLE.$filename,date(' h:i:s'));//已存在处理 创建副本 $filename = get_filename_auto(USER_RECYCLE.$filename,date(' h:i:s'),'folder_rename');//已存在处理 创建副本
if (@rename($path_this,$filename)) { if (@rename($path_this,$filename)) {
$success++; $success++;
}else{ }else{
@ -560,9 +562,11 @@ class explorer extends Controller{
} }
} }
public function image(){ public function image(){
if (filesize($this->path) <= 1024*10) {//小于10k 不再生成缩略图 if (filesize($this->path) <= 1024*20 ||
file_put_out($this->path); !function_exists('imagecolorallocate') ) {//小于20k或者不支持gd库 不再生成缩略图
} file_put_out($this->path);
return;
}
load_class('imageThumb'); load_class('imageThumb');
$image= $this->path; $image= $this->path;
$image_md5 = @md5_file($image);//文件md5 $image_md5 = @md5_file($image);//文件md5
@ -585,8 +589,8 @@ class explorer extends Controller{
} }
} }
if (!file_exists($image_thum) || filesize($image_thum)<100){//缩略图生成失败则用默认图标 if (!file_exists($image_thum) || filesize($image_thum)<100){//缩略图生成失败则用默认图标
$image_thum=STATIC_PATH.'images/image.png'; $image_thum=$this->path;
} }
//输出 //输出
file_put_out($image_thum); file_put_out($image_thum);
} }

View File

@ -179,7 +179,7 @@ class user extends Controller
$password = rawurldecode($this->in['password']); $password = rawurldecode($this->in['password']);
session_start();//re start 有新的修改后调用 session_start();//re start 有新的修改后调用
if(isset($_SESSION['code_error_time']) && if(need_check_code() && isset($_SESSION['code_error_time']) &&
intval($_SESSION['code_error_time']) >=3 && intval($_SESSION['code_error_time']) >=3 &&
$_SESSION['check_code'] !== strtolower($this->in['check_code'])){ $_SESSION['check_code'] !== strtolower($this->in['check_code'])){
// pr($_SESSION['check_code'].'--'.strtolower($this->in['check_code']));exit; // pr($_SESSION['check_code'].'--'.strtolower($this->in['check_code']));exit;

View File

@ -137,9 +137,20 @@ function php_env_check(){
if(!function_exists('file_get_contents')) $error.='<li>'.$L['php_env_error_file'].'</li>'; if(!function_exists('file_get_contents')) $error.='<li>'.$L['php_env_error_file'].'</li>';
if(!path_writable(BASIC_PATH)) $error.= '<li>'.$base_path.' '.$L['php_env_error_path'].'</li>'; if(!path_writable(BASIC_PATH)) $error.= '<li>'.$base_path.' '.$L['php_env_error_path'].'</li>';
if(!path_writable(BASIC_PATH.'data')) $error.= '<li>'.$base_path.'data '.$L['php_env_error_path'].'</li>'; if(!path_writable(BASIC_PATH.'data')) $error.= '<li>'.$base_path.'data '.$L['php_env_error_path'].'</li>';
if(!path_writable(BASIC_PATH.'data/system')) $error.= '<li>'.$base_path.'data/system '.$L['php_env_error_path'].'</li>';
if(!path_writable(BASIC_PATH.'data/User')) $error.= '<li>'.$base_path.'data/User '.$L['php_env_error_path'].'</li>'; $parent = get_path_father(BASIC_PATH);
if(!path_writable(BASIC_PATH.'data/thumb')) $error.= '<li>'.$base_path.'data/thumb '.$L['php_env_error_path'].'</li>'; $arr_check = array(
BASIC_PATH,
BASIC_PATH.'data',
BASIC_PATH.'data/system',
BASIC_PATH.'data/User',
BASIC_PATH.'data/thumb',
);
foreach ($arr_check as $value) {
if(!path_writable($value)){
$error.= '<li>'.str_replace($parent,'',$value).'/ '.$L['php_env_error_path'].'</li>';
}
}
if( !function_exists('imagecreatefromjpeg')|| if( !function_exists('imagecreatefromjpeg')||
!function_exists('imagecreatefromgif')|| !function_exists('imagecreatefromgif')||
!function_exists('imagecreatefrompng')|| !function_exists('imagecreatefrompng')||
@ -209,52 +220,13 @@ function init_setting(){
include($setting_user); include($setting_user);
} }
} }
//登陆是否需要验证码
//防止恶意请求 function need_check_code(){
function check_post_many(){ if(!function_exists('imagecolorallocate')){
$check_time = 4; return false;
$maxt_num = 40;//5秒内最大请求次数。超过则自动退出 }else{
$total_time = 60;//10nmin return true;
$total_time_num = 500; }
//管理员不受限制
if( isset($_SESSION['kod_user']) &&
$_SESSION['kod_user']['role']=='root'){
return;
}
//上传不受限制
$URI = $GLOBALS['in']['URLremote'];
if (isset($URI[1]) && $URI[1] =='fileUpload') {
return;
}
$session_key = 'check_post_many';
$_SESSION['check_session_has'] = 'kodexplorer';
if (!isset($_SESSION[$session_key])) {
$_SESSION[$session_key] = array('last_time'=>time(),'total_num'=>0,'max_time'=>time(),'max_num'=>0);
}else{
$info = $_SESSION[$session_key];
//----短期内并发控制
if (time()-$info['last_time'] >=$check_time) {//大于时长s 则清空
$info = array('last_time'=>time(),'total_num'=>0,'max_time'=>time(),'max_num'=>0);
}else{
if ($info['total_num'] >=$maxt_num) {//大于100次则直接退出
user_logout();
}else{
$info['total_num'] +=1;
}
}
//----总量控制
if (time()-$info['max_time'] >=$total_time) {//大于时长s 则清空
$info = array('last_time'=>time(),'total_num'=>0,'max_time'=>time(),'max_num'=>0);
}else{
if ($info['total_num'] >=$total_time_num) {//大于100次则直接退出
user_logout();
}else{
$info['max_num'] +=1;
}
}
$_SESSION[$session_key] = $info;
}
} }
function is_wap(){ function is_wap(){
if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i', if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i',

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,180 +1,171 @@
<?php <?php
$L= array( $L= array(
"upload_clear" =>'清', "upload_clear" =>'清',
"upload_setting" =>"", "upload_setting" =>"",
"upload_tips" =>'采用分片上傳,不再受php.ini限制;推薦chrome體驗文件夾拖拽上傳', "upload_tips" =>'採取分段上傳,不再受php.ini限制;推薦Chrome體驗資料夾拖曳上傳',
"upload_exist" =>"同名文件處理", "upload_exist" =>"重名檔案處理",
"upload_exist_rename" =>"命名", "upload_exist_rename" =>"命名",
"upload_exist_replace" =>"覆蓋", "upload_exist_replace" =>"覆蓋",
"upload_exist_skip" =>"跳過", "upload_exist_skip" =>"略過",
"more" =>"更多", "more" =>"更多",
'system_setting' =>"系統設", 'system_setting' =>"系統設",
"openProject" =>"編輯器開項目", "openProject" =>"編輯器項目",
"url_download" =>"下載", "url_download" =>"下載",
"url_link" =>"鏈地", "url_link" =>"部網",
"app_type_link" =>"快捷方式", "app_type_link" =>"捷徑",
"createLink" =>"創建快捷方式", "createLink" =>"建立捷徑",
"createProject" =>"添加到編輯器工程", "createProject" =>"新增志編輯器工程",
"only_read" =>"", "only_read" =>"",
"only_read_desc" =>"該目錄沒有寫權限<br/>可以在操作系統中設置此目錄的權限", "only_read_desc" =>"此目錄無寫權限<br/>可以在作業系統中設定此目錄的權限",
"explorerNew" =>'kod 鏈接', "explorerNew" =>'KOD連結',
'zip_download_ready' =>'壓縮後會自動下載,請稍後...', 'zip_download_ready' =>'壓縮後會自動下載,請稍後...',
"set_background" =>"設置為桌面壁紙", "set_background" =>"設定為桌面桌布",
"share" =>"共用",
"share" =>"共享", "share_path" =>"共用路径",
"share_path" =>"共享路径", "share_title" =>"資源共用",
"share_title" =>"資源共享", "share_name" =>"共用標題",
"share_name" =>"共享標題", "share_time" =>"逾期時間",
"share_time" =>"到期時間", "share_time_desc" =>"留空表示不設定逾期時間",
"share_time_desc" =>"留空表示不設置到期時間",
"share_password" =>"提取密碼", "share_password" =>"提取密碼",
"share_password_desc" =>"留空表示不需要密碼", "share_password_desc" =>"留空表示不需要密碼",
"share_cancle" =>"取消共", "share_cancle" =>"取消共",
"share_create" =>"創建公開鏈接", "share_create" =>"建立公開連結",
"share_url" =>"享地", "share_url" =>"用網",
"share_not_download" =>"禁止下載", "share_not_download" =>"禁止下載",
"share_not_download_tips" =>"者禁止了下載!", "share_not_download_tips" =>"者禁止了下載!",
"share_code_read" =>"代碼閱讀", "share_code_read" =>"代碼閱讀",
"share_save" =>"保存配置", "share_save" =>"儲存設定",
"share_error_param" =>'參數錯誤!', "share_error_param" =>'參數錯誤!',
"share_error_user" =>'用戶信息錯誤!', "share_error_user" =>'使用者資訊錯誤!',
"share_error_sid" =>'共不存在!', "share_error_sid" =>'共不存在!',
"share_error_time" =>'您來晚了,該共享已經過期!', "share_error_time" =>'您來晚了,此共用已逾期!',
"share_error_path" =>'共享文件不存在,被刪除或者移走了!', "share_error_path" =>'共用檔案不存在,被刪除或者移走了!',
"share_error_password" =>"密碼錯誤!", "share_error_password" =>"密碼錯誤!",
'share_error_show_tips' =>"該類型文件暫不支持預覽!", 'share_error_show_tips' =>"此類型檔案暫不支援預覽!",
"share_view_num" =>'瀏覽:', "share_view_num" =>'檢視:',
"share_download_num" =>'下載:', "share_download_num" =>'下載:',
"my_share" => "我的共", "my_share" => "我的共",
"share_edit" => "編輯共", "share_edit" => "編輯共",
"share_remove" => "取消共", "share_remove" => "取消共",
"share_remove_tips" => "確定取消共享?公開連接將失效.", "share_remove_tips" => "確定取消共用?公開連結將失效.",
"share_open_page" => "打開共享頁面", "share_open_page" => "開啟共用頁面",
"share_open_path" => "進入文件所在目錄", "share_open_path" => "進入檔案所在目錄",
"recycle_clear" => '清空回收站', "recycle_clear" => '清除垃圾筒',
"recycle_clear_success" => "空回收站成功!", "recycle_clear_success" => "除垃圾筒成功!",
"recycle_clear_info" => "您確定要徹底刪除回收站嗎?", "recycle_clear_info" => "您確定要徹底刪除垃圾筒嗎?",
"recycle_remove" => "徹底刪除", "recycle_remove" => "徹底刪除",
"fav_remove" => "取消收藏", "fav_remove" => "取消收藏",
"remove_item" =>"項內容",//刪除3項內容 3 item "remove_item" =>"項內容",//刪除3項內容 3 item
"uploading" =>"正在上傳", "uploading" =>"正在上傳",
'show_file' =>"新頁面預覽", 'show_file' =>"新頁面預覽",
"unknow_file_title" =>"文件打開提示!", "unknow_file_title" =>"檔案開啟提示!",
"unknow_file_tips" =>"暫不支持打開", "unknow_file_tips" =>"暫不支援開啟",
"unknow_file_download" =>"下載到本地", "unknow_file_download" =>"下載至本機",
"unknow_file_office" =>"office預覽,此程序需要部署在外網", "unknow_file_office" =>"Office預覽,此程式需要部署在外部網路",
"config_save_error_auth" => '配置保存失败,管理员禁止了此权限!', "config_save_error_auth" => '設定儲存失敗,管理員禁止了此權限!',
"config_save_error_file" => '配置保存失败,kod目录需要有写权限!', "config_save_error_file" => '設定儲存失敗,KOD目錄需要有寫入權限!',
//editor //editor
"shortcut" => '快鍵', "shortcut" => '快鍵',
"learnMore" => '了解更多', "learnMore" => '了解更多',
"code_mode" => '高亮語法', "code_mode" => '語法反白',
"replace" => '替換', "replace" => '取代',
"selectAll" => '全選', "selectAll" => '全選',
"reload" => "重新載入", "reload" => "重新載入",
"about" => "關於", "about" => "關於",
'complete_current' => "自動補全當前", 'complete_current' => "自動完成",
"view" => '', "view" => '視',
"tools" => "工具", "tools" => "工具",
"help" => "幫助", "help" => "說明",
"not_exists" => "不存在", "not_exists" => "不存在",
"group_role_fileDownload" => "文件下載", "group_role_fileDownload" => "檔案下載",
"group_role_share" => "共享", "group_role_share" => "共用",
"system_setting" => "系統設定",
"system_setting" => "系統設置", "system_setting_menu" => "選單管理",
"system_setting_menu" => "菜單管理", "system_name" => "程式名稱",
"system_name" => "程序名稱", "system_name_desc" => "程式logo標題",
"system_name_desc" => "程序logo標題", "system_desc" => "程式描述",
"system_desc" => "程序描述", "system_desc" => "程式描述",
"system_desc" => "程序描述",
"path_hidden" => "目錄排除", "path_hidden" => "目錄排除",
"path_hidden_desc" => "默認不顯示的目錄和文件,逗號隔開", "path_hidden_desc" => "預設不顯示的目錄和檔案,逗號隔開",
"new_user_folder" => "用戶默認創建目錄", "new_user_folder" => "使用者預設建立目錄",
"new_user_folder_desc" => "用逗號隔開", "new_user_folder_desc" => "用逗號隔開",
"new_user_app" =>"用戶默認創建app", "new_user_app" =>"使用者預設建立應用程式",
"new_user_app_desc" =>"應用中心的應用,多個用逗號隔開", "new_user_app_desc" =>"應用中心的應用,多個用逗號隔開",
"auto_login" =>"遊客自動登", "auto_login" =>"遊客自動登",
"auto_login_desc" =>"默認登錄用戶名為<code>guest</code>的用戶;開啟後確保<code>guest</code>用戶存在", "auto_login_desc" =>"預設登入使用者名稱為<code>guest</code>的使用者;開啟後確保<code>guest</code>使用者存在",
"first_in" =>"陸後默認進入", "first_in" =>"入後預設進入",
"menu_name" =>"菜單名", "menu_name" =>"選單名稱",
"menu_hidden" => "隱藏", "menu_hidden" => "隱藏",
"menu_show" =>"顯示", "menu_show" =>"顯示",
"menu_move_down" =>"下移", "menu_move_down" =>"下移",
"menu_move_up" =>"上移", "menu_move_up" =>"上移",
"menu_move_del" =>"刪除", "menu_move_del" =>"刪除",
"menu_open_window" =>"口打", "menu_open_window" =>"窗開",
"url_path" =>"url地", "url_path" =>"URL網",
"url_path_desc" =>"url地址或js代碼", "url_path_desc" =>"URL網址或JS代碼",
"no_permission_read" =>"該文件沒有讀取權限", "no_permission_read" =>"此檔案無讀取權限",
"no_permission_download" =>"管理员限制了下载和预览", "no_permission_download" =>"管理員限制了下載與預覽",
"php_env_check" => "執行環境檢查:",
"php_env_check" => "運行環境監測:",
"php_env_error" => "環境錯誤:", "php_env_error" => "環境錯誤:",
"php_env_error_ignore" =>"忽略", "php_env_error_ignore" =>"忽略",
"php_env_error_version" =>"PHP版本不能低於5.0", "php_env_error_version" =>"PHP版本不能低於5.0",
"php_env_error_iconv" =>"未開啟 iconv", "php_env_error_iconv" =>"未開啟 iconv",
"php_env_error_mb_string" =>"未開啟 mb_string", "php_env_error_mb_string" =>"未開啟 mb_string",
"php_env_error_file" =>"未開啟 file_get_contents", "php_env_error_file" =>"未開啟 file_get_contents",
"php_env_error_path" =>"不可寫", "php_env_error_path" =>"無法寫入",
"php_env_error_gd" =>"須開啟php GD庫, 否則驗證碼、縮圖使用將不正常", "php_env_error_gd" =>"須開啟php GD庫, 否則驗證碼、縮圖使用將不正常",
"install_login" =>"您可以用如下號登陸", "install_login" =>"您可以用如下號登陸",
"install_enter" =>"進入系統", "install_enter" =>"進入系統",
"install_user_default" =>"管理員admin/admin(請務必修改密碼)<br/>普通用戶demo/demo<br/>遊客用戶guest/guest", "install_user_default" =>"管理員admin/admin(請務必修改密碼)<br/>一般使用者demo/demo<br/>遊客使用者guest/guest",
"copyright_desc" =>"這是一款備受好評的web檔案管理系統你可以用它來做內部檔案管理或共用、也可以用來管理伺服器上的網站取代Ftp
"copyright_desc" =>"這是壹款備受好評的web文檔管理系統妳可以用它來做內部文檔管理或共享、也可以用來管理服務器上的網站取代Ftp 甚至可以當作webIDE直接線上開發。同時你也可以將此程式二次開發整合進你現有的系統。",
甚至可以當作webIDE直接在線開發。同時妳也可以將此程序二次開發整合到妳現有的系統。", 'copyright_contact' =>'授權或客製請聯絡QQ:<a href="http://wpa.qq.com/msgrd?v=3&uin=3232048103&site=qq&menu=yes" target="_blank">3232048103</a><a href="javascript:core.openIE(\'http://kalcaddle.com/qa.html\');">問題反饋</a>',
'copyright_contact' =>'授權或定制請聯系QQ:<a href="http://wpa.qq.com/msgrd?v=3&uin=3232048103&site=qq&menu=yes" target="_blank">3232048103</a><a href="javascript:core.openIE(\'http://kalcaddle.com/qa.html\');">問題反饋</a>',
"copyright_info" =>'Copyright © <a href="http://kalcaddle.com/" target="_blank">kalcaddle.com</a> All rights reserved.', "copyright_info" =>'Copyright © <a href="http://kalcaddle.com/" target="_blank">kalcaddle.com</a> All rights reserved.',
"copyright_pre" =>'Powered by KodExplorer', "copyright_pre" =>'Powered by KodExplorer',
"kod_name" => "KodExplorer", "kod_name" => "KodExplorer",
"kod_name_desc" => "芒果雲•資源管理器", "kod_name_desc" => "芒果雲•資源管理器",
"kod_power_by" => " - Powered by KodExplorer", "kod_power_by" => " - Powered by KodExplorer",
"kod_name_copyright" => "芒果雲•資源管理器", "kod_name_copyright" => "芒果雲•資源管理器",
"login" => "登入",
"guest_login" => "遊客登入",
"login" => "登六", "username" => "使用者名稱",
"guest_login" => "遊客登六",
"username" => "用護名",
"password" => "密碼", "password" => "密碼",
"login_code" => "驗證", "login_code" => "驗證",
"login_rember_password" => "記住密碼", "login_rember_password" => "記住密碼",
"us" => "千帆網路工作室", "us" => "千帆網路工作室",
"login_not_null" => "用護名密碼不能為空!", "login_not_null" => "使用者名稱密碼不能為空!",
"code_error" => "驗證碼錯誤", "code_error" => "驗證碼錯誤",
"user_not_exists" => "用護名不存在!", "user_not_exists" => "使用者名稱不存在!",
"password_error" => "密碼錯誤!", "password_error" => "密碼錯誤!",
"password_not_null" => "密碼不能為空!", "password_not_null" => "密碼不能為空!",
"old_password_error" => "原密碼錯誤!", "old_password_error" => "原密碼錯誤!",
"permission" => "許可權!", "permission" => "!",
"permission_edit" => "修改權限", "permission_edit" => "修改權限",
"no_permission" => "沒有此權限!", "no_permission" => "此權限!",
"no_permission_ext" => "沒有該類型文件權限", "no_permission_ext" => "無此類型檔案權限",
"dialog_min" => "最小化", "dialog_min" => "最小化",
"dialog_min_all" => "最小化所有", "dialog_min_all" => "最小化所有",
"dialog_display_all" => "顯示所有窗口", "dialog_display_all" => "顯示所有視窗",
"dialog_close_all" => "關閉所有窗口", "dialog_close_all" => "關閉所有視窗",
//通用 //通用
"open" => "", "open" => "",
"others" => "其他", "others" => "其他",
"open_with" => "打開方式", "open_with" => "開啟檔案",
"close" => "關閉", "close" => "關閉",
"close_all" => "關閉全部", "close_all" => "關閉全部",
"close_right" => "關閉右側標籤", "close_right" => "關閉右側標籤",
"close_others" => "關閉其他", "close_others" => "關閉其他",
"loading" => "作中...", "loading" => "中...",
"warning" => "警告", "warning" => "警告",
"getting" => "取中...", "getting" => "中...",
"sending" => "數據發送中...", "sending" => "資料傳送中...",
"data_error" => "數據出錯!", "data_error" => "資料出錯!",
"get_success" => "取成功!", "get_success" => "成功!",
"save_success" => "存成功!", "save_success" => "存成功!",
"success" => "作成功", "success" => "成功",
"error" => "作失敗", "error" => "失敗",
"error_repeat" => "'作失敗,請註意名稱不能重複!'", "error_repeat" => "'失敗,請註意名稱不能重複!'",
"system_error" => "系統錯誤", "system_error" => "系統錯誤",
"name" => "名稱", "name" => "名稱",
"type" => "類型", "type" => "類型",
@ -183,302 +174,289 @@ $L= array(
"size" => "大小", "size" => "大小",
"byte" => "位元組", "byte" => "位元組",
"path" => "路徑", "path" => "路徑",
"action" => "", "action" => "",
"create_time" => "建時間", "create_time" => "時間",
"modify_time" => "修改時間", "modify_time" => "修改時間",
"last_time" => "最後", "last_time" => "最後",
"sort_type" => "排序方式", "sort_type" => "排序方式",
"time_type" => "Y/m/d H:i:s", "time_type" => "Y/m/d H:i:s",
"time_type_info" => "Y年m月d日 H:i:s", "time_type_info" => "Y年m月d日 H:i:s",
"public_path" => "公共目錄", "public_path" => "公共目錄",
//右鍵 //右鍵
"file" => "", "file" => "",
"folder" => "", "folder" => "資料",
"copy" => "複製", "copy" => "複製",
"clone" => "創建副本", "clone" => "複製一份",
"past" => "", "past" => "",
"cute" => "", "cute" => "",
"remove" => "刪除", "remove" => "刪除",
"info" => "屬性", "info" => "內容",
"list_type" => "查看", "list_type" => "檢視",
"list_icon" => "圖示排列", "list_icon" => "圖示排列",
"list_list" => "列表排列", "list_list" => "清單排列",
"sort_up" => "遞增", "sort_up" => "遞增",
"sort_down" => "遞減", "sort_down" => "遞減",
"order_type" => "排序方式", "order_type" => "排序方式",
"order_desc" => "降序", "order_desc" => "遞減",
"order_asc" => "昇冪", "order_asc" => "遞增",
"rename" => "命名", "rename" => "命名",
"add_to_fav" => "添加到收藏夾", "add_to_fav" => "新增至書籤",
"search_in_path" => "檔夾中搜索", "search_in_path" => "資料夾中搜尋",
"add_to_play" => "添加到播放列表", "add_to_play" => "新增至播放清單",
"manage_fav" => "管理收藏夾", "manage_fav" => "管理書籤",
"refresh_tree" => "刷新樹目錄", "refresh_tree" => "重新整理樹目錄",
"manage_folder" => "管理目錄", "manage_folder" => "管理目錄",
"close_menu" => "關閉", "close_menu" => "關閉",
"zip" => "zip壓縮", "zip" => "zip壓縮",
"unzip" => "zip解壓到當前", "unzip" => "zip解壓至目前",
"clipboard" => "查看剪貼板", "clipboard" => "檢視剪貼簿",
"full_screen" => "全屏/退出全屏", "full_screen" => "全螢幕/離開全螢幕",
"tips" => "提示", "tips" => "提示",
"ziping" => "正在壓縮...", "ziping" => "正在壓縮...",
"unziping" => "正在解壓...", "unziping" => "正在解壓...",
"moving" => "移動操作中...", "moving" => "移動中...",
"remove_title" => "刪除確認", "remove_title" => "刪除確認",
"remove_info" => "確認刪除選中內容嗎?", "remove_info" => "確認刪除選中內容嗎?",
"name_isexists" => "出錯了,名稱已存在!", "name_isexists" => "出錯了,名稱已存在!",
"install" => '安裝', "install" => '安裝',
"width" => '寬', "width" => '寬',
"height" => '高', "height" => '高',
"app" => '應用', "app" => '應用',
"app_store" => '應用商店', "app_store" => '應用商店',
"app_create" => '建應用', "app_create" => '應用',
"app_edit" => '修改應用', "app_edit" => '修改應用',
"app_group_all" => '全部', "app_group_all" => '全部',
"app_group_game" => '遊戲', "app_group_game" => '遊戲',
"app_group_tools" => '工具', "app_group_tools" => '工具',
"app_group_reader" => '閱讀', "app_group_reader" => '閱讀',
"app_group_movie" => '影', "app_group_movie" => '影',
"app_group_music" => '音樂', "app_group_music" => '音樂',
"app_group_life" => '生活', "app_group_life" => '生活',
"app_group_others" => '其他', "app_group_others" => '其他',
"app_desc" => '描述', "app_desc" => '描述',
"app_icon" => '應用圖示', "app_icon" => '應用程式圖示',
"app_icon_show" => 'url地址或該目錄', "app_icon_show" => 'URL網址或此目錄',
"app_group" => '應用分組', "app_group" => '應用程式分組',
"app_type" => '類型', "app_type" => '類型',
"app_type_url" => '鏈接', "app_type_url" => '連結',
"app_type_code" => 'js擴展', "app_type_code" => 'JS擴充',
"app_display" => '外觀', "app_display" => '顯示',
"app_display_border" => '無邊框(選中即無邊框)', "app_display_border" => '無邊框(選中即無邊框)',
"app_display_size" => '調整大小(選中即可調整)', "app_display_size" => '調整大小(選中即可調整)',
"app_size" => '尺寸', "app_size" => '大小',
"app_url" => '鏈接地址', "app_url" => '連結網址',
"app_code" => 'js 代碼', "app_code" => 'JS代碼',
//檔案管理
//檔管理
"edit" => "編輯", "edit" => "編輯",
"edit_can_not" => "不是文本檔", "edit_can_not" => "不是文字檔案",
"edit_too_big" => "文件太大,不能大於20M", "edit_too_big" => "檔案太大,不能大於20M",
"open_default" => "默認方式打開", "open_default" => "預設方式開啟",
"open_ie" => "流覽器打開", "open_ie" => "瀏覽器開啟",
"refresh" => "刷新", "refresh" => "重新整理",
"refresh_all" => "強制刷新", "refresh_all" => "強制重新整理",
"newfile" => "建檔", "newfile" => "增檔案",
"newfolder" => "建檔", "newfolder" => "增資料",
"newothers" => "其他", "newothers" => "其他",
"path_loading" => "載入中...", "path_loading" => "載入中...",
"go" => "走著!", "go" => "移至",
"go_up" => "上層", "go_up" => "上層",
"history_next" => "前進", "history_next" => "下一頁",
"history_back" => "後退", "history_back" => "上一頁",
"address_in_edit" => "點擊進入編輯狀態", "address_in_edit" => "按一下進入編輯狀態",
"double_click_rename" => "雙擊名稱重命名", "double_click_rename" => "按兩下名稱重新命名",
"double_click_open" => "雙擊打開", "double_click_open" => "按兩下開啟",
"path_null" => "該檔夾為空,可以拖拽檔到該窗口上傳。", "path_null" => "此資料夾為空,可以拖曳檔案至此視窗上傳。",
//上傳下載 //上傳下載
"upload" => "上傳", "upload" => "上傳",
"upload_ready" => "等待上傳...", "upload_ready" => "等待上傳...",
"uploading" => "上傳中...", "uploading" => "上傳中...",
"upload_success" => "上傳成功", "upload_success" => "上傳成功",
"upload_path_current" => "切換到當前目錄", "upload_path_current" => "切換至目前目錄",
"upload_select" => "選擇檔", "upload_select" => "選擇檔",
"upload_max_size" => "最大允許", "upload_max_size" => "最大允許",
"upload_size_info" => "如果想配置更大請修改php.ini中允許上傳的最大值。選擇檔時,大於該配置的將自動過濾掉。", "upload_size_info" => "如果想設定更大請修改php.ini中允許上傳的最大值。選擇檔案時,大於此設定的將自動篩選掉。",
"upload_error" => "上傳失敗", "upload_error" => "上傳失敗",
"upload_muti" => "多檔上傳", "upload_muti" => "多檔上傳",
"upload_drag" => "上傳", "upload_drag" => "上傳",
"upload_drag_tips" => "鬆開即可上傳!", "upload_drag_tips" => "鬆開即可上傳!",
"path_not_allow" => "檔案名不允許出現", "path_not_allow" => "檔案名不允許出現",
"download" => "下載", "download" => "下載",
"download_address" => "下載", "download_address" => "下載",
"download_ready" => "即將下載", "download_ready" => "即將下載",
"download_success" => "下載成功!", "download_success" => "下載成功!",
"download_error" => "下載失敗!", "download_error" => "下載失敗!",
"download_error_create" => "寫入出錯!", "download_error_create" => "寫入出錯!",
"download_error_exists" => "遠程檔不存!", "download_error_exists" => "遠端檔案不存在!",
"upload_error_null" => "沒有檔!", "upload_error_null" => "無檔案!",
"upload_error_big" => "檔大小超過伺服器限制", "upload_error_big" => "檔案大小超過伺服器限制",
"upload_error_move" => "移動檔失敗!", "upload_error_move" => "移動檔案失敗!",
"upload_error_exists" => "該檔已存在", "upload_error_exists" => "此檔案已存在",
"upload_local" => "本地上傳", "upload_local" => "本機上傳",
"download_from_server" => "遠程下載", "download_from_server" => "遠端下載",
"save_path" => "保存路徑", "save_path" => "儲存路徑",
"upload_select_muti" => "可選擇多個檔上傳", "upload_select_muti" => "可選擇多個檔案上傳",
//搜尋
//搜索 "search" => "搜尋",
"search" => "搜索", "searching" => "搜尋中...",
"searching" => "搜索中...", "search_null" => "無搜尋結果!",
"search_null" => "沒有搜索結果!",
"search_uplow" => "區分大小寫", "search_uplow" => "區分大小寫",
"search_content" => "索檔內容", "search_content" => "尋檔案內容",
"search_info" => "請輸入搜索詞和路徑進行搜索", "search_info" => "請輸入搜尋詞和路徑進行搜尋",
"search_ext_tips" => "用|隔開;例如 php|js|css<br/>不填則搜索默認文本檔", "search_ext_tips" => "用|隔開;例如 php|js|css<br/>不填則搜尋預設文字檔案",
"file_type" => "檔類型", "file_type" => "檔類型",
"goto" => "跳轉", "goto" => "跳轉",
"contain" => "包含", "contain" => "包含",
"server_dwonload_desc" => "個任務加入到下載列表", "server_dwonload_desc" => "個任務加入至下載清單",
"parent_permission" => "父目錄許可權", "parent_permission" => "父目錄權限",
"root_path" => "根目錄",
"root_path" => "我的文件",
"lib" => "", "lib" => "",
"fav" => "收藏夾", "fav" => "書籤",
"desktop" => "桌面", "desktop" => "桌面",
"browser" => "覽器", "browser" => "覽器",
"my_computer" => "我的電腦", "my_computer" => "我的電腦",
"recycle" => "回收站", "recycle" => "垃圾筒",
"my_document" => "我的文", "my_document" => "我的文",
"my_picture" => "我的照片", "my_picture" => "我的照片",
"my_music" => "我的音樂", "my_music" => "我的音樂",
"my_movie" => "我的視頻", "my_movie" => "我的影片",
"my_download" => "我的下載", "my_download" => "我的下載",
//介面 //介面
"ui_desktop" => "桌面", "ui_desktop" => "桌面",
"ui_explorer" => "管理", "ui_explorer" => "管理",
"ui_editor" => "編輯器", "ui_editor" => "編輯器",
"adminer" => "adminer", "adminer" => "adminer",
"ui_project_home" => "專案主頁", "ui_project_home" => "專案主頁",
"ui_login" => "登六", "ui_login" => "登入",
"ui_logout" => "退出", "ui_logout" => "登出",
//設定
//設置 "setting" => "系統設定",
"setting" => "系統設置",
"setting_title" => "選項", "setting_title" => "選項",
"setting_user" => "個人中心", "setting_user" => "個人中心",
"setting_password" => "修改密碼", "setting_password" => "修改密碼",
"setting_password_old" => "原密碼", "setting_password_old" => "原密碼",
"setting_password_new" => "修改為", "setting_password_new" => "修改為",
"setting_language" => "語言設", "setting_language" => "語言設",
"setting_member" => "用護管理", "setting_member" => "使用者管理",
"setting_group" => "用護組管理", "setting_group" => "使用者群組管理",
"setting_group_add" => "添加用護", "setting_group_add" => "新增使用者群",
"setting_group_edit" => "編輯用護", "setting_group_edit" => "編輯使用者群",
"setting_theme" => "主題切換", "setting_theme" => "主題切換",
"setting_wall" => "更換壁紙", "setting_wall" => "變換桌布",
"setting_wall_diy" => "定義壁紙", "setting_wall_diy" => "訂桌布",
"setting_wall_info" => "圖片url地址本地圖片可以右鍵圖片流覽器打開即可得到", "setting_wall_info" => "圖片URL網址本機圖片可以右鍵圖片瀏覽器開啟即可得到",
"setting_fav" => "收藏夾管理", "setting_fav" => "書籤管理",
"setting_player" => "播放器", "setting_player" => "播放器",
"setting_player_music" => "音樂播放器設", "setting_player_music" => "音樂播放器設",
"setting_player_movie" => "視頻播放器設置", "setting_player_movie" => "影片播放器設定",
"setting_help" => "使用幫助", "setting_help" => "說明",
"setting_about" => "關於作品", "setting_about" => "關於",
"setting_success" => "修改已生效!", "setting_success" => "修改已生效!",
"can_not_repeat" => "不允許重複", "can_not_repeat" => "不允許重複",
"absolute_path" => "絕對地址", "absolute_path" => "絕對位址",
// setting page // setting page
"group" => "用護", "group" => "使用者群",
"data_not_full" => "數據提交不完整!", "data_not_full" => "資料送出不完整!",
"default_user_can_not_do" => "默認用護不能操作", "default_user_can_not_do" => "預設使用者不能操作",
"default_group_can_not_do" => "默認用護組不能操作", "default_group_can_not_do" => "預設使用者群組不能操作",
"username_can_not_null" => "用護名不能為空!", "username_can_not_null" => "使用者名稱不能為空!",
"groupname_can_not_null" => "用護組名不能為空!", "groupname_can_not_null" => "使用者群組名稱不能為空!",
"groupdesc_can_not_null" => "用護組描述不能為空!", "groupdesc_can_not_null" => "使用者群組描述不能為空!",
"group_move_user_error" => "所屬用護組用護移動失敗", "group_move_user_error" => "所屬使用者群組使用者移動失敗",
"group_already_remove" => "該用護組已被刪除", "group_already_remove" => "此使用者群組已被刪除",
"group_not_exists" => "該用護組不存在", "group_not_exists" => "此使用者群組不存在",
"member_add" => "添加用護", "member_add" => "新增使用者",
"password_null_not_update" => "密碼不填表示不", "password_null_not_update" => "密碼不填表示不",
"if_save_file" => "尚未保存,是否保存?", "if_save_file" => "案尚未儲存,是否儲存?",
"if_remove" => "確認刪除", "if_remove" => "確認刪除",
"member_remove_tips" => "刪除後該用護目錄會被清空", "member_remove_tips" => "刪除後此使用者目錄會被清除",
"group_remove_tips" => "刪除後該用護組用護無法登六<br/>(需要重新設置用護組)", "group_remove_tips" => "刪除後此使用者群組使用者無法登入<br/>(需要重新設定使用者群組)",
"group_name" => "用護組名", "group_name" => "使用者群組名稱",
"group_name_tips" => "建議英文名,不能重複", "group_name_tips" => "建議英文名,不能重複",
"group_desc" => "展示名稱", "group_desc" => "展示名稱",
"group_desc_tips" => "組名描述", "group_desc_tips" => "組名描述",
"group_role_ext" => "擴展名限制", "group_role_ext" => "副檔名限制",
"group_role_ext_tips" => "多個用|分隔開", "group_role_ext_tips" => "多個用|分隔開",
"group_role_file" => "管理", "group_role_file" => "管理",
"group_role_upload" => "上傳下載", "group_role_upload" => "上傳下載",
"group_role_user" => "用護數據", "group_role_user" => "使用者資料",
"group_role_group" => "用護組管理", "group_role_group" => "使用者群組管理",
"group_role_member" => "用護管理", "group_role_member" => "使用者管理",
"group_role_mkfile" => "建檔", "group_role_mkfile" => "增檔案",
"group_role_mkdir" => "建檔", "group_role_mkdir" => "增資料",
"group_role_pathrname" => "命名", "group_role_pathrname" => "命名",
"group_role_pathdelete" => "檔(夾)刪除", "group_role_pathdelete" => "檔(夾)刪除",
"group_role_pathinfo" => "檔(夾)屬性", "group_role_pathinfo" => "檔(夾)內容",
"group_role_pathmove" => "移動(複製/剪切/粘貼/拖拽操作)", "group_role_pathmove" => "移動(複製/剪下/貼上/拖曳操作)",
"group_role_zip" => "zip壓縮", "group_role_zip" => "zip壓縮",
"group_role_unzip" => "zip解壓", "group_role_unzip" => "zip解壓",
"group_role_search" => "", "group_role_search" => "",
"group_role_filesave" => "編輯保存檔", "group_role_filesave" => "編輯儲存檔案",
"group_role_can_upload" => "上傳下載", "group_role_can_upload" => "上傳下載",
"group_role_upload" => "允許上傳", "group_role_upload" => "允許上傳",
"group_role_download" => "下載", "group_role_download" => "下載",
"group_role_passowrd" => "修改密碼", "group_role_passowrd" => "修改密碼",
"group_role_config" => "用護配置", "group_role_config" => "使用者設定",
"group_role_fav" => "收藏夾操作(添加/編輯/刪除)", "group_role_fav" => "書籤操作(新增/編輯/刪除)",
"group_role_list" => "列表查看", "group_role_list" => "清單檢視",
"group_role_member_add" => "添加用護", "group_role_member_add" => "新增使用者",
"group_role_member_edit" => "編輯用護", "group_role_member_edit" => "編輯使用者",
"group_role_member_del" => "刪除用護", "group_role_member_del" => "刪除使用者",
"group_role_group_add" => "添加用護組", "group_role_group_add" => "新增使用者群組",
"group_role_group_edit" => "編輯用護組", "group_role_group_edit" => "編輯使用者群組",
"group_role_group_del" => "刪除用護組", "group_role_group_del" => "刪除使用者群組",
"group_role_ext_warning" => "不允許此類檔的上傳,<br/>重命名(重命名為指定擴展名),<br/>編輯保存,遠程下載,解壓", "group_role_ext_warning" => "不允許此類檔案的上傳,<br/>重新命名(重新命名為指定副檔名),<br/>編輯儲存,遠端下載,解壓",
"group_tips"=>"<li>1.用護組名不能重複,修改組名後原屬於改組用護會自動關聯</li><li>2.擴展名限制關系系統安全性,請務必謹慎操作<i>(果在web目錄下新建php;就意味著改程式的許可權對此用護形同虛設)</i></li><li>3.護管理、許可權組管理;查看許可權和增刪改許可權是邦定的;程式會自動關聯</li><li>4.設定許可權組能添加許可權組後,後續許可權是不繼承的<i>(此許可權相當於最高許可權)</i></li>", "group_tips"=>"<li>1.使用者群組名稱不能重複,修改群組名稱後原屬於改群組使用者會自動關聯</li><li>2.副檔名限制關聯系統安全性,請務必謹慎作業<i>(如果在web目錄下新增php;就意味著改程式的權限對此使用者形同虛設)</i></li><li>3.使用者管理、權限群組管理;檢視權限和增刪改權限是連結的;程式會自動關聯</li><li>4.設定權限群組能新增權限群組後,後續權限是不繼承的<i>(此權限相當於最高權限)</i></li>",
//explorer_ajax //explorer_ajax
"not_null" => "必填項不能為空!", "not_null" => "必填項不能為空!",
"picture_can_not_null" => "圖片址不能為空!", "picture_can_not_null" => "圖片址不能為空!",
"rname_success" => "命名成功!", "rname_success" => "命名成功!",
"please_inpute_search_words" => "請輸入要搜的字串", "please_inpute_search_words" => "請輸入要搜的字串",
"remove_success" => "刪除成功!", "remove_success" => "刪除成功!",
"remove_fali" => "刪除失敗!", "remove_fali" => "刪除失敗!",
"clipboard_null" => "剪貼為空!", "clipboard_null" => "剪貼簿為空!",
"create_success" => "成功!", "create_success" => "成功!",
"create_error" => "建失敗,請檢查目錄許可權", "create_error" => "增失敗,請檢查目錄權限",
"copy_success" => "【複製】—— 覆蓋剪貼成功!", "copy_success" => "【複製】—— 覆蓋剪貼簿成功!",
"cute_success" => "【剪切】—— 覆蓋剪貼板成功!", "cute_success" => "【剪下】—— 覆蓋剪貼簿成功!",
"clipboard_state" => "切板狀態:", "clipboard_state" => "貼簿狀態:",
"no_permission_write" => "該目錄沒有寫權限", "no_permission_write" => "此目錄無寫權限",
"no_permission_write_all" => "该文件或目录没有写权", "no_permission_write_all" => "此檔案或目錄無寫入權",
"no_permission_write_file" => "该文件沒有寫權限", "no_permission_write_file" => "此檔案無寫權限",
"copy_not_exists" => "來源不存在", "copy_not_exists" => "來源不存在",
"current_has_parent" => "目標檔夾是原始檔案夾的子檔夾!", "current_has_parent" => "目標資料夾是原始資料夾的子資料夾!",
"past_success" => "<b>貼操作完成</b>", "past_success" => "<b>操作完成</b>",
"cute_past_success" => "<b>剪切操作完成</b>(原始檔案被刪除,剪貼板清空)", "cute_past_success" => "<b>剪下作業完成</b>(原始檔案被刪除,剪貼簿清除)",
"zip_success" => "壓縮完成", "zip_success" => "壓縮完成",
"not_zip" => "不是壓縮檔", "not_zip" => "不是壓縮檔",
"zip_null" => "沒有選擇的檔或目錄", "zip_null" => "無選擇的檔案或目錄",
"unzip_success" => "解壓完成", "unzip_success" => "解壓完成",
"gotoline" => "跳轉到行", "gotoline" => "跳轉至列",
"path_is_current" => "所打開路徑和當前路徑壹洋!", "path_is_current" => "所開啟路徑與目前路徑一致!",
"path_exists" => "該名稱已存在!", "path_exists" => "此名稱已存在!",
//編輯器 //編輯器
"undo" => "撤銷", "undo" => "復原",
"redo" => "撤銷", "redo" => "復原",
"preview" => "預覽", "preview" => "預覽",
"wordwrap" => "自動換行/不自動換行", "wordwrap" => "自動換行/不自動換行",
"char_all_display" => "顯示&隱藏不可見字元", "char_all_display" => "顯示&隱藏不可見字元",
"auto_complete" => "自動提示(取消)", "auto_complete" => "自動提示(取消)",
"function_list" => "函數列表", "function_list" => "函數清單",
"code_theme" => "代碼風格", "code_theme" => "代碼風格",
"font_size" => "字體", "font_size" => "字型",
//button //button
"button_ok" => "確定", "button_ok" => "確定",
"button_submit" => "提交", "button_submit" => "送出",
"button_set" => "", "button_set" => "",
"button_cancel" => "取消", "button_cancel" => "取消",
"button_edit" => "編輯", "button_edit" => "編輯",
"button_save" => "", "button_save" => "",
"button_save_all" => "存全部", "button_save_all" => "存全部",
"button_not_save" => "", "button_not_save" => "",
"button_add" => "添加", "button_add" => "新增",
"button_back_add" => "返回添加", "button_back_add" => "返回新增",
"button_del" => "刪除", "button_del" => "刪除",
"button_save_edit" => "存修改", "button_save_edit" => "存修改",
"button_save_submit" => "保存提交", "button_save_submit" => "儲存送出",
"button_select_all" => "全選/反選" "button_select_all" => "全選/反選"
); );

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

View File

@ -145,7 +145,6 @@ function spend_time(&$pretime){
} }
function check_code($code){ function check_code($code){
header("Content-type: image/png");
$fontsize = 18;$len = strlen($code); $fontsize = 18;$len = strlen($code);
$width = 70;$height=27; $width = 70;$height=27;
$im = @imagecreatetruecolor($width, $height) or die("create image error!"); $im = @imagecreatetruecolor($width, $height) or die("create image error!");
@ -162,11 +161,20 @@ function check_code($code){
imagerectangle($im, 0, 0, $width-1, $height-1, $border_color);//画矩形边框颜色200,200,200 imagerectangle($im, 0, 0, $width-1, $height-1, $border_color);//画矩形边框颜色200,200,200
for ($i = 0; $i < $len; $i++) {//写入随机字串 for ($i = 0; $i < $len; $i++) {//写入随机字串
$current = $str[mt_rand(0, strlen($str)-1)]; $current = $code[mt_rand(0, strlen($code)-1)];
$text_color = imagecolorallocate($im,mt_rand(30, 140),mt_rand(30,140),mt_rand(30,140)); $text_color = imagecolorallocate($im,mt_rand(30, 140),mt_rand(30,140),mt_rand(30,140));
imagechar($im,10,$i*$fontsize+6,rand(1,$height/3),$code[$i],$text_color); imagechar($im,10,$i*$fontsize+6,rand(1,$height/3),$code[$i],$text_color);
} }
imagejpeg($im);//显示图 if(function_exists("imagejpeg")){
header("Content-Type: image/jpeg");
imagejpeg($im, null,90);//图片质量
}else if(function_exists("imagegif")){
header("Content-Type: image/gif");
imagegif($im);
}else if(function_exists("imagepng")){
header("Content-Type: image/x-png");
imagepng($im);
}
imagedestroy($im);//销毁图片 imagedestroy($im);//销毁图片
} }

View File

@ -127,21 +127,13 @@ function get_path_ext($path){
return $ext; return $ext;
} }
//自动获取不重复文件(夹)名 //自动获取不重复文件(夹)名
//如果传入$file_add 则检测存在则自定重命名 a.txt 为a{$file_add}.txt //如果传入$file_add 则检测存在则自定重命名 a.txt 为a{$file_add}.txt
function get_filename_auto($path,$file_add = "",$same_file_type=''){ //$same_file_type rename,replace,skip,folder_rename
if (is_dir($path)) {//文件夹则忽略 function get_filename_auto($path,$file_add = "",$same_file_type='replace'){
if (is_dir($path) && $same_file_type!='folder_rename') {//文件夹则忽略
return $path; return $path;
} }
//重名处理方式;replace,skip,filename_auto
if ($same_file_type == '') {
$same_file_type = 'replace';
}
//重名处理 //重名处理
if (file_exists($path)) { if (file_exists($path)) {
if ($same_file_type=='replace') { if ($same_file_type=='replace') {
@ -172,14 +164,28 @@ function get_filename_auto($path,$file_add = "",$same_file_type=''){
} }
/** /**
* 判断文件夹是否可写 * 文件或目录是否可写 is_writeable();
* 兼容性处理挂载目录755 bug
*/ */
function path_writable($path) { function path_writable($path){
$file = $path.'/test'.time().'.txt'; if (is_dir($path)) {
$dir = $path.'/test'.time(); $file = $path.'/writeable_test_'.time().'.txt';
if(@is_writable($path) && @touch($file) && @unlink($file)) return true; @touch($file);
if(@mkdir($dir,0777) && @rmdir($dir)) return true; if(file_exists($file)){
return false; @unlink($file);
return true;
}
return false;
}else if(file_exists($path)){
$fp = @fopen($path,'a+');
if($fp){
fclose($fp);
return true;
}
fclose($fp);
return false;
}
return false;//不存在
} }
/** /**
@ -589,19 +595,15 @@ function ext_type($ext){
* 默认以附件方式下载;$download为false时则为输出文件 * 默认以附件方式下载;$download为false时则为输出文件
*/ */
function file_put_out($file,$download=false){ function file_put_out($file,$download=false){
if (!is_file($file)) show_json('not a file!'); if (!is_file($file)) show_json('not a file!');
set_time_limit(0);
//ob_clean();//清除之前所有输出缓冲
if (!file_exists($file)) show_json('file not exists',false); if (!file_exists($file)) show_json('file not exists',false);
if (isset($_SERVER['HTTP_RANGE']) && ($_SERVER['HTTP_RANGE'] != "") && if (!is_readable($file)) show_json('file not readable',false);
preg_match("/^bytes=([0-9]+)-$/i", $_SERVER['HTTP_RANGE'], $match) && ($match[1] < $fsize)) {
$start = $match[1]; set_time_limit(0);
}else{ ob_clean();//清除之前所有输出缓冲 TODO
$start = 0;
}
$size = get_filesize($file);
$mime = get_file_mime(get_path_ext($file)); $mime = get_file_mime(get_path_ext($file));
if ($download || strstr($mime,'application/')) {//下载或者application则设置下载头 if ($download ||
(strstr($mime,'application/') && $mime!='application/x-shockwave-flash') ) {//下载或者application则设置下载头
$filename = get_path_this($file);//解决在IE中下载时中文乱码问题 $filename = get_path_this($file);//解决在IE中下载时中文乱码问题
if( preg_match('/MSIE/',$_SERVER['HTTP_USER_AGENT']) || if( preg_match('/MSIE/',$_SERVER['HTTP_USER_AGENT']) ||
preg_match('/Trident/',$_SERVER['HTTP_USER_AGENT'])){ preg_match('/Trident/',$_SERVER['HTTP_USER_AGENT'])){
@ -611,24 +613,76 @@ function file_put_out($file,$download=false){
} }
header("Content-Type: application/octet-stream"); header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment;filename=".$filename); header("Content-Disposition: attachment;filename=".$filename);
}else{
//缓存文件
header('Expires: '.date('D, d M Y H:i:s',time()+3600*24*20).' GMT');
header("Cache-Pragma: public");
header("Cache-Control: cache, must-revalidate");
if (isset($_SERVER['If-Modified-Since']) && (strtotime($_SERVER['If-Modified-Since']) == filemtime($file))) {
header('HTTP/1.1 304 Not Modified');
header('Last-Modified: '.date('D, d M Y H:i:s', filemtime($file)).' GMT');//304
exit;
} else {
header('Last-Modified: '.date('D, d M Y H:i:s', filemtime($file)).' GMT', true, 200);
}
$etag = '"'.md5(date('D, d M Y H:i:s',filemtime($file))).'"';
if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && $_SERVER['HTTP_IF_NONE_MATCH'] == $etag){
header('HTTP/1.1 304 Not Modified');
header('Etag: '.$etag);
exit;
}else{
header('Etag: '.$etag);
}
} }
header("Cache-Control: public");
header("X-Powered-By: kodExplorer."); header("X-Powered-By: kodExplorer.");
header("Content-Type: ".$mime); header("Content-Type: ".$mime);
if ($start > 0){ header("Accept-Ranges: bytes");
header("HTTP/1.1 206 Partial Content"); $size = get_filesize($file);
header("Content-Ranges: bytes".$start ."-".($size - 1)."/" .$size); $length = $size; // Content length
header("Content-Length: ".($size - $start)); $start = 0; // Start byte
}else{ $end = $size - 1; // End byte
header("Accept-Ranges: bytes"); if (isset($_SERVER['HTTP_RANGE']) || isset($_GET['start'])) {//分段请求;视频拖拽
header("Content-Length: $size"); $c_start = $start;
} $c_end = $end;
if(isset($_GET['start'])){
$c_start = intval($_GET['start']);
}else{//range
list(, $range) = explode('=', $_SERVER['HTTP_RANGE'], 2);
if (strpos($range, ',') !== false) {
header('HTTP/1.1 416 Requested Range Not Satisfiable');
header("Content-Range: bytes $start-$end/$size");
exit;
}
if ($range == '-') {
$c_start = $size - substr($range, 1);
}else{
$range = explode('-', $range);
$c_start = $range[0];
$c_end = (isset($range[1]) && is_numeric($range[1])) ? $range[1] : $size;
}
$c_end = ($c_end > $end) ? $end : $c_end;
if ($c_start > $c_end || $c_start > $size - 1 || $c_end >= $size) {
header('HTTP/1.1 416 Requested Range Not Satisfiable');
header("Content-Range: bytes $start-$end/$size");
exit;
}
}
$start = $c_start;
$end = $c_end;
$length = $end - $start + 1;
header('HTTP/1.1 206 Partial Content');
}
header("Content-Range: bytes $start-$end/$size");
header("Content-Length: ".$length);
$fp = fopen($file, "rb"); //header("X-Sendfile: $file");exit;
if(!$fp = @fopen($file, "rb")){
exit;
}
fseek($fp, $start); fseek($fp, $start);
while (!feof($fp)) { while (!feof($fp)) {
print (fread($fp, 1024 * 8)); //输出文件 set_time_limit(0);
print(fread($fp,1024*4)); //输出文件
flush(); flush();
ob_flush(); ob_flush();
} }
@ -642,12 +696,10 @@ function file_put_out($file,$download=false){
*/ */
function file_download_this($from, $file_name){ function file_download_this($from, $file_name){
set_time_limit(0); set_time_limit(0);
$fp = @fopen ($from, "rb"); if ($fp = @fopen ($from, "rb")){
if ($fp){ if(!$download_fp = @fopen($file_name, "wb")){
$new_fp = @fopen ($file_name, "wb"); return false;
fclose($new_fp); }
$download_fp = @fopen ($file_name, "wb");
while(!feof($fp)){ while(!feof($fp)){
if(!file_exists($file_name)){//删除目标文件;则终止下载 if(!file_exists($file_name)){//删除目标文件;则终止下载
fclose($download_fp); fclose($download_fp);
@ -657,6 +709,7 @@ function file_download_this($from, $file_name){
} }
//下载完成,重命名临时文件到目标文件 //下载完成,重命名临时文件到目标文件
fclose($download_fp); fclose($download_fp);
fclose($fp);
return true; return true;
}else{ }else{
return false; return false;

View File

@ -37,7 +37,9 @@ var dialogList = {//加入人物列表
;(function ($, window, undefined) { ;(function ($, window, undefined) {
$.noop = $.noop || function () {}; // jQuery 1.3.2 $.noop = $.noop || function () {}; // jQuery 1.3.2
var _box, _thisScript,_path,
//var _box, _thisScript,_path,
var _thisScript,_path,
_count = 0, _count = 0,
_$window = $(window), _$window = $(window),
_$document = $(document), _$document = $(document),
@ -72,6 +74,13 @@ var artDialog = function (config, ok, cancel) {
config.id = elem && elem[_expando + 'follow'] || config.id || _expando + _count; config.id = elem && elem[_expando + 'follow'] || config.id || _expando + _count;
api = artDialog.list[config.id]; api = artDialog.list[config.id];
//被意外删除dom
if(api && $('.'+config.id).length==0){
//_box = null;
api = null;
delete artDialog.list[config.id];
dialogList.close(config.id);
}
if (elem && api) return api.follow(elem).zIndex().focus(); if (elem && api) return api.follow(elem).zIndex().focus();
if (api) return api.zIndex().focus().display(true); if (api) return api.zIndex().focus().display(true);
@ -104,8 +113,10 @@ var artDialog = function (config, ok, cancel) {
config.title = '<img draggable="false" src="'+config.ico+'" />'+config.title; config.title = '<img draggable="false" src="'+config.ico+'" />'+config.title;
if (_count>=1) dialogList.add(config.id,config.title); if (_count>=1) dialogList.add(config.id,config.title);
} }
return artDialog.list[config.id] = _box ?
_box._init(config) : new artDialog.fn._init(config); var dialog = new artDialog.fn._init(config);
artDialog.list[config.id] = dialog;
return dialog;
}; };
artDialog.fn = artDialog.prototype = { artDialog.fn = artDialog.prototype = {
@ -117,13 +128,19 @@ artDialog.fn = artDialog.prototype = {
iconBg = icon && {'background-image': 'url(\'' + config.path + '/icons/' + icon + '.png\')','background-repeat':'no-repeat','background-position':'center'}; iconBg = icon && {'background-image': 'url(\'' + config.path + '/icons/' + icon + '.png\')','background-repeat':'no-repeat','background-position':'center'};
that.closed = false; that.closed = false;
that.config = config; that.config = config;
that.DOM = DOM = that.DOM || that._getDOM(); //that.DOM = DOM = that.DOM || that._getDOM();
that.DOM = DOM = that._getDOM();
//是否可以调节大小 对应样式处理 //是否可以调节大小 对应样式处理
//可以调节窗口大小——那么对应可以最大最小化 //可以调节窗口大小——那么对应可以最大最小化
if (config.resize && config.title != false) { if (config.resize && config.title != false) {
DOM.wrap.addClass('dialog-can-resize'); DOM.wrap.addClass('dialog-can-resize');
} }
//没有title
if(!config.title){
//DOM.wrap.find('.dialogShow').removeClass('dialogShow');
}
//是否可以调节大小 对应样式处理 //是否可以调节大小 对应样式处理
if (config.simple && config.title != false) { if (config.simple && config.title != false) {
DOM.wrap.addClass('dialog-simple'); DOM.wrap.addClass('dialog-simple');
@ -152,24 +169,28 @@ artDialog.fn = artDialog.prototype = {
? that.follow(config.follow) ? that.follow(config.follow)
: that.position(config.left, config.top); : that.position(config.left, config.top);
if($('.'+config.id).length==0){
dialogList.close(config.id);
that.close();
return;
}
that.zIndex().focus(); that.zIndex().focus();
config.lock && that.lock(); config.lock && that.lock();
that._addEvent(); //初始化设定高度;避免拖出可视区导致变形问题
_box = null; if($(DOM.wrap).get(0).style.width == 'auto'){
$(DOM.wrap).css('width',DOM.wrap.outerWidth());
}
that._addEvent();
config.init && config.init.call(that, window); config.init && config.init.call(that, window);
_titleBarHeight = DOM.title.css('height'); _titleBarHeight = DOM.title.css('height');
_titleBarHeight = _titleBarHeight.replace('px',''); _titleBarHeight = _titleBarHeight.replace('px','');
$(DOM.wrap).find('iframe').focus();
// DOM.wrap
// .css({opacity:0.6,top:'-='+DOM.wrap.height()*0.02})
// .animate(
// {opacity:1,top:'+='+DOM.wrap.height()*0.02},
// {easing: 'swing',duration:200});
return that; return that;
}, },
/** /**
* 设置内容 * 设置内容
* @param {String, HTMLElement} 内容 (可选) * @param {String, HTMLElement} 内容 (可选)
@ -189,7 +210,7 @@ artDialog.fn = artDialog.prototype = {
content = $content[0]; content = $content[0];
that._elemBack && that._elemBack(); that._elemBack && that._elemBack();
wrap.style.width = 'auto'; //wrap.style.width = 'auto';
if (msg === undefined) return content; if (msg === undefined) return content;
if (typeof msg === 'string') { if (typeof msg === 'string') {
@ -200,6 +221,7 @@ artDialog.fn = artDialog.prototype = {
$frame.css('display','none'); $frame.css('display','none');
$frame.load(function(){ $frame.load(function(){
$content.find('.aui_loading').fadeOut(600); $content.find('.aui_loading').fadeOut(600);
that.reset_title_length();
}); });
$frame.fadeIn(300); $frame.fadeIn(300);
} }
@ -264,13 +286,64 @@ artDialog.fn = artDialog.prototype = {
title.hide().html(''); title.hide().html('');
wrap.addClass(className); wrap.addClass(className);
} else { } else {
title.show().html(text || ''); //title.show().html("<span>"+text+"</span>" || '');
wrap.removeClass(className); wrap.removeClass(className);
title.show().html(text || '');
title.data('data-title',text);
var that = this;
setTimeout(function(){
that.reset_title_length();
},50);
}; };
return this; return this;
}, },
string_width:function(str,font_size){
var span = $("#__getwidth");
if (span.length==0) {
$("<span id='__getwidth'></span>").appendTo('body');
span = $("#__getwidth");
span.css({'visibility':'hidden','whiteSpace':'nowrap'});
}
span.html(str);
span.css({'font-size':font_size+'px'});
return span.width();
},
reset_title_length:function(){
if(!this.config.resize){
return;
}
var DOM = this.DOM,
title = DOM.title,
font_size = parseInt(title.css("font-size")),
title_str = title.data('data-title'),
default_width = 200, //其他占用
max_width = title.width();
var str_width = this.string_width(title_str,font_size);
if( str_width<max_width-default_width || str_width< 150){
title.html(title_str);
return;
}
//截取title头部iocn
var str_pre='';
if(title_str.substr(0,4)=="<img"){
var point = title_str.indexOf('>')+1;
str_pre = title_str.substr(0,point);
title_str = title_str.substr(point)
}
while(this.string_width(title_str,font_size)>max_width-default_width){
title_str= title_str.substr(1);
if(title_str.length<10){
break;
}
}
if($(title).text() == title_str){
return;
}
title.html(str_pre+"..."+title_str);
},
/** /**
* 位置(相对于可视区域) * 位置(相对于可视区域)
* @param {Number, String} * @param {Number, String}
@ -484,14 +557,31 @@ artDialog.fn = artDialog.prototype = {
//控制隐藏和显示 //控制隐藏和显示
display:function(type){ display:function(type){
var $wrap = this.DOM.wrap;
var that = this;
if(type == undefined) type = true;//默认显示 if(type == undefined) type = true;//默认显示
if (type){//显示 if (type){//显示
if (this.DOM.wrap.css('visibility') != 'hidden') return; that.reset_title_length();
this.DOM.wrap.css({visibility:'visible',left:'-=10000'});
this.zIndex(); this.zIndex();
if ($wrap.css('visibility') != 'hidden') return this;
$wrap
.css({visibility:'visible',left:$wrap.attr("data-left")})
.addClass('animated dialogDisplayShow')
.stop(true,true)
.animate({opacity:1},{duration:200,complete:function(){
$wrap.removeClass('animated').removeClass('dialogDisplayShow');
that.reset_title_length();
}});
}else{//隐藏 left+10000 }else{//隐藏 left+10000
if (this.DOM.wrap.css('visibility') == 'hidden') return; if ($wrap.css('visibility') == 'hidden') return this;
this.DOM.wrap.css({visibility:'hidden',left:'+=10000'}); $wrap
.attr('data-left',$wrap.css("left"))
.addClass('animated dialogDisplayHide')
.stop(true,true)
.animate({opacity:0.01},{duration:200,complete:function(){
$wrap.removeClass('animated').removeClass('dialogDisplayHide');
$wrap.css({visibility:'hidden',left:'=10000'});
}});
this.resetIndex(); this.resetIndex();
} }
return this; return this;
@ -502,7 +592,10 @@ artDialog.fn = artDialog.prototype = {
var dialog_index = 0; var dialog_index = 0;
var dialog_this = ''; var dialog_this = '';
for (var i in artDialog.list) { for (var i in artDialog.list) {
if (artDialog.list[i]['config'] == undefined) continue; if (typeof(artDialog.list[i]['config']) == "undefined"){
delete artDialog.list[i];
continue;
}
if (artDialog.list[i].DOM.wrap.css('visibility') == 'hidden') continue; if (artDialog.list[i].DOM.wrap.css('visibility') == 'hidden') continue;
var this_index =artDialog.list[i]['config']['zIndex']; var this_index =artDialog.list[i]['config']['zIndex'];
@ -559,13 +652,16 @@ artDialog.fn = artDialog.prototype = {
follow = that.config.follow; follow = that.config.follow;
that.time(); that.time();
if (typeof fn === 'function' && fn.call(that, window) === false) {
return that;
};
that.unlock(); that.unlock();
if (that.config && that.config['title'] !== false){
wrap.animate({opacity:0,top:'-='+wrap.height() * 0.03}, dialogList.close(that.config.id);
{easing:'swing',duration:250,complete:function(){ }
that.config && (delete list[that.config['id']]);
wrap.addClass('animated dialogClose').animate(
{bottom:0},{duration:250,complete:function(){
if (typeof fn === 'function' && fn.call(that, window) === false) {//iframe关闭调用
//return that;//执行动画
}
// 置空内容 // 置空内容
that._elemBack && that._elemBack(); that._elemBack && that._elemBack();
wrap[0].className = wrap[0].style.cssText = ''; wrap[0].className = wrap[0].style.cssText = '';
@ -576,20 +672,13 @@ artDialog.fn = artDialog.prototype = {
if (artDialog.focus === that) artDialog.focus = null; if (artDialog.focus === that) artDialog.focus = null;
if (follow) follow.removeAttribute(_expando + 'follow'); if (follow) follow.removeAttribute(_expando + 'follow');
//if (that.config.resize)
if (that.config && that.config['title'] !== false){
dialogList.close(that.config.id);
}
that.config && (delete list[that.config['id']]);
that._removeEvent(); that._removeEvent();
that.hide(true)._setAbsolute(); that.hide(true)._setAbsolute();
// 清空除this.DOM之外临时对象恢复到初始状态以便使用单例模式 // 清空除this.DOM之外临时对象恢复到初始状态以便使用单例模式
for (var i in that) { for (var i in that) {
if (that.hasOwnProperty(i) && i !== 'DOM') delete that[i]; if (that.hasOwnProperty(i) && i !== 'DOM') delete that[i];
}; };
// 移除HTMLElement或重用 wrap.remove();
_box ? wrap.remove() : _box = that;
that.resetIndex(); that.resetIndex();
return that; return that;
}}); }});
@ -611,7 +700,6 @@ artDialog.fn = artDialog.prototype = {
that._click(cancel); that._click(cancel);
}, 1000 * second); }, 1000 * second);
}; };
return that; return that;
}, },
@ -634,8 +722,12 @@ artDialog.fn = artDialog.prototype = {
top = artDialog.focus, top = artDialog.focus,
index = artDialog.defaults.zIndex ++; index = artDialog.defaults.zIndex ++;
//if (that.config.resize) //if (that.config.resize) TODO
if (that.config["title"] !== false){ if($('.'+that.config.id).length==0){//找不到了
this.close();
return;
}
if (that.config["title"] !== false ){
dialogList.focus(that.config.id); dialogList.focus(that.config.id);
} }
@ -703,7 +795,8 @@ artDialog.fn = artDialog.prototype = {
var style = lockMaskWrap[0].style; var style = lockMaskWrap[0].style;
var un = function () { var un = function () {
style.cssText = 'display:none'; style.cssText = 'display:none';
_box && lockMaskWrap.remove(); //_box && lockMaskWrap.remove();
lockMaskWrap.remove();
}; };
lockMask.stop().unbind(); lockMask.stop().unbind();
@ -722,6 +815,10 @@ artDialog.fn = artDialog.prototype = {
_getDOM: function () { _getDOM: function () {
var wrap = document.createElement('div'), var wrap = document.createElement('div'),
body = document.body; body = document.body;
if(this.config.parentAt && $(this.config.parentAt).length!=0){
body = $(this.config.parentAt).get(0);
}
wrap.style.cssText = 'position:absolute;left:0;top:0'; wrap.style.cssText = 'position:absolute;left:0;top:0';
wrap.innerHTML = artDialog._templates; wrap.innerHTML = artDialog._templates;
body.insertBefore(wrap, body.firstChild); body.insertBefore(wrap, body.firstChild);
@ -735,7 +832,6 @@ artDialog.fn = artDialog.prototype = {
name = els[i].className.split('aui_')[1]; name = els[i].className.split('aui_')[1];
if (name) DOM[name] = $(els[i]); if (name) DOM[name] = $(els[i]);
}; };
return DOM; return DOM;
}, },
@ -816,37 +912,58 @@ artDialog.fn = artDialog.prototype = {
that.close() : that; that.close() : that;
}, },
_clickMax:function(){ _clickMax:function(){
var _dialogMaxFlag = this.config['dialogMaxFlag']; var that = this,
if (this.DOM.wrap.hasClass(_dialogMaxFlag)) {//还原 $wrap = this.DOM.wrap,
this.DOM.wrap.removeClass(_dialogMaxFlag); $main = $(this.DOM.main[0]);
this.DOM.wrap.css({ if(!this.has_frame()){//缩放动画
'left':this.DOM.wrap.data('initSize').left + 'px', $wrap.addClass('dialogChangeMax');
'top':this.DOM.wrap.data('initSize').top + 'px', setTimeout(function(){
'width':this.DOM.wrap.data('initSize').width + 'px' $('.dialogChangeMax').removeClass('dialogChangeMax');
},300);
}
if ($wrap.hasClass('dialogMax')) {//还原
$wrap.removeClass('dialogMax');
$wrap.css({
'left':$wrap.data('initSize').left + 'px',
'top':$wrap.data('initSize').top + 'px',
'width':$wrap.data('initSize').width,
'height':$wrap.data('initSize').height
});
$main.css({
'height':$wrap.data('initSize').height
}); });
this.DOM.main[0].style.height = this.DOM.wrap.data('initSize').height;
}else{//最大化 }else{//最大化
this.DOM.wrap.addClass(_dialogMaxFlag); var dialogDom = $wrap.context;
var dialogDom = this.DOM.wrap.context;
var size = { var size = {
left: dialogDom.offsetLeft, left: dialogDom.offsetLeft,
top: dialogDom.offsetTop, top: dialogDom.offsetTop,
width: dialogDom.offsetWidth, width: $wrap.css("width"),
height:this.DOM.main[0].style.height height:$wrap.css("height")
}; };
this.DOM.wrap.data('initSize',size); $wrap.addClass('dialogMax');
this.DOM.wrap.css({ $wrap.data('initSize',size);
$wrap.css({
'left':0, 'left':0,
'top':0, 'top':0,
'width':_$window.width() 'width':_$window.width(),
'height':_$window.height()
});
var header_height = $wrap.find('.aui_n').height();
if(header_height == 0){
header_height = $wrap.find('.aui_header').height()
}
$main.css({
'height':(_$window.height()-header_height-5) + 'px'
}); });
this.DOM.main[0].style.height = (_$window.height()-_titleBarHeight) + 'px';
} }
that.reset_title_length();
}, },
_clickMin:function(){ _clickMin:function(){
if (TaskTap!=undefined){ try{
this.display(false); if (TaskTap!=undefined){
} this.display(false);
}
} catch(e) {};
}, },
// 重置位置与尺寸 // 重置位置与尺寸
_reset: function (test) { _reset: function (test) {
@ -996,9 +1113,9 @@ _path = window['_artDialog_path'] || (function (script, i, me) {
// }); // });
// 使用uglifyjs压缩能够预先处理"+"号合并字符串 // 使用uglifyjs压缩能够预先处理"+"号合并字符串
// uglifyjs: http://marijnhaverbeke.nl/uglifyjs // uglifyjs: http://marijnhaverbeke.nl/uglifyjs fadeIn dialogShow zoomInUp
artDialog._templates = artDialog._templates =
'<div class="aui_outer pop_fadein"><div class="aui_mask"></div>' '<div class="aui_outer animated dialogShow"><div class="aui_mask"></div>'
+ '<table class="aui_border">' + '<table class="aui_border">'
+ '<tbody>' + '<tbody>'
+ '<tr>' + '<tr>'
@ -1066,6 +1183,7 @@ artDialog._templates =
*/ */
artDialog.defaults = { artDialog.defaults = {
content: '', // 消息内容 content: '', // 消息内容
parentAt: '', // 所在父级元素
title: '\u6d88\u606f', // 标题. 默认'消息' title: '\u6d88\u606f', // 标题. 默认'消息'
button: null, // 自定义按钮 button: null, // 自定义按钮
ok: null, // 确定按钮回调函数 ok: null, // 确定按钮回调函数
@ -1095,10 +1213,8 @@ artDialog.defaults = {
top: '38.2%', // Y轴坐标 top: '38.2%', // Y轴坐标
zIndex: 300, // 对话框叠加高度值(重要:此值不能超过浏览器最大限制) zIndex: 300, // 对话框叠加高度值(重要:此值不能超过浏览器最大限制)
ico:'./static/images/file_16/file.png',//默认标题小图标 ico:'./static/images/file_icon/icon_others/info.png',//默认标题小图标
resize: false, // 是否允许用户调节尺寸 resize: false, // 是否允许用户调节尺寸
dialogMaxFlag:'dialogMax', // 最大化状态标记class
dialogMinFlag:'dialogMin', // 最小化状态标记class
drag: true // 是否允许用户拖动位置 drag: true // 是否允许用户拖动位置
}; };
@ -1217,8 +1333,7 @@ _use = function (event) {
// 对话框拖动,8个方向调整大小 // 对话框拖动,8个方向调整大小
_dragEvent.onmove = function (x, y) { _dragEvent.onmove = function (x, y) {
if (wrap.hasClass(api.config['dialogMaxFlag'])) return;//最大化则不可拖动 if (wrap.hasClass('dialogMax')) return;//最大化则不可拖动
x = (x >= screenWidth ? screenWidth : x); x = (x >= screenWidth ? screenWidth : x);
y = (y >= screenHeight ? screenHeight : y); y = (y >= screenHeight ? screenHeight : y);
x = (x <= 0 ? 0 : x); x = (x <= 0 ? 0 : x);
@ -1283,6 +1398,7 @@ _use = function (event) {
style.width = Math.max(0, width) + 'px'; style.width = Math.max(0, width) + 'px';
style.height = Math.max(0, height) + 'px'; style.height = Math.max(0, height) + 'px';
api.reset_title_length();
} else { } else {
var style = wrap[0].style; var style = wrap[0].style;
style.left = x + startLeft + 'px'; style.left = x + startLeft + 'px';
@ -1311,6 +1427,11 @@ _use = function (event) {
!api.closed && api._autoPositionType(); !api.closed && api._autoPositionType();
wrap.removeClass('aui_state_drag'); wrap.removeClass('aui_state_drag');
//iframe的话焦点移到iframe中
if($(DOM.wrap).find('iframe').length>=1){
$(DOM.wrap).find('iframe').focus();
}
}; };
isResize = $(event.target).hasClass('resize-handle'); isResize = $(event.target).hasClass('resize-handle');
@ -1333,7 +1454,7 @@ _$document.bind('mousedown', function (event) {
|| config.resize !== false && $(target).hasClass('resize-handle')) { || config.resize !== false && $(target).hasClass('resize-handle')) {
_dragEvent = _dragEvent || new artDialog.dragEvent(); _dragEvent = _dragEvent || new artDialog.dragEvent();
_use(event); _use(event);
return false;// 防止firefox与chrome滚屏 //return false;// 防止firefox与chrome滚屏 changed by warlee
}; };
}); });
})(this.art || this.jQuery && (this.art = jQuery)); })(this.art || this.jQuery && (this.art = jQuery));
@ -1372,27 +1493,33 @@ $(function () {
/** 获取 artDialog 可跨级调用的最高层的 window 对象 */ /** 获取 artDialog 可跨级调用的最高层的 window 对象 */
var _top = artDialog.top = function () { var _top = artDialog.top = function () {
var top = window, try {
test = function (name) { return share.frameTop();
try { } catch (e) {
var doc = window[name].document; // 跨域|无权限 return window;
doc.getElementsByTagName; // chrome 本地安全限制
} catch (e) {
return false;
};
return window[name].artDialog
// 框架集无法显示第三方元素
&& doc.getElementsByTagName('frameset').length === 0;
}; };
if (test('top')) { //-----unused
top = window.top; // var top = window,
} else if (test('parent')) { // test = function (name) {
top = window.parent; // try {
}; // var doc = window[name].document; // 跨域|无权限
// doc.getElementsByTagName; // chrome 本地安全限制
// } catch (e) {
// return false;
// };
return top; // return window[name].artDialog
// // 框架集无法显示第三方元素
// && doc.getElementsByTagName('frameset').length === 0;
// };
// if (test('top')) {
// top = window.top;
// } else if (test('parent')) {
// top = window.parent;
// };
// return top;
}(); }();
artDialog.parent = _top; // 兼容v4.1之前版本,未来版本将删除此 artDialog.parent = _top; // 兼容v4.1之前版本,未来版本将删除此
@ -1456,7 +1583,6 @@ _top !== window && $(window).bind('unload', function () {
config = list[i].config; config = list[i].config;
if (config) config.duration = 0; // 取消动画 if (config) config.duration = 0; // 取消动画
list[i].close(); list[i].close();
//delete list[i];
}; };
}; };
}); });
@ -1483,7 +1609,6 @@ artDialog.open = function (url, options, cache) {
url = ret + ((ret === url) ? (/\?/.test(url) ? "&" : "?") + "_=" + ts : ""); url = ret + ((ret === url) ? (/\?/.test(url) ? "&" : "?") + "_=" + ts : "");
}; };
var load = function () { var load = function () {
var iWidth, iHeight,aConfig = api.config; var iWidth, iHeight,aConfig = api.config;
DOM.content.find('.aui_loading').remove(); DOM.content.find('.aui_loading').remove();
@ -1541,29 +1666,27 @@ artDialog.open = function (url, options, cache) {
iframe.style.cssText = initCss; iframe.style.cssText = initCss;
iframe.setAttribute('frameborder', 0, 0); iframe.setAttribute('frameborder', 0, 0);
iframe.setAttribute('allowTransparency', true); iframe.setAttribute('allowTransparency', true);
if(iframe){
//$main.css('background','none');
}
$iframe = $(iframe); $iframe = $(iframe);
api.content().appendChild(iframe); api.content().appendChild(iframe);//TODO
iwin = iframe.contentWindow; iwin = iframe.contentWindow;
try { try {
iwin.name = iframe.name; iwin.name = iframe.name;
artDialog.data(iframe.name + _open, api); artDialog.data(iframe.name + _open, api);
artDialog.data(iframe.name + _opener, window); artDialog.data(iframe.name + _opener, window);
} catch (e) {}; } catch (e) {};
$iframe.one('load', load); $iframe.one('load', load);
//$frame.css('display','none'); //$frame.css('display','none');
}, },
close: function () { close: function () {
$iframe.css('display', 'none').unbind('load', load); $iframe.css('display', 'none').unbind('load', load);
if (options.close && options.close.call(this, iframe.contentWindow, top) === false) { if (options.close && options.close.call(this, iframe.contentWindow, top) === false) {
return false; return false;
}; };
$content.removeClass('aui_state_full'); $content.removeClass('aui_state_full');
// 重要重置iframe地址否则下次出现的对话框在IE6、7无法聚焦input
// 重要需要重置iframe地址否则下次出现的对话框在IE6、7无法聚焦input
// IE删除iframe后iframe仍然会留在内存中出现上述问题置换src是最容易解决的方法 // IE删除iframe后iframe仍然会留在内存中出现上述问题置换src是最容易解决的方法
$iframe[0].src = 'about:blank'; $iframe[0].src = 'about:blank';
$iframe.remove(); $iframe.remove();
@ -1644,7 +1767,6 @@ artDialog.load = function(url, options, cache){
}; };
delete options.content; delete options.content;
for (var i in opt) { for (var i in opt) {
if (config[i] === undefined) config[i] = opt[i]; if (config[i] === undefined) config[i] = opt[i];
}; };
@ -1785,7 +1907,6 @@ $(function () {
dragEvent._start.apply(this, arguments); dragEvent._start.apply(this, arguments);
style.display = 'block'; style.display = 'block';
style.zIndex = artDialog.defaults.zIndex + 3; style.zIndex = artDialog.defaults.zIndex + 3;
if (positionType === 'absolute') { if (positionType === 'absolute') {
style.width = $window.width() + 'px'; style.width = $window.width() + 'px';
style.height = $window.height() + 'px'; style.height = $window.height() + 'px';

File diff suppressed because one or more lines are too long

View File

@ -30,7 +30,7 @@
<div><span><?php echo $L['username'];?></span><input id="username" name='name' type="text" placeholder="<?php echo $L['username'];?>" required/> </div> <div><span><?php echo $L['username'];?></span><input id="username" name='name' type="text" placeholder="<?php echo $L['username'];?>" required/> </div>
<div><span><?php echo $L['password'];?></span><input id="password" name='password' type="password" placeholder="<?php echo $L['password'];?>" required /></div> <div><span><?php echo $L['password'];?></span><input id="password" name='password' type="password" placeholder="<?php echo $L['password'];?>" required /></div>
<?php if(isset($_SESSION['code_error_time']) && intval($_SESSION['code_error_time']) >=3){?> <?php if(need_check_code() && isset($_SESSION['code_error_time']) && intval($_SESSION['code_error_time']) >=3){?>
<div class='check_code'> <div class='check_code'>
<span><?php echo $L['login_code'];?></span> <span><?php echo $L['login_code'];?></span>
<input name='check_code' class="check_code" type="text" placeholder="<?php echo $L['login_code'];?>" required /> <img src='./index.php?user/checkCode' onclick="this.src='./index.php?user/checkCode'" /> <input name='check_code' class="check_code" type="text" placeholder="<?php echo $L['login_code'];?>" required /> <img src='./index.php?user/checkCode' onclick="this.src='./index.php?user/checkCode'" />

View File

@ -22,7 +22,7 @@
<div><span><?php echo $L['username'];?></span><input id="username" name='name' type="text" placeholder="<?php echo $L['username'];?>" required/> </div> <div><span><?php echo $L['username'];?></span><input id="username" name='name' type="text" placeholder="<?php echo $L['username'];?>" required/> </div>
<div><span><?php echo $L['password'];?></span><input id="password" name='password' type="password" placeholder="<?php echo $L['password'];?>" required /></div> <div><span><?php echo $L['password'];?></span><input id="password" name='password' type="password" placeholder="<?php echo $L['password'];?>" required /></div>
<?php if(isset($_SESSION['code_error_time']) && intval($_SESSION['code_error_time']) >=3){?> <?php if(need_check_code() && isset($_SESSION['code_error_time']) && intval($_SESSION['code_error_time']) >=3){?>
<div class='check_code'> <div class='check_code'>
<span><?php echo $L['login_code'];?></span> <span><?php echo $L['login_code'];?></span>
<input name='check_code' class="check_code" type="text" placeholder="<?php echo $L['login_code'];?>" required /> <img src='./index.php?user/checkCode' onclick="this.src='./index.php?user/checkCode'" /> <input name='check_code' class="check_code" type="text" placeholder="<?php echo $L['login_code'];?>" required /> <img src='./index.php?user/checkCode' onclick="this.src='./index.php?user/checkCode'" />