#53 xs

Merged
DedeBIZ merged 19 commits from xs into develop 1 month ago
  1. +4
    -1
      docs/changelog.md
  2. +8
    -9
      src/admin/api.php
  3. +0
    -1
      src/admin/templets/article_keywords_select.htm
  4. +0
    -2
      src/admin/templets/article_result_same.htm
  5. +1
    -1
      src/admin/templets/content_att.htm
  6. +0
    -1
      src/admin/templets/content_select_list.htm
  7. +1
    -1
      src/admin/templets/freelist_add.htm
  8. +19
    -25
      src/admin/templets/freelist_main.htm
  9. +0
    -5
      src/admin/templets/index.htm
  10. +0
    -1
      src/admin/templets/log_list.htm
  11. +45
    -43
      src/admin/templets/login.htm
  12. +1
    -1
      src/admin/templets/makehtml_spec.htm
  13. +0
    -1
      src/admin/templets/media_main.htm
  14. +2
    -7
      src/admin/templets/member_rank.htm
  15. +2
    -2
      src/admin/templets/mychannel_edit.htm
  16. +1
    -1
      src/admin/templets/mytag_add.htm
  17. +10
    -12
      src/admin/templets/recycling.htm
  18. +3
    -4
      src/admin/templets/search_keywords_main.htm
  19. +1
    -1
      src/admin/templets/sys_cache_up.htm
  20. +2
    -3
      src/admin/tpl.php
  21. +5
    -6
      src/install/config.cache.inc.php
  22. +73
    -72
      src/install/install.html
  23. +49
    -50
      src/install/sql-dfdata.txt
  24. +31
    -13
      src/static/web/css/admin.css
  25. +2
    -1
      src/static/web/css/style.css
  26. BIN
      src/static/web/img/login_bg.png
  27. +44
    -44
      src/static/web/js/admin.list.js
  28. +1
    -2
      src/static/web/js/admin.update.js
  29. +1
    -1
      src/system/archive/searchview.class.php
  30. +1
    -2
      src/system/common.inc.php
  31. +4
    -8
      src/system/inc/inc_fun_funString.php
  32. +1
    -3
      src/system/libraries/dedehttpdown.class.php
  33. +1
    -1
      src/system/taglib/arclist.lib.php
  34. +0
    -1
      src/system/taglib/arclistsg.lib.php
  35. +1
    -2
      src/system/taglib/cattree.lib.php
  36. +2
    -3
      src/system/taglib/channelartlist.lib.php
  37. +3
    -4
      src/system/taglib/demotag.lib.php
  38. +1
    -1
      src/system/taglib/feedback.lib.php
  39. +1
    -2
      src/system/taglib/infoguide.lib.php
  40. +1
    -2
      src/system/taglib/infolink.lib.php
  41. +1
    -2
      src/system/taglib/likearticle.lib.php
  42. +3
    -4
      src/system/taglib/likesgpage.lib.php
  43. +1
    -1
      src/system/taglib/loop.lib.php
  44. +1
    -1
      src/system/taglib/productimagelist.lib.php
  45. +1
    -3
      src/system/taglib/relation.lib.php
  46. +0
    -1
      src/system/taglib/statistics.lib.php
  47. +0
    -1
      src/system/taglib/tag.lib.php
  48. +1
    -1
      src/system/taglib/type.lib.php
  49. +1
    -1
      src/system/taglib/userinfo.lib.php
  50. +1
    -2
      src/system/taglib/vote.lib.php
  51. +0
    -1
      src/system/tpllib/plus_channel.php
  52. +1
    -2
      src/user/edit_baseinfo.php

+ 4
- 1
docs/changelog.md View File

@@ -4,7 +4,10 @@
# V6.3.1
- 优化管理员账号注册和修改限制;
- 优化会员账号注册和修改限制;
- 优化系统统一方式提示;
- 优化系统一方式提示;
- 优化后台链接官方资源加载超时,依然保持流畅;
- 重做响应式后台登录页面;
- 其他常规问题修复;

# V6.3.0
- 再次优化后台部分代码面向对象,提高性能正确引导,致力于轻型后台系统;


+ 8
- 9
src/admin/api.php View File

@@ -128,8 +128,8 @@ if ($action === 'is_need_check_code') {
$data = $dhd->GetHtml();
if (empty($data)) {
echo json_encode(array(
"code"=>-1,
"msg"=>'获取版本信息失败',
"code" => -1,
"msg" => '获取版本信息失败',
));
} else {
echo $data;
@@ -144,8 +144,8 @@ if ($action === 'is_need_check_code') {
$data = $dhd->GetJSON();
if (empty($data)) {
echo json_encode(array(
"code"=>-1,
"msg"=>'获取版本信息失败',
"code" => -1,
"msg" => '获取版本信息失败',
));
exit();
}
@@ -175,8 +175,8 @@ if ($action === 'is_need_check_code') {
$data = $dhd->GetJSON();
if (empty($data)) {
echo json_encode(array(
"code"=>-1,
"msg"=>'获取版本信息失败',
"code" => -1,
"msg" => '获取版本信息失败',
));
exit;
}
@@ -212,8 +212,8 @@ if ($action === 'is_need_check_code') {
$data = $dhd->GetHtml();
if (empty($data)) {
echo json_encode(array(
"code"=>-1,
"msg"=>'获取版本信息失败',
"code" => -1,
"msg" => '获取版本信息失败',
));
exit;
}
@@ -426,6 +426,5 @@ if ($action === 'is_need_check_code') {
"msg" => "上传成功",
"data" => $activepath."/".$filename,
));

}
?>

+ 0
- 1
src/admin/templets/article_keywords_select.htm View File

@@ -45,7 +45,6 @@
</table>
</form>
<script>
//获得选中文件的文件名
function SelKw(kw) {
if (document.form2.keywords.value) {
document.form2.keywords.value += ","+kw;


+ 0
- 2
src/admin/templets/article_result_same.htm View File

@@ -51,7 +51,6 @@
</table>
</form>
<script>
//获得选中文件的文件名
function getCheckboxItem() {
var allSel = '';
if (document.form2.arcTitle.value) return document.form2.arcTitle.value;
@@ -65,7 +64,6 @@
}
return allSel;
}
//删除文档
function delArc() {
var qstr = getCheckboxItem();
document.form2.titles.value = qstr;


+ 1
- 1
src/admin/templets/content_att.htm View File

@@ -17,7 +17,7 @@
</tr>
<tr>
<td colspan="3">
<div class="alert alert-info mb-0">自定义属性说明:文档发布时选择属性后arclist标签加上flag='自定义属性',例:{dede:arclist flag='h,c'}h,c表示组合属性头条和推荐</div>
<div class="alert alert-info mb-0">文档发布时选择属性后arclist标签加上flag='自定义属性',例:{dede:arclist flag='h,c'}h,c表示组合属性头条和推荐</div>
</td>
</tr>
<tr align="center">


+ 0
- 1
src/admin/templets/content_select_list.htm View File

@@ -66,7 +66,6 @@
</table>
</form>
<script>
//获得选中文件的文件名
function getCheckboxItem() {
var allSel = '';
if (document.form2.arcID.value) return document.form2.arcID.value;


+ 1
- 1
src/admin/templets/freelist_add.htm View File

@@ -30,7 +30,7 @@
</tr>
<tr>
<td colspan="2">
<div class="alert alert-info mb-0">自由列表说明:freelist功能基本等同于arclist标签,区别是freelist标签支持分页,按自定义排序规则的文档列表(如按标题拼音部首排序等)等轻松的实现统一化管理,并且自由列是独立编译的,不与其它模板混在一起,不会影响系统生成网页或浏览速度</div>
<div class="alert alert-info mb-0">freelist功能基本等同于arclist标签,区别是freelist标签支持分页,按自定义排序规则的文档列表(如按标题拼音部首排序等)等轻松的实现统一化管理,并且自由列是独立编译的,不与其它模板混在一起,不会影响系统生成网页或浏览速度</div>
</td>
</tr>
<tr>


+ 19
- 25
src/admin/templets/freelist_main.htm View File

@@ -8,6 +8,7 @@
<link rel="stylesheet" href="/static/web/css/bootstrap.min.css">
<link rel="stylesheet" href="/static/web/css/admin.css">
<script src="/static/web/js/jquery.min.js"></script>
<script src="/static/web/js/bootstrap.min.js"></script>
<script src="/static/web/js/webajax.js"></script>
<script src="/static/web/js/admin.main.js"></script>
<script>
@@ -21,7 +22,7 @@
orderby = ordertype;
var listArea = $Obj('rslist');
var errMsg = "<a href=\"javascript:ReloadPage('" + ordertype + "')\">重新加载列表</a>";
fetch("freelist_main.php?dopost=getlist&pageno=" + pageno + "&orderby=" + ordertype + addget).then(resp=>resp.text()).then((d)=>{
fetch("freelist_main.php?dopost=getlist&pageno=" + pageno + "&orderby=" + ordertype + addget).then(resp=>resp.text()).then((d) => {
listArea.innerHTML = d;
}).catch((error) => {
listArea.innerHTML = errMsg;
@@ -43,27 +44,22 @@
}
//删除
function DelNote(nid) {
DedeConfirm("您确认要删除这条记录吗").then((v)=>{
var listArea = $Obj('rslist');
totalrow = totalrow - 1;
var pagenum = Math.ceil(totalrow / pagesize);
if (pagenum <= pageno) pageno = pagenum;
var errMsg = "<a href=\"javascript:LoadPage('" + pageno + "')\">重新加载列表</a>";
fetch("freelist_main.php?dopost=del&aid=" + nid + "&pageno=" + pageno).then(resp=>{
if (resp.ok) {
return resp.text()
}
throw new Error(errMsg);
}).then((d)=>{
listArea.innerHTML = d;
}).catch((error) => {
listArea.innerHTML = errMsg;
});

ReloadPageNum(pageno);
}).catch((e)=>{
console.log(e)
var listArea = $Obj('rslist');
totalrow = totalrow - 1;
var pagenum = Math.ceil(totalrow / pagesize);
if (pagenum <= pageno) pageno = pagenum;
var errMsg = "<a href=\"javascript:LoadPage('" + pageno + "')\">重新加载列表</a>";
fetch("freelist_main.php?dopost=del&aid=" + nid + "&pageno=" + pageno).then(resp=>{
if (resp.ok) {
return resp.text()
}
throw new Error(errMsg);
}).then((d) => {
listArea.innerHTML = d;
}).catch((error) => {
listArea.innerHTML = errMsg;
});
ReloadPageNum(pageno);
}
//重新加载分页列表
function ReloadPageNum(startnum) {
@@ -121,10 +117,8 @@
<div id="rslist"><?php GetTagList($dsql,$pageno,$pagesize,$orderby);?></div>
<table class="table shadow-sm mb-3">
<tr>
<td>
<div id="pagelist">
<script>ReloadPageNum(1);</script>
</div>
<td id="pagelist">
<script>ReloadPageNum(1);</script>
</td>
</tr>
</table>


+ 0
- 5
src/admin/templets/index.htm View File

@@ -12,11 +12,6 @@
<script src="/static/web/js/admin.main.js"></script>
</head>
<body class="menu-show">
<?php if (preg_match('/MSIE/i',$_SERVER['HTTP_USER_AGENT']) || preg_match('/Trident/i',$_SERVER['HTTP_USER_AGENT'])) {?>
<div class="browsehappy">
<span>您使用的浏览器已过时,请<a href="https://www.dedebiz.com/browsehappy" target="_blank">更换浏览器</a>,提高后台操作体验</span>
</div>
<?php }?>
<div class="admin-head">
<div class="logo">
<a href="index_body.php" target="main" class="name"><?php echo cn_substr($cfg_webname, 12);?></a>


+ 0
- 1
src/admin/templets/log_list.htm View File

@@ -68,7 +68,6 @@
</table>
</form>
<script>
//获得选中文件的文件名
function getCheckboxItem() {
var allSel = '';
if (document.form1.logs.value) return document.form1.logs.value;


+ 45
- 43
src/admin/templets/login.htm View File

@@ -12,54 +12,56 @@
<script src="/static/web/js/login.js"></script>
</head>
<body>
<?php if (preg_match('/MSIE/i',$_SERVER['HTTP_USER_AGENT']) || preg_match('/Trident/i',$_SERVER['HTTP_USER_AGENT'])) {?>
<div class="browsehappy">
<span>您使用的浏览器已过时,请<a href="https://www.dedebiz.com/browsehappy" target="_blank">更换浏览器</a>,提高后台操作体验</span>
</div>
<?php }?>
<div class="login-head shadow-sm mb-3">
<div class="container">
<div class="row align-items-center">
<div class="col-6 col-md-4">
<a href="/" target="_blank" class="logo"><img src="/favicon.ico" title="<?php echo $cfg_soft_enname;?>"><?php echo $cfg_webname;?></a>
</div>
<div class="col-6 col-md-8">
<div class="d-flex justify-content-end text-right">
<a href="https://www.dedebiz.com/service" target="_blank"><i class="fa fa-handshake-o"></i> 技术服务</a>
<a href="/" target="_blank" class="ml-3 d-none d-lg-block"><i class="fa fa-home"></i> 网站首页</a>
</div>
</div>
<div class="login-step">
<div class="row h-100">
<div class="col-lg-8 d-none d-lg-block">
<div class="login-bg"></div>
</div>
</div>
</div>
<div class="container">
<div class="login-from">
<?php echo $redmsg;?>
<div class="login-box shadow-sm mb-3">
<h1>后台登录</h1>
<form name="form1" method="post" action="login.php">
<input type="hidden" name="gotopage" value="<?php if (!empty($gotopage)) echo RemoveXSS($gotopage);?>">
<input type="hidden" name="dopost" value="login">
<input type="hidden" name="adminstyle" value="newDedeBIZ">
<div class="form-group">
<label for="iptUserid">管理员账号</label>
<input type="text" name="userid" id="iptUserid" class="form-control" placeholder="请输入管理员账号" required>
<div class="col-lg-4">
<div class="login-box">
<div class="logo">
<a href="/" target="_blank"><img src="/favicon.ico" title="<?php echo $cfg_webname;?>"><?php echo $cfg_webname;?></a>
</div>
<div class="form-group">
<label for="iptPwd">管理员密码</label>
<input type="password" name="pwd" id="iptPwd" class="form-control" placeholder="请输入管理员密码" autocomplete="off" required>
<div class="title">
<h1>后台登录</h1>
<span><?php echo $cfg_description;?></span>
</div>
<div id="vdimgck" class="form-group" style="display:none">
<label for="iptValidate">验证码</label>
<div class="input-group">
<input type="text" name="validate" id="iptValidate" class="form-control text-uppercase" placeholder="请输入验证码">
<img src="<?php echo $cfg_phpurl;?>/vdimgck.php" onclick="this.src='<?php echo $cfg_phpurl;?>/vdimgck.php?'+new Date().getTime()+Math.round(Math.random() * 10000)" title="验证码" id="validateimg">
</div>
<?php if (preg_match('/MSIE/i',$_SERVER['HTTP_USER_AGENT']) || preg_match('/Trident/i',$_SERVER['HTTP_USER_AGENT'])) {?><div class="alert alert-danger">您使用的浏览器已过时,请<a href="https://www.dedebiz.com/browsehappy" target="_blank">更换浏览器</a>,提高后台操作体验</div><?php }?>
<?php echo $redmsg;?>
<div class="login-from">
<form name="form1" method="post" action="login.php">
<input type="hidden" name="gotopage" value="<?php if (!empty($gotopage)) echo RemoveXSS($gotopage);?>">
<input type="hidden" name="dopost" value="login">
<input type="hidden" name="adminstyle" value="newDedeBIZ">
<div class="form-group">
<input type="text" name="userid" id="iptUserid" class="form-control" placeholder="请输入管理员账号" required>
<div class="form-icon">
<i class="fa fa-user-circle"></i>
</div>
</div>
<div class="form-group">
<input type="password" name="pwd" id="iptPwd" class="form-control" placeholder="请输入管理员密码" autocomplete="off" required>
<div class="form-icon">
<i class="fa fa-key"></i>
</div>
</div>
<div id="vdimgck" class="form-group" style="display:none">
<div class="input-group">
<input type="text" name="validate" id="iptValidate" class="form-control text-uppercase" placeholder="请输入验证码">
<img src="<?php echo $cfg_phpurl;?>/vdimgck.php" onclick="this.src='<?php echo $cfg_phpurl;?>/vdimgck.php?'+new Date().getTime()+Math.round(Math.random() * 10000)" title="验证码" id="validateimg">
</div>
<div class="form-icon">
<i class="fa fa-code"></i>
</div>
</div>
<div class="operate">
<button type="submit" class="btn btn-success shadow-lg">登录</button>
</div>
</form>
</div>
<div><button type="submit" class="btn btn-success btn-block">登录</button></div>
</form>
<p><?php echo $cfg_powerby;?></p>
</div>
</div>
<p><?php echo $cfg_powerby;?></p>
</div>
</div>
</body>

+ 1
- 1
src/admin/templets/makehtml_spec.htm View File

@@ -17,7 +17,7 @@
</tr>
<tr>
<td>
<div class="alert alert-info mb-0">更新专题说明:发布专题后需要手动更新,建议专题目录设置仅可读写权限,存放目录:<?php echo $cfg_special.'/index.html';?></div>
<div class="alert alert-info mb-0">发布专题后需要手动更新,建议专题目录设置仅可读写权限,存放目录:<?php echo $cfg_special.'/index.html';?></div>
</td>
</tr>
<tr>


+ 0
- 1
src/admin/templets/media_main.htm View File

@@ -74,7 +74,6 @@
</table>
</form>
<script>
//获得选中文件的文件名
function getCheckboxItem() {
var allSel = '';
if (document.form1.aids.value) return document.form1.aids.value;


+ 2
- 7
src/admin/templets/member_rank.htm View File

@@ -17,7 +17,7 @@
</tr>
<tr>
<td colspan="6">
<div class="alert alert-info mb-0">会员级别说明:注册会员级别不能删除,删除会影响会员功能无法使用某些功能</div>
<div class="alert alert-info mb-0">注册会员级别不建议删除,否则会影响会员功能无法使用某些功能,会员级别值由低向高升级,因此添加组别时需注意此值,如果您添加会员组的级别值低于10,将自动被视为普通的注册会员</div>
</td>
</tr>
<tr align="center">
@@ -29,7 +29,7 @@
<td width="16%">状态</td>
</tr>
<?php
$k=0;
$k = 0;
while($row = $dsql->GetObject())
{
$k++;
@@ -47,11 +47,6 @@
</tr>
<?php }?>
<input type="hidden" name="idend" value="<?php echo $k;?>">
<tr>
<td colspan="6">
<div class="alert alert-info mb-0">会员级别说明:由于会员级别值由低向高升级,因此添加组别时需注意此值,如果您添加会员组的级别值低于10,将自动被视为普通的注册会员</div>
</td>
</tr>
<tr align="center">
<td>级别名称</td>
<td>级别值(待审为0、注册会员为10)</td>


+ 2
- 2
src/admin/templets/mychannel_edit.htm View File

@@ -269,9 +269,9 @@
else { obj.style.display = 'none'; }
}
function DelNote(gourl) {
DedeConfirm("您确认要删除这个字段吗").then((v)=>{
DedeConfirm("您确认要删除这个字段吗").then((v) => {
location.href = gourl;
}).catch((e)=>{
}).catch((e) => {
console.log(e)
});
}


+ 1
- 1
src/admin/templets/mytag_add.htm View File

@@ -24,7 +24,7 @@
</tr>
<tr>
<td colspan="2">
<div class="alert alert-info mb-0">自定义标记调用方法:{dede:mytag name='标记名称' ismake='是否含板块代码yes或no' typeid='栏目id'/}name标记名称,该项是必须的属性;ismake默认是no表示设定的纯网页代码,yes表示含板块标记的代码;typeid表示所属栏目的id,默认为0,表示所有栏目通用的显示文档,在列表和文档模板中,typeid默认是这个列表或文档本身的栏目id</div>
<div class="alert alert-info mb-0">{dede:mytag name='标记名称' ismake='是否含板块代码yes或no' typeid='栏目id'/}name标记名称,该项是必须的属性;ismake默认是no表示设定的纯网页代码,yes表示含板块标记的代码;typeid表示所属栏目的id,默认为0,表示所有栏目通用的显示文档,在列表和文档模板中,typeid默认是这个列表或文档本身的栏目id</div>
</td>
</tr>
<tr>


+ 10
- 12
src/admin/templets/recycling.htm View File

@@ -51,17 +51,6 @@
</table>
</form>
<script>
function moveArc(aid) {
var qstr = getCheckboxItem();
if (aid == 0) aid = getOneItem();
location = "archives_do.php?aid=" + aid + "&dopost=return&qstr=" + qstr;
}
function delArc(aid) {
var qstr = getCheckboxItem();
if (aid == 0) aid = getOneItem();
location = "archives_do.php?qstr=" + qstr + "&aid=" + aid + "&dopost=del&recycle=1";
}
//获得选中文件的文件名
function getCheckboxItem() {
var allSel = '';
if (document.form2.arcID.value) return document.form2.arcID.value;
@@ -75,7 +64,6 @@
}
return allSel;
}
//获得选中其中一个的id
function getOneItem() {
var allSel = '';
if (document.form2.arcID.value) return document.form2.arcID.value;
@@ -107,6 +95,16 @@
}
}
}
function moveArc(aid) {
var qstr = getCheckboxItem();
if (aid == 0) aid = getOneItem();
location = "archives_do.php?aid=" + aid + "&dopost=return&qstr=" + qstr;
}
function delArc(aid) {
var qstr = getCheckboxItem();
if (aid == 0) aid = getOneItem();
location = "archives_do.php?qstr=" + qstr + "&aid=" + aid + "&dopost=del&recycle=1";
}
</script>
</body>
</html>

+ 3
- 4
src/admin/templets/search_keywords_main.htm View File

@@ -26,7 +26,7 @@
return resp.text()
}
throw new Error(errMsg);
}).then((d)=>{
}).then((d) => {
listArea.innerHTML = d;
}).catch((error) => {
listArea.innerHTML = errMsg;
@@ -87,7 +87,7 @@
return resp.text()
}
throw new Error(errMsg);
}).then((d)=>{
}).then((d) => {
listArea.innerHTML = d;
}).catch((error) => {
listArea.innerHTML = errMsg;
@@ -137,8 +137,7 @@
<div id="rslist"><?php GetKeywordList($dsql,$pageno,$pagesize,$orderby);?></div>
<table class="table shadow-sm mb-3">
<tr>
<td align="center">
<span id="pagelist"></span>
<td id="pagelist">
<script>ReloadPageNum(1);</script>
</td>
</tr>


+ 1
- 1
src/admin/templets/sys_cache_up.htm View File

@@ -17,7 +17,7 @@
</tr>
<tr>
<td>
<div class="alert alert-info mb-0">更新缓存说明:1、更新栏目缓存 2、更新枚举缓存 3、清理文档调用缓存 4、清理过期会员浏览历史 5、删除过期会员短信 6、删除过期流量统计</div>
<div class="alert alert-info mb-0">更新栏目、枚举、文档调用、过期会员浏览记录、过期会员短信、过期流量统计等缓存</div>
</td>
</tr>
<tr>


+ 2
- 3
src/admin/tpl.php View File

@@ -159,13 +159,12 @@ if (!defined('DEDEINC')) {
function lib_demotag(\$ctag, \$refObj)
{
global \$dsql, \$envs;
//属性处理
\$attlist = \"row|12,titlelen|30\";
\$attlist = \"row|10,titlelen|30\";
FillAttsDefault(\$ctag->CAttribute->Items,\$attlist);
extract(\$ctag->CAttribute->Items, EXTR_SKIP);
\$revalue = '';
//您需编写的代码,不能用echo之类语法,把最终返回值传给\$revalue
\$revalue = 'Hello Word!';
\$revalue = '您好,欢迎使用DedeBIZ';
return \$revalue;
}
?".'>';


+ 5
- 6
src/install/config.cache.inc.php View File

@@ -18,15 +18,14 @@ $cfg_softtype = 'zip|gz|rar|iso|doc|xsl|ppt|wps';
$cfg_mediatype = 'swf|rm|rmvb|mpg|mp3|mp4|wmv|wma|wav|mid|mov';
$cfg_specnote = 10;
$cfg_list_symbol = '';
$cfg_notallowstr = '乡巴佬|傻子';
$cfg_replacestr = '乡巴佬|傻子';
$cfg_notallowstr = '渣男|直男';
$cfg_replacestr = '渣男|直男';
$cfg_feedbackcheck = 'N';
$cfg_keyword_replace = 'Y';
$cfg_fck_xhtml = 'N';
$cfg_df_style = 'dedebiz';
$cfg_multi_site = 'N';
$cfg_dede_log = 'N';
$cfg_powerby = 'Copyright © 2023 DedeBIZ 版权所有';
$cfg_powerby = 'Copyright © 2024 DedeBIZ 版权所有';
$cfg_arcsptitle = 'N';
$cfg_arcautosp = 'N';
$cfg_arcautosp_size = 5;
@@ -92,9 +91,9 @@ $cfg_upload_switch = 'Y';
$cfg_allsearch_limit = '1';
$cfg_rewrite = 'N';
$cfg_delete = 'Y';
$cfg_keywords = '';
$cfg_keywords = 'dedebiz';
$cfg_tags_dir = '{cmspath}/a/tags';
$cfg_description = '';
$cfg_description = 'DedeBIZ系统基于PHP7版本开发,具有很强的可扩展性,并且采用GPLv2协议完全开放源代码。DedeBIZ支持采用现流行的Go语言设计开发,拥有简单易用、灵活扩展特性之外更安全、高效。模板设计制作简单,一直是系统一大特点,延续之前标签,同时采用响应式模板引擎Bootstrap作为系统模板渲染引擎,让搭建跨终端和移动端全媒体站点更简单。';
$cfg_beian = '';
$cfg_need_typeid2 = 'Y';
$cfg_cache_type = 'id';


+ 73
- 72
src/install/install.html View File

@@ -12,91 +12,92 @@
<script src="/static/web/js/style.js"></script>
</head>
<body>
<div class="login-head shadow-sm mb-3">
<div class="install-head shadow-sm mb-3">
<div class="container">
<div class="row align-items-center">
<div class="col-6 col-md-4">
<div class="col-5">
<a href="/" target="_blank" class="logo"><img src="/static/web/img/logo.png" title="DedeBIZ"></a>
</div>
<div class="col-6 col-md-8">
<div class="d-flex justify-content-end text-right">
<div class="col-7">
<div class="text-right">
<a href="https://www.dedebiz.com/service" target="_blank"><i class="fa fa-handshake-o"></i> 技术服务</a>
<a href="https://www.dedebiz.com/help" target="_blank" class="ml-3 d-none d-lg-block"><i class="fa fa-question-circle"></i> 帮助中心</a>
<a href="https://www.dedebiz.com/help" target="_blank" class="ml-3"><i class="fa fa-question-circle"></i> 帮助中心</a>
</div>
</div>
</div>
</div>
</div>
<div class="container install-box">
<?php if (count($arrMsg) > 0) {foreach($arrMsg as $msg){?>
<div class="alert alert-warning"><?php echo $msg ?></div>
<?php }}?>
<div class="alert alert-warning">请先阅读<a href="https://www.dedebiz.com/license?from=install" target="_blank">《站点授权协议》</a></div>
<div class="card shadow-sm mb-3">
<div class="card-header">
<h1 class="text-center">安装DedeV<?php echo $cfg_version_detail;?></h1>
</div>
<div class="card-body">
<form action="/install/index.php" method="post" name="form1">
<input type="hidden" name="step" value="2">
<input type="hidden" name="cookieencode" value="<?php echo $rnd_cookieEncode;?>">
<input type="hidden" name="adminmail" value="admin@dedebiz.com">
<div class="form-group">
<label for="dbtype" class="form-label">数据库类型</label>
<select id="dbtype" name="dbtype" class="form-control form-select">
<option value="mysql" selected>MySQL</option>
<?php if (extension_loaded("sqlite3")) {;?><option value="sqlite">SQLite</option><?php }?>
</select>
<div class="form-text">数据库类型一般为MySQL,则SQLite用于开发调试</div>
</div>
<div class="form-group server">
<label for="dbhost" class="form-label">数据库地址</label>
<input type="text" name="dbhost" id="dbhost" class="form-control" placeholder="localhost">
</div>
<div class="form-group server">
<label for="dbuser" class="form-label">数据库账号</label>
<input type="text" name="dbuser" id="dbuser" class="form-control" placeholder="root">
</div>
<div class="form-group server">
<label for="dbpwd" class="form-label">数据库密码</label>
<input type="text" name="dbpwd" id="dbpwd" class="form-control" placeholder="请输入数据库密码">
</div>
<div class="form-group">
<label for="dbprefix" class="form-label">数据表前缀</label>
<input type="text" name="dbprefix" id="dbprefix" class="form-control" placeholder="biz_">
<div class="form-text text-danger">注意DedeV<?php echo $cfg_version_detail;?>数据表前缀默认为biz_</div>
</div>
<div class="form-group">
<label for="dbname" class="form-label">数据库名称</label>
<div class="input-group">
<input id="dbname" name="dbname" type="text" class="form-control" placeholder="DedeBIZ">
<div class="input-group-append"><button type="button" id="btnCheckConnect" class="btn btn-success">检查</button></div>
<div class="container">
<div class="install-box">
<?php if (count($arrMsg) > 0) {foreach($arrMsg as $msg){?>
<div class="alert alert-warning"><?php echo $msg ?></div>
<?php }}?>
<div class="alert alert-warning">请先阅读<a href="https://www.dedebiz.com/license?from=install" target="_blank">《站点授权协议》</a></div>
<div class="card shadow-sm mb-3">
<div class="card-header">
<h1 class="text-center">安装DedeV<?php echo $cfg_version_detail;?></h1>
</div>
<div class="card-body">
<form action="/install/index.php" method="post" name="form1">
<input type="hidden" name="step" value="2">
<input type="hidden" name="cookieencode" value="<?php echo $rnd_cookieEncode;?>">
<input type="hidden" name="adminmail" value="admin@dedebiz.com">
<div class="form-group">
<label for="dbtype" class="form-label">数据库类型</label>
<select id="dbtype" name="dbtype" class="form-control form-select">
<option value="mysql" selected>MySQL</option>
<?php if (extension_loaded("sqlite3")) {;?><option value="sqlite">SQLite</option><?php }?>
</select>
<div class="form-text">数据库类型一般为MySQL,则SQLite用于开发调试</div>
</div>
</div>
<div id="alertConnect"></div>
<div class="form-group">
<label for="baseurl" class="form-label">网站地址</label>
<input type="text" name="baseurl" id="baseurl" class="form-control" placeholder="<?php echo $baseurl;?>">
</div>
<div class="form-group">
<label for="webname" class="form-label">网站名称</label>
<input type="text" name="webname" id="webname" class="form-control" placeholder="我的网站">
</div>
<div class="form-group">
<label for="adminuser" class="form-label">管理员账号</label>
<input type="text" name="adminuser" id="adminuser" class="form-control" placeholder="admin" onkeyup="this.value=this.value.replace(/[^0-9a-zA-Z_@!\.-]/g,'');">
<div class="form-text">请使用数字0-9小写a-z大写A-Z符号_@!.-</div>
</div>
<div class="form-group">
<label for="adminpwd" class="form-label">管理员密码</label>
<input type="text" name="adminpwd" id="adminpwd" class="form-control" placeholder="admin" onkeyup="this.value=this.value.replace(/[^0-9a-zA-Z_@!\.-]/g,'');">
<div class="form-text">请使用数字0-9小写a-z大写A-Z符号_@!.-</div>
</div>
<div class="text-right"><button type="submit" class="btn btn-success">安装</button></div>
</form>
<div class="form-group server">
<label for="dbhost" class="form-label">数据库地址</label>
<input type="text" name="dbhost" id="dbhost" class="form-control" placeholder="localhost">
</div>
<div class="form-group server">
<label for="dbuser" class="form-label">数据库账号</label>
<input type="text" name="dbuser" id="dbuser" class="form-control" placeholder="root">
</div>
<div class="form-group server">
<label for="dbpwd" class="form-label">数据库密码</label>
<input type="text" name="dbpwd" id="dbpwd" class="form-control" placeholder="请输入数据库密码">
</div>
<div class="form-group">
<label for="dbprefix" class="form-label">数据表前缀</label>
<input type="text" name="dbprefix" id="dbprefix" class="form-control" placeholder="biz_">
<div class="form-text text-danger">注意DedeV<?php echo $cfg_version_detail;?>数据表前缀默认为biz_</div>
</div>
<div class="form-group">
<label for="dbname" class="form-label">数据库名称</label>
<div class="input-group">
<input id="dbname" name="dbname" type="text" class="form-control" placeholder="DedeBIZ">
<div class="input-group-append"><button type="button" id="btnCheckConnect" class="btn btn-success">检查</button></div>
</div>
</div>
<div id="alertConnect"></div>
<div class="form-group">
<label for="baseurl" class="form-label">网站地址</label>
<input type="text" name="baseurl" id="baseurl" class="form-control" placeholder="<?php echo $baseurl;?>">
</div>
<div class="form-group">
<label for="webname" class="form-label">网站名称</label>
<input type="text" name="webname" id="webname" class="form-control" placeholder="我的网站">
</div>
<div class="form-group">
<label for="adminuser" class="form-label">管理员账号</label>
<input type="text" name="adminuser" id="adminuser" class="form-control" placeholder="admin" onkeyup="this.value=this.value.replace(/[^0-9a-zA-Z_@!\.-]/g,'');">
<div class="form-text">请使用数字0-9小写a-z大写A-Z符号_@!.-</div>
</div>
<div class="form-group">
<label for="adminpwd" class="form-label">管理员密码</label>
<input type="text" name="adminpwd" id="adminpwd" class="form-control" placeholder="admin" onkeyup="this.value=this.value.replace(/[^0-9a-zA-Z_@!\.-]/g,'');">
<div class="form-text">请使用数字0-9小写a-z大写A-Z符号_@!.-</div>
</div>
<div class="text-right"><button type="submit" class="btn btn-success">安装</button></div>
</form>
</div>
</div>
</div>
<p><a href="https://www.dedebiz.com" target="_blank">Powered by DedeBIZ开发团队</a></p>
</div>
<script>
$("#btnCheckConnect").click(function() {


+ 49
- 50
src/install/sql-dfdata.txt View File

@@ -3946,7 +3946,7 @@ INSERT INTO `#@__sysconfig` VALUES ('1','cfg_basehost','站点网址','1','strin
('17','cfg_mediatype','允许的多媒体文件类型','3','bstring','swf|rm|rmvb|mpg|mp3|mp4|wmv|wma|wav|mid|mov'),
('18','cfg_specnote','专题的最大节点数','2','number','10'),
('19','cfg_list_symbol','栏目位置的间隔符号','2','string',''),
('20','cfg_notallowstr','禁用关键词,用|分开,但不要在结尾加|','5','bstring','乡巴佬|傻子'),
('20','cfg_notallowstr','禁用关键词,用|分开,但不要在结尾加|','5','bstring','渣男|直男'),
('21','cfg_feedbackcheck','是否需审核评论及留言','5','bool','Y'),
('22','cfg_keyword_replace','是否使用关键词替换功能,开启影响文档生成速度','2','bool','Y'),
('23','cfg_rewrite','是否启用伪静态,参考栏目修改提示里默认规则','1','bool','N'),
@@ -3954,7 +3954,7 @@ INSERT INTO `#@__sysconfig` VALUES ('1','cfg_basehost','站点网址','1','strin
('25','cfg_multi_site','是否支持多站点,开启此项后附件栏目连接arclist文档启用绝对网址','2','bool','N'),
('26','cfg_rm_remote','下载远程图片和资源','7','bool','Y'),
('27','cfg_dede_log','是否开启管理日志','2','bool','N'),
('28','cfg_powerby','网站版权信息','1','bstring','Copyright © 2023 DedeBIZ 版权所有'),
('28','cfg_powerby','网站版权信息','1','bstring','Copyright © 2024 DedeBIZ 版权所有'),
('29','cfg_jump_once','跳转网址是否直接跳转否则显示中转页','7','bool','Y'),
('30','cfg_task_pwd','系统计划任务客户端许可密码,需要客户端,通常不会太重要','7','string',''),
('31','cfg_arcsptitle','是否开启分页标题,开启影响文档生成速度','6','bool','N'),
@@ -3971,7 +3971,7 @@ INSERT INTO `#@__sysconfig` VALUES ('1','cfg_basehost','站点网址','1','strin
('42','cfg_cli_time','服务器时区设置','2','number','8'),
('43','cfg_mb_addontype','会员附件许可的类型','4','bstring','swf|rm|rmvb|mpg|mp3|mp4|wmv|wma|wav|mid|mov|zip|rar|doc|xsl|ppt|wps'),
('44','cfg_mb_max','会员附件总大小限制(MB)','4','number','500'),
('45','cfg_replacestr','禁用关键词替换成*,用|分开,但不要在结尾加|','5','bstring','乡巴佬|傻子'),
('45','cfg_replacestr','禁用关键词替换成*,用|分开,但不要在结尾加|','5','bstring','渣男|直男'),
('46','cfg_keyword_like','使用关键词关连文档','6','bool','Y'),
('47','cfg_index_max','首页调用函数最大索引文档数,不适用于经常单栏目采集过多文档网站,不启用本项此值设置为0即可','6','number','10000'),
('48','cfg_index_cache','arclist标签调用缓存(0不启用,大于0值为多少秒)','6','number','86400'),
@@ -4017,53 +4017,52 @@ INSERT INTO `#@__sysconfig` VALUES ('1','cfg_basehost','站点网址','1','strin
('88','cfg_smtp_password','SMTP服务器密码','2','string','tianya'),
('89','cfg_online_type','在线支付网关类型','2','string','nps'),
('90','cfg_upload_switch','删除文档同时删除相关附件文件','2','bool','Y'),
('91','cfg_fck_xhtml','是否使用XHTML富文本','2','bool','N'),
('92','cfg_allsearch_limit','网站全局搜索时间限制(秒)','2','string','1'),
('93','cfg_delete','是否开启文档回收站','2','bool','Y'),
('94','cfg_keywords','首页关键词','1','string',''),
('95','cfg_description','首页描述','1','bstring',''),
('96','cfg_beian','网站备案号','1','string',''),
('97','cfg_need_typeid2','是否启用副栏目','6','bool','Y'),
('98','cfg_mb_pwdtype','前台密码验证类型32-32位md5,可选l16-前16位、r16-后16位、m16-中间16位','4','string','32'),
('99','cfg_cache_type','文档ID,content标签最终文档,修改此变量后必须更新缓存','6','string','id'),
('100','cfg_max_face','会员上传头像大小限制(KB)','3','number','2024'),
('101','cfg_typedir_df','栏目网址使用目录名(不显示默认页,则是/a/b/c形式)','2','bool','Y'),
('102','cfg_makeindex','发布文档后马上更新网站首页','6','bool','N'),
('103','cfg_make_prenext','发布文档后马上更新上下篇','6','bool','N'),
('104','cfg_make_andcat','发布文档后马上更新相关栏目','6','bool','N'),
('105','cfg_feedback_forbid','是否禁止所有评论,包括禁止顶踩等','5','bool','N'),
('106','cfg_addon_domainbind','是否绑定附件目录为指定的二级域名','7','bool','N'),
('107','cfg_addon_domain','附件目录的二级域名','7','string',''),
('108','cfg_df_dutyadmin','默认作者名称','7','string','网站管理员'),
('109','cfg_face_adds','上传头像增加积分','5','number','10'),
('110','cfg_moreinfo_adds','填写详细资料增加积分','5','number','20'),
('111','cfg_money_scores','多少积分可以兑换一个金币','5','number','50'),
('112','cfg_mb_wnameone','是否允许会员昵称重复','4','bool','N'),
('113','cfg_arc_dirname','是否允许用目录作为文档文件名,文档命名规则:{typedir}/{aid}/index.html','7','bool','Y'),
('114','cfg_puccache_time','需缓存文档全局缓存时间(秒)','6','number','36000'),
('115','cfg_arc_click','文档默认浏览数(-1表示随机1000到6000之间)','7','number','-1'),
('116','cfg_addon_savetype','附件保存形式,按data函数日期参数(y年m月d日)','3','string','ymd'),
('117','cfg_qk_uploadlit','异步上传缩略图,空间太不稳定会员关闭此项','3','bool','Y'),
('118','cfg_login_adds','登录会员中心获积分','5','number','2'),
('119','cfg_userad_adds','会员推广获积分','5','number','10'),
('120','cfg_replace_num','文档关键词替换次数(0为全部替换)','7','number','1'),
('121','cfg_uplitpic_cut','是否上传缩略图后马上弹出裁剪框','3','bool','Y'),
('122','cfg_album_mark','是否使用图集水印,小图也会受影响','3','bool','N'),
('123','cfg_mb_feedcheck','是否需要会员动态审核','4','bool','N'),
('124','cfg_mb_msgischeck','是否需要会员状态审核','4','bool','N'),
('125','cfg_title_site','是否发布和修改文档时远程发布,启用远程站点的前提下','2','bool','N'),
('126', 'cfg_domain_cookie', '跨域共享Cookie的域名', 2, 'string', ''),
('127', 'cfg_cross_sectypeid', '支持交叉栏目显示副栏目文档', '7', 'bool', 'Y'),
('128', 'cfg_digg_update', '顶踩缓存异步更新间隔(0为不缓存)', '6', 'number', '0'),
('129', 'cfg_feedback_guest', '是否允许匿名评论', '5', 'bool', 'N'),
('130', 'cfg_feedback_msglen', '评论文档字数限定', 5, 'number', '255'),
('131', 'cfg_auth_code', '商业版授权码', 1, 'bstring', ''),
('132', 'cfg_bizcore_hostname', 'DedeBIZ Core地址', 1, 'string', '127.0.0.1'),
('133', 'cfg_bizcore_port', 'DedeBIZ Core端口', 1, 'number', '8181'),
('134', 'cfg_bizcore_appid', 'DedeBIZ Core应用ID', 1, 'string', ''),
('135', 'cfg_bizcore_key', 'DedeBIZ Core通信密钥', 1, 'string', ''),
('136', 'cfg_tags_dir', '标签生成目录', 7, 'string', '{cmspath}/a/tags'),
('137', 'cfg_bizcore_api', 'DedeBIZ Core接口服务器', 1, 'string', 'http://localhost:8087');
('91','cfg_allsearch_limit','网站全局搜索时间限制(秒)','2','string','1'),
('92','cfg_delete','是否开启文档回收站','2','bool','Y'),
('93','cfg_keywords','首页关键词','1','string','dedebiz'),
('94','cfg_description','首页描述','1','bstring','DedeBIZ系统基于PHP7版本开发,具有很强的可扩展性,并且采用GPLv2协议完全开放源代码。DedeBIZ支持采用现流行的Go语言设计开发,拥有简单易用、灵活扩展特性之外更安全、高效。模板设计制作简单,一直是系统一大特点,延续之前标签,同时采用响应式模板引擎Bootstrap作为系统模板渲染引擎,让搭建跨终端和移动端全媒体站点更简单。'),
('95','cfg_beian','网站备案号','1','string',''),
('96','cfg_need_typeid2','是否启用副栏目','6','bool','Y'),
('97','cfg_mb_pwdtype','前台密码验证类型32-32位md5,可选l16-前16位、r16-后16位、m16-中间16位','4','string','32'),
('98','cfg_cache_type','文档ID,content标签最终文档,修改此变量后必须更新缓存','6','string','id'),
('99','cfg_max_face','会员上传头像大小限制(KB)','3','number','2024'),
('100','cfg_typedir_df','栏目网址使用目录名(不显示默认页,则是/a/b/c形式)','2','bool','Y'),
('101','cfg_makeindex','发布文档后马上更新网站首页','6','bool','N'),
('105','cfg_make_prenext','发布文档后马上更新上下篇','6','bool','N'),
('103','cfg_make_andcat','发布文档后马上更新相关栏目','6','bool','N'),
('104','cfg_feedback_forbid','是否禁止所有评论,包括禁止顶踩等','5','bool','N'),
('105','cfg_addon_domainbind','是否绑定附件目录为指定的二级域名','7','bool','N'),
('106','cfg_addon_domain','附件目录的二级域名','7','string',''),
('107','cfg_df_dutyadmin','默认作者名称','7','string','网站管理员'),
('108','cfg_face_adds','上传头像增加积分','5','number','10'),
('109','cfg_moreinfo_adds','填写详细资料增加积分','5','number','20'),
('110','cfg_money_scores','多少积分可以兑换一个金币','5','number','50'),
('111','cfg_mb_wnameone','是否允许会员昵称重复','4','bool','N'),
('112','cfg_arc_dirname','是否允许用目录作为文档文件名,文档命名规则:{typedir}/{aid}/index.html','7','bool','Y'),
('113','cfg_puccache_time','需缓存文档全局缓存时间(秒)','6','number','36000'),
('114','cfg_arc_click','文档默认浏览数(-1表示随机1000到6000之间)','7','number','-1'),
('115','cfg_addon_savetype','附件保存形式,按data函数日期参数(y年m月d日)','3','string','ymd'),
('116','cfg_qk_uploadlit','异步上传缩略图,空间太不稳定会员关闭此项','3','bool','Y'),
('117','cfg_login_adds','登录会员中心获积分','5','number','2'),
('118','cfg_userad_adds','会员推广获积分','5','number','10'),
('119','cfg_replace_num','文档关键词替换次数(0为全部替换)','7','number','1'),
('120','cfg_uplitpic_cut','是否上传缩略图后马上弹出裁剪框','3','bool','Y'),
('121','cfg_album_mark','是否使用图集水印,小图也会受影响','3','bool','N'),
('122','cfg_mb_feedcheck','是否需要会员动态审核','4','bool','N'),
('123','cfg_mb_msgischeck','是否需要会员状态审核','4','bool','N'),
('124','cfg_title_site','是否发布和修改文档时远程发布,启用远程站点的前提下','2','bool','N'),
('125', 'cfg_domain_cookie', '跨域共享Cookie的域名', 2, 'string', ''),
('126', 'cfg_cross_sectypeid', '支持交叉栏目显示副栏目文档', '7', 'bool', 'Y'),
('127', 'cfg_digg_update', '顶踩缓存异步更新间隔(0为不缓存)', '6', 'number', '0'),
('128', 'cfg_feedback_guest', '是否允许匿名评论', '5', 'bool', 'N'),
('129', 'cfg_feedback_msglen', '评论文档字数限定', 5, 'number', '255'),
('130', 'cfg_auth_code', '商业版授权码', 1, 'bstring', ''),
('131', 'cfg_bizcore_hostname', 'DedeBIZ Core地址', 1, 'string', '127.0.0.1'),
('132', 'cfg_bizcore_port', 'DedeBIZ Core端口', 1, 'number', '8181'),
('133', 'cfg_bizcore_appid', 'DedeBIZ Core应用ID', 1, 'string', ''),
('134', 'cfg_bizcore_key', 'DedeBIZ Core通信密钥', 1, 'string', ''),
('135', 'cfg_tags_dir', '标签生成目录', 7, 'string', '{cmspath}/a/tags'),
('136', 'cfg_bizcore_api', 'DedeBIZ Core接口服务器', 1, 'string', 'http://localhost:8087');
INSERT INTO `#@__sys_module` VALUES(1, '1f35620fb42d452fa2bdc1dee1690f92', '文件管理器', '', '', 0, ''),
(2, 'b437d85a7a7bc778c9c79b5ec36ab9aa', '友情链接', '', '', 0, ''),


+ 31
- 13
src/static/web/css/admin.css View File

@@ -24,17 +24,28 @@ option{padding:0.25rem 0}
option:checked{color:var(--blue)}
textarea{padding:0.375rem 0.75rem;color:var(--gray);background:var(--white);border:1px solid var(--gray-300);vertical-align:middle}
input:focus,select:focus,textarea:focus{color:var(--gray);background:var(--white);border-color:var(--blue-300);box-shadow:0 0 0 0.2rem rgba(0,123,255,0.25);outline:0}
.install-box{margin:0 auto;width:800px}
.install-head{padding:1rem 0;background:var(--white)}
.install-head .logo{font-size:18px;font-weight:600;color:var(--gray-dark)}
.install-head .logo img,.login-box .logo img{margin-right:0.5rem;height:36px}
.install-box{margin:0 auto;width:750px}
.install-box .card-header,.install-box .card-body{padding:1.25rem}
.install-box h1{margin:0;line-height:1.2;font-size:18px;font-weight:600;color:var(--gray-dark)}
.install-box label,.login-box label{margin-bottom:0.25rem}
.install-box .form-control,.login-box .form-control{height:36px}
.login-head{padding:1rem 0;background:var(--white)}
.login-head .logo{font-size:18px;font-weight:600;color:var(--gray-dark)}
.login-head .logo img{margin-right:0.5rem;height:32px}
.login-from{margin:5rem auto;width:500px}
.login-box{padding:1.25rem;background:var(--white)}
.login-box h1{margin-bottom:1rem;line-height:1.2;font-size:18px;font-weight:600;color:var(--gray-dark);text-align:center}
.install-box label{margin-bottom:0.25rem}
.install-box .form-control{height:36px}
.login-step{height:100vh;overflow-x:hidden}
.login-step .login-bg{height:100%;background:var(--gray-300) url(../img/login_bg.png) no-repeat top center;background-size:cover}
.login-box{padding:80px 100px}
.login-box .logo{margin-bottom:60px}
.login-box .logo a{font-size:18px;font-weight:600;color:var(--gray-dark)}
.login-box .title,.login-box .alert{margin-bottom:20px}
.login-box .title h1{margin-bottom:30px;font-size:24px;font-weight:600;color:var(--gray-dark)}
.login-from{margin-bottom:40px}
.login-from .form-group{margin-bottom:20px;position:relative}
.login-from .form-icon{position:absolute;top:16px;left:16px;z-index:998}
.login-from .form-icon i{font-size:18px!important;color:var(--gray-500)}
.login-from .form-control{padding-left:45px;height:50px}
.login-from .operate{margin-top:40px}
.login-from .operate button{width:100%;height:50px}
.admin-head{width:100%;height:60px;line-height:60px;background:linear-gradient(45deg,var(--green),var(--success-800) 100%)}
.admin-head .logo{float:left;padding-left:1.5rem;width:220px}
.admin-head .logo .name{font-size:18px;font-weight:600;color:var(--white);vertical-align:middle}
@@ -156,7 +167,7 @@ body.menu-show .body-right{left:220px;transition:all 0.5s}
.admin-input-sm{width:160px}
.admin-input-xs{width:60px}
span.page-link{color:var(--white);background:var(--green)}
table,input,select,textarea,.login-box,.colordlg,.pubdlg,.quickselitem .topcat,.mysource,.mywriter,.web-info,.upload-box,.cke_chrome,.cke_inner,.pagination,.card,.form-control,.btn,.alert,.rounded,#edsta{border-radius:0.5rem!important}
table,input,select,textarea,.web-info,.upload-box,.colordlg,.pubdlg,.quickselitem .topcat,.mysource,.mywriter,.cke_chrome,.cke_inner,.pagination,.card,.form-control,.btn,.alert,.rounded,#edsta{border-radius:0.5rem!important}
.coolbg,.pubdlg .title,.cke_top{border-radius:0.5rem 0.5rem 0 0!important}
.submenu,.quickselfoot,.coolbg-box,.cke_bottom{border-radius:0 0 0.5rem 0.5rem!important}
.page-item:first-child .page-link{border-top-left-radius:0.5rem!important;border-bottom-left-radius:0.5rem!important}
@@ -166,8 +177,15 @@ table,input,select,textarea,.login-box,.colordlg,.pubdlg,.quickselitem .topcat,.
.btn-sm{padding:0.375rem 0.6rem;height:30px;font-size:12px}
.btn-xs{padding:0.22rem;height:20px;line-height:1;font-size:12px;border-radius:0.35rem!important}
.btn+.btn{margin-left:10px}
@media (min-width:1200px){.modal-dialog{max-width:500px}}
@media (max-width:768px){td{white-space:nowrap}
.install-box,.login-from,.tips-box{width:100%}
@media (min-width:1200px){
.modal-dialog{max-width:500px}
}
@media screen and (max-width:1199px) and (min-width:992px){
.login-box{padding:30px}
}
@media (max-width:768px){
td{white-space:nowrap}
.install-box,.tips-box{width:100%}
.tips{padding:0 1rem}
.login-box{padding:30px}
}

+ 2
- 1
src/static/web/css/style.css View File

@@ -109,7 +109,8 @@ input[type=radio],input[type=checkbox],input[type=radio]:focus,input[type=checkb
#validateimg,.btn-send{border-radius:0 0.5rem 0.5rem 0!important}
#returntop{display:none;position:fixed;padding:10px 15px;right:1rem;bottom:1rem;color:var(--white);cursor:pointer;background:var(--orange);border-radius:0.5rem;border:0;z-index:9998}
#returntop:hover{background:var(--orange)}
@media (max-width:768px){.pb-m-3{padding-bottom:1rem}
@media (max-width:768px){
.pb-m-3{padding-bottom:1rem}
.login-from{width:100%}
.bannr-img,.item-theme-img img,.list-article-img img{height:250px}
.item-news-img img{height:210px}


BIN
src/static/web/img/login_bg.png View File

Before After
Width: 1260  |  Height: 870  |  Size: 209KB

+ 44
- 44
src/static/web/js/admin.list.js View File

@@ -1,3 +1,47 @@
function getCheckboxItem() {
var allSel = '';
if (document.form2.arcID.value) return document.form2.arcID.value;
for (i = 0; i < document.form2.arcID.length; i++) {
if (document.form2.arcID[i].checked) {
if (allSel == '')
allSel = document.form2.arcID[i].value;
else
allSel = allSel + "`" + document.form2.arcID[i].value;
}
}
return allSel;
}
function getOneItem() {
var allSel = '';
if (document.form2.arcID.value) return document.form2.arcID.value;
for (i = 0; i < document.form2.arcID.length; i++) {
if (document.form2.arcID[i].checked) {
allSel = document.form2.arcID[i].value;
break;
}
}
return allSel;
}
function selAll() {
if (typeof document.form2.arcID.length === "undefined") {
document.form2.arcID.checked = true;
}
for (i = 0; i < document.form2.arcID.length; i++) {
if (!document.form2.arcID[i].checked) {
document.form2.arcID[i].checked = true;
}
}
}
function noSelAll() {
if (typeof document.form2.arcID.length === "undefined") {
document.form2.arcID.checked = false;
}
for (i = 0; i < document.form2.arcID.length; i++) {
if (document.form2.arcID[i].checked) {
document.form2.arcID[i].checked = false;
}
}
}
function viewArc(aid) {
if (aid == 0) aid = getOneItem();
window.open("archives_do.php?aid=" + aid + "&dopost=viewArchives");
@@ -57,48 +101,4 @@ function delArc(aid) {
function QuickEdit(aid, e, obj) {
LoadQuickDiv(e, 'archives_do.php?dopost=quickEdit&aid=' + aid + '&rnd=' + Math.random(), 'quickEdit', 'auto', '300px');
ChangeFullDiv('show');
}
function getCheckboxItem() {
var allSel = '';
if (document.form2.arcID.value) return document.form2.arcID.value;
for (i = 0;i<document.form2.arcID.length;i++) {
if (document.form2.arcID[i].checked) {
if (allSel == '')
allSel = document.form2.arcID[i].value;
else
allSel = allSel + "`" + document.form2.arcID[i].value;
}
}
return allSel;
}
function getOneItem() {
var allSel = '';
if (document.form2.arcID.value) return document.form2.arcID.value;
for (i = 0;i<document.form2.arcID.length;i++) {
if (document.form2.arcID[i].checked) {
allSel = document.form2.arcID[i].value;
break;
}
}
return allSel;
}
function selAll() {
if (typeof document.form2.arcID.length === "undefined") {
document.form2.arcID.checked = true;
}
for (i = 0;i<document.form2.arcID.length;i++) {
if (!document.form2.arcID[i].checked) {
document.form2.arcID[i].checked = true;
}
}
}
function noSelAll() {
if (typeof document.form2.arcID.length === "undefined") {
document.form2.arcID.checked = false;
}
for (i = 0;i<document.form2.arcID.length;i++) {
if (document.form2.arcID[i].checked) {
document.form2.arcID[i].checked = false;
}
}
}

+ 1
- 2
src/static/web/js/admin.update.js View File

@@ -19,7 +19,7 @@ function update() {
if (rs.data.finish === false) {
setTimeout(() => {
update();
}, 500);
}, 1000);
} else {
currentStep++
$("#_msgInfo").html('');
@@ -50,7 +50,6 @@ function hasNewVersion() {
});
}
$(document).ready(function() {
hasNewVersion();
$("#btnCancel").click(function() {
currentStep = 1;
$("#_fileList").html(``);


+ 1
- 1
src/system/archive/searchview.class.php View File

@@ -501,7 +501,7 @@ class SearchView
$colWidth = $colWidth."%";
$innertext = trim($innertext);
if ($innertext == '') {
$innertext = GetSysTemplets("search_list.htm");
$innertext = GetSysTemplets("list_fulllist.htm");
}
//排序方式
$ordersql = '';


+ 1
- 2
src/system/common.inc.php View File

@@ -21,8 +21,7 @@ if (!defined('DEBUG_LEVEL')) {
}
if (DEDE_ENVIRONMENT == 'production') {
ini_set('display_errors', 0);
if (version_compare(PHP_VERSION, '5.3', '>='))
{
if (version_compare(PHP_VERSION, '5.3', '>=')) {
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
} else {
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE);


+ 4
- 8
src/system/inc/inc_fun_funString.php View File

@@ -5,19 +5,15 @@ function SpHtml2Text($str)
$str = preg_replace("/<sty(.*)\\/style>|<scr(.*)\\/script>|<!--(.*)-->/isU","",$str);
$alltext = '';
$start = 1;
for ($i=0;$i<strlen($str);$i++)
for ($i = 0; $i < strlen($str); $i++)
{
if ($start==0 && $str[$i]==">") {
if ($start == 0 && $str[$i] == ">") {
$start = 1;
}
else if ($start==1)
{
} else if ($start==1) {
if ($str[$i]=="<") {
$start = 0;
$alltext .= " ";
}
else if (ord($str[$i])>31)
{
} else if (ord($str[$i]) > 31) {
$alltext .= $str[$i];
}
}


+ 1
- 3
src/system/libraries/dedehttpdown.class.php View File

@@ -130,7 +130,6 @@ class DedeHttpDown
$this->m_httphead = array();
$this->m_html = '';
$this->Close();

//初始化系统
$this->PrivateInit($url);
$this->PrivateStartSession('GET');
@@ -429,8 +428,7 @@ class DedeHttpDown
fputs($this->m_fp, "Content-Type: application/x-www-form-urlencoded\r\n");
fputs($this->m_fp, "Content-Length: $plen\r\n");
}
//发送固定的结束请求头
//HTTP1.1协议必须指定文档结束后关闭链接,否则读取文档时无法使用feof判断结束
//发送固定的结束请求头HTTP1.1协议必须指定文档结束后关闭链接,否则读取文档时无法使用feof判断结束
if ($httpv == "HTTP/1.1") {
fputs($this->m_fp, "Connection: Close\r\n\r\n");
} else {


+ 1
- 1
src/system/taglib/arclist.lib.php View File

@@ -225,7 +225,7 @@ function lib_arclistDone (&$refObj, &$ctag, $typeid=0, $row=10, $col=1, $titlele
}
}
$orwheres[] = 'arc.arcrank > -1';
//否定指定栏目
//否定栏目调用
if (!empty($notypeid)) {
$orwheres[] = "and arc.typeid NOT IN (".GetSonIds($notypeid).")";
}


+ 0
- 1
src/system/taglib/arclistsg.lib.php View File

@@ -20,7 +20,6 @@ if (!defined('DEDEINC')) exit ('dedebiz');
function lib_arclistsg(&$ctag, &$refObj)
{
global $dsql, $PubFields, $cfg_keyword_like, $cfg_index_cache, $_arclistEnv, $envs, $_sys_globals;
//属性处理
$attlist = "typeid|0,row|10,col|1,flag|,titlelen|30,sort|default,keyword|,innertext|,arcid|0,idlist|,channelid|0,limit|,orderway|desc,subday|0";
FillAttsDefault($ctag->CAttribute->Items, $attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);


+ 1
- 2
src/system/taglib/cattree.lib.php View File

@@ -10,8 +10,7 @@ if (!defined('DEDEINC')) exit ('dedebiz');
function lib_cattree(&$ctag, &$refObj)
{
global $dsql;
//属性处理showall在空或不存在时,强制用产品模型id;如果是yes刚显示整个语言区栏目树,为其它数字则是这个数字的模型的id;typeid指定顶级树id,指定后,前一个属性无效
$attlist = "showall|,catid|0";
$attlist = "showall|,catid|0"; //showall在空或不存在时,强制用产品模型id;如果是yes刚显示整个语言区栏目树,为其它数字则是这个数字的模型的id;typeid指定顶级树id,指定后,前一个属性无效
FillAttsDefault($ctag->CAttribute->Items, $attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$revalue = '';


+ 2
- 3
src/system/taglib/channelartlist.lib.php View File

@@ -13,8 +13,7 @@ require_once(DEDEINC.'/archive/partview.class.php');
function lib_channelartlist(&$ctag, &$refObj)
{
global $dsql, $envs, $_sys_globals;
//添加不调用指定栏目参数notypeid
$attlist = 'typeid|0,row|20,cacheid|,notypeid|0,currentstyle|';
$attlist = "typeid|0,row|10,cacheid|,notypeid|0,currentstyle|"; //后续添加否定栏目调用notypeid
FillAttsDefault($ctag->CAttribute->Items, $attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$innertext = trim($ctag->GetInnerText());
@@ -42,7 +41,7 @@ function lib_channelartlist(&$ctag, &$refObj)
$tpsql = " id IN($typeid) AND ishidden<>1 ";
}
}
//否定指定栏目
//否定栏目调用
if ($notypeid!=0) {
$tpsql = $tpsql."and not(id in($notypeid))";
}


+ 3
- 4
src/system/taglib/demotag.lib.php View File

@@ -12,13 +12,12 @@ if (!defined('DEDEINC')) exit ('dedebiz');
function lib_demotag(&$ctag, &$refObj)
{
global $dsql, $envs;
//属性处理
$attlist = "row|12,titlelen|24";
$attlist = "row|10,titlelen|30";
FillAttsDefault($ctag->CAttribute->Items, $attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$revalue = '';
//您需编写的代码,不能用echo之类语法,把最终返回值传给$revalue
$revalue = 'Hello Word!';
//不能用echo之类语法,把最终返回值传给$revalue
$revalue = '您好,欢迎使用DedeBIZ';
return $revalue;
}
?>

+ 1
- 1
src/system/taglib/feedback.lib.php View File

@@ -12,7 +12,7 @@ if (!defined('DEDEINC')) exit ('dedebiz');
function lib_feedback(&$ctag, &$refObj)
{
global $dsql;
$attlist = "row|12,titlelen|30,infolen|100,orderby|";
$attlist = "row|10,titlelen|30,infolen|150,orderby|";
FillAttsDefault($ctag->CAttribute->Items, $attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$innertext = trim($ctag->GetInnerText());


+ 1
- 2
src/system/taglib/infoguide.lib.php View File

@@ -12,8 +12,7 @@ if (!defined('DEDEINC')) exit ('dedebiz');
function lib_infoguide(&$ctag, &$refObj)
{
global $dsql, $nativeplace, $infotype, $hasSetEnumJs, $cfg_mainsite;
//属性处理
//$attlist="row|12,titlelen|30";
//$attlist="row|10,titlelen|30";
//FillAttsDefault($ctag->CAttribute->Items,$attlist);
//extract($ctag->CAttribute->Items, EXTR_SKIP);
if (empty($refObj->Fields['typeid'])) {


+ 1
- 2
src/system/taglib/infolink.lib.php View File

@@ -26,8 +26,7 @@ function is_str_float($value){
function lib_infolink(&$ctag, &$refObj)
{
global $dsql, $nativeplace, $infotype, $cfg_rewrite, $cfg_mainsite, $em_nativeplaces, $em_infotypes;
//属性处理
//$attlist="row|12,titlelen|30";
//$attlist="row|10,titlelen|30";
//FillAttsDefault($ctag->CAttribute->Items,$attlist);
//extract($ctag->CAttribute->Items, EXTR_SKIP);
$baseurl = preg_replace("#\/$#", '', $cfg_mainsite);


+ 1
- 2
src/system/taglib/likearticle.lib.php View File

@@ -12,8 +12,7 @@ if (!defined('DEDEINC')) exit ('dedebiz');
function lib_likearticle(&$ctag, &$refObj)
{
global $dsql;
//属性处理
$attlist = "row|12,titlelen|28,infolen|150,col|1,tablewidth|100,mytypeid|0,byabs|0,imgwidth|120,imgheight|90";
$attlist = "row|10,titlelen|30,infolen|160,col|1,tablewidth|100,mytypeid|0,byabs|0,imgwidth|120,imgheight|90";
FillAttsDefault($ctag->CAttribute->Items, $attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$revalue = '';


+ 3
- 4
src/system/taglib/likesgpage.lib.php View File

@@ -12,14 +12,13 @@ if (!defined('DEDEINC')) exit ('dedebiz');
function lib_likesgpage(&$ctag, &$refObj)
{
global $dsql;
//把属性转为变量,如果不想进行此步骤,也可以直接从 $ctag->CAttribute->Items 获得,这样也可以支持中文名
$attlist = "row|8";
$attlist = "row|10"; //把属性转为变量,如果不想进行此步骤,也可以直接从$ctag->CAttribute->Items获得,这样也可以支持中文名
FillAttsDefault($ctag->CAttribute->Items, $attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$innertext = trim($ctag->GetInnerText());
$aid = (isset($refObj->Fields['aid']) ? $refObj->Fields['aid'] : 0);
$revalue = '';
if ($innertext == '') $innertext = GetSysTemplets("part_likesgpage.htm");
if ($innertext == '') $innertext = GetSysTemplets("part_arclist.htm");
$likeid = (empty($refObj->Fields['likeid']) ? 'all' : $refObj->Fields['likeid']);
$dsql->SetQuery("SELECT aid,title,filename FROM `#@__sgpage` WHERE likeid LIKE '$likeid' LIMIT 0,$row");
$dsql->Execute();
@@ -34,7 +33,7 @@ function lib_likesgpage(&$ctag, &$refObj)
}
$revalue .= $ctp->GetResult();
} else {
$revalue .= '<dd class="cur"><span>'.$row['title'].'</span></dd>';
$revalue .= '<p>'.$row['title'].'</p>';
}
}
return $revalue;


+ 1
- 1
src/system/taglib/loop.lib.php View File

@@ -12,7 +12,7 @@ if (!defined('DEDEINC')) exit ('dedebiz');
function lib_loop(&$ctag, &$refObj)
{
global $dsql;
$attlist = "table|,tablename|,row|8,sort|,if|,ifcase|,orderway|desc";
$attlist = "table|,tablename|,row|10,sort|,if|,ifcase|,orderway|desc";
FillAttsDefault($ctag->CAttribute->Items, $attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$innertext = trim($ctag->GetInnertext());


+ 1
- 1
src/system/taglib/productimagelist.lib.php View File

@@ -15,8 +15,8 @@ function lib_productimagelist(&$ctag, &$refObj)
extract($ctag->CAttribute->Items, EXTR_SKIP);
if (!isset($refObj->addTableRow['imgurls'])) return;
$revalue = '';
if (empty($innerText)) $innerText = GetSysTemplets('part_arclist.htm');
$innerText = trim($ctag->GetInnerText());
if (empty($innerText)) $innerText = GetSysTemplets('productimagelist.htm');
$dtp = new DedeTagParse();
$dtp->LoadSource($refObj->addTableRow['imgurls']);
$images = array();


+ 1
- 3
src/system/taglib/relation.lib.php View File

@@ -9,12 +9,10 @@ if (!defined('DEDEINC')) exit ('dedebiz');
* @license GNU GPL v2 (https://www.dedebiz.com/license)
* @link https://www.dedebiz.com
*/
//关联文档
function lib_relation(&$ctag, &$refObj)
{
global $dsql;
//属性处理
$attlist = "row|12,titlelen|28,infolen|150,name|default,orderby|";
$attlist = "row|10,titlelen|30,infolen|160,name|default,orderby|";
FillAttsDefault($ctag->CAttribute->Items, $attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
if (get_class($refObj) != "Archives") {


+ 0
- 1
src/system/taglib/statistics.lib.php View File

@@ -13,7 +13,6 @@ require_once(DEDEINC."/libraries/statistics.class.php");
function lib_statistics(&$ctag, &$refObj)
{
global $envs;
//属性处理
$attlist = '';
FillAttsDefault($ctag->CAttribute->Items, $attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);


+ 0
- 1
src/system/taglib/tag.lib.php View File

@@ -12,7 +12,6 @@ if (!defined('DEDEINC')) exit ('dedebiz');
function lib_tag(&$ctag, &$refObj)
{
global $dsql, $envs, $cfg_cmsurl, $cfg_tags_dir;
//属性处理
$attlist = "row|30,sort|new,getall|0,typeid|0,ishtml|0";
FillAttsDefault($ctag->CAttribute->Items, $attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);


+ 1
- 1
src/system/taglib/type.lib.php View File

@@ -12,7 +12,7 @@ if (!defined('DEDEINC')) exit ('dedebiz');
function lib_type(&$ctag, &$refObj)
{
global $dsql, $envs;
$attlist = 'typeid|0';
$attlist = "typeid|0";
FillAttsDefault($ctag->CAttribute->Items, $attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$innertext = trim($ctag->GetInnerText());


+ 1
- 1
src/system/taglib/userinfo.lib.php View File

@@ -12,7 +12,7 @@ if (!defined('DEDEINC')) exit ('dedebiz');
function lib_userinfo(&$ctag, &$refObj)
{
global $dsql;
$attlist="mid|0";
$attlist = "mid|0";
FillAttsDefault($ctag->CAttribute->Items,$attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$rmid = !empty($refObj->Fields['mid'])? intval($refObj->Fields['mid']) : 0;


+ 1
- 2
src/system/taglib/vote.lib.php View File

@@ -13,10 +13,9 @@ require_once(DEDEINC.'/dedevote.class.php');
function lib_vote(&$ctag, &$refObj)
{
global $dsql;
$attlist = "id|0,lineheight|30,tablewidth|100%,titlebgcolor|#EDEDE2,titlebackgroup|,tablebg|#ffffff";
$attlist = "id|0,lineheight|30,tablewidth|100%,titlebgcolor|#dee2e6,titlebackgroup|,tablebg|#ffffff";
FillAttsDefault($ctag->CAttribute->Items, $attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
if (empty($id)) $id = 0;
if ($id == 0) {
$row = $dsql->GetOne("SELECT aid FROM `#@__vote` ORDER BY aid DESC LIMIT 0,1");


+ 0
- 1
src/system/tpllib/plus_channel.php View File

@@ -82,7 +82,6 @@ function plus_channel(&$atts, &$refObj, &$fields)
$reArray[] = $row;
$GLOBALS['autoindex']++;
}
//Loop for $i
$dsql->FreeResult();
return $reArray;
}

+ 1
- 2
src/user/edit_baseinfo.php View File

@@ -36,8 +36,7 @@ if ($dopost == 'save') {
$pwd = $row['pwd'];
}
} else {
if (function_exists('password_hash'))
{
if (function_exists('password_hash')) {
$pp = "pwd_new";
$pwd = password_hash($userpwd, PASSWORD_BCRYPT);
$pwd2 = password_hash($userpwd, PASSWORD_BCRYPT);


Loading…
Cancel
Save