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,4 +1,19 @@
###ver3.2 `2015/10/25` ### ver3.22 `2016/8/10`
-----
#### update:
- 去掉异常请求判断问题(有误判)
- 删除默认存入到回收站;相关优化
- 没有GD库含有图片则默认显示
- 远程下载优化
- 本地文件输出加入缓存机制;支持断点续传;多线程下载
#### fix bug
- 修复验证码出错问题
- 优化对话框打开问题
### ver3.21 `2015/10/25`
----- -----
#### update: #### update:
- 编辑器函数列表匹配优化;底部高度优化 - 编辑器函数列表匹配优化;底部高度优化

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,8 +562,10 @@ class explorer extends Controller{
} }
} }
public function image(){ 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); file_put_out($this->path);
return;
} }
load_class('imageThumb'); load_class('imageThumb');
$image= $this->path; $image= $this->path;
@ -585,7 +589,7 @@ 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,51 +220,12 @@ 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秒内最大请求次数。超过则自动退出
$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);
}else{ }else{
$info = $_SESSION[$session_key]; return true;
//----短期内并发控制
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(){

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)){
@unlink($file);
return true;
}
return false; return false;
}else if(file_exists($path)){
$fp = @fopen($path,'a+');
if($fp){
fclose($fp);
return true;
}
fclose($fp);
return false;
}
return false;//不存在
} }
/** /**
@ -590,18 +596,14 @@ function ext_type($ext){
*/ */
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("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("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); 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,7 +722,11 @@ 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.id).length==0){//找不到了
this.close();
return;
}
if (that.config["title"] !== false ){ 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()
}); });
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(){ _clickMin:function(){
try{
if (TaskTap!=undefined){ if (TaskTap!=undefined){
this.display(false); 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,
test = function (name) {
try { try {
var doc = window[name].document; // 跨域|无权限 return share.frameTop();
doc.getElementsByTagName; // chrome 本地安全限制
} catch (e) { } catch (e) {
return false; return window;
}; };
return window[name].artDialog //-----unused
// 框架集无法显示第三方元素 // var top = window,
&& doc.getElementsByTagName('frameset').length === 0; // test = function (name) {
}; // try {
// var doc = window[name].document; // 跨域|无权限
// doc.getElementsByTagName; // chrome 本地安全限制
// } catch (e) {
// return false;
// };
if (test('top')) { // return window[name].artDialog
top = window.top; // // 框架集无法显示第三方元素
} else if (test('parent')) { // && doc.getElementsByTagName('frameset').length === 0;
top = window.parent; // };
};
return top; // 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'" />