feat: 后端全量更新 - 含所有本次需求

- Contract.php: 返回合约账户余额(balance_contract)
- My.php: 地址管理增加BTC/ETH
- AppContract.php: 一键平仓(closeall)
- AppProxy.php: 代理专属注册链接 + 分级权限(L1/L2)
- site.php: 手续费减半(0.018→0.009)
- agent_permission_setup.sql: 代理权限SQL
- crypto_news_crawler.py: 新闻自动采集脚本
This commit is contained in:
li
2026-03-30 20:16:32 +08:00
commit 1b24994e74
6721 changed files with 1308571 additions and 0 deletions
@@ -0,0 +1,234 @@
<div class="frame-main">
<div class='frame-left'>
<ul id="folder-list-tree" class="ztree"></ul>
<div class="bottom-box">
<div class="user-space-info"></div>
<div class="box-content">
<div class="cell menu-recycle-button"><i class="font-icon icon-trash"></i><span><?php echo LNG('recycle');?></span></div>
<div class="cell menuShareButton"><i class="font-icon icon-share-sign"></i><span><?php echo LNG('my_share');?></span></div>
<div style="clear:both"></div>
</div>
</div>
</div><!-- / frame-left end-->
<div class='frame-resize'></div>
<div class='frame-right'>
<div class="frame-header">
<div class="header-content">
<div class="header-left">
<div class="btn-group btn-group-sm">
<button class="btn btn-default" id='btn-history-back' title='<?php echo LNG('history_back');?>' type="button">
<i class="font-icon icon-angle-left"></i>
</button>
<button class="btn btn-default" id='btn-history-next' title='<?php echo LNG('history_next');?>' type="button">
<i class="font-icon icon-angle-right"></i>
</button>
</div>
</div><!-- /header left -->
<div class='header-middle'>
<button class="btn btn-default btn-left-radius ml-10" id='home' title='<?php echo LNG('root_path');?>'>
<i class="font-icon icon-home"></i>
</button>
<div id='yarnball' title="<?php echo LNG('address_in_edit');?>"></div>
<div id='yarnball-input'><input type="text" name="path" value="" class="path" id="path"/></div>
<button class="btn btn-default" id='fav' title='<?php echo LNG('add_to_fav');?>' type="button">
<i class="font-icon icon-star"></i>
</button>
<!-- <button class="btn btn-default" id='refresh' title='<?php echo LNG('refresh_all');?>' type="button">
<i class="font-icon icon-refresh"></i>
</button> -->
<button class="btn btn-default btn-right-radius" id='goto-father' title='<?php echo LNG('go_up');?>' type="button">
<i class="font-icon icon-circle-arrow-up"></i>
</button>
<div class="path-tips" title="<?php echo LNG('only_read_desc');?>" title-timeout="0">
<i class="icon-warning-sign"></i><span></span>
</div>
<div class="role-label-box"></div>
</div><!-- /header-middle end-->
<div class='header-right'>
<input type="text" name="seach" class="btn-left-radius"/>
<button class="btn btn-default btn-right-radius" id='search' title='<?php echo LNG('search');?>' type="button">
<i class="font-icon icon-search"></i>
</button>
</div>
</div>
</div><!-- / header end -->
<div class="frame-right-main">
<div class="tools">
<div class="tools-left tools-left-share <?php if(ST!='share'){echo 'hidden';}?>">
<!-- 文件功能 -->
<div class="kod-toolbar kod-toolbar-path btn-group btn-group-sm">
<button data-action='select-all' class="btn btn-default" type="button">
<i class="font-icon icon-check"></i><?php echo LNG('selectAll');?>
</button>
<button data-action='upload' class="btn btn-default" type="button">
<i class="font-icon icon-cloud-upload"></i><?php echo LNG('upload');?>
</button>
<button data-action='download' class="btn btn-default" type="button">
<i class="font-icon icon-download"></i><?php echo LNG('download');?>
</button>
</div>
<span class='msg'><?php echo LNG('path_loading');?></span>
<div class="clear"></div>
</div>
<div class="tools-left tools-left-explorer <?php if(ST=='share'){echo 'hidden';}?>">
<!-- 回收站tool -->
<div class="kod-toolbar kod-toolbar-recycle btn-group btn-group-sm hidden fl-left">
<button data-action='recycle-clear' class="btn btn-default" type="button">
<i class="font-icon icon-folder-close-alt"></i><?php echo LNG('recycle_clear');?>
</button>
</div>
<!-- 分享 tool -->
<div class="kod-toolbar kod-toolbar-share hidden fl-left">
<button data-action='refresh' class="btn btn-sm btn-default fl-left" type="button">
<i class="font-icon icon-refresh"></i><?php echo LNG('refresh');?>
</button>
<div class="select-button-show-share btn-group btn-group-sm fl-left ml-10 mr-10 hidden">
<button data-action='remove' class="btn btn-default" type="button">
<i class="font-icon icon-remove"></i><?php echo LNG('share_remove');?>
</button>
<button data-action='shareEdit' class="btn btn-default" type="button">
<i class="font-icon icon-edit"></i><?php echo LNG('share_edit');?>
</button>
<button data-action='shareOpenWindow' class="btn btn-default" type="button">
<i class="font-icon icon-link"></i><?php echo LNG('share_open_page');?>
</button>
</div>
</div>
<!-- 文件功能 -->
<div class="kod-toolbar kod-toolbar-path fl-left">
<div class="select-button-default btn-group btn-group-sm fl-left mr-10">
<button data-action='newfolder' class="btn btn-default" type="button">
<i class="font-icon icon-folder-close-alt"></i><?php echo LNG('newfolder');?>
</button>
<button data-action='newfile' class="btn btn-default tool-path-newfile" type="button">
<i class="font-icon icon-caret-down"></i>
</button>
</div>
<div class="select-button-default btn-group btn-group-sm fl-left mr-10">
<button data-action='upload' class="btn btn-default" type="button">
<i class="font-icon icon-cloud-upload"></i><?php echo LNG('upload');?>
</button>
<button data-action='upload-more' class="btn btn-default tool-path-upload" type="button">
<i class="font-icon icon-caret-down"></i>
</button>
</div>
<div class="select-button-show btn-group btn-group-sm fl-left ml-10 mr-10 hidden">
<button data-action='share' class="btn btn-default" type="button">
<i class="font-icon icon-share"></i><?php echo LNG('share');?>
</button>
<button data-action='download' class="btn btn-default" type="button">
<i class="font-icon icon-download"></i><?php echo LNG('download');?>
</button>
<button data-action='remove' class="btn btn-default" type="button">
<i class="font-icon icon-remove"></i><?php echo LNG('remove');?>
</button>
<button data-action='rname' class="btn btn-default" type="button">
<i class="font-icon icon-rename"></i><?php echo LNG('rename');?>
</button>
<button data-action='copy' class="btn btn-default" type="button">
<i class="font-icon icon-copy"></i><?php echo LNG('copy');?>
</button>
<button data-action='cute' class="btn btn-default" type="button">
<i class="font-icon icon-cute"></i><?php echo LNG('cute');?>
</button>
<button type="button" class="btn btn-default btn-sm toolbar-path-more fl-left mr-10">
<i class="font-icon icon-ellipsis-horizontal"></i>
<?php echo LNG('button_more');?>&nbsp;<span class="caret"></span>
</button>
</div>
<div class="group-space-use fl-left hidden"></div>
<div class="admin-real-path hidden fl-left">
<button type="button" class="btn btn-default btn-sm dialog-goto-path ml-10" title="<?php echo LNG('open_the_path');?>">
<i class="font-icon icon-folder-open"></i>
</button>
</div>
<span class='msg fl-left'><?php echo LNG('path_loading');?></span>
<div class="clear"></div>
</div>
</div>
<div class="tools-right">
<div class="btn-group btn-group-sm">
<button data-action='set-icon' title="<?php echo LNG('list_icon');?>" type="button" class="btn btn-default">
<i class="font-icon icon-th"></i>
</button>
<button data-action='set-list' title="<?php echo LNG('list_list');?>" type="button" class="btn btn-default">
<i class="font-icon icon-list"></i>
</button>
<button data-action='set-split' title="<?php echo LNG('list_list_split');?>" type="button" class="btn btn-default">
<i class="font-icon icon-columns"></i>
</button>
<div class="btn-group btn-group-sm menu-theme-list">
<button data-action="set-theme" title="<?php echo LNG('setting_theme');?>" type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
<i class="font-icon icon-dashboard"></i>&nbsp;&nbsp;<span class="caret"></span>
</button>
<ul class="dropdown-menu pull-right dropdown-menu-theme animated menuShow">
<?php
$arr = explode(',',$config['settingAll']['themeall']);
foreach ($arr as $value) {
echo "<li class='list' theme='{$value}'><a href='javascript:void(0);'>".LNG('theme_'.$value)."</a></li>\n";
}
?>
</ul>
</div>
</div>
<div class="set-icon-size">
<span class="dropdown-toggle" data-toggle="dropdown">
<i class="font-icon icon-zoom-in"></i>
</span>
<ul class="dropdown-menu set-icon-size-slider animated menuShow">
<div class="slider-bg"></div>
<div class="slider-handle"></div>
</ul>
</div>
</div>
<div style="clear:both"></div>
</div><!-- end tools -->
<div id='list-type-header' class="hidden">
<div id="main-title">
<div class="filename" field="name"><?php echo LNG('name');?><span></span></div><div class="resize filename-resize"></div>
<div class="filetype" field="ext"><?php echo LNG('type');?><span></span></div><div class="resize filetype-resize"></div>
<div class="filesize" field="size"><?php echo LNG('size');?><span></span></div><div class="resize filesize-resize"></div>
<div class="filetime" field="mtime"><?php echo LNG('modify_time');?><span></span></div><div class="resize filetime-resize"></div>
<div style="clear:both"></div>
</div>
</div>
</div><!-- list type 列表排序方式 -->
<div class='bodymain drag-upload-box menu-body-main'>
<div class="line-split-box hidden">
<div class="split-line"></div>
<div class="split-line"></div>
<div class="split-line"></div>
<div class="split-line"></div>
<div class="split-line"></div>
<div class="split-line"></div>
<div class="split-line"></div>
<div class="split-line"></div>
<div class="split-line"></div>
<div class="split-line"></div>
</div>
<div class="file-continer"></div>
<div class="file-continer-more"></div>
</div><!-- html5拖拽上传list -->
<div class="file-select-info">
<span class="item-num"></span>
<span class="item-select"></span>
</div>
</div>
</div><!-- / frame-right end-->
</div><!-- / frame-main end-->
@@ -0,0 +1,147 @@
<?php include(TEMPLATE.'common/header.html');?>
<title><?php echo LNG('ui_explorer').' - '.strip_tags(LNG('kod_name')).LNG('kod_power_by');?></title>
<link href="<?php echo STATIC_PATH;?>style/wap/app_explorer.css?ver=<?php echo KOD_VERSION;?>" rel="stylesheet"/>
</head>
<body>
<div class="init-loading"><div><img src="<?php echo STATIC_PATH;?>images/common/loading_simple.gif?v=<?php echo KOD_VERSION;?>"/></div></div>
<div class="panel-menu">
<div class="panel-hd">
<span class="my-avator">
<?php
$avatar = STATIC_PATH.'images/common/pic.jpg';
$name = $_SESSION['kodUser']['name'];
if($_SESSION['kodUser']['avatar']){
$avatar = $_SESSION['kodUser']['avatar'];
}
if($_SESSION['kodUser']['nickName']){
$name = $_SESSION['kodUser']['nickName'];
}
echo '<img src="'.$avatar.'"/>';
?>
</span>
<div><h3 class="name"><?php echo clear_html($name);?></h3></div>
</div>
<ul class="left-menu-path"></ul>
</div>
<div class="frame-main">
<div class="panel-mask"></div>
<div class="frame-header">
<div class="tool tool-menu-left">
<div class="menu"><i class="font-icon icon-reorder"></i></div>
</div>
<?php
$config = $GLOBALS['config'];
$subMenu = '';
foreach ($config['settingSystem']['menu'] as $key=>$value) {
if ($value['use']!='1') continue;
$has = ST==$value['name']?'this':'';
$target = " target='_self'" ;
if($value['target']=='1' || $value['target'] == '_blank'){
$target = " target='_blank'" ;
}
$name = $value['name'];
if(LNG('ui_'.$name) != 'ui_'.$name){
$name = "<i class='font-icon menu-".$value['name']."'></i><span>".LNG('ui_'.$name).'</span>';
}
if($value['icon']){
$name = $value['icon'].'<span>'.LNG($value['name']).'</span>';
}
$subMenu .= "<li><a class='topbar-menu-sub ".$has."' href='".urldecode($value['url'])."'"
.$target.">".urldecode($name)."</a></li>";
}
?>
<?php if($subMenu){?>
<div class="menu-group fl tool tool-submenu">
<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>
</div>
<?php } ?>
<div class="title"><?php echo LNG('kod_name');?></div>
<div class="menu-group">
<div class="btn-list-icon"><i class="font-icon icon-home"></i></div>
</div>
</div>
<div class="address">
<ul class="yarnball"></ul>
<div style="clear: both"></div>
</div>
<div class='bodymain'>
<div class="file-continer file-list-list"></div>
</div>
<div class="file-menu">
<div class="file-action-menu hidden">
<div class="action-menu" data-action="action-copy">
<span class="content">
<i class="font-icon icon-copy"></i><?php echo LNG('copy');?>
</span>
</div>
<div class="action-menu" data-action="action-cute">
<span class="content">
<i class="font-icon icon-cut"></i><?php echo LNG('cute');?>
</span>
</div>
<div class='action-menu' data-action="action-share">
<span class="content">
<i class="font-icon icon-share"></i><?php echo LNG('share');?>
</span>
</div>
<div class='action-menu' data-action="action-rname">
<span class="content">
<i class="font-icon icon-pencil"></i><?php echo LNG('rename');?>
</span>
</div>
<div class='action-menu' data-action="action-download">
<span class="content">
<i class="font-icon icon-cloud-download"></i><?php echo LNG('download');?>
</span>
</div>
<div class='action-menu' data-action="action-info">
<span class="content">
<i class="font-icon icon-info"></i><?php echo LNG('info');?>
</span>
</div>
<div class="action-menu" data-action="action-remove">
<span class="content">
<i class="font-icon icon-trash"></i><?php echo LNG('remove');?>
</span>
</div>
<div class="menu-close">
<span class="content">
<i class="font-icon icon-ellipsis-horizontal"></i>
</span>
</div>
<div style="clear:both"></div>
</div>
</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");
</script>
</body>
</html>
@@ -0,0 +1,47 @@
<?php include(TEMPLATE.'common/header.html');?>
<title><?php echo LNG('ui_explorer').' - '.strip_tags(LNG('kod_name')).LNG('kod_power_by');?></title>
<link rel="stylesheet" href="<?php echo STATIC_PATH;?>style/skin/base/app_explorer.css?ver=<?php echo KOD_VERSION;?>"/>
<link rel="stylesheet" href="<?php echo STATIC_PATH;?>style/skin/<?php echo $config['user']['theme'];?>.css?ver=<?php echo KOD_VERSION;?>" id='link-theme-style'/>
</head>
<style>
<?php if(isset($_GET['type'])){?>
.topbar,.common-footer,.bottom-box{display:none;}
.frame-header{top:0;}
.frame-main{top:0px;bottom:0px;}
.frame-main .frame-left #folder-list-tree{bottom:0px !important;}
<?php if($_GET['type']=="explorer"){?>
.frame-header .header-content .header-left{display:none;}
.frame-header .header-content .header-middle{left:12px;}
.frame-main .frame-left,.frame-main .frame-resize{display:none;}
.frame-main .frame-right{left:0px;}
.task-tab{display:none;}
<?php } ?>
<?php if($_GET['type']=="fileList"){?>
.frame-header{display:none;}
.frame-main .frame-left,.frame-main .frame-resize{display:none;}
.frame-main .frame-right{left:0px;}
.frame-main{top:0px;}
.task-tab,#set_theme,#fav,#home{display:none !important;}
.header-middle{top:3px;left:5px;right:140px;}
#list-type-header{top:35px;}
<?php } ?>
<?php } ?>
</style>
<body style="overflow:hidden;" oncontextmenu="return core.contextmenu();" id="page-explorer">
<?php include(TEMPLATE.'common/navbar.html');?>
<?php include(TEMPLATE.'explorer/content.html');?>
<?php include(TEMPLATE.'common/footer.html');?>
<script type="text/javascript">
G.thisPath = "<?php echo clear_html($dir);?>";
seajs.use("app/src/explorer/main");
</script>
</body>
</html>