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

View File

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

View File

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

View File

@ -250,12 +250,14 @@ class explorer extends Controller{
}
public function pathDelete(){
$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;
foreach ($list as $val) {
$path_this = _DIR($val['path']);
$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)) {
$success++;
}else{
@ -560,8 +562,10 @@ class explorer extends Controller{
}
}
public function image(){
if (filesize($this->path) <= 1024*10) {//小于10k 不再生成缩略图
if (filesize($this->path) <= 1024*20 ||
!function_exists('imagecolorallocate') ) {//小于20k或者不支持gd库 不再生成缩略图
file_put_out($this->path);
return;
}
load_class('imageThumb');
$image= $this->path;
@ -585,7 +589,7 @@ class explorer extends Controller{
}
}
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);

View File

@ -179,7 +179,7 @@ class user extends Controller
$password = rawurldecode($this->in['password']);
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 &&
$_SESSION['check_code'] !== strtolower($this->in['check_code'])){
// 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(!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/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>';
if(!path_writable(BASIC_PATH.'data/thumb')) $error.= '<li>'.$base_path.'data/thumb '.$L['php_env_error_path'].'</li>';
$parent = get_path_father(BASIC_PATH);
$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')||
!function_exists('imagecreatefromgif')||
!function_exists('imagecreatefrompng')||
@ -209,51 +220,12 @@ function init_setting(){
include($setting_user);
}
}
//防止恶意请求
function check_post_many(){
$check_time = 4;
$maxt_num = 40;//5秒内最大请求次数。超过则自动退出
$total_time = 60;//10nmin
$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);
//登陆是否需要验证码
function need_check_code(){
if(!function_exists('imagecolorallocate')){
return false;
}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;
return true;
}
}
function is_wap(){

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

View File

@ -127,21 +127,13 @@ function get_path_ext($path){
return $ext;
}
//自动获取不重复文件(夹)名
//如果传入$file_add 则检测存在则自定重命名 a.txt 为a{$file_add}.txt
function get_filename_auto($path,$file_add = "",$same_file_type=''){
if (is_dir($path)) {//文件夹则忽略
//$same_file_type rename,replace,skip,folder_rename
function get_filename_auto($path,$file_add = "",$same_file_type='replace'){
if (is_dir($path) && $same_file_type!='folder_rename') {//文件夹则忽略
return $path;
}
//重名处理方式;replace,skip,filename_auto
if ($same_file_type == '') {
$same_file_type = 'replace';
}
//重名处理
if (file_exists($path)) {
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) {
$file = $path.'/test'.time().'.txt';
$dir = $path.'/test'.time();
if(@is_writable($path) && @touch($file) && @unlink($file)) return true;
if(@mkdir($dir,0777) && @rmdir($dir)) return true;
function path_writable($path){
if (is_dir($path)) {
$file = $path.'/writeable_test_'.time().'.txt';
@touch($file);
if(file_exists($file)){
@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时则为输出文件
*/
function file_put_out($file,$download=false){
if (!is_file($file)) show_json('not a file!');
set_time_limit(0);
//ob_clean();//清除之前所有输出缓冲
if (!is_file($file)) show_json('not a file!');
if (!file_exists($file)) show_json('file not exists',false);
if (isset($_SERVER['HTTP_RANGE']) && ($_SERVER['HTTP_RANGE'] != "") &&
preg_match("/^bytes=([0-9]+)-$/i", $_SERVER['HTTP_RANGE'], $match) && ($match[1] < $fsize)) {
$start = $match[1];
}else{
$start = 0;
}
$size = get_filesize($file);
if (!is_readable($file)) show_json('file not readable',false);
set_time_limit(0);
ob_clean();//清除之前所有输出缓冲 TODO
$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中下载时中文乱码问题
if( preg_match('/MSIE/',$_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-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("Content-Type: ".$mime);
if ($start > 0){
header("HTTP/1.1 206 Partial Content");
header("Content-Ranges: bytes".$start ."-".($size - 1)."/" .$size);
header("Content-Length: ".($size - $start));
}else{
header("Accept-Ranges: bytes");
header("Content-Length: $size");
$size = get_filesize($file);
$length = $size; // Content length
$start = 0; // Start byte
$end = $size - 1; // End byte
if (isset($_SERVER['HTTP_RANGE']) || isset($_GET['start'])) {//分段请求;视频拖拽
$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);
while (!feof($fp)) {
print (fread($fp, 1024 * 8)); //输出文件
set_time_limit(0);
print(fread($fp,1024*4)); //输出文件
flush();
ob_flush();
}
@ -642,12 +696,10 @@ function file_put_out($file,$download=false){
*/
function file_download_this($from, $file_name){
set_time_limit(0);
$fp = @fopen ($from, "rb");
if ($fp){
$new_fp = @fopen ($file_name, "wb");
fclose($new_fp);
$download_fp = @fopen ($file_name, "wb");
if ($fp = @fopen ($from, "rb")){
if(!$download_fp = @fopen($file_name, "wb")){
return false;
}
while(!feof($fp)){
if(!file_exists($file_name)){//删除目标文件;则终止下载
fclose($download_fp);
@ -657,6 +709,7 @@ function file_download_this($from, $file_name){
}
//下载完成,重命名临时文件到目标文件
fclose($download_fp);
fclose($fp);
return true;
}else{
return false;

View File

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

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['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'>
<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'" />