version 4.25 release.
parent
c843158947
commit
7c53d60188
546
ChangeLog.md
546
ChangeLog.md
File diff suppressed because it is too large
Load Diff
11
README.md
11
README.md
|
@ -15,6 +15,11 @@
|
|||
- [中文文档](http://kodcloud.com/#lang=zh_CN)
|
||||
- [Donate](https://www.paypal.me/kalcaddle)
|
||||
|
||||
### Source code
|
||||
----
|
||||
- [github](https://github.com/kalcaddle/KodExplorer)
|
||||
- [gitee](https://gitee.com/kalcaddle/KODExplorer)
|
||||
|
||||
# Features
|
||||
- Use experience like operating system, Rich context menu and toolbar, drag and drop, shortcut keys......
|
||||
- Available in more than 40 languages.
|
||||
|
@ -169,8 +174,10 @@ kod is made possible by the following open source projects.
|
|||
* ...
|
||||
|
||||
|
||||
|
||||
# License
|
||||
kodcloud is issued under GPLv3. license.[License](http://kodcloud.com/tools/licenses/license.txt)
|
||||
Contact: kalcaddle#qq.com
|
||||
Contact: warlee#kodcloud.com
|
||||
Copyright (C) 2013 kodcloud.com
|
||||
|
||||
# 版权声明
|
||||
kodexplorer 使用 GPL v3 协议.
|
||||
|
|
|
@ -8,8 +8,8 @@ class SSO{
|
|||
$sessionID = $_COOKIE[$sessionName]?$_COOKIE[$sessionName]:md5(uniqid());
|
||||
$basicPath = dirname(dirname(dirname(__FILE__))).'/';
|
||||
$sessionPath = $basicPath.'data/session/';
|
||||
if(file_exists($basicPath.'define.php')){
|
||||
include($basicPath.'define.php');
|
||||
if(file_exists($basicPath.'config/define.php')){
|
||||
include($basicPath.'config/define.php');
|
||||
$sessionPath = DATA_PATH.'session/';
|
||||
}
|
||||
if(!file_exists($sessionPath)){
|
||||
|
@ -78,12 +78,16 @@ class SSO{
|
|||
if(strstr($appUrl,'/plugins/')){
|
||||
$kodHost = substr($appUrl,0,strpos($appUrl,'/plugins/'));
|
||||
}else{
|
||||
$kodHost = $_SERVER['HTTP_REFERER'];
|
||||
if(strstr($kodHost,'/index.php?')){
|
||||
$kodHost = substr($kodHost,0,strpos($kodHost,'/index.php?'));
|
||||
}else if(strstr($kodHost,'/?')){
|
||||
$kodHost = substr($kodHost,0,strpos($kodHost,'/?'));
|
||||
}
|
||||
if(isset($_COOKIE['APP_HOST'])){
|
||||
$kodHost = $_COOKIE['APP_HOST'];
|
||||
}else{
|
||||
$kodHost = $_SERVER['HTTP_REFERER'];
|
||||
if(strstr($kodHost,'/index.php?')){
|
||||
$kodHost = substr($kodHost,0,strpos($kodHost,'/index.php?'));
|
||||
}else if(strstr($kodHost,'/?')){
|
||||
$kodHost = substr($kodHost,0,strpos($kodHost,'/?'));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$authUrl = rtrim($kodHost,'/').'/index.php?user/sso&app='.$appKey.'&'.$auth;
|
||||
|
@ -96,6 +100,4 @@ class SSO{
|
|||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -46,8 +46,10 @@ class editor extends Controller{
|
|||
public function fileGet(){
|
||||
if(isset($this->in['fileUrl'])){
|
||||
$pass = $this->config['settingSystem']['systemPassword'];
|
||||
$fileUrl = _DIR_CLEAR($this->in['fileUrl']);
|
||||
$fileUrl = str_replace(':/','://',$fileUrl);
|
||||
$fileUrl = $this->in['fileUrl'];
|
||||
if(!request_url_safe($fileUrl)){
|
||||
show_json(LNG('url error!'),false);
|
||||
}
|
||||
$urlInfo = parse_url_query($fileUrl);
|
||||
if( isset($urlInfo['fid']) &&
|
||||
strlen(Mcrypt::decode($urlInfo['fid'],$pass)) != 0
|
||||
|
@ -58,9 +60,6 @@ class editor extends Controller{
|
|||
$displayName = rawurldecode($urlInfo['downFilename']);
|
||||
}
|
||||
}else{
|
||||
if(is_file($filepath) || substr($filepath,0,4) != 'http'){
|
||||
show_json(LNG('not url'),false);
|
||||
}
|
||||
$displayName = rawurldecode($urlInfo['name']);
|
||||
$filepath = $fileUrl.'&accessToken='.access_token_get();
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ class explorer extends Controller{
|
|||
if (count($infoList)==1 && $infoList[0]['type']!='folder') {//单个文件
|
||||
$file = $infoList[0]['path'];
|
||||
if( $GLOBALS['isRoot'] ||
|
||||
$GLOBALS['auth']["explorer.fileDownloa"]==1 ||
|
||||
$GLOBALS['auth']["explorer.fileDownload"]==1 ||
|
||||
isset($this->in['viewPage'])){
|
||||
$data['downloadPath'] = _make_file_proxy($file);
|
||||
}
|
||||
|
@ -156,16 +156,28 @@ class explorer extends Controller{
|
|||
}
|
||||
$new = rtrim($this->path,'/');
|
||||
$new = get_filename_auto($new,'',$repeatType);//已存在处理 创建副本
|
||||
Hook::trigger("explorer.mkdirBefore",$new);
|
||||
if(mk_dir($new,DEFAULT_PERRMISSIONS)){
|
||||
chmod_path($new,DEFAULT_PERRMISSIONS);
|
||||
Hook::trigger("explorer.mkdirAfter",$new);
|
||||
if($this->_mkdir($new)){
|
||||
show_json(LNG('create_success'),true,_DIR_OUT(iconv_app($new)) );
|
||||
}else{
|
||||
show_json(LNG('create_error'),false);
|
||||
}
|
||||
}
|
||||
|
||||
private function _mkdir($path){
|
||||
if(!$GLOBALS['isRoot']){
|
||||
//IIS6 解析漏洞 /a.php/2.jpg 得到解析
|
||||
$temp = str_replace('\\','/',$path);
|
||||
if(substr(rtrim($temp,'/'),-4) == '.php'){
|
||||
show_json(LNG('no_permission_ext'),false);
|
||||
}
|
||||
}
|
||||
Hook::trigger("explorer.mkdirBefore",$path);
|
||||
if(mk_dir($path,DEFAULT_PERRMISSIONS)){
|
||||
chmod_path($path,DEFAULT_PERRMISSIONS);
|
||||
Hook::trigger("explorer.mkdirAfter",$path);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public function pathRname(){
|
||||
$rnameTo=_DIR($this->in['rnameTo']);
|
||||
if (file_exists_case($rnameTo)) {
|
||||
|
@ -964,9 +976,8 @@ class explorer extends Controller{
|
|||
$unzipToAdd = $name;
|
||||
}
|
||||
|
||||
//所在目录不可写
|
||||
mk_dir($unzipTo);
|
||||
if (!path_writeable($unzipTo)){
|
||||
$this->_mkdir($unzipTo);
|
||||
if (!path_writeable($unzipTo)){//所在目录不可写
|
||||
show_json(LNG('no_permission_write'),false);
|
||||
}
|
||||
$unzipTo = $unzipTo.$unzipToAdd;
|
||||
|
@ -1007,7 +1018,15 @@ class explorer extends Controller{
|
|||
}
|
||||
//缩略图
|
||||
public function image(){
|
||||
if (filesize($this->path) <= 1024*50 ||
|
||||
$thumbWidth = 250;
|
||||
if(isset($this->in['thumbWidth'])){
|
||||
$thumbWidth = intval($this->in['thumbWidth']);//自定义预览大图
|
||||
}
|
||||
if(substr($this->path,0,4) == 'http'){
|
||||
header('Location: '.$this->in['path']);
|
||||
exit;
|
||||
}
|
||||
if (@filesize($this->path) <= 1024*50 ||
|
||||
!function_exists('imagecolorallocate') ) {//小于50k或者不支持gd库 不再生成缩略图
|
||||
file_put_out($this->path,false);
|
||||
return;
|
||||
|
@ -1016,9 +1035,9 @@ class explorer extends Controller{
|
|||
mk_dir(DATA_THUMB);
|
||||
}
|
||||
$image = $this->path;
|
||||
$imageMd5 = @md5_file($image);//文件md5
|
||||
$imageMd5 = @md5_file($image).'_'.$thumbWidth;//文件md5
|
||||
if (strlen($imageMd5)<5) {
|
||||
$imageMd5 = md5($image);
|
||||
$imageMd5 = md5($image).'_'.$thumbWidth;
|
||||
}
|
||||
$imageThumb = DATA_THUMB.$imageMd5.'.png';
|
||||
if (!file_exists($imageThumb)){//如果拼装成的url不存在则没有生成过
|
||||
|
@ -1026,7 +1045,7 @@ class explorer extends Controller{
|
|||
$imageThumb=$this->path;
|
||||
}else {
|
||||
$cm = new ImageThumb($image,'file');
|
||||
$cm->prorate($imageThumb,250,250);//生成等比例缩略图
|
||||
$cm->prorate($imageThumb,$thumbWidth,$thumbWidth);//生成等比例缩略图
|
||||
}
|
||||
}
|
||||
if (!file_exists($imageThumb) ||
|
||||
|
@ -1063,7 +1082,7 @@ class explorer extends Controller{
|
|||
}
|
||||
//下载
|
||||
$savePath = _DIR(rawurldecode($this->in['savePath']));
|
||||
mk_dir($savePath);
|
||||
$this->_mkdir($savePath);
|
||||
if (!$savePath || !path_writeable($savePath)){
|
||||
show_json(LNG('no_permission_write'),false);
|
||||
}
|
||||
|
@ -1078,7 +1097,7 @@ class explorer extends Controller{
|
|||
$filename = $header['name'];
|
||||
}
|
||||
|
||||
$saveFile = $savePath.$filename;
|
||||
$saveFile = $savePath._DIR_CLEAR($filename);
|
||||
if (!checkExt($saveFile)){//不允许的扩展名
|
||||
$saveFile = $savePath.date('h:i:s').'.dat';
|
||||
}
|
||||
|
@ -1136,7 +1155,7 @@ class explorer extends Controller{
|
|||
$fullPath = _DIR_CLEAR(rawurldecode($this->in['fullPath']));
|
||||
$fullPath = get_path_father($fullPath);
|
||||
$fullPath = iconv_system($fullPath);
|
||||
if (mk_dir($savePath.$fullPath)) {
|
||||
if ($this->_mkdir($savePath.$fullPath)) {
|
||||
$savePath = $savePath.$fullPath;
|
||||
}
|
||||
}
|
||||
|
@ -1162,10 +1181,12 @@ class explorer extends Controller{
|
|||
$value['exists'] = intval(file_exists($thePath));
|
||||
$value['metaInfo'] = 'path-self-share';
|
||||
$value['menuType'] = "menu-share-path";
|
||||
$value['aa'] = $thePath;
|
||||
if(is_file($thePath)){
|
||||
$value['size'] = get_filesize($thePath);;
|
||||
}
|
||||
|
||||
//分享列表oexe
|
||||
if(get_path_ext($value['name']) == 'oexe'){
|
||||
if(get_path_ext($value['name']) == 'oexe' && is_file($thePath) ){
|
||||
$json = json_decode(@file_get_contents($thePath),true);
|
||||
if(is_array($json)) $value = array_merge($value,$json);
|
||||
}
|
||||
|
@ -1225,7 +1246,7 @@ class explorer extends Controller{
|
|||
}
|
||||
|
||||
//分享列表oexe
|
||||
if(get_path_ext($val['name']) == 'oexe'){
|
||||
if(get_path_ext($val['name']) == 'oexe' && is_file($thePath)){
|
||||
$json = json_decode(@file_get_contents($thePath),true);
|
||||
if(is_array($json)) $val = array_merge($val,$json);
|
||||
}
|
||||
|
|
|
@ -383,7 +383,7 @@ class share extends Controller{
|
|||
public function fileUpload(){
|
||||
$fileName = $_FILES['file']['name']? $_FILES['file']['name']:$GLOBALS['in']['name'];
|
||||
$GLOBALS['isRoot']=0;
|
||||
$GLOBALS['auth']['extNotAllow'] = "php|asp|jsp|html|htm|htaccess";
|
||||
$GLOBALS['auth']['extNotAllow'] = "htm|html|php|phtml|pwml|asp|aspx|ascx|jsp|pl|htaccess|shtml|shtm|phtm";
|
||||
if(!checkExt($fileName)){
|
||||
show_json(LNG('no_permission_ext'),false);
|
||||
}
|
||||
|
@ -411,7 +411,7 @@ class share extends Controller{
|
|||
//代理输出
|
||||
public function fileProxy(){
|
||||
$mime = get_file_mime(get_path_ext($this->path));
|
||||
if($mime == 'text/plain'){//文本则转编码
|
||||
if($mime == 'text/plain' && is_file($this->path)){//文本则转编码
|
||||
$fileContents = file_get_contents($this->path);
|
||||
$charset=get_charset($fileContents);
|
||||
if ($charset!='' || $charset!='utf-8') {
|
||||
|
@ -495,9 +495,8 @@ class share extends Controller{
|
|||
public function fileGet(){
|
||||
if(isset($this->in['fileUrl'])){ //http
|
||||
$displayName = $this->in['name'];
|
||||
$filepath = _DIR_CLEAR($this->in['fileUrl']);
|
||||
$filepath = str_replace(':/','://',$filepath);
|
||||
if(is_file($filepath) || substr($filepath,0,4) != 'http'){
|
||||
$filepath = $this->in['fileUrl'];
|
||||
if(!request_url_safe($filepath)){
|
||||
show_json(LNG('url error!'),false);
|
||||
}
|
||||
}else{
|
||||
|
@ -538,31 +537,41 @@ class share extends Controller{
|
|||
}
|
||||
|
||||
public function image(){
|
||||
if (filesize($this->path) <= 1024*50 ||
|
||||
$thumbWidth = 250;
|
||||
if(isset($this->in['thumbWidth'])){
|
||||
$thumbWidth = intval($this->in['thumbWidth']);//自定义预览大图
|
||||
}
|
||||
if(substr($this->path,0,4) == 'http'){
|
||||
header('Location: '.$this->in['path']);
|
||||
exit;
|
||||
}
|
||||
if (@filesize($this->path) <= 1024*50 ||
|
||||
!function_exists('imagecolorallocate') ) {//小于50k或者不支持gd库 不再生成缩略图
|
||||
file_put_out($this->path);
|
||||
file_put_out($this->path,false);
|
||||
return;
|
||||
}
|
||||
$image = $this->path;
|
||||
$image_md5 = @md5_file($image);//文件md5
|
||||
if (strlen($image_md5)<5) {
|
||||
$image_md5 = md5($image);
|
||||
}
|
||||
$imageThumb = DATA_THUMB.$image_md5.'.png';
|
||||
if (!is_dir(DATA_THUMB)){
|
||||
mk_dir(DATA_THUMB);
|
||||
}
|
||||
$image = $this->path;
|
||||
$imageMd5 = @md5_file($image).'_'.$thumbWidth;//文件md5
|
||||
if (strlen($imageMd5)<5) {
|
||||
$imageMd5 = md5($image).'_'.$thumbWidth;
|
||||
}
|
||||
$imageThumb = DATA_THUMB.$imageMd5.'.png';
|
||||
if (!file_exists($imageThumb)){//如果拼装成的url不存在则没有生成过
|
||||
if (get_path_father($image)==DATA_THUMB){//当前目录则不生成缩略图
|
||||
$imageThumb = $this->path;
|
||||
$imageThumb=$this->path;
|
||||
}else {
|
||||
$cm=new ImageThumb($image,'file');
|
||||
$cm->prorate($imageThumb,224,200);//生成等比例缩略图
|
||||
$cm = new ImageThumb($image,'file');
|
||||
$cm->prorate($imageThumb,$thumbWidth,$thumbWidth);//生成等比例缩略图
|
||||
}
|
||||
}
|
||||
if (!file_exists($imageThumb) || filesize($imageThumb)<100){//缩略图生成失败则用默认图标
|
||||
$imageThumb = $this->path;
|
||||
if (!file_exists($imageThumb) ||
|
||||
filesize($imageThumb)<100){//缩略图生成失败则使用原图
|
||||
$imageThumb=$this->path;
|
||||
}
|
||||
file_put_out($imageThumb,false);
|
||||
file_put_out($imageThumb);//输出
|
||||
}
|
||||
|
||||
|
|
|
@ -361,7 +361,7 @@ class systemMember extends Controller{
|
|||
unset($userInfo['homePath']);
|
||||
}
|
||||
if($this->sql->set($userID,$userInfo)){
|
||||
self::spaceChange($userID);//重置用户使用空间
|
||||
//self::spaceChange($userID);//重置用户使用空间
|
||||
show_json(LNG('success'),true,$userInfo);
|
||||
}
|
||||
show_json(LNG('error_repeat'),false);
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -54,14 +54,15 @@ function iconv_to($str,$from,$to){
|
|||
if (!function_exists('iconv')){
|
||||
return $str;
|
||||
}
|
||||
$result = iconv($from, $to, $str);
|
||||
if(strlen($result)==0){ //转换失败;尝试用mb转换;android环境部分问题解决
|
||||
if(function_exists('mb_convert_encoding')){
|
||||
return @mb_convert_encoding($str,$to,$from);
|
||||
}
|
||||
//尝试用mb转换;android环境部分问题解决
|
||||
if(function_exists('mb_convert_encoding')){
|
||||
$result = @mb_convert_encoding($str,$to,$from);
|
||||
}else{
|
||||
$result = @iconv($from, $to, $str);
|
||||
}
|
||||
if(strlen($result)==0){
|
||||
return $str;
|
||||
}
|
||||
unset($str);
|
||||
return $result;
|
||||
}
|
||||
function path_filter($path){
|
||||
|
@ -838,6 +839,10 @@ function file_search($path,$search,$is_case){
|
|||
}
|
||||
}
|
||||
$line_str = substr($content,$from,$to - $from);
|
||||
if($strpos($line_str,$search) === false){ //截取乱码避免
|
||||
$line_str = $search;
|
||||
}
|
||||
|
||||
$result[] = array('line'=>$line+1,'str'=>$line_str);
|
||||
if(++$i >= $len_search ){
|
||||
break;
|
||||
|
@ -1015,7 +1020,7 @@ function file_put_out($file,$download=-1,$downFilename=false){
|
|||
header('304 Not Modified', true, 304);
|
||||
exit;
|
||||
}
|
||||
$etag = '"'.md5($time).'"';
|
||||
$etag = '"'.md5($time.$file_size).'"';
|
||||
if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && $_SERVER['HTTP_IF_NONE_MATCH'] == $etag){
|
||||
header("Etag: ".$etag, true, 304);
|
||||
exit;
|
||||
|
@ -1233,7 +1238,7 @@ function upload($path,$tempPath,$repeatAction='replace'){
|
|||
show_json(check_upload($_FILES[$fileInput]['error']),false);
|
||||
}
|
||||
if($fileName == "image.jpg" && is_wap()){//拍照上传
|
||||
$fileName = date('Ymd H:i:s',time()).'.jpg';
|
||||
$fileName = iconv_system(path_clear_name($in["lastModifiedDate"])).'.jpg';
|
||||
}
|
||||
}else if (isset($in["name"])) {
|
||||
$fileName = iconv_system(path_clear_name($in["name"]));
|
||||
|
@ -1241,6 +1246,13 @@ function upload($path,$tempPath,$repeatAction='replace'){
|
|||
if(isset($in['base64Upload'])){
|
||||
$uploadFile = "base64";
|
||||
}
|
||||
if($fileName == "image.jpg" && is_wap()){//拍照上传
|
||||
$fileName = iconv_system(path_clear_name($in["lastModifiedDate"])).'.jpg';
|
||||
}
|
||||
}else if( isset($in["check_md5"]) ) {//断点续传检测
|
||||
$fileName = iconv_system(path_clear_name($in["file_name"]));
|
||||
$savePath = get_filename_auto($path.$fileName,""); //自动重命名
|
||||
return upload_chunk("",$tempPath,$savePath);
|
||||
}else{
|
||||
show_json('param error',false);
|
||||
}
|
||||
|
@ -1273,7 +1285,7 @@ function upload_chunk($uploadFile,$tempPath,$savePath){
|
|||
//if(mt_rand(0, 100) < 50) die("server error".$chunk); //分片失败重传
|
||||
//文件分块检测是否已上传,已上传则忽略;断点续传
|
||||
if($check_md5 !== false){
|
||||
$chunk_file_pre = $tempPath.md5($tempPath.$savePath).'.part';
|
||||
$chunk_file_pre = $tempPath.md5($savePath).'.part';
|
||||
$chunk_file = $chunk_file_pre.$chunk;
|
||||
if( file_exists($chunk_file) && md5_file($chunk_file) == $check_md5){
|
||||
$arr = array();
|
||||
|
|
|
@ -6,8 +6,9 @@ function checkExt($file){
|
|||
return 0;
|
||||
}
|
||||
$notAllow = $GLOBALS['auth']['extNotAllow'];
|
||||
|
||||
$notAllow .= '|htaccess';//防破解安全处理
|
||||
if(strstr($notAllow,'php')){
|
||||
$notAllow .= '|htm|html|php|phtml|pwml|asp|aspx|ascx|jsp|pl|htaccess|shtml|shtm|phtm';
|
||||
}
|
||||
$extArr = explode('|',$notAllow);
|
||||
foreach ($extArr as $current) {
|
||||
if ($current !== '' && stristr($file,'.'.$current)){//含有扩展名
|
||||
|
@ -372,7 +373,12 @@ function user_logout(){
|
|||
setcookie('kod_name', '', time()-3600);
|
||||
setcookie('kodToken', '', time()-3600);
|
||||
setcookie('X-CSRF-TOKEN','',time()-3600);
|
||||
header('location:./index.php?user/login');
|
||||
|
||||
$url = './index.php?user/login';
|
||||
if(ACT != 'logout'){ //不是主动退出则登陆后跳转到之前页面
|
||||
$url .= '&link='.rawurlencode(this_url());
|
||||
}
|
||||
header('Location:'.$url);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|
|
@ -483,6 +483,21 @@ function get_headers_curl($url,$timeout=30,$depth=0,&$headers=array()){
|
|||
return count($headers)==0?false:$headers;
|
||||
}
|
||||
|
||||
// 防止SSRF 攻击;curl,file_get_contents前检测url;
|
||||
function request_url_safe($url){
|
||||
$link = trim(strtolower($url));
|
||||
$link = str_replace('\\','/',$link);
|
||||
while (strstr($link,'../')) {
|
||||
$link = str_replace('../', '/', $link);
|
||||
}
|
||||
if( substr($link,0,6) != "ftp://" &&
|
||||
substr($link,0,7) != "http://" &&
|
||||
substr($link,0,8) != "https://" ){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// url header data
|
||||
function url_header($url){
|
||||
$name = '';$length=0;
|
||||
|
@ -549,6 +564,10 @@ function url_header($url){
|
|||
$name = rawurldecode($name);
|
||||
$name = str_replace(array('/','\\'),'-',$name);//safe;
|
||||
$supportRange = isset($header["Accept-Ranges"])?true:false;
|
||||
|
||||
if(!request_url_safe($fileUrl)){
|
||||
$fileUrl = "";
|
||||
}
|
||||
$result = array(
|
||||
'url' => $fileUrl,
|
||||
'length' => $length,
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -18,8 +18,11 @@ class Downloader {
|
|||
}else{
|
||||
$fileHeader = url_header($url);
|
||||
}
|
||||
|
||||
$url = $fileHeader['url'];
|
||||
if(!$url){
|
||||
return array('code'=>false,'data'=>'url error!');
|
||||
}
|
||||
|
||||
//默认下载方式if not support range
|
||||
if(!$fileHeader['supportRange'] ||
|
||||
$fileHeader['length'] == 0 ){
|
||||
|
|
|
@ -69,7 +69,7 @@ class I18n{
|
|||
$lang = $_COOKIE[$cookieLang];
|
||||
}else{
|
||||
$lang = self::defaultLang();
|
||||
setcookie_header($cookieLang,$lang, time()+3600*24*100);
|
||||
//setcookie_header($cookieLang,$lang, time()+3600*24*100);
|
||||
}
|
||||
|
||||
$lang = str_replace(array('/','\\','..','.'),'',$lang);
|
||||
|
|
|
@ -154,6 +154,9 @@ class KodArchive {
|
|||
if( self::checkIfType($ext,'tar') ){
|
||||
//TrOn(10);
|
||||
if($part != '-1'){
|
||||
//tar 默认都进行转码;
|
||||
$indexPath = unzip_pre_name($indexPath);
|
||||
$pathRemove = unzip_pre_name($pathRemove);
|
||||
$result = PclTarExtractList($file,array($indexPath),$dest,$pathRemove);
|
||||
}else{
|
||||
$result = PclTarExtract($file,$dest);
|
||||
|
@ -333,4 +336,4 @@ class KodArchive {
|
|||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,15 +72,11 @@ class PluginBase{
|
|||
}
|
||||
return $icon;
|
||||
}
|
||||
|
||||
final function filePath($path){
|
||||
if(substr($path,0,4) == 'http'){
|
||||
if(file_exists($path)){
|
||||
show_tips('must be url;');
|
||||
if(!request_url_safe($path)){
|
||||
show_json(LNG('url error!'),false);
|
||||
}
|
||||
$path = _DIR_CLEAR($path);
|
||||
$path = str_replace(':/','://',$path);
|
||||
|
||||
$cacheName = md5($path.'kodcloud').'.'.get_path_ext($path);
|
||||
$cacheFile = TEMP_PATH.$this->pluginName.'/files/'.$cacheName;
|
||||
mk_dir(get_path_father($cacheFile));
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,4 +1,4 @@
|
|||
<div class="common-footer">
|
||||
<div class="common-footer aero">
|
||||
<?php
|
||||
$settings = $GLOBALS['config']['settings'];
|
||||
$settingSystem = $GLOBALS['config']['settingSystem'];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<div class="init-loading">
|
||||
<div><img src="<?php echo STATIC_PATH;?>images/common/loading_simple.gif"/></div>
|
||||
</div>
|
||||
<div class="topbar">
|
||||
<div class="topbar aero">
|
||||
<div class="content">
|
||||
<button class="btn btn-wap-menu hidden"
|
||||
data-toggle="collapse" data-target="#top-menu-left"
|
||||
|
@ -45,7 +45,7 @@
|
|||
<?php if($subMenu){?>
|
||||
<div class="menu-group fl">
|
||||
<a class="topbar-menu" id="topbar-submenu"
|
||||
data-toggle="dropdown" href="javascript:void(0);" title="<?php echo LNG('menu_sub_menu');?>">
|
||||
data-toggle="dropdown" href="#" title="<?php echo LNG('menu_sub_menu');?>">
|
||||
<i class="icon-th-large"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu topbar-submenu pull-left animated menuShow" role="menu" aria-labelledby="topbar-submenu">
|
||||
|
@ -79,24 +79,24 @@
|
|||
<a href="#" id='topbar-user' data-toggle="dropdown" class="topbar-menu"><i class="font-icon icon-user"></i><?php echo $_SESSION['kodUser']['name'];?> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu menu-topbar-user pull-right animated menuShow" role="menu" aria-labelledby="topbar-user">
|
||||
<?php if($GLOBALS['isRoot']){ ?>
|
||||
<li class="menu-system-setting"><a href="javascript:core.setting('system');"><i class="font-icon icon-cog"></i><?php echo LNG('system_setting');?></a></li>
|
||||
<li class="menu-system-setting"><a href="#" onclick="core.setting('system');"><i class="font-icon icon-cog"></i><?php echo LNG('system_setting');?></a></li>
|
||||
<?php } ?>
|
||||
|
||||
<?php if($GLOBALS['isRoot'] || $GLOBALS['auth']['systemMember.get']){ ?>
|
||||
<li class="menu-system-group"><a href="javascript:core.setting('member');"><i class="font-icon icon-group"></i><?php echo LNG('setting_member');?></a></li>
|
||||
<li class="menu-system-group"><a href="#" onclick="core.setting('member');"><i class="font-icon icon-group"></i><?php echo LNG('setting_member');?></a></li>
|
||||
<?php } ?>
|
||||
<?php if($GLOBALS['isRoot'] || $GLOBALS['auth']['pluginApp.index']){ ?>
|
||||
<li class="menu-system-plugin">
|
||||
<a href="javascript:void(0);" onclick="core.openWindowBig('./index.php?pluginApp/index','<?php echo LNG('PluginCenter');?>');"><i class="font-icon icon-puzzle-piece"></i><?php echo LNG('PluginCenter');?></a></li>
|
||||
<a href="#" onclick="core.openWindowBig('./index.php?pluginApp/index','<?php echo LNG('PluginCenter');?>');"><i class="font-icon icon-puzzle-piece"></i><?php echo LNG('PluginCenter');?></a></li>
|
||||
<li role="presentation" class="divider"></li>
|
||||
<?php } ?>
|
||||
|
||||
|
||||
<li class="menu-system-user"><a href="javascript:core.setting('user');"><i class="font-icon icon-user"></i><?php echo LNG('setting_user');?></a></li>
|
||||
<li class="menu-system-theme"><a href="javascript:core.setting('theme');"><i class="font-icon icon-dashboard"></i><?php echo LNG('setting_theme');?></a></li>
|
||||
<li class="menu-system-full"><a href="javascript:core.fullScreen();"><i class="font-icon icon-fullscreen"></i><?php echo LNG('full_screen');?></a></li>
|
||||
<li class="menu-system-help"><a href="javascript:core.setting('help');"><i class="font-icon icon-question"></i><?php echo LNG('setting_help');?></a></li>
|
||||
<li class="menu-system-about"><a href="javascript:core.setting('about');"><i class="font-icon icon-info-sign"></i><?php echo LNG('setting_about');?></a></li>
|
||||
<li class="menu-system-user"><a href="#" onclick="core.setting('user');"><i class="font-icon icon-user"></i><?php echo LNG('setting_user');?></a></li>
|
||||
<li class="menu-system-theme"><a href="#" onclick="core.setting('theme');"><i class="font-icon icon-dashboard"></i><?php echo LNG('setting_theme');?></a></li>
|
||||
<li class="menu-system-full"><a href="#" onclick="core.fullScreen();"><i class="font-icon icon-fullscreen"></i><?php echo LNG('full_screen');?></a></li>
|
||||
<li class="menu-system-help"><a href="#" onclick="core.setting('help');"><i class="font-icon icon-question"></i><?php echo LNG('setting_help');?></a></li>
|
||||
<li class="menu-system-about"><a href="#" onclick="core.setting('about');"><i class="font-icon icon-info-sign"></i><?php echo LNG('setting_about');?></a></li>
|
||||
<li role="presentation" class="divider"></li>
|
||||
<li class="menu-system-logout"><a href="./index.php?user/logout"><i class="font-icon icon-signout"></i><?php echo LNG('ui_logout');?></a></li>
|
||||
</ul>
|
||||
|
|
|
@ -54,9 +54,9 @@
|
|||
<div class="menu-group">
|
||||
<a href="#" id='topbar-user' class="topbar-menu" data-toggle="dropdown"><i class="font-icon icon-user"></i><?php echo $_SESSION['kodUser']['name'];?> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu menu-topbar-user pull-right animated menuShow" role="menu" aria-labelledby="topbar-user">
|
||||
<li><a href="javascript:core.qrcode(window.location.href);"><i class="font-icon icon-qrcode"></i><?php echo LNG('qrcode');?></a></li>
|
||||
<li><a href="javascript:core.fullScreen();"><i class="font-icon icon-fullscreen"></i><?php echo LNG('full_screen');?></a></li>
|
||||
<li><a href="http://kodcloud.com" target="_blank"><i class="font-icon icon-code-fork"></i><?php echo LNG('ui_project_home');?></a></li>
|
||||
<li><a href="#" onclick="core.qrcode(window.location.href);"><i class="font-icon icon-qrcode"></i><?php echo LNG('qrcode');?></a></li>
|
||||
<li><a href="#" onclick="core.fullScreen();"><i class="font-icon icon-fullscreen"></i><?php echo LNG('full_screen');?></a></li>
|
||||
<li class="version_vip_free"><a href="http://kodcloud.com" target="_blank"><i class="font-icon icon-code-fork"></i><?php echo LNG('ui_project_home');?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -5,21 +5,24 @@
|
|||
|
||||
</head>
|
||||
<body style="overflow: hidden;" oncontextmenu="return core.contextmenu();" id="page-desktop">
|
||||
<div class="full-background desktop" style="background-image:url('<?php echo $wall;?>');">
|
||||
<img class="background" />
|
||||
</div>
|
||||
<?php echo '<style >.aero:before,.aero:after,.full-background{background-image:url('.$wall.')}</style>';?>
|
||||
<div class="full-background desktop"><img class="background" /></div>
|
||||
|
||||
<?php include(TEMPLATE.'common/navbar.html');?>
|
||||
<div class='bodymain drag-upload-box desktop'>
|
||||
<div class="file-continer file-list-icon hidden"></div>
|
||||
</div><!-- html5拖拽上传list -->
|
||||
|
||||
<a href="#" class="start"></a>
|
||||
<div id="taskbar" style="display:block;"><div id="desktop"></div></div>
|
||||
<div id="taskbar" style="display:block;" class="">
|
||||
<div class="taskbar-background aero"></div>
|
||||
<div id="desktop"></div>
|
||||
</div>
|
||||
<div class="taskbar-right">
|
||||
<div class="copyright dropdown-toggle"><i class="icon-info-sign"></i></div>
|
||||
<div class="tab-hide-all"></div>
|
||||
</div>
|
||||
<div id="menuwin">
|
||||
<div id="menuwin" class="aero">
|
||||
<div id="startmenu"></div>
|
||||
<ul id="programs">
|
||||
<li class='setting_help'><a href="#" onclick="core.setting('help');"><?php echo LNG('setting_help');?></a></li>
|
||||
|
@ -31,7 +34,7 @@
|
|||
<ul id="links">
|
||||
<li class="icon"></li>
|
||||
<li><a href="#" onclick="core.explorer('<?php echo KOD_USER_SHARE.':'.$_SESSION['kodUser']['userID'].'/';?>','<?php echo LNG('my_share');?>');"><span><?php echo LNG('my_share');?></span></a></li>
|
||||
<li><a href="#" onclick="core.explorer('<?php echo MYHOME;?>/picture','<?php echo LNG('my_picture');?>');"><span><?php echo LNG('my_picture');?></span></a></li>
|
||||
<li><a href="#" onclick="core.explorer('<?php echo MYHOME;?>/pictures','<?php echo LNG('my_picture');?>');"><span><?php echo LNG('my_picture');?></span></a></li>
|
||||
<li><a href="#" onclick="core.explorer('<?php echo MYHOME;?>/music','<?php echo LNG('my_music');?>');"><span><?php echo LNG('my_music');?></span></a></li>
|
||||
<li><a href="#" onclick="core.explorer('<?php echo MYHOME;?>/download','<?php echo LNG('download');?>');"><span><?php echo LNG('download');?></span></a></li>
|
||||
<li><div id="rightspliter"></div></li>
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
seajs.config({
|
||||
preload: [
|
||||
"lib/jquery-1.8.0.min",
|
||||
'lib/ace/src-min-noconflict/ace'
|
||||
'lib/ace/src-min-noconflict/ace'
|
||||
]
|
||||
});
|
||||
seajs.use("app/src/edit/main");
|
||||
|
|
|
@ -38,9 +38,9 @@
|
|||
?>
|
||||
<?php if($subMenu){?>
|
||||
<div class="menu-group fl tool tool-submenu">
|
||||
<div class="topbar-menu" id="topbar-submenu" data-toggle="dropdown">
|
||||
<i class="icon-th-large"></i>
|
||||
</div>
|
||||
<button class="topbar-menu" id="topbar-submenu" data-toggle="dropdown">
|
||||
<i class="icon-home"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu topbar-submenu pull-left animated menuShow" role="menu" aria-labelledby="topbar-submenu">
|
||||
<?php echo $subMenu;?>
|
||||
</ul>
|
||||
|
@ -49,20 +49,7 @@
|
|||
|
||||
<div class="title"><?php echo LNG('kod_name');?></div>
|
||||
<div class="menu-group">
|
||||
<div class="btn-list-icon"><i class="font-icon icon-th"></i></div>
|
||||
<div class="tool tool-menu-right-btn"><i class="font-icon icon-ellipsis-vertical"></i></div>
|
||||
<ul class="dropdown-menu tool-menu-right pull-right animated menuShow" role="menu" >
|
||||
<li data-action="upload"><a href="javascript:void();">
|
||||
<i class="font-icon icon-cloud-upload"></i><?php echo LNG('upload');?></a></li>
|
||||
<li data-action="newfolder"><a href="javascript:void();">
|
||||
<i class="font-icon icon-folder-close-alt"></i><?php echo LNG('newfolder');?></a></li>
|
||||
<li data-action="newfile"><a href="javascript:void();">
|
||||
<i class="font-icon icon-file-text"></i><?php echo LNG('newfile');?></a></li>
|
||||
<li data-action="past"><a href="javascript:void();">
|
||||
<i class="font-icon icon-paste"></i><?php echo LNG('past');?></a></li>
|
||||
<li data-action="search"><a href="javascript:void();">
|
||||
<i class="font-icon icon-search"></i><?php echo LNG('search');?></a></li>
|
||||
</ul>
|
||||
<div class="btn-list-icon"><i class="font-icon icon-home"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -111,6 +98,22 @@
|
|||
</div>
|
||||
<?php include(TEMPLATE.'common/footer.html');?>
|
||||
</div><!-- / frame-main end-->
|
||||
|
||||
<div class="toolbar-menu">
|
||||
<button class="menu-plus tool tool-menu-right-btn" data-toggle="dropdown"></button>
|
||||
<ul class="dropdown-menu tool-menu-right pull-right animated menuShow" role="menu" >
|
||||
<li data-action="upload"><a href="javascript:void();">
|
||||
<i class="font-icon icon-cloud-upload"></i><?php echo LNG('upload');?></a></li>
|
||||
<li data-action="newfolder"><a href="javascript:void();">
|
||||
<i class="font-icon icon-folder-close-alt"></i><?php echo LNG('newfolder');?></a></li>
|
||||
<li data-action="newfile"><a href="javascript:void();">
|
||||
<i class="font-icon icon-file-text"></i><?php echo LNG('newfile');?></a></li>
|
||||
<li data-action="past"><a href="javascript:void();">
|
||||
<i class="font-icon icon-paste"></i><?php echo LNG('past');?></a></li>
|
||||
<li data-action="search"><a href="javascript:void();">
|
||||
<i class="font-icon icon-search"></i><?php echo LNG('search');?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<script type="text/javascript" >
|
||||
G.thisPath = "<?php echo clear_html($dir);?>";
|
||||
seajs.use("<?php echo STATIC_JS;?>/src/explorerWap/main");
|
||||
|
|
|
@ -8,10 +8,10 @@
|
|||
$arr = array(8);
|
||||
$get = $arr[mt_rand(0,count($arr)-1)];
|
||||
$image = STATIC_PATH."images/wall_page/".$get.".jpg";
|
||||
echo '<img class="background" src="'.$image.'" />';
|
||||
echo '<style type="text/css">.title{background: #6699cc url('.$image.') 0px -92px;}</style>';
|
||||
echo '<style type="text/css">.aero:before,.aero:after,.background{background-image:url('.$image.')}</style>';
|
||||
?>
|
||||
<div class="loginbox box-install" >
|
||||
<div class="background"></div>
|
||||
<div class="loginbox box-install aero" >
|
||||
<div class="title">
|
||||
<div class="logo"><i class="icon-cloud"></i><?php echo strip_tags(LNG('kod_name'));?></div>
|
||||
<div class='info'>——<?php echo LNG('kod_name_desc');?></div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?php include(TEMPLATE.'common/header.html');?>
|
||||
<title><?php echo 'License Regiest - '.strip_tags(LNG('kod_name')).LNG('kod_power_by');?></title>
|
||||
<title><?php echo 'License Register - '.strip_tags(LNG('kod_name')).LNG('kod_power_by');?></title>
|
||||
<link href="<?php echo STATIC_PATH;?>style/login.css?ver=<?php echo KOD_VERSION;?>" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
|
@ -8,18 +8,18 @@
|
|||
$arr = array(8);
|
||||
$get = $arr[mt_rand(0,count($arr)-1)];
|
||||
$image = STATIC_PATH."images/wall_page/".$get.".jpg";
|
||||
echo '<img class="background" src="'.$image.'" />';
|
||||
echo '<style type="text/css">.title{background: #6699cc url('.$image.') 0px -92px;}</style>';
|
||||
echo '<style type="text/css">.aero:before,.aero:after,.background{background-image:url('.$image.')}</style>';
|
||||
?>
|
||||
<div class="loginbox" >
|
||||
<div class="background"></div>
|
||||
<div class="loginbox aero" >
|
||||
<div class="title">
|
||||
<div class="logo">License Regiest</div>
|
||||
<div class="logo">License Register</div>
|
||||
<div class='info'>or contact kodcloud@qq.com</div>
|
||||
</div>
|
||||
<div class="form" style="padding: 10px 20px;">
|
||||
<div class="inputs admin-password"><input type="text" placeholder="LICENSE KEY" autocomplete="off"/></div>
|
||||
|
||||
<a href="javascript:void(0);" class="LICENSE_SUBMIT btn btn-primary">regiest</a>
|
||||
<a href="javascript:void(0);" class="LICENSE_SUBMIT btn btn-primary">Register</a>
|
||||
<div class="links">
|
||||
<a href="./index.php?user/versionInstall&reset=1" class="btn btn-link"><?php echo LNG('use_free');?></a>
|
||||
<a href="http://kodcloud.com/buy.html#<?php echo I18n::getType();?>" target="_blank" class="btn btn-link"><?php echo LNG('learn_more');?></a>
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
|
||||
<body>
|
||||
<?php
|
||||
$arr = array(2,3,6,8,9,10,12);
|
||||
$arr = array(2,3,6,8,9,11,12);
|
||||
$get = $arr[mt_rand(0,count($arr)-1)];
|
||||
$image = STATIC_PATH."images/wall_page/".$get.".jpg";
|
||||
echo '<img class="background" src="'.$image.'" />';
|
||||
echo '<style type="text/css">.title{background: #6699cc url('.$image.') 0px -92px;}</style>';
|
||||
echo '<style type="text/css">.aero:before,.aero:after,.background{background-image:url('.$image.')}</style>';
|
||||
?>
|
||||
<div class="background"></div>
|
||||
<div class="init-loading"><div><img src="<?php echo STATIC_PATH;?>images/common/loading_simple.gif"/></div></div>
|
||||
<div class="loginbox animated-500 fadeInDown" >
|
||||
<div class="loginbox animated-500 fadeInDown aero" >
|
||||
<div class="title">
|
||||
<div class="logo"><i class="icon-cloud"></i><?php echo strip_tags(LNG('kod_name'));?></div>
|
||||
<div class='info'>——<?php echo LNG('kod_name_desc');?></div>
|
||||
|
@ -38,19 +38,20 @@
|
|||
<form action="#">
|
||||
<div class="inputs">
|
||||
<div>
|
||||
<span><?php echo LNG('username');?>:</span>
|
||||
<input id="username" name='name' type="text" placeholder="<?php echo LNG('username');?>" required autocomplete="on"/>
|
||||
<i class="font-icon icon-user"></i>
|
||||
<input id="username" name='name' type="text" placeholder="<?php echo LNG('username');?>"
|
||||
required autocomplete="on" disabled/>
|
||||
</div>
|
||||
<div>
|
||||
<span><?php echo LNG('password');?>:</span>
|
||||
<input id="password" name='password' type="password" placeholder="<?php echo LNG('password');?>" required autocomplete="on" />
|
||||
<i class="font-icon icon-key"></i>
|
||||
<input id="password" name='password' type="password" placeholder="<?php echo LNG('password');?>"
|
||||
required autocomplete="on" disabled/>
|
||||
</div>
|
||||
<?php if(need_check_code()){?>
|
||||
<div class='check-code'>
|
||||
<span><?php echo LNG('login_code');?>:</span>
|
||||
<i class="font-icon icon-unlock-alt"></i>
|
||||
<input name='checkCode' class="check-code" type="text" placeholder="<?php echo LNG('login_code');?>" required autocomplete="off"/>
|
||||
<img src='./index.php?user/checkCode' onclick="this.src='./index.php?user/checkCode'" />
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
<?php }?>
|
||||
</div>
|
||||
|
@ -66,11 +67,10 @@
|
|||
</div>
|
||||
|
||||
<div class="msg"><?php echo $msg;?></div>
|
||||
<div style="clear:both;"></div>
|
||||
|
||||
<?php if ($this->config['settingSystem']['autoLogin'] == '1') {?>
|
||||
<div class='guest'>
|
||||
<a href="./index.php?user/loginSubmit&name=guest&password=guest"><?php echo LNG('guest_login');?><i class=' icon-arrow-right'></i></a>
|
||||
<a href="./index.php?user/loginSubmit&name=guest&password=guest"><?php echo LNG('guest_login');?><i class=' icon-arrow-right'></i></a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</form>
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
<body>
|
||||
<?php
|
||||
$arr = array(2,3,6,8,9,10,12);
|
||||
$arr = array(2,3,6,8,9,11,12);
|
||||
$get = $arr[mt_rand(0,count($arr)-1)];
|
||||
$image = STATIC_PATH."images/wall_page/".$get.".jpg";
|
||||
echo '<div class="background" style="background-image:url('.$image.')"></div>';
|
||||
echo '<style type="text/css">.title{background: #6699cc url('.$image.') 0px -92px;}</style>';
|
||||
echo '<style type="text/css">.aero:before,.aero:after,.background{background-image:url('.$image.')}</style>';
|
||||
?>
|
||||
<div class="loginbox login-wap" >
|
||||
<div class="background"></div>
|
||||
<div class="loginbox login-wap aero" >
|
||||
<div class="title">
|
||||
<div class="logo">
|
||||
<i class="icon-cloud"></i><?php echo strip_tags(LNG('kod_name'));?>
|
||||
|
@ -23,38 +23,37 @@
|
|||
<form action="#">
|
||||
<div class="inputs">
|
||||
<div>
|
||||
<span><?php echo LNG('username');?>:</span>
|
||||
<input id="username" name='name' type="text" placeholder="<?php echo LNG('username');?>" required/>
|
||||
<i class="font-icon icon-user"></i>
|
||||
<input id="username" name='name' type="text" placeholder="<?php echo LNG('username');?>"
|
||||
required disabled/>
|
||||
</div>
|
||||
<div>
|
||||
<span><?php echo LNG('password');?>:</span>
|
||||
<input id="password" name='password' type="password" placeholder="<?php echo LNG('password');?>" required />
|
||||
<i class="font-icon icon-key"></i>
|
||||
<input id="password" name='password' type="password" placeholder="<?php echo LNG('password');?>"
|
||||
required disabled/>
|
||||
</div>
|
||||
|
||||
<?php if(need_check_code()){?>
|
||||
<div class='check-code'>
|
||||
<span><?php echo LNG('login_code');?>:</span>
|
||||
<i class="font-icon icon-unlock-alt"></i>
|
||||
<input name='checkCode' class="check-code" type="text" placeholder="<?php echo LNG('login_code');?>" required autocomplete="off"/>
|
||||
<img src='./index.php?user/checkCode' onclick="this.src='./index.php?user/checkCode'" />
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
<?php }?>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<div>
|
||||
<label for='rememberPassword-label'>
|
||||
<input type="checkbox" class="checkbox" name="rememberPassword" id='rememberPassword-label'/>
|
||||
<?php echo LNG('login_rember_password');?>
|
||||
</label>
|
||||
</div>
|
||||
<label for='rm'>
|
||||
<input type="checkbox" class="checkbox" name="rememberPassword" id='rm'/>
|
||||
<?php echo LNG('login_rember_password');?>
|
||||
</label>
|
||||
<a href="javascript:void(0);" class="forget-password"><?php echo LNG('forget_password');?></a>
|
||||
<input type="submit" id="submit" value="<?php echo LNG('login');?>" />
|
||||
</div>
|
||||
<div class="msg"><?php echo $msg;?></div>
|
||||
<div style="clear:both;"></div>
|
||||
|
||||
<?php if ($this->config['settingSystem']['autoLogin'] == '1') {?>
|
||||
<div class='guest'>
|
||||
<a href="./index.php?user/loginSubmit&name=guest&password=guest"><?php echo LNG('guest_login');?><i class=' icon-arrow-right'></i></a>
|
||||
<a href="./index.php?user/loginSubmit&name=guest&password=guest"><?php echo LNG('guest_login');?><i class=' icon-arrow-right'></i></a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</form>
|
||||
|
|
|
@ -370,12 +370,12 @@ class updateToV330{
|
|||
"guest" => array(
|
||||
"role" => "guest",
|
||||
"name" => "guest",
|
||||
"ext_not_allow" => "php|asp|jsp|html|htm|htaccess"
|
||||
"ext_not_allow" => "htm|html|php|phtml|pwml|asp|aspx|ascx|jsp|pl|htaccess|shtml|shtm|phtm"
|
||||
),
|
||||
"default" => array(
|
||||
"role" => "default",
|
||||
"name" => "default",
|
||||
"ext_not_allow" => "php|asp|jsp|html|htm|htaccess",
|
||||
"ext_not_allow" => "htm|html|php|phtml|pwml|asp|aspx|ascx|jsp|pl|htaccess|shtml|shtm|phtm",
|
||||
"explorer:mkdir" => 1,
|
||||
"explorer:mkfile" => 1,
|
||||
"explorer:pathDelete" => 1,
|
||||
|
|
|
@ -71,17 +71,6 @@ $config['checkCharset'] = 'ASCII,UTF-8,GB2312,GBK,BIG5,UTF-16,UCS-2,'.
|
|||
'Unicode,EUC-KR,EUC-JP,SHIFT-JIS,EUCJP-WIN,SJIS-WIN,JIS,LATIN1';//文件打开自动检测编码
|
||||
$config['checkCharsetDefault'] = '';//if set,not check;
|
||||
|
||||
if(!defined('HOST')){
|
||||
define('HOST',get_host().'/');
|
||||
}
|
||||
define('WEB_ROOT',get_webroot(BASIC_PATH));
|
||||
define('APP_HOST',HOST.str_replace(WEB_ROOT,'',BASIC_PATH)); //程序根目录
|
||||
define('PLUGIN_HOST',APP_HOST.str_replace(BASIC_PATH,'',PLUGIN_DIR)); //插件目录
|
||||
|
||||
include(CONTROLLER_DIR.'util.php');
|
||||
include(BASIC_PATH.'config/setting.php');
|
||||
include(BASIC_PATH.'config/version.php');
|
||||
|
||||
//when edit a file ;check charset and auto converto utf-8;
|
||||
if (strtoupper(substr(PHP_OS, 0,3)) === 'WIN') {
|
||||
$config['systemOS']='windows';
|
||||
|
@ -94,6 +83,21 @@ if (strtoupper(substr(PHP_OS, 0,3)) === 'WIN') {
|
|||
$config['systemCharset']='utf-8';
|
||||
}
|
||||
|
||||
// 部分反向代理导致获取不到url的问题优化
|
||||
if(isset($_COOKIE['APP_HOST'])){
|
||||
define('HOST',$_COOKIE['HOST']);
|
||||
define('APP_HOST',$_COOKIE['APP_HOST']);
|
||||
}
|
||||
if(!defined('HOST')){ define('HOST',get_host().'/');}
|
||||
if(!defined('WEB_ROOT')){ define('WEB_ROOT',get_webroot(BASIC_PATH));}
|
||||
if(!defined('APP_HOST')){ define('APP_HOST',HOST.str_replace(WEB_ROOT,'',BASIC_PATH));} //程序根目录
|
||||
define('PLUGIN_HOST',APP_HOST.str_replace(BASIC_PATH,'',PLUGIN_DIR));//插件目录
|
||||
|
||||
include(CONTROLLER_DIR.'util.php');
|
||||
include(BASIC_PATH.'config/setting.php');
|
||||
include(BASIC_PATH.'config/version.php');
|
||||
|
||||
|
||||
init_common();
|
||||
$config['autorun'] = array(
|
||||
array('controller'=>'user','function'=>'loginCheck'),
|
||||
|
|
|
@ -59,7 +59,7 @@ return array(
|
|||
"no_permission_action" => "لم يكن لديك هذا الإذن، يرجى الاتصال بمسؤول!",
|
||||
"path_is_root_tips" => "قد حان إلى الدليل الجذر!",
|
||||
"kod_group" => "منظمة",
|
||||
"my_kod_group" => "المجموعة حيث أنا",
|
||||
"my_kod_group" => "أنا في القسم",
|
||||
"space_tips_default" => "(GB) 0 لا حدود",
|
||||
"space_tips_full" => "دون الحد",
|
||||
"space_size" => "الفضاء",
|
||||
|
@ -69,15 +69,15 @@ return array(
|
|||
"group_role_error" => "خطأ أذونات دور (أي إعدادات إذن)",
|
||||
"group_role_error_admin" => "أذونات غير كافية",
|
||||
"markdown_content" => "جدول المحتويات",
|
||||
"system_group" => "المستخدمين والمجموعات",
|
||||
"system_group_edit" => "إدارة المجموعة",
|
||||
"system_group" => "المستخدمين والإدارات",
|
||||
"system_group_edit" => "إدارة القسم",
|
||||
"system_group_role" => "هوية دور",
|
||||
"system_group_create" => "إنشاء مجموعة",
|
||||
"system_group_name" => "اسم المجموعة",
|
||||
"system_group_father" => "المجموعة العليا",
|
||||
"system_group_add" => "إضافة علبة الفرعية",
|
||||
"system_group_remove" => "حذف مجموعات المستخدمين",
|
||||
"system_group_remove_tips" => "تأكيد لحذف مجموعة مستخدمين؟<br/>بعد إزالة مستخدم ينتمي إلى مجموعة سيتم إزالتها، وهذه الخطوة المجموعة الفرعية إلى الدليل الجذر",
|
||||
"system_group_create" => "إدارة جديدة",
|
||||
"system_group_name" => "اسم القسم",
|
||||
"system_group_father" => "الإدارة العليا",
|
||||
"system_group_add" => "إضافة إدارة فرعية",
|
||||
"system_group_remove" => "إزالة القسم",
|
||||
"system_group_remove_tips" => "هل تريد بالتأكيد حذف القسم؟<br/>بعد حذف جزء من المستخدم سيتم إزالة، انتقل القطاع الفرعي إلى قطاع الجذر",
|
||||
"system_group_select" => "اختر قسم",
|
||||
"system_group_select_result" => "سوف الأعضاء تنتمي إلى القطاعات التالية",
|
||||
"system_member_action" => "إدارة المستخدم",
|
||||
|
@ -87,8 +87,8 @@ return array(
|
|||
"system_member_password_tips" => "لا تملأ لا تعديل",
|
||||
"system_set_home_path" => "كتالوج مخصص",
|
||||
"system_set_home_path_tips" => "الدليل الافتراضي فارغ",
|
||||
"system_member_group" => "مجموعة فنادق",
|
||||
"system_member_group_edit" => "تحرير المجموعة",
|
||||
"system_member_group" => "حيث الإدارة",
|
||||
"system_member_group_edit" => "قسم التحرير",
|
||||
"system_member_remove" => "حذف العضو",
|
||||
"system_member_remove_tips" => "تأكيد المستخدم حذف؟<br/>بعد إزالة دليل المستخدم سوف تمحى تماما",
|
||||
"system_member_set_role" => "لتأكيد التغيير من الأذونات مجموعة مختارة من المستخدمين؟",
|
||||
|
@ -97,22 +97,22 @@ return array(
|
|||
"system_member_import_desc" => "مستخدم واحد في كل سطر،<br/>بالفعل موجودة يتم تجاهل بصمت",
|
||||
"system_member_use" => "تمكين",
|
||||
"system_member_unuse" => "تعطيل",
|
||||
"system_member_group_config" => "دفعة لاقامة مجموعة",
|
||||
"system_member_group_remove" => "إزالة من الحزمة",
|
||||
"system_member_group_insert" => "إضافة إلى حزمة",
|
||||
"system_member_group_reset" => "حزمة إعادة تعيين",
|
||||
"system_member_group_error" => "خطأ المجموعة المستخدم",
|
||||
"system_group_action" => "إدارة المجموعة",
|
||||
"system_member_group_config" => "دفعة إدارة الإعداد",
|
||||
"system_member_group_remove" => "تمت إزالتها من القسم",
|
||||
"system_member_group_insert" => "تمت الإضافة إلى القسم",
|
||||
"system_member_group_reset" => "إعادة تعيين القسم",
|
||||
"system_member_group_error" => "خطأ في الإدارة",
|
||||
"system_group_action" => "إدارة القسم",
|
||||
"system_role_add" => "إضافة الهوية دور",
|
||||
"system_role_read" => "قراءة فقط",
|
||||
"system_role_write" => "يمكن القراءة والكتابة",
|
||||
"system_setting_root_path" => "وصول الجذر",
|
||||
"system_setting_root_path_desc" => "مسؤول النظام فقط يمكن الوصول إلى كافة الدلائل، يمكن للجماعات حقوقية أخرى من المستخدمين ترى سوى دليل المستخدم الخاص بهم. إذا كنت ترغب في تشغيل أو إيقاف وصول المسؤول<br/>إلى الدلائل الأخرى، يمكنك تعديل فب open_basedir المعلمات مكافحة المواقع المشتركة،<a href=\"https://www.google.com.hk/search?&q=php+open_basedir\" target=\"_ |