Browse Source

Merge remote-tracking branch 'origin/new' into develop

tags/6.2.0
tianya 1 year ago
parent
commit
30cdcdac1e
52 changed files with 537 additions and 759 deletions
  1. +1
    -1
      src/admin/article_keywords_select.php
  2. +0
    -76
      src/admin/baidunews.php
  3. +3
    -3
      src/admin/catalog_add.php
  4. +83
    -83
      src/admin/catalog_edit.php
  5. +2
    -2
      src/admin/dialog/select_templets_post.php
  6. +1
    -1
      src/admin/inc/inc_menu.php
  7. +2
    -2
      src/admin/mychannel_main.php
  8. +2
    -2
      src/admin/shops_operations_cart.php
  9. +3
    -3
      src/admin/shops_operations_userinfo.php
  10. +1
    -1
      src/admin/templets/action_search.htm
  11. +1
    -1
      src/admin/templets/ad_main.htm
  12. +0
    -41
      src/admin/templets/baidunews.htm
  13. +12
    -35
      src/admin/templets/cards_type.htm
  14. +4
    -4
      src/admin/templets/catalog_add.htm
  15. +5
    -5
      src/admin/templets/catalog_edit.htm
  16. +10
    -12
      src/admin/templets/content_att.htm
  17. +1
    -3
      src/admin/templets/freelist_add.htm
  18. +1
    -3
      src/admin/templets/freelist_edit.htm
  19. +2
    -1
      src/admin/templets/friendlink_type.htm
  20. +1
    -1
      src/admin/templets/member_main.htm
  21. +2
    -4
      src/admin/templets/mychannel_main.htm
  22. +1
    -1
      src/admin/templets/stepselect_main.htm
  23. +1
    -3
      src/admin/templets/sys_admin_user_add.htm
  24. +1
    -3
      src/admin/templets/sys_group_add.htm
  25. +6
    -12
      src/admin/templets/sys_sql_query.htm
  26. +1
    -1
      src/admin/templets/tags_main.htm
  27. +5
    -5
      src/admin/templets/templets_one_edit.htm
  28. +1
    -2
      src/admin/templets/tpl_newfile.htm
  29. +1
    -1
      src/admin/templets/update_guide_getfiles.htm
  30. +8
    -48
      src/data/config.file.inc.php
  31. +1
    -1
      src/index.php
  32. +3
    -3
      src/install/config.cache.inc.php
  33. +249
    -167
      src/install/sql-dfdata.txt
  34. +3
    -3
      src/install/sql-dftables.txt
  35. +1
    -2
      src/install/templates/step-1.html
  36. +13
    -9
      src/install/v57sp2_to_v6.txt
  37. +0
    -18
      src/system/dedetemplate.class.php
  38. +1
    -1
      src/system/helpers/channelunit.helper.php
  39. +22
    -26
      src/system/helpers/code.helper.php
  40. +18
    -75
      src/system/libraries/agent.class.php
  41. +5
    -25
      src/system/libraries/crawlerdetect.class.php
  42. +34
    -34
      src/system/libraries/mail.class.php
  43. +9
    -18
      src/system/libraries/statistics.class.php
  44. +2
    -2
      src/theme/plus/download_links_templet.htm
  45. +2
    -2
      src/theme/plus/flink-add.htm
  46. +2
    -2
      src/theme/plus/flink-list.htm
  47. +2
    -2
      src/theme/plus/heightsearch.htm
  48. +2
    -2
      src/theme/plus/recommend.htm
  49. +2
    -2
      src/theme/plus/view_msg.htm
  50. +1
    -1
      src/theme/templets/navbar.htm
  51. +3
    -3
      src/user/ajax_feedback.php
  52. +0
    -1
      src/user/operation.php

+ 1
- 1
src/admin/article_keywords_select.php View File

@@ -23,7 +23,7 @@ $dlist->Display();
function GetSta($sta)
{
if ($sta == 1) return "正常";
else return "<span style='color:#dc3545'>禁用</span>";
else return "<span class='text-danger'>禁用</span>";
}
function GetMan($sta)
{


+ 0
- 76
src/admin/baidunews.php View File

@@ -1,76 +0,0 @@
<?php
/**
* 百度新闻
*
* @version $Id: baidunews.php 1 14:31 2010年7月12日Z tianya $
* @package DedeBIZ.Administrator
* @copyright Copyright (c) 2022, DedeBIZ.COM
* @license https://www.dedebiz.com/license
* @link https://www.dedebiz.com
*/
require_once(dirname(__FILE__)."/config.php");
$filename = str_replace("..", "", $filename);
$filename = str_replace("{cmspath}", $cfg_cmspath, $filename);
if (empty($do)) {
include DEDEADMIN.'/templets/baidunews.htm';
} else {
$baidunews = "<?xml version=\"1.0\" encoding=\"".$cfg_soft_lang."\" ?>\n";
$baidunews .= "<document>\n";
$baidunews .= "<webSite>$cfg_webname </webSite>\n";
$baidunews .= "<webMaster>$cfg_adminemail </webMaster>\n";
$baidunews .= "<updatePeri>$cfg_updateperi </updatePeri>\n";
$limit = $cfg_baidunews_limit;
if ($limit > 100 || $limit < 1) {
$limit = 100;
}
$query = "SELECT maintable.*, addtable.body, arctype.typename
FROM `#@__archives` maintable
LEFT JOIN `#@__addonarticle` addtable ON addtable.aid=maintable.id
LEFT JOIN `#@__arctype` arctype ON arctype.ID=maintable.typeid
WHERE maintable.channel=1 and maintable.arcrank!=-1 ORDER BY maintable.pubdate DESC LIMIT $limit
";
$dsql->SetQuery($query);
$dsql->Execute();
$proto = IsSSL()? "https://" : "http://";
while ($row = $dsql->GetArray()) {
$title = dede_htmlspecialchars($row['title']);
$row1 = GetOneArchive($row['id']);
if ((strpos($row1['arcurl'], 'http://') === false) || (strpos($row1['arcurl'], 'https://') === false)) {
$link = ($cfg_basehost == '' ? $proto.$_SERVER["HTTP_HOST"].$cfg_cmspath : $cfg_basehost).$row1['arcurl'];
} else {
$link = $row1['arcurl'];
}
$link = dede_htmlspecialchars($link);
$description = dede_htmlspecialchars(strip_tags($row['description']));
$text = dede_htmlspecialchars(strip_tags($row['body']));
$image = $row['litpic'] == '' ? '' : $row['litpic'];
if ($image != '' && (strpos($image, 'http://') === false) || (strpos($image, 'https://') === false)) {
$image = ($cfg_basehost == '' ? $proto.$_SERVER["HTTP_HOST"].$cfg_cmspath : $cfg_basehost).$image;
}
//$headlineimg = '';
$keywords = dede_htmlspecialchars($row['keywords']);
$category = dede_htmlspecialchars($row['typename']);
$author = dede_htmlspecialchars($row['writer']);
$source = dede_htmlspecialchars($row['source']);
$pubdate = dede_htmlspecialchars(gmdate('Y-m-d H:i', $row['pubdate'] + $cfg_cli_time * 3600));
$baidunews .= "<item>\n";
$baidunews .= "<title>$title </title>\n";
$baidunews .= "<link>$link </link>\n";
$baidunews .= "<description>$description </description>\n";
$baidunews .= "<text>$text </text>\n";
$baidunews .= "<image>$image </image>\n";
//$baidunews .= "<headlineimages/>\n";
$baidunews .= "<keywords>$keywords </keywords>\n";
$baidunews .= "<category>$category </category>\n";
$baidunews .= "<author>$author </author>\n";
$baidunews .= "<source>$source </source>\n";
$baidunews .= "<pubDate>$pubdate </pubDate>\n";
$baidunews .= "</item>\n";
}
$baidunews .= "</document>\n";
$fname = str_replace("//","/",DEDEROOT.$filename) ;
$fp = fopen($fname, 'w');
fwrite($fp, $baidunews);
fclose($fp);
showmsg("<a href='{$filename}' target=\"_blank\">{$filename}生成成功</a>", 'javascript:;');
}

+ 3
- 3
src/admin/catalog_add.php View File

@@ -50,7 +50,7 @@ else if ($dopost == 'savequick') {
$tempindex = "{style}/index_{$nid}.htm";
$templist = "{style}/list_{$nid}.htm";
$temparticle = "{style}/article_{$nid}.htm";
$queryTemplate = "INSERT INTO `#@__arctype`(reid,topid,sortrank,typename,namegk,enname,ennamegk,bigpic,litimg,typedir,isdefault,defaultname,issend,channeltype,tempindex,templist,temparticle,modname,namerule,namerule2,ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`content`,`smalltypes`)
$queryTemplate = "INSERT INTO `#@__arctype`(reid,topid,sortrank,typename,cnoverview,enname,enoverview,bigpic,litimg,typedir,isdefault,defaultname,issend,channeltype,tempindex,templist,temparticle,modname,namerule,namerule2,ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`content`,`smalltypes`)
VALUES('~reid~','~topid~','~rank~','~typename~','','','','','','~typedir~','$isdefault','$defaultname','$issend','$channeltype','$tempindex','$templist','$temparticle','default','$namerule','$namerule2','0','0','','','~typename~','0','','','0','0','0','','')";
if (empty($savetype)) {
foreach ($_POST as $k => $v) {
@@ -176,8 +176,8 @@ else if ($dopost == 'save') {
exit();
}
}
$in_query = "INSERT INTO `#@__arctype`(reid,topid,sortrank,typename,namegk,enname,ennamegk,bigpic,litimg,typedir,isdefault,defaultname,issend,channeltype,tempindex,templist,temparticle,modname,namerule,namerule2,ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`content`,`smalltypes`)
VALUES('$reid','$topid','$sortrank','$typename','$namegk','$enname','$ennamegk','$bigpic','$litimg','$typedir','$isdefault','$defaultname','$issend','$channeltype','$tempindex','$templist','$temparticle','default','$namerule','$namerule2','$ispart','$corank','$description','$keywords','$seotitle','$moresite','$siteurl','$sitepath','$ishidden','$cross','$crossid','$content','$smalltypes')";
$in_query = "INSERT INTO `#@__arctype`(reid,topid,sortrank,typename,cnoverview,enname,enoverview,bigpic,litimg,typedir,isdefault,defaultname,issend,channeltype,tempindex,templist,temparticle,modname,namerule,namerule2,ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`content`,`smalltypes`)
VALUES('$reid','$topid','$sortrank','$typename','$cnoverview','$enname','$enoverview','$bigpic','$litimg','$typedir','$isdefault','$defaultname','$issend','$channeltype','$tempindex','$templist','$temparticle','default','$namerule','$namerule2','$ispart','$corank','$description','$keywords','$seotitle','$moresite','$siteurl','$sitepath','$ishidden','$cross','$crossid','$content','$smalltypes')";
if (!$dsql->ExecuteNoneQuery($in_query)) {
ShowMsg("保存目录数据时失败,请检查您的输入资料是否存在问题", "-1");
exit();


+ 83
- 83
src/admin/catalog_edit.php View File

@@ -33,9 +33,9 @@ if ($dopost == "save") {
issend='$issend',
sortrank='$sortrank',
typename='$typename',
namegk='$namegk',
cnoverview='$cnoverview',
enname='$enname',
ennamegk='$ennamegk',
enoverview='$enoverview',
bigpic='$bigpic',
litimg='$litimg',
typedir='$typedir',
@@ -158,87 +158,87 @@ while ($row = $dsql->GetObject()) {
PutCookie('lastCid', GetTopid($id), 3600 * 24, "/");
if ($dopost == 'time') {
?>
<form name="form1" action="catalog_edit.php" method="post" onSubmit="return checkSubmit();">
<input type="hidden" name="dopost" value="savetime">
<input type="hidden" name="id" value="<?php echo $id; ?>">
<input type="hidden" name="topid" value="<?php echo $myrow['topid']; ?>">
<input type="hidden" name="moresite" value="<?php echo $myrow['moresite']; ?>">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td width="160" class="bline" height="26" align="center">是否支持投稿:</td>
<td class="bline">
<label><input type='radio' name='issend' value='0' class='np' <?php if ($myrow['issend'] == "0") echo " checked='1' "; ?>>&nbsp;不支持</label>
<label><input type='radio' name='issend' value='1' class='np' <?php if ($myrow['issend'] == "1") echo " checked='1' "; ?>>&nbsp;支持</label>
</td>
</tr>
<tr>
<td class="bline" height="26" align="center">内容模型:</td>
<td class="bline">
<?php
foreach ($channelArray as $k => $arr) {
if ($k == $channelid) echo "{$arr['typename']} | {$arr['nid']}";
}
?>
<a href='catalog_edit.php?id=<?php echo $id; ?>' class='btn btn-success btn-sm'>更多模型</a>
</td>
</tr>
<tr>
<td class="bline" height="26" align="center">栏目名称:</td>
<td class="bline"><input name="typename" type="text" id="typename" value="<?php echo $myrow['typename'] ?>" style="width:260px" class="iptxt"></td>
</tr>
<tr>
<td class="bline" height="26" align="center"> 排列顺序:</td>
<td class="bline"> <input name="sortrank" type="text" value="<?php echo $myrow['sortrank'] ?>" style="width:100px" class="iptxt">(由低 &gt; 高)</td>
</tr>
<tr>
<td class="bline" height="26" align="center">浏览权限:</td>
<td class="bline">
<select name="corank" id="corank" style="width:100px">
<?php
$dsql->SetQuery("SELECT * FROM `#@__arcrank` WHERE `rank` >= 0");
$dsql->Execute();
while ($row = $dsql->GetObject()) {
if ($myrow['corank'] == $row->rank)
echo "<option value='".$row->rank."' selected>".$row->membername."</option>\r\n";
else
echo "<option value='".$row->rank."'>".$row->membername."</option>\r\n";
}
?>
</select>(仅限制栏目里的文档浏览权限)
</td>
</tr>
<tr>
<td class="bline" height="26" align="center">文件保存目录:</td>
<td class="bline"><input name="typedir" type="text" id="typedir" value="<?php echo $myrow['typedir'] ?>" style="width:260px"class="iptxt"></td>
</tr>
<tr>
<td height="26" align="center" class="bline">栏目列表选项:</td>
<td class="bline">
<label><input type='radio' name='isdefault' value='1' class='np' <?php if ($myrow['isdefault'] == 1) echo " checked='1' "; ?>>&nbsp;链接到默认页</label>
<label><input type='radio' name='isdefault' value='0' class='np' <?php if ($myrow['isdefault'] == 0) echo " checked='1' "; ?>>&nbsp;链接到列表第一页</label>
<label><input type='radio' name='isdefault' value='-1' class='np' <?php if ($myrow['isdefault'] == -1) echo " checked='1' "; ?>>&nbsp;使用动态页</label>
</td>
</tr>
<tr>
<td class="bline" height="26" align="center">默认页的名称:</td>
<td class="bline"><input name="defaultname" type="text" value="<?php echo $myrow['defaultname'] ?>" style="width:260px" class="iptxt"></td>
</tr>
<tr>
<td height="26" class="bline" align="center">栏目属性:</td>
<td class="bline">
<label><input name="ispart" type="radio" id="radio" value="0" class='np' <?php if ($myrow['ispart'] == 0) echo " checked='1' "; ?>>&nbsp;最终列表栏目(允许在本栏目发布文档,并生成文档列表)</label><br>
<label><input name="ispart" type="radio" id="radio2" value="1" class='np' <?php if ($myrow['ispart'] == 1) echo " checked='1' "; ?>>&nbsp;频道封面(栏目本身不允许发布文档)</label><br>
<label><input name="ispart" type="radio" id="radio3" value="2" class='np' <?php if ($myrow['ispart'] == 2) echo " checked='1' "; ?>>&nbsp;外部连接(在"文件保存目录"处填写网址)</label>
</td>
</tr>
<tr>
<td bgcolor="#F8FCF1" colspan="2" align="center" class="py-3">
<button onclick='getSelCat("<?php echo $targetid; ?>");' class='btn btn-success btn-sm'>保存</button>
<button type='button' onclick='CloseMsg()' class='btn btn-success btn-sm'>关闭</button>
</td>
</tr>
</table>
</form>
<form name="form1" action="catalog_edit.php" method="post" onSubmit="return checkSubmit();">
<input type="hidden" name="dopost" value="savetime">
<input type="hidden" name="id" value="<?php echo $id; ?>">
<input type="hidden" name="topid" value="<?php echo $myrow['topid']; ?>">
<input type="hidden" name="moresite" value="<?php echo $myrow['moresite']; ?>">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td width="160" class="bline" height="26" align="center">是否支持投稿:</td>
<td class="bline">
<label><input type='radio' name='issend' value='0' class='np' <?php if ($myrow['issend'] == "0") echo " checked='1' "; ?>>&nbsp;不支持</label>
<label><input type='radio' name='issend' value='1' class='np' <?php if ($myrow['issend'] == "1") echo " checked='1' "; ?>>&nbsp;支持</label>
</td>
</tr>
<tr>
<td class="bline" height="26" align="center">内容模型:</td>
<td class="bline">
<?php
foreach ($channelArray as $k => $arr) {
if ($k == $channelid) echo "{$arr['typename']} | {$arr['nid']}";
}
?>
<a href='catalog_edit.php?id=<?php echo $id; ?>' class='btn btn-success btn-sm'>更多模型</a>
</td>
</tr>
<tr>
<td class="bline" height="26" align="center">栏目名称:</td>
<td class="bline"><input name="typename" type="text" id="typename" value="<?php echo $myrow['typename'] ?>" style="width:260px" class="iptxt"></td>
</tr>
<tr>
<td class="bline" height="26" align="center"> 排列顺序:</td>
<td class="bline"> <input name="sortrank" type="text" value="<?php echo $myrow['sortrank'] ?>" style="width:100px" class="iptxt">(由低 &gt; 高)</td>
</tr>
<tr>
<td class="bline" height="26" align="center">浏览权限:</td>
<td class="bline">
<select name="corank" id="corank" style="width:100px">
<?php
$dsql->SetQuery("SELECT * FROM `#@__arcrank` WHERE `rank` >= 0");
$dsql->Execute();
while ($row = $dsql->GetObject()) {
if ($myrow['corank'] == $row->rank)
echo "<option value='".$row->rank."' selected>".$row->membername."</option>\r\n";
else
echo "<option value='".$row->rank."'>".$row->membername."</option>\r\n";
}
?>
</select>(仅限制栏目里的文档浏览权限)
</td>
</tr>
<tr>
<td class="bline" height="26" align="center">文件保存目录:</td>
<td class="bline"><input name="typedir" type="text" id="typedir" value="<?php echo $myrow['typedir'] ?>" style="width:260px"class="iptxt"></td>
</tr>
<tr>
<td height="26" align="center" class="bline">栏目列表选项:</td>
<td class="bline">
<label><input type='radio' name='isdefault' value='1' class='np' <?php if ($myrow['isdefault'] == 1) echo " checked='1' "; ?>>&nbsp;链接到默认页</label>
<label><input type='radio' name='isdefault' value='0' class='np' <?php if ($myrow['isdefault'] == 0) echo " checked='1' "; ?>>&nbsp;链接到列表第一页</label>
<label><input type='radio' name='isdefault' value='-1' class='np' <?php if ($myrow['isdefault'] == -1) echo " checked='1' "; ?>>&nbsp;使用动态页</label>
</td>
</tr>
<tr>
<td class="bline" height="26" align="center">默认页的名称:</td>
<td class="bline"><input name="defaultname" type="text" value="<?php echo $myrow['defaultname'] ?>" style="width:260px" class="iptxt"></td>
</tr>
<tr>
<td height="26" class="bline" align="center">栏目属性:</td>
<td class="bline">
<label><input name="ispart" type="radio" id="radio" value="0" class='np' <?php if ($myrow['ispart'] == 0) echo " checked='1' "; ?>>&nbsp;最终列表栏目(允许在本栏目发布文档,并生成文档列表)</label><br>
<label><input name="ispart" type="radio" id="radio2" value="1" class='np' <?php if ($myrow['ispart'] == 1) echo " checked='1' "; ?>>&nbsp;频道封面(栏目本身不允许发布文档)</label><br>
<label><input name="ispart" type="radio" id="radio3" value="2" class='np' <?php if ($myrow['ispart'] == 2) echo " checked='1' "; ?>>&nbsp;外部连接(在"文件保存目录"处填写网址)</label>
</td>
</tr>
<tr>
<td bgcolor="#F8FCF1" colspan="2" align="center" class="py-3">
<button onclick='getSelCat("<?php echo $targetid; ?>");' class='btn btn-success btn-sm'>保存</button>
<button type='button' onclick='CloseMsg()' class='btn btn-success btn-sm'>关闭</button>
</td>
</tr>
</table>
</form>
<?php
exit();
} else {


+ 2
- 2
src/admin/dialog/select_templets_post.php View File

@@ -14,11 +14,11 @@ if (empty($uploadfile)) {
$uploadfile = "";
}
if (!is_uploaded_file($uploadfile)) {
ShowMsg("您没有选择上传的文件!", "-1");
ShowMsg("您没有选择上传的文件", "-1");
exit();
}
if (!preg_match("#^text#", $uploadfile_type)) {
ShowMsg("您上传的不是文本类型附件!", "-1");
ShowMsg("您上传的不是文本类型附件", "-1");
exit();
}
if (!preg_match("#\.(".$cfg_txttype.")#i", $uploadfile_name)) {


+ 1
- 1
src/admin/inc/inc_menu.php View File

@@ -116,7 +116,7 @@ $adminMenu1
<m:item name='会员短信管理' link='member_pm.php' rank='member_Type' target='main' />
</m:top>
$adminMenu2
<m:top item='1_5_10_' name='系统帮助' display='none'>
<m:top item='5_10_' name='系统帮助' display='none'>
<m:item name='系统概况' link='$cfg_biz_helpUrl' rank='' target='_blank' />
<m:item name='代码托管' link='$cfg_biz_gitUrl' rank='' target='_blank' />
</m:top>";

+ 2
- 2
src/admin/mychannel_main.php View File

@@ -20,9 +20,9 @@ $dlist->display();
function GetSta($sta, $id)
{
if ($sta == 1) {
return ($id != -1 ? "启用 &gt; <a href='mychannel_edit.php?dopost=hide&id=$id'>禁用</a>" : "固定项目");
return ($id != -1 ? "<span class='text-success'>启用</span> &gt; <a href='mychannel_edit.php?dopost=hide&id=$id'>禁用</a>" : "固定项目");
} else {
return "禁用 &gt; <a href='mychannel_edit.php?dopost=show&id=$id'>启用</a>";
return "<span class='text-danger'>禁用</span> &gt; <a href='mychannel_edit.php?dopost=show&id=$id'>启用</a>";
}
}
function IsSystem($s)


+ 2
- 2
src/admin/shops_operations_cart.php View File

@@ -11,9 +11,9 @@
require_once(dirname(__FILE__)."/config.php");
require_once(DEDEINC."/datalistcp.class.php");
CheckPurview('shops_Operations');
if (!isset($oid)) exit("<a href='javascript:window.close()'>无效操作!</a>");
if (!isset($oid)) exit("<a href='javascript:window.close()'>无效操作</a>");
$oid = preg_replace("#[^-0-9A-Z]#", "", $oid);
if (empty($oid)) exit("<a href='javascript:window.close()'>无效订单号!</a>");
if (empty($oid)) exit("<a href='javascript:window.close()'>无效订单号</a>");
$row = $dsql->GetOne("SELECT * FROM `#@__shops_userinfo` WHERE oid='$oid'");
$sql = "SELECT o.*,p.title,p.price as uprice,d.dname FROM `#@__shops_orders` as o left join `#@__shops_products` as p on o.oid=p.oid left join `#@__shops_delivery` as d on d.pid=o.pid WHERE o.oid='$oid'";
$dlist = new DataListCP();


+ 3
- 3
src/admin/shops_operations_userinfo.php View File

@@ -10,13 +10,13 @@
*/
require_once(dirname(__FILE__)."/config.php");
CheckPurview('shops_Operations');
if (!isset($oid)) exit("<a href='javascript:window.close()'>无效操作!</a>");
if (!isset($oid)) exit("<a href='javascript:window.close()'>无效操作</a>");
$oid = preg_replace("#[^-0-9A-Z]#", "", $oid);
if (empty($oid)) exit("<a href='javascript:window.close()'>无效订单号!</a>");
if (empty($oid)) exit("<a href='javascript:window.close()'>无效订单号</a>");
$rows = $dsql->GetOne("SELECT * FROM `#@__shops_userinfo` WHERE oid='$oid' LIMIT 0,1");
if (!is_array($rows)) {
$dsql->Close();
exit("<a href='javascript:window.close()'>该订单下没相关用户信息!</a>");
exit("<a href='javascript:window.close()'>该订单下没相关用户信息</a>");
}
$row = $dsql->GetOne("SELECT pid,dprice FROM `#@__shops_orders` WHERE oid='$oid'");
if (is_array($row)) {


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

@@ -26,7 +26,7 @@
<tr>
<td align="center">
<table width="98%" cellspacing="0" cellpadding="5">
<?php foreach ($row['soniterm'] as $rows) {?>
<?php foreach ($row['soniterm'] as $rows) { ?>
<tr>
<td align="left"><a href="<?php echo $rows['linkurl'] ?>" target="main"><?php echo $rows['title'] ?></a><br><?php echo $rows['description'] ?></td>
</tr>


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

@@ -1,4 +1,4 @@
{dede:config.pagesize value='20' /}
{dede:config.pagesize value='30'/}
<!DOCTYPE html>
<html>
<head>


+ 0
- 41
src/admin/templets/baidunews.htm View File

@@ -1,41 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="<?php echo $cfg_soft_lang; ?>">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<title>百度新闻地图</title>
<link rel="stylesheet" href="../static/web/css/bootstrap.min.css">
<link rel="stylesheet" href="../static/web/font/css/font-awesome.min.css">
<link rel="stylesheet" href="../static/web/css/admin.css">
</head>
<body>
<table width="98%" align="center" cellpadding="4" cellspacing="1" class="table maintable mt-3 mb-3">
<tr>
<td colspan="2" background="../static/web/img/tbg.gif" style="padding-left:10px">百度新闻地图</td>
</tr>
<tr>
<td colspan="2">
<p>《互联网新闻开放协议》是百度新闻搜索制定的搜索引擎新闻源收录标准,网站可将发布的新闻内容制作成遵循此开放协议的XML格式的网页(独立于原有的新闻发布形式)供搜索引擎索引</p>
<p> <a href="http://news.baidu.com/newsop.html#kg" target="_blank">详情参见</a></p>
<p>配置的相关参数在 <a href="sys_info.php">系统设置</a>-其他选项中调整</p>
<p>只适用于文章频道,数据表为V6默认的</p>
</td>
</tr>
<form id="form2" name="form1" method="post" action="?do=yes" target="stafrm">
<tr>
<td>文件名:</td>
<td><input name="filename" type="text" id="textfield" value="{cmspath}/a/baidunews.xml" size="30" class='alltxt' /></td>
</tr>
<tr>
<td height="26" bgcolor="#F8FCF1" colspan="2" align="center"><button name="button" type="submit" class="btn btn-success btn-sm" id="button">开始生成</button></td>
</tr>
</form>
<tr>
<td colspan="2">状态:</td>
</tr>
<tr>
<td align="center" colspan="2"><iframe name="stafrm" frameborder="0" id="stafrm" width="96%" height="360px"></td>
</tr>
</table>
</body>
</html>

+ 12
- 35
src/admin/templets/cards_type.htm View File

@@ -31,49 +31,26 @@
?>
<input type="hidden" name="ID_<?php echo $k?>" value="<?php echo $row->tid?>">
<tr align="center">
<td height="26">
<input name="pname_<?php echo $k?>" value="<?php echo $row->pname?>" type="text" id="pname_<?php echo $k?>" class='pubinputs' style="width:90%">
</td>
<td height="26">
<input name="num_<?php echo $k?>" value="<?php echo $row->num?>" type="text" id="num_<?php echo $k?>" class='pubinputs' style="width:80%">
</td>
<td>
<input name="money_<?php echo $k?>" value="<?php echo $row->money?>" type="text" id="money_<?php echo $k?>" class='pubinputs' style="width:80%">
(元)
</td>
<td>
<input name="check_<?php echo $k?>" type="checkbox" id="check_<?php echo $k?>" value="1" checked='1'
class='np'>
保留
</td>
<td height="26"><input name="pname_<?php echo $k?>" value="<?php echo $row->pname?>" type="text" id="pname_<?php echo $k?>" class='pubinputs' style="width:90%"></td>
<td height="26"><input name="num_<?php echo $k?>" value="<?php echo $row->num?>" type="text" id="num_<?php echo $k?>" class='pubinputs' style="width:80%"></td>
<td><input name="money_<?php echo $k?>" value="<?php echo $row->money?>" type="text" id="money_<?php echo $k?>" class='pubinputs' style="width:80%">(元)</td>
<td><input name="check_<?php echo $k?>" type="checkbox" id="check_<?php echo $k?>" value="1" checked='1' class='np'> 保留</td>
</tr>
<?php
}
?>
}
?>
<input type="hidden" name="idend" value="<?php echo $k?>">
<tr bgcolor="#F8FCF1">
<td height="26" colspan="4" bgcolor="#f8f8f8" style="padding-left:10px">
新增一个点卡产品类型:</td>
<td height="26" colspan="4" bgcolor="#f8f8f8" style="padding-left:10px">新增一个点卡产品类型:</td>
</tr>
<tr height="26" align="center">
<td>
<input name="pname_new" type="text" id="pname_new" class='pubinputs' style="width:90%">
</td>
<td>
<input name="num_new" value="100" type="text" id="num_new" class='pubinputs' style="width:80%">
</td>
<td>
<input name="money_new" type="text" id="money_new" class='pubinputs' style='width:80%' value="30">
(元)
</td>
<td align="center">
<input name="check_new" type="checkbox" id="check_new" value="1" checked='1' class='np'>
新增 </td>
<td><input name="pname_new" type="text" id="pname_new" class='pubinputs' style="width:90%"></td>
<td><input name="num_new" value="100" type="text" id="num_new" class='pubinputs' style="width:80%"></td>
<td><input name="money_new" type="text" id="money_new" class='pubinputs' style='width:80%' value="30">(元)</td>
<td align="center"><input name="check_new" type="checkbox" id="check_new" value="1" checked='1' class='np'> 新增</td>
</tr>
<tr>
<td colspan="4" align="center" bgcolor="#f8f8f8" class="py-3">
<button type="submit" class="btn btn-success btn-sm">保存</button>
</td>
<td colspan="4" align="center" bgcolor="#f8f8f8" class="py-3"><button type="submit" class="btn btn-success btn-sm">保存</button></td>
</tr>
</form>
</table>


+ 4
- 4
src/admin/templets/catalog_add.htm View File

@@ -217,16 +217,16 @@
<td class="bline"><input name="typename" type="text" class="iptxt" style="width:260px"></td>
</tr>
<tr>
<td class="bline" height="26" style="padding-left:10px">中文概:</td>
<td class="bline"><input name="namegk" type="text" class="iptxt" style="width:260px"></td>
<td class="bline" height="26" style="padding-left:10px">中文概:</td>
<td class="bline"><input name="cnoverview" type="text" class="iptxt" style="width:260px"></td>
</tr>
<tr>
<td class="bline" height="26" style="padding-left:10px">英文名称:</td>
<td class="bline"><input name="enname" type="text" class="iptxt" style="width:260px"></td>
</tr>
<tr>
<td class="bline" height="26" style="padding-left:10px">英文概:</td>
<td class="bline"><input name="ennamegk" type="text" class="iptxt" style="width:260px"></td>
<td class="bline" height="26" style="padding-left:10px">英文概:</td>
<td class="bline"><input name="enoverview" type="text" class="iptxt" style="width:260px"></td>
</tr>
<tr>
<td class="bline" height="26" style="padding-left:10px">栏目大图:</td>


+ 5
- 5
src/admin/templets/catalog_edit.htm View File

@@ -194,16 +194,16 @@
<td class="bline"><input name="typename" type="text" value="<?php echo $myrow['typename']?>" class="iptxt" style="width:260px"></td>
</tr>
<tr>
<td class="bline" height="26" style="padding-left:10px">中文概:</td>
<td class="bline"><input name="namegk" type="text" value="<?php echo $myrow['namegk']?>" class="iptxt" style="width:260px"></td>
<td class="bline" height="26" style="padding-left:10px">中文概:</td>
<td class="bline"><input name="cnoverview" type="text" value="<?php echo $myrow['cnoverview']?>" class="iptxt" style="width:260px"></td>
</tr>
<tr>
<td class="bline" height="26" style="padding-left:10px">英文名称:</td>
<td class="bline"><input name="enname" type="text" value="<?php echo $myrow['enname']?>" class="iptxt" style="width:260px"></td>
</tr>
<tr>
<td class="bline" height="26" style="padding-left:10px">英文概:</td>
<td class="bline"><input name="ennamegk" type="text" value="<?php echo $myrow['ennamegk']?>" class="iptxt" style="width:260px"></td>
<td class="bline" height="26" style="padding-left:10px">英文概:</td>
<td class="bline"><input name="enoverview" type="text" value="<?php echo $myrow['enoverview']?>" class="iptxt" style="width:260px"></td>
</tr>
<tr>
<td class="bline" height="26" style="padding-left:10px">栏目大图:</td>
@@ -244,7 +244,7 @@
</tr>
<tr>
<td class="bline" height="26" style="padding-left:10px">文件保存目录:</td>
<td class="bline"><input name="typedir" type="text" id="typedir" value="<?php echo $myrow['typedir']?>" class="iptxt" style="width:260px">(填写{cmspath}/a/b/c生成目录“域名/a/b/c”标签{cmspath}必填)</td>
<td class="bline"><input name="typedir" type="text" id="typedir" value="<?php echo $myrow['typedir']?>" class="iptxt" style="width:260px">(标签{cmspath}必填,请勿删除)</td>
</tr>
<tr>
<td height="26" style="padding-left:10px">栏目列表选项:</td>


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

@@ -29,13 +29,13 @@
<td width="70%">属性名称</td>
</tr>
<?php
$dsql->SetQuery(" Select * From `#@__arcatt` order by sortid asc ");
$dsql->Execute();
$k=0;
while($row = $dsql->GetObject())
{
$k++;
?>
$dsql->SetQuery(" Select * From `#@__arcatt` order by sortid asc ");
$dsql->Execute();
$k=0;
while($row = $dsql->GetObject())
{
$k++;
?>
<input type="hidden" name="att_<?php echo $k?>" value="<?php echo $row->att?>">
<tr>
<td align="center"><?php echo $row->att; ?></td>
@@ -43,13 +43,11 @@
<td><input name="attname_<?php echo $k?>" value="<?php echo $row->attname; ?>" type="text" id="attname_<?php echo $k?>" size="30" class='pubinputs'></td>
</tr>
<?php
}
?>
}
?>
<input type="hidden" name="idend" value="<?php echo $k?>">
<tr>
<td colspan="3" align="center" class="py-3">
<button type="submit" class="btn btn-success btn-sm">保存</button>
</td>
<td colspan="3" align="center" class="py-3"><button type="submit" class="btn btn-success btn-sm">保存</button></td>
</tr>
</form>
</table>


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

@@ -258,9 +258,7 @@
</td>
</tr>
<tr>
<td align="center" class="py-3">
<button name="Submit2" type="submit" id="Submit2" class="btn btn-success btn-sm">保存</button>
</td>
<td align="center" class="py-3"><button name="Submit2" type="submit" id="Submit2" class="btn btn-success btn-sm">保存</button></td>
</tr>
</table>
</td>


+ 1
- 3
src/admin/templets/freelist_edit.htm View File

@@ -250,9 +250,7 @@
</td>
</tr>
<tr>
<td align="center" class="py-3">
<button name="Submit2" type="submit" id="Submit2" class="btn btn-success btn-sm">保存</button>
</td>
<td align="center" class="py-3"><button name="Submit2" type="submit" id="Submit2" class="btn btn-success btn-sm">保存</button></td>
</tr>
</table>
</td>


+ 2
- 1
src/admin/templets/friendlink_type.htm View File

@@ -17,7 +17,8 @@
<a href="friendlink_main.php">友情链接管理</a>&nbsp;
<a href="friendlink_add.php" class="btn btn-success btn-sm">增加链接</a>
<a href="friendlink_type.php" class="btn btn-success btn-sm">网站类型管理</a>
<a href='../apps/flink_add.php' target='_blank' class="btn btn-success btn-sm">外部申请表单</a></td>
<a href='../apps/flink_add.php' target='_blank' class="btn btn-success btn-sm">外部申请表单</a>
</td>
</tr>
<tr bgcolor="#F8FCF1">
<td width="4%" height="26" align="center">类型ID</td>


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

@@ -1,4 +1,4 @@
{dede:config.pagesize value="30"/}
{dede:config.pagesize value='30'/}
<!DOCTYPE html>
<html>
<head>


+ 2
- 4
src/admin/templets/mychannel_main.htm View File

@@ -1,4 +1,4 @@
{dede:config name='pagesize' value='30' /}
{dede:config name='pagesize' value='30'/}
<!DOCTYPE html>
<html>
<head>
@@ -56,9 +56,7 @@
</tr>'}
<tr height="26" align="center" onmousemove="javascript:this.bgColor='#F8FCF1';" onmouseout="javascript:this.bgColor='#ffffff';">
<td>{dede:field.id /}</td>
<td>
<a href='mychannel_edit.php?id={dede:field.id/}&dopost=edit'>{dede:field.typename /}</a>
</td>
<td><a href='mychannel_edit.php?id={dede:field.id/}&dopost=edit'>{dede:field.typename /}</a></td>
<td>{dede:field.nid /}</td>
<td>{dede:field.addtable function="str_replace('#@__',$cfg_dbprefix,@me)" /}</td>
<td>{dede:field.isshow function="GetSta(@me,$fields['id'])" /}</td>


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

@@ -1,4 +1,4 @@
{dede:config.pagesize value="30"/}
{dede:config.pagesize value='30'/}
<!DOCTYPE html>
<html>
<head>


+ 1
- 3
src/admin/templets/sys_admin_user_add.htm View File

@@ -103,9 +103,7 @@
</td>
</tr>
<tr>
<td colspan="2" align="center" class="py-3">
<button type="submit" class="btn btn-success btn-sm" class="coolbg np">保存</button>
</td>
<td colspan="2" align="center" class="py-3"><button type="submit" class="btn btn-success btn-sm" class="coolbg np">保存</button></td>
</tr>
</table>
</form>


+ 1
- 3
src/admin/templets/sys_group_add.htm View File

@@ -78,9 +78,7 @@
</td>
</tr>
<tr>
<td colspan="2" align="center" class="py-3">
<button type="submit" class="btn btn-success btn-sm" onClick="DoSubmit('gettag')" class="coolbg np">保存</button>
</td>
<td colspan="2" align="center" class="py-3"><button type="submit" class="btn btn-success btn-sm" onClick="DoSubmit('gettag')" class="coolbg np">保存</button></td>
</tr>
</table>
</td>


+ 6
- 12
src/admin/templets/sys_sql_query.htm View File

@@ -38,7 +38,7 @@
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="30%">
<select name="tablename" id="tablename" style="width:100%;height:auto" size="12">
<select name="tablename" id="tablename" style="width:100%;height:auto" size="16">
<?php
if ($cfg_dbtype=="sqlite") {
$query = "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;";
@@ -61,15 +61,12 @@
<td width="2%"></td>
<td width="63%" valign="bottom">
<div style="float:left;margin-right:20px">
<button type="Submit" name="Submit1" class="btn btn-success btn-sm" onClick="this.form.dopost.value='opimize';">优化选中表</button>
<br>
<button type="Submit" name="Submit2" class="btn btn-success btn-sm" onClick="this.form.dopost.value='repair';" style="margin-top:10px">修复选中表</button>
<br>
<button type="Submit" name="Submit1" class="btn btn-success btn-sm" onClick="this.form.dopost.value='opimize';">优化选中表</button><br>
<button type="Submit" name="Submit2" class="btn btn-success btn-sm" onClick="this.form.dopost.value='repair';" style="margin-top:10px">修复选中表</button><br>
<button type="Submit" name="Submit3" class="btn btn-success btn-sm" onClick="this.form.dopost.value='viewinfo';" style="margin-top:10px">查看表结构</button>
</div>
<div style="float:left">
<button type="Submit" name="Submit5" class="btn btn-success btn-sm" onClick="this.form.dopost.value='opimizeAll';">优化全部表</button>
<br>
<button type="Submit" name="Submit5" class="btn btn-success btn-sm" onClick="this.form.dopost.value='opimizeAll';">优化全部表</button><br>
<button type="Submit" name="Submit6" class="btn btn-success btn-sm" onClick="this.form.dopost.value='repairAll';" style="margin-top:10px">修复全部表</button>
</div>
</td>
@@ -94,13 +91,10 @@
</td>
</tr>
<tr>
<td height="110" colspan="2" style="border:1px solid #ddd">
<textarea id="sqlquery" name="sqlquery" cols="60" rows="10" id="sqlquery" style="width:90%"></textarea>
</td>
<td height="110" colspan="2" style="border:1px solid #ddd"><textarea id="sqlquery" name="sqlquery" cols="60" rows="10" id="sqlquery" style="width:90%"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center" class="py-3"><button type="submit" class="btn btn-success btn-sm">保存</button>
</td>
<td colspan="2" align="center" class="py-3"><button type="submit" class="btn btn-success btn-sm">保存</button></td>
</tr>
</form>
</table>


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

@@ -108,7 +108,7 @@
<form name="form2" action="tags_main.php" style="display:inline-block">
<input type="text" name="tag" value="<?php echo $tag; ?>" placeholder="请输入标签" style="width:160px">
<button type="submit" name="sb" class="btn btn-success btn-sm">保存</button>
<a href="makehtml_taglist.php" name="sb" class="btn btn-success btn-sm">生成标签</a>
<a href="makehtml_taglist.php" name="sb" class="btn btn-success btn-sm">生成</a>
</form>
</td>
</tr>


+ 5
- 5
src/admin/templets/templets_one_edit.htm View File

@@ -30,12 +30,12 @@ function checkSubmit()
</head>
<body>
<table width="98%" cellpadding="3" cellspacing="1" align="center" class="table maintable mt-3 mb-3">
<tr>
<tr>
<td height="26" background="../static/web/img/tbg.gif" style="padding-left:10px"><a href="templets_one.php">单独页面管理</a> &gt; 修改自定义页面</td>
</tr>
<tr>
<td height="200">
<table width="100%" cellspacing="4" cellpadding="2" class="table table-borderless">
</tr>
<tr>
<td height="200">
<table width="100%" cellspacing="4" cellpadding="2" class="table table-borderless">
<form action="templets_one_edit.php" method="post" name="form1" onSubmit="return checkSubmit()">
<input type='hidden' name='dopost' value='saveedit'>
<input type='hidden' name='aid' value='<?php echo $aid?>'>


+ 1
- 2
src/admin/templets/tpl_newfile.htm View File

@@ -40,8 +40,7 @@
<tr>
<td>
<input type="submit" value="保存" name='B1' class="btn btn-success btn-sm">
<input type="reset" value="取消修改" name='B2' class="btn btn-success btn-sm">
<input type="button" value="不理返回" name='B4' class="btn btn-success btn-sm" onClick="javascript:history.go(-1)">
<input type="button" value="返回" name='B4' class="btn btn-success btn-sm" onClick="javascript:history.go(-1)">
</td>
</tr>
</form>


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

@@ -17,7 +17,7 @@
</td>
</tr>
<tr>
<td height="26" colspan="2">下载的文件临时存放在文件夹<span class='text-danger'>../data/<?php echo $tmpdir; ?></span>内,如果某些基础类有重要的改动导致更新中途中错,您可以从这文件夹提取文件手工更新</td>
<td height="26" colspan="2">下载的文件临时存放在文件夹<span class='text-danger'>../data/<?php echo $tmpdir; ?></span>内,如果某些基础类有重要的改动导致更新中途中错,您可以从这文件夹提取文件手工更新</td>
</tr>
<?php echo $dirinfos; ?>
<tr bgcolor="#F8FEDA">


+ 8
- 48
src/data/config.file.inc.php View File

@@ -1,21 +1,17 @@
<?php
/*---------------------------------------------------------------------------------------------
文件远程发布目录更新配置(config.file.inc.php)
说明:本文件主要用于系统后台[生成]-[自动任务]-[远程服务器同步]
中的文件夹自定义更新配置所用,使用时候如果有特定目录需要进行同
步,则需要在这个文件中进行配置,配置方式如下:
说明:本文件主要用于系统后台[生成]-[自动任务]-[远程服务器同步]文件远程发布目录更新配置(config.file.inc.php)
中的文件夹自定义更新配置所用,使用时候如果有特定目录需要进行同步,则需要在这个文件中进行配置,配置方式如下:
$remotefile[] = array(
'filedir' => '/yourdir', //同步文件夹目录
'description' => '这里是文件夹说明',
'dfserv' => '0', //默认服务器选项,可以在系统后台[系统设置]-[服务器分布/远程 ]中配置
'state' => '0', //同步状态,0:未同步 1:已同步
'description' => ' //这里是文件夹说明',
'dfserv' => '0', //默认服务器选项,可以在系统后台[系统设置]-[服务器分布/远程 ]中配置
'state' => '0', //同步状态,0:未同步 1:已同步
);
-----------------------------------------------------------------------------------------------*/
global $remotefile;
$remotefile = array();
//以下是必备同步配置项
//@start_config 不要改动下面<>结构
#<s_config>
$remotefile[0] = array(
'filedir'=>'/a',
'description'=>'文档HTML默认保存路',
@@ -24,53 +20,17 @@ $remotefile[0] = array(
'issystem'=>1
);
$remotefile[1] = array(
'filedir'=>'/longhoo',
'description'=>'文档HTML默认保存路',
'filedir'=>'/static',
'description'=>'图片上传文件默认路径',
'dfserv'=>0,
'state'=>1,
'issystem'=>1
);
$remotefile[2] = array(
'filedir'=>'/uploads',
'description'=>'图片/上传文件默认路径',
'dfserv'=>0,
'state'=>1,
'issystem'=>1
);
$remotefile[3] = array(
'filedir'=>'/special',
'filedir'=>'/apps/special',
'description'=>'专题目录',
'dfserv'=>0,
'state'=>1,
'issystem'=>1
);
$remotefile[4] = array(
'filedir'=>'/data/js',
'description'=>'生成js目录',
'dfserv'=>0,
'state'=>1,
'issystem'=>1
);
$remotefile[5] = array(
'filedir'=>'/images',
'description'=>'图片素材存放文件',
'dfserv'=>0,
'state'=>1,
'issystem'=>0
);
$remotefile[6] = array(
'filedir'=>'/templets/images',
'description'=>'模板文件图片存放目录',
'dfserv'=>0,
'state'=>1,
'issystem'=>0
);
$remotefile[7] = array(
'filedir'=>'/templets/style',
'description'=>'模板文件CSS样式存放目录',
'dfserv'=>0,
'state'=>1,
'issystem'=>0
);
#<e_config>
?>

+ 1
- 1
src/index.php View File

@@ -10,7 +10,7 @@ if (!file_exists(dirname(__FILE__).'/data/common.inc.php')) {
header('Location:install/index.php');
exit();
}
//自动生成网页
//自动生成网页
if (isset($_GET['upcache']) || !file_exists('index.html')) {
require_once(dirname(__FILE__)."/system/common.inc.php");
require_once DEDEINC."/archive/partview.class.php";


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

@@ -4,7 +4,7 @@ $cfg_cmspath = '~basepath~';
$cfg_cookie_encode = '~cookieEncode~';
$cfg_indexurl = '~indexurl~';
$cfg_backup_dir = 'backupdata';
$cfg_indexname = '页';
$cfg_indexname = '网站主页';
$cfg_webname = '~webname~';
$cfg_adminemail = '~adminmail~';
$cfg_html_editor = 'ckeditor';
@@ -26,7 +26,7 @@ $cfg_fck_xhtml = 'N';
$cfg_df_style = 'templets';
$cfg_multi_site = 'N';
$cfg_dede_log = 'N';
$cfg_powerby = 'Copyright &copy; 2022 DedeBIZ 版权所有';
$cfg_powerby = 'Copyright © 2022 DedeBIZ 版权所有';
$cfg_arcsptitle = 'N';
$cfg_arcautosp = 'N';
$cfg_arcautosp_size = 5;
@@ -114,7 +114,7 @@ $cfg_jump_once = 'Y';
$cfg_task_pwd = '';
$cfg_addon_domainbind = 'N';
$cfg_addon_domain = '';
$cfg_df_dutyadmin = '网站管理员';
$cfg_df_dutyadmin = '管理员';
$cfg_mb_allowncarc = 'Y';
$cfg_mb_allowreg = 'Y';
$cfg_mb_adminlock = 'N';


+ 249
- 167
src/install/sql-dfdata.txt
File diff suppressed because it is too large
View File


+ 3
- 3
src/install/sql-dftables.txt View File

@@ -255,9 +255,9 @@ CREATE TABLE `#@__arctype` (
`topid` smallint(5) unsigned NOT NULL default '0',
`sortrank` smallint(5) unsigned NOT NULL default '50',
`typename` varchar(255) NOT NULL default '',
`namegk` char(200) NOT NULL default '',
`enname` char(200) NOT NULL default '',
`ennamegk` char(200) NOT NULL default '',
`cnoverview` char(255) NOT NULL default '',
`enname` char(255) NOT NULL default '',
`enoverview` char(255) NOT NULL default '',
`bigpic` char(255) NOT NULL default '',
`litimg` char(255) NOT NULL default '',
`typedir` char(60) NOT NULL default '',


+ 1
- 2
src/install/templates/step-1.html View File

@@ -15,7 +15,6 @@
<div class="d-flex flex-column flex-md-row align-items-center mb-3 p-3 px-md-5 bg-white border-bottom shadow-sm">
<h5 class="my-0 mr-md-auto text-success">程序安装</h5>
<nav class="my-md-0 mr-md-3">
<a class="p-2 text-dark" href="https://www.dedebiz.com/git" target="_blank">代码托管</a>
<a class="p-2 text-dark" href="https://www.dedebiz.com/help" target="_blank">帮助中心</a>
<a class="p-2 text-dark" href="https://www.dedebiz.com/service" target="_blank">技术服务</a>
</nav>
@@ -59,7 +58,7 @@
</div>
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">数据库密码</label>
<input name="dbpwd" type="text" class="form-control" id="dbpwd" placeholder="">
<input name="dbpwd" type="text" class="form-control" id="dbpwd">
</div>
<div class="mb-3">
<label for="dbprefix" class="form-label">数据表前缀</label>


+ 13
- 9
src/install/v57sp2_to_v6.txt View File

@@ -1,3 +1,9 @@
-- 6.1.10
ALTER TABLE `#@__arctype` CHANGE `namegk` `cnoverview` CHAR(255) NOT NULL DEFAULT '';
ALTER TABLE `#@__arctype` CHANGE `ennamegk` `enoverview` CHAR(255) NOT NULL DEFAULT '';
DELETE FROM `#@__sysconfig` WHERE `#@__sysconfig`.`varname` = 'cfg_disable_funs';
DELETE FROM `#@__sysconfig` WHERE `#@__sysconfig`.`varname` = 'cfg_disable_tags';

-- 6.1.9
ALTER TABLE `#@__archives` MODIFY COLUMN `title` varchar(255) NOT NULL DEFAULT '' AFTER `money`;
ALTER TABLE `#@__arctype` MODIFY COLUMN `typename` varchar(255) NOT NULL DEFAULT '' AFTER `sortrank`;
@@ -5,11 +11,10 @@ ALTER TABLE `#@__admin` ADD COLUMN `pwd_new` varchar(120) NOT NULL DEFAULT '' AF
ALTER TABLE `#@__member` ADD COLUMN `pwd_new` varchar(120) NOT NULL DEFAULT '' AFTER `pwd`;

-- 6.1.8
INSERT INTO `#@__sysconfig` VALUES ('710', 'cfg_tags_dir', 'TAGS生成目录', 7, 'string', '{cmspath}/a/tags');
INSERT INTO `#@__sysconfig` VALUES ('151', 'cfg_tags_dir', 'TAGS生成目录', 7, 'string', '{cmspath}/a/tags');
ALTER TABLE `#@__tagindex` DROP COLUMN `tag_pinyin`;

-- 6.1.7
DROP TABLE IF EXISTS `#@__statistics`;
CREATE TABLE `#@__statistics` (
`id` int NOT NULL AUTO_INCREMENT,
`sdate` int DEFAULT NULL COMMENT '记录日期',
@@ -18,8 +23,7 @@ CREATE TABLE `#@__statistics` (
`ip` int DEFAULT NULL COMMENT 'IP',
`vv` int DEFAULT NULL COMMENT 'vv',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
DROP TABLE IF EXISTS `#@__statistics_detail`;
) ENGINE=MyISAM;
CREATE TABLE `#@__statistics_detail` (
`id` int NOT NULL AUTO_INCREMENT,
`t` int DEFAULT NULL COMMENT 'unixtime',
@@ -40,7 +44,7 @@ CREATE TABLE `#@__statistics_detail` (
KEY `idx_created_date_dduuid` (`created_date`,`dduuid`),
KEY `idx_created_date_ip` (`created_date`,`ip`),
KEY `idx_created_date_ssid` (`created_date`,`ssid`)
) TYPE=MyISAM;
) ENGINE=MyISAM;
ALTER TABLE `#@__addonarticle` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`;
ALTER TABLE `#@__addonimages` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`;
ALTER TABLE `#@__addoninfos` MODIFY COLUMN `userip` varchar(46) NOT NULL DEFAULT '' AFTER `litpic`;
@@ -53,7 +57,7 @@ ALTER TABLE `#@__log` MODIFY COLUMN `cip` char(46) NOT NULL DEFAULT '' AFTER `qu
ALTER TABLE `#@__member` MODIFY COLUMN `joinip` char(46) NOT NULL DEFAULT '' AFTER `jointime`,MODIFY COLUMN `loginip` char(46) NOT NULL DEFAULT '' AFTER `logintime`;
ALTER TABLE `#@__shops_orders` MODIFY COLUMN `ip` char(46) NOT NULL DEFAULT '' AFTER `state`;
ALTER TABLE `#@__dl_log` MODIFY COLUMN `ip` char(46) NOT NULL AFTER `id`;
ALTER TABLE `#@__arctype` CHANGE COLUMN `litpic` `bigpic` char(255) NOT NULL DEFAULT '' AFTER `ennamegk`;
ALTER TABLE `#@__arctype` CHANGE `litpic` `bigpic` CHAR(255) NOT NULL DEFAULT '';
ALTER TABLE `#@__addoninfos` MODIFY COLUMN `nativeplace` char(20) NOT NULL DEFAULT 0 AFTER `badpost`;

-- 6.1.0
@@ -73,7 +77,7 @@ ALTER TABLE `#@__feedback`
ALTER TABLE `#@__feedback`
ADD COLUMN `replycount` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `dtime`;
INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_feedback_msglen', '评论内容字数限定', 5, 'number', '200');
INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_auth_code', '商业版授权码)', 1, 'bstring', '');
INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_auth_code', '商业版授权码', 1, 'string', '');
INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_bizcore_hostname', 'DedeBIZ Core地址', 1, 'string', '127.0.0.1');
INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_bizcore_port', 'DedeBIZ Core端口', 1, 'number', '8181');
INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_bizcore_appid', 'DedeBIZ Core应用ID', 1, 'string', '');
@@ -84,12 +88,12 @@ CREATE TABLE `#@__feedback_goodbad` (
`fid` INT(11) NOT NULL DEFAULT '0',
`fgtype` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '0:good 1:bad',
PRIMARY KEY (`fgid`)
) TYPE=MyISAM;
) ENGINE=MyISAM;
CREATE TABLE `#@__search_limits` (
`ip` VARCHAR(200) NOT NULL,
`searchtime` INT(11) NULL DEFAULT NULL,
PRIMARY KEY (`ip`)
) TYPE=MyISAM;
) ENGINE=MyISAM;

-- 6.0.2
ALTER TABLE `#@__tagindex` ADD COLUMN `keywords` VARCHAR(255) NULL DEFAULT NULL AFTER `tag`;


+ 0
- 18
src/system/dedetemplate.class.php View File

@@ -9,24 +9,6 @@ if (!defined('DEDEINC')) exit('dedebiz');
* @license https://www.dedebiz.com/license
* @link https://www.dedebiz.com
*/
/**
* 这个函数用于定义任意名称的块使用的接口
* 返回值应是一个二维数组
* 块调用对应的文件为 include/taglib/plus_blockname.php
* ----------------------------------------------------------------
* 由于标记一般存在默认属性,在编写块函数时,应该在块函数中进行给属性赋省缺值处理,如:
* $attlist = "titlelen=30,catalogid=0,modelid=0,flag=,addon=,row=8,ids=,orderby=id,orderway=desc,limit=,subday=0";
* 给属性赋省缺值
* FillAtts($atts,$attlist);
* 处理属性中使用的系统变量 var、global、field 类型(不支持多维数组)
* FillFields($atts,$fields,$refObj);
*
* @access public
* @param array $atts 属性
* @param object $refObj 所属对象
* @param array $fields 字段
* @return string
*/
function MakePublicTag($atts = array(), $refObj = '', $fields = array())
{
$atts['tagname'] = preg_replace("/[0-9]{1,}$/", "", $atts['tagname']);


+ 1
- 1
src/system/helpers/channelunit.helper.php View File

@@ -375,7 +375,7 @@ function GetSonIdsLogic($id, $sArr, $channel = 0, $addthis = false)
*/
function MfTypedir($typedir)
{
if (preg_match("/^http:|^ftp:/i", $typedir)) return $typedir;
if (preg_match("/^(http|https|ftp):/i", $typedir)) return $typedir;
$typedir = str_replace("{cmspath}", $GLOBALS['cfg_cmspath'], $typedir);
$typedir = preg_replace("/\/{1,}/", "/", $typedir);
return $typedir;


+ 22
- 26
src/system/helpers/code.helper.php View File

@@ -1,10 +1,10 @@
<?php
if (!defined('DEDEINC')) exit('dedebiz');
// 允许的函数
//允许的函数
$GLOBALS['allowedCalls'] = array(
// 系统
//系统
'var_dump',
// 数学
//数学
'ceil',
'floor',
'fmod',
@@ -15,7 +15,7 @@ $GLOBALS['allowedCalls'] = array(
'rand',
'sqrt',
'srand',
// 变量
//变量
'empty',
'floatval',
'intval',
@@ -36,7 +36,7 @@ $GLOBALS['allowedCalls'] = array(
'isset',
'strval',
'unset',
// 数组
//数组
'array_change_key_case',
'array_chunk',
'array_combine',
@@ -92,7 +92,7 @@ $GLOBALS['allowedCalls'] = array(
'shuffle',
'sizeof',
'sort',
// 字符串
//字符串
'json_encode',
'json_decode',
'json_last_error',
@@ -156,7 +156,7 @@ $GLOBALS['allowedCalls'] = array(
'ucfirst',
'ucwords',
'wordwrap',
// dede内置
//dede内置
'html2text',
'removexss',
'htmlreplace',
@@ -179,7 +179,7 @@ $GLOBALS['allowedCalls'] = array(
'gb2big5',
'litimgurls',
'split',
// 时间
//时间
'strtotime',
'date',
'idate',
@@ -228,7 +228,7 @@ $GLOBALS['allowedCalls'] = array(
'date_sunrise',
'date_sunset',
'date_sun_info',
// mb字符串处理
//mb字符串处理
'mb_convert_case',
'mb_strtoupper',
'mb_strtolower',
@@ -288,7 +288,7 @@ $GLOBALS['allowedCalls'] = array(
'mb_ereg_search_getpos',
'mb_ereg_search_setpos',
);
// 允许的语法
//允许的语法
$GLOBALS['allowedTokens'] = array(
'T_AND_EQUAL',
'T_ARRAY',
@@ -300,7 +300,6 @@ $GLOBALS['allowedTokens'] = array(
'T_BREAK',
'T_CASE',
'T_CHARACTER',

'T_CONCAT_EQUAL',
'T_CONSTANT_ENCAPSED_STRING',
'T_CONTINUE',
@@ -313,7 +312,6 @@ $GLOBALS['allowedTokens'] = array(
'T_DO',
'T_DOUBLE_ARROW',
'T_DOUBLE_CAST',

'T_ELSE',
'T_ELSEIF',
'T_EMPTY',
@@ -340,7 +338,6 @@ $GLOBALS['allowedTokens'] = array(
'T_LOGICAL_OR',
'T_LOGICAL_XOR',
'T_MINUS_EQUAL',

'T_MOD_EQUAL',
'T_MUL_EQUAL',
'T_NUM_STRING',
@@ -362,29 +359,28 @@ $GLOBALS['allowedTokens'] = array(
'T_WHITESPACE',
'T_XOR_EQUAL',
);
// 禁止的表达式
//禁止的表达式
$GLOBALS['disallowedExpressions'] = array(
'/`/',
'/\$\W/',
'/(\]|\})\s*\(/',
'/\$\w\w*\s*\(/',
);
// 执行脚本
//执行脚本
function evalCode($code)
{
ob_start();
$code = eval('if(0){' . "\n" . $code . "\n" . '}');
$code = eval('if(0){'."\n".$code."\n".'}');
ob_end_clean();
return $code !== false;
}
// 校验脚本
//校验脚本
function checkCode($code)
{
global $allowedCalls;
global $allowedTokens;
global $disallowedExpressions;

$tokens = token_get_all('<?php ' . $code . ' ?>');
$tokens = token_get_all('<?php '.$code.' ?>');
$errors = array();
$braces = 0;
foreach ($tokens as $token) {
@@ -421,13 +417,13 @@ function checkCode($code)
switch ($id) {
case ('T_STRING'):
if (in_array(strtolower($token[1]), $allowedCalls) === false) {
$errors[$i]['name'] = 'Illegal function: ' . $token[1];
$errors[$i]['name'] = 'Illegal function: '.$token[1];
$errors[$i]['line'] = $token[2];
}
break;
default:
if (in_array($id, $allowedTokens) === false) {
$errors[$i]['name'] = 'Illegal token: ' . $token[1];
$errors[$i]['name'] = 'Illegal token: '.$token[1];
$errors[$i]['line'] = $token[2];
}
break;
@@ -439,21 +435,21 @@ function checkCode($code)
return $errors;
}
}
// 错误提示
//错误提示
function htmlErrors($errors = null)
{
if ($errors) {
$errorsHTML = "<div style='width:98%;margin:1rem auto;color:#842029;background:#f8d7da;border-color:#842029;position:relative;padding:.75rem 1.25rem;border:1px solid transparent;border-radius:.2rem'>";
$errorsHTML .= 'PHP内嵌脚本错误:';
$errorsHTML .= '内嵌脚本缺失,请添加该函数:';
$errorsHTML .= '<dl>';
foreach ($errors as $error) {
if ($error['line']) {
$errorsHTML .= '<dt>Line ' . $error['line'] . '</dt>';
$errorsHTML .= '<dt>Line '.$error['line'].'</dt>';
}
$errorsHTML .= '<dd>' . $error['name'] . '</dd>';
$errorsHTML .= '<dd>'.$error['name'].'</dd>';
}
$errorsHTML .= '</dl>';
$errorsHTML .= "</div>\r\n";
echo $errorsHTML;
}
}
}

+ 18
- 75
src/system/libraries/agent.class.php View File

@@ -2,9 +2,7 @@
if (!defined('DEDEINC')) exit('dedebiz');
require_once(DEDEINC."/libraries/crawlerdetect.class.php");
require_once(DEDEINC."/libraries/mobiledetect.class.php");

// copyright https://github.com/jenssegers/agent

//copyright https://github.com/jenssegers/agent
class Agent extends Mobile_Detect
{
/**
@@ -14,7 +12,6 @@ class Agent extends Mobile_Detect
protected static $desktopDevices = [
'Macintosh' => 'Macintosh',
];

/**
* List of additional operating systems.
* @var array
@@ -30,7 +27,6 @@ class Agent extends Mobile_Detect
'Linux' => 'Linux',
'ChromeOS' => 'CrOS',
];

/**
* List of additional browsers.
* @var array
@@ -50,21 +46,19 @@ class Agent extends Mobile_Detect
'Mozilla' => 'Mozilla',
'WeChat' => 'MicroMessenger',
];

/**
* List of additional properties.
* @var array
*/
protected static $additionalProperties = [
// Operating systems
//Operating systems
'Windows' => 'Windows NT [VER]',
'Windows NT' => 'Windows NT [VER]',
'OS X' => 'OS X [VER]',
'BlackBerryOS' => ['BlackBerry[\w]+/[VER]', 'BlackBerry.*Version/[VER]', 'Version/[VER]'],
'AndroidOS' => 'Android [VER]',
'ChromeOS' => 'CrOS x86_64 [VER]',

// Browsers
//Browsers
'Opera Mini' => 'Opera Mini/[VER]',
'Opera' => [' OPR/[VER]', 'Opera Mini/[VER]', 'Version/[VER]', 'Opera [VER]'],
'Netscape' => 'Netscape/[VER]',
@@ -74,12 +68,10 @@ class Agent extends Mobile_Detect
'Vivaldi' => 'Vivaldi/[VER]',
'Coc Coc' => 'coc_coc_browser/[VER]',
];

/**
* @var CrawlerDetect
*/
protected static $crawlerDetect;

/**
* Get all detection rules. These rules include the additional
* platforms and browsers and utilities.
@@ -88,32 +80,27 @@ class Agent extends Mobile_Detect
public static function getDetectionRulesExtended()
{
static $rules;

if (!$rules) {
$rules = static::mergeRules(
static::$desktopDevices, // NEW
static::$desktopDevices, //NEW
static::$phoneDevices,
static::$tabletDevices,
static::$operatingSystems,
static::$additionalOperatingSystems, // NEW
static::$additionalOperatingSystems, //NEW
static::$browsers,
static::$additionalBrowsers, // NEW
static::$additionalBrowsers, //NEW
static::$utilities
);
}

return $rules;
}

public function getRules()
{
if ($this->detectionType === static::DETECTION_TYPE_EXTENDED) {
return static::getDetectionRulesExtended();
}

return static::getMobileDetectionRules();
}

/**
* @return CrawlerDetect
*/
@@ -122,10 +109,8 @@ class Agent extends Mobile_Detect
if (static::$crawlerDetect === null) {
static::$crawlerDetect = new CrawlerDetect();
}

return static::$crawlerDetect;
}

public static function getBrowsers()
{
return static::mergeRules(
@@ -133,7 +118,6 @@ class Agent extends Mobile_Detect
static::$browsers
);
}

public static function getOperatingSystems()
{
return static::mergeRules(
@@ -141,7 +125,6 @@ class Agent extends Mobile_Detect
static::$additionalOperatingSystems
);
}

public static function getPlatforms()
{
return static::mergeRules(
@@ -149,12 +132,10 @@ class Agent extends Mobile_Detect
static::$additionalOperatingSystems
);
}

public static function getDesktopDevices()
{
return static::$desktopDevices;
}

public static function getProperties()
{
return static::mergeRules(
@@ -162,7 +143,6 @@ class Agent extends Mobile_Detect
static::$properties
);
}

/**
* Get accept languages.
* @param string $acceptLanguage
@@ -173,14 +153,11 @@ class Agent extends Mobile_Detect
if ($acceptLanguage === null) {
$acceptLanguage = $this->getHttpHeader('HTTP_ACCEPT_LANGUAGE');
}

if (!$acceptLanguage) {
return [];
}

$languages = [];

// Parse accept language string.
//Parse accept language string.
foreach (explode(',', $acceptLanguage) as $piece) {
$parts = explode(';', $piece);
$language = strtolower($parts[0]);
@@ -188,13 +165,10 @@ class Agent extends Mobile_Detect

$languages[$language] = $priority;
}

// Sort languages by priority.
//Sort languages by priority.
arsort($languages);

return array_keys($languages);
}

/**
* Match a detection rule and return the matched key.
* @param array $rules
@@ -203,22 +177,19 @@ class Agent extends Mobile_Detect
*/
protected function findDetectionRulesAgainstUA(array $rules, $userAgent = null)
{
// Loop given rules
//Loop given rules
foreach ($rules as $key => $regex) {
if (empty($regex)) {
continue;
}

// Check match
//Check match
if ($this->match($regex, $userAgent)) {
$val = (array)$this->matchesArray;
return $key ?: reset($val);
}
}

return false;
}

/**
* Get the browser name.
* @param string|null $userAgent
@@ -228,7 +199,6 @@ class Agent extends Mobile_Detect
{
return $this->findDetectionRulesAgainstUA(static::getBrowsers(), $userAgent);
}

/**
* Get the platform name.
* @param string|null $userAgent
@@ -238,7 +208,6 @@ class Agent extends Mobile_Detect
{
return $this->findDetectionRulesAgainstUA(static::getPlatforms(), $userAgent);
}

/**
* Get the device name.
* @param string|null $userAgent
@@ -252,10 +221,8 @@ class Agent extends Mobile_Detect
static::getTabletDevices(),
static::getUtilities()
);

return $this->findDetectionRulesAgainstUA($rules, $userAgent);
}

/**
* Check if the device is a desktop computer.
* @param string|null $userAgent deprecated
@@ -264,17 +231,15 @@ class Agent extends Mobile_Detect
*/
public function isDesktop($userAgent = null, $httpHeaders = null)
{
// Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront'
//Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront'
if ($this->getUserAgent() === 'Amazon CloudFront') {
$cfHeaders = $this->getCfHeaders();
if(array_key_exists('HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER', $cfHeaders)) {
return $cfHeaders['HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER'] === 'true';
}
}

return !$this->isMobile($userAgent, $httpHeaders) && !$this->isTablet($userAgent, $httpHeaders) && !$this->isRobot($userAgent);
}

/**
* Check if the device is a mobile phone.
* @param string|null $userAgent deprecated
@@ -285,7 +250,6 @@ class Agent extends Mobile_Detect
{
return $this->isMobile($userAgent, $httpHeaders) && !$this->isTablet($userAgent, $httpHeaders);
}

/**
* Get the robot name.
* @param string|null $userAgent
@@ -299,7 +263,6 @@ class Agent extends Mobile_Detect

return false;
}

/**
* Check if device is a robot.
* @param string|null $userAgent
@@ -309,7 +272,6 @@ class Agent extends Mobile_Detect
{
return $this->getCrawlerDetect()->isCrawler($userAgent ?: $this->userAgent);
}

/**
* Get the device type
* @param null $userAgent
@@ -327,51 +289,38 @@ class Agent extends Mobile_Detect
} elseif ($this->isRobot($userAgent)) {
return "robot";
}

return "other";
}

public function version($propertyName, $type = self::VERSION_TYPE_STRING)
{
if (empty($propertyName)) {
return false;
}

// set the $type to the default if we don't recognize the type
//set the $type to the default if we don't recognize the type
if ($type !== self::VERSION_TYPE_STRING && $type !== self::VERSION_TYPE_FLOAT) {
$type = self::VERSION_TYPE_STRING;
}

$properties = self::getProperties();

// Check if the property exists in the properties array.
//Check if the property exists in the properties array.
if (true === isset($properties[$propertyName])) {

// Prepare the pattern to be matched.
// Make sure we always deal with an array (string is converted).
//Prepare the pattern to be matched.
//Make sure we always deal with an array (string is converted).
$properties[$propertyName] = (array) $properties[$propertyName];

foreach ($properties[$propertyName] as $propertyMatchString) {
if (is_array($propertyMatchString)) {
$propertyMatchString = implode("|", $propertyMatchString);
}

$propertyPattern = str_replace('[VER]', self::VER, $propertyMatchString);

// Identify and extract the version.
//Identify and extract the version.
preg_match(sprintf('#%s#is', $propertyPattern), $this->userAgent, $match);

if (false === empty($match[1])) {
$version = ($type === self::VERSION_TYPE_FLOAT ? $this->prepareVersionNo($match[1]) : $match[1]);

return $version;
}
}
}

return false;
}

/**
* Merge multiple rules into one array.
* @param array $all
@@ -380,7 +329,6 @@ class Agent extends Mobile_Detect
protected static function mergeRules(...$all)
{
$merged = [];

foreach ($all as $rules) {
foreach ($rules as $key => $value) {
if (empty($merged[$key])) {
@@ -392,24 +340,19 @@ class Agent extends Mobile_Detect
}
}
}

return $merged;
}

/**
* @inheritdoc
*/
public function __call($name, $arguments)
{
// Make sure the name starts with 'is', otherwise
//Make sure the name starts with 'is', otherwise
if (strpos($name, 'is') !== 0) {
throw new Exception("No such method exists: $name");
}

$this->setDetectionType(self::DETECTION_TYPE_EXTENDED);

$key = substr($name, 2);

return $this->matchUAAgainstKey($key);
}
}
}

+ 5
- 25
src/system/libraries/crawlerdetect.class.php View File

@@ -8,11 +8,9 @@ if (!defined('DEDEINC')) exit('dedebiz');
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/

require_once(DEDEINC."/libraries/fixtures/crawlers.php");
require_once(DEDEINC."/libraries/fixtures/exclusions.php");
require_once(DEDEINC."/libraries/fixtures/headers.php");

class CrawlerDetect
{
/**
@@ -21,56 +19,48 @@ class CrawlerDetect
* @var string|null
*/
protected $userAgent;

/**
* Headers that contain a user agent.
*
* @var array
*/
protected $httpHeaders = array();

/**
* Store regex matches.
*
* @var array
*/
protected $matches = array();

/**
* Crawlers object.
*
* @var \Jaybizzle\CrawlerDetect\Fixtures\Crawlers
*/
protected $crawlers;

/**
* Exclusions object.
*
* @var \Jaybizzle\CrawlerDetect\Fixtures\Exclusions
*/
protected $exclusions;

/**
* Headers object.
*
* @var \Jaybizzle\CrawlerDetect\Fixtures\Headers
*/
protected $uaHttpHeaders;

/**
* The compiled regex string.
*
* @var string
*/
protected $compiledRegex;

/**
* The compiled exclusions regex string.
*
* @var string
*/
protected $compiledExclusions;

/**
* Class constructor.
*/
@@ -79,14 +69,11 @@ class CrawlerDetect
$this->crawlers = new Crawlers();
$this->exclusions = new Exclusions();
$this->uaHttpHeaders = new Headers();

$this->compiledRegex = $this->compileRegex($this->crawlers->getAll());
$this->compiledExclusions = $this->compileRegex($this->exclusions->getAll());

$this->setHttpHeaders($headers);
$this->setUserAgent($userAgent);
}

/**
* Compile the regex patterns into one regex string.
*
@@ -98,7 +85,6 @@ class CrawlerDetect
{
return '('.implode('|', $patterns).')';
}

/**
* Set HTTP headers.
*
@@ -106,23 +92,20 @@ class CrawlerDetect
*/
public function setHttpHeaders($httpHeaders)
{
// Use global _SERVER if $httpHeaders aren't defined.
//Use global _SERVER if $httpHeaders aren't defined.
if (! is_array($httpHeaders) || ! count($httpHeaders)) {
$httpHeaders = $_SERVER;
}

// Clear existing headers.
//Clear existing headers.
$this->httpHeaders = array();

// Only save HTTP headers. In PHP land, that means
// only _SERVER vars that start with HTTP_.
//Only save HTTP headers. In PHP land, that means
//only _SERVER vars that start with HTTP_.
foreach ($httpHeaders as $key => $value) {
if (strpos($key, 'HTTP_') === 0) {
$this->httpHeaders[$key] = $value;
}
}
}

/**
* Return user agent headers.
*
@@ -132,7 +115,6 @@ class CrawlerDetect
{
return $this->uaHttpHeaders->getAll();
}

/**
* Set the user agent.
*
@@ -150,7 +132,6 @@ class CrawlerDetect

return $this->userAgent = $userAgent;
}

/**
* Check user agent string against the regex.
*
@@ -172,7 +153,6 @@ class CrawlerDetect

return (bool) preg_match("/{$this->compiledRegex}/i", $agent, $this->matches);
}

/**
* Return the matches.
*
@@ -182,4 +162,4 @@ class CrawlerDetect
{
return isset($this->matches[0]) ? $this->matches[0] : null;
}
}
}

+ 34
- 34
src/system/libraries/mail.class.php View File

@@ -50,16 +50,16 @@ class smtp
}
if ($cc != "")
{
$header .= "Cc: " . $cc . "\r\n";
$header .= "Cc: ".$cc."\r\n";
}
$header .= "From: $webname<" . $from . ">\r\n";
$subject = "=?" . $GLOBALS['cfg_soft_lang'] . "?B?" . base64_encode($subject) . "?=";
$header .= "Subject: " . $subject . "\r\n";
$header .= "From: $webname<".$from.">\r\n";
$subject = "=?".$GLOBALS['cfg_soft_lang']."?B?".base64_encode($subject)."?=";
$header .= "Subject: ".$subject."\r\n";
$header .= $additional_headers;
$header .= "Date: " . date("r") . "\r\n";
$header .= "X-Mailer:By Redhat (PHP/" . phpversion() . ")\r\n";
$header .= "Date: ".date("r")."\r\n";
$header .= "X-Mailer:By Redhat (PHP/".phpversion().")\r\n";
list($msec, $sec) = explode(" ", microtime());
$header .= "Message-ID: <" . date("YmdHis", $sec) . "." . ($msec * 1000000) . "." . $mail_from . ">\r\n";
$header .= "Message-ID: <".date("YmdHis", $sec).".".($msec * 1000000).".".$mail_from.">\r\n";
$TO = explode(",", $this->strip_comment($to));
if ($cc != "")
{
@@ -72,20 +72,20 @@ class smtp
$sent = TRUE;
foreach ($TO as $rcpt_to)
{
$headerto = "To: " . $rcpt_to . "\r\n";
$headerall = $header . $headerto;
$headerto = "To: ".$rcpt_to."\r\n";
$headerall = $header.$headerto;
$rcpt_to = $this->get_address($rcpt_to);
if (!$this->smtp_sockopen($rcpt_to))
{
$this->log_write("Error: Cannot send email to " . $rcpt_to . "\n");
$this->log_write("Error: Cannot send email to ".$rcpt_to."\n");
$sent = FALSE;
continue;
}
if ($this->smtp_send($this->host_name, $mail_from, $rcpt_to, $headerall, $body))
{
$this->log_write("E-mail has been sent to <" . $rcpt_to . ">\n");
$this->log_write("E-mail has been sent to <".$rcpt_to.">\n");
} else {
$this->log_write("Error: Cannot send email to <" . $rcpt_to . ">\n");
$this->log_write("Error: Cannot send email to <".$rcpt_to.">\n");
$sent = FALSE;
}
fclose($this->sock);
@@ -125,11 +125,11 @@ class smtp
return $this->smtp_error("sending HELO command");
}
}
if (!$this->smtp_putcmd("MAIL", "FROM:<" . $from . ">"))
if (!$this->smtp_putcmd("MAIL", "FROM:<".$from.">"))
{
return $this->smtp_error("sending MAIL FROM command");
}
if (!$this->smtp_putcmd("RCPT", "TO:<" . $to . ">"))
if (!$this->smtp_putcmd("RCPT", "TO:<".$to.">"))
{
return $this->smtp_error("sending RCPT TO command");
}
@@ -162,15 +162,15 @@ class smtp
}
function smtp_sockopen_relay()
{
$this->log_write("Trying to " . $this->relay_host . ":" . $this->smtp_port . "\n");
$this->log_write("Trying to ".$this->relay_host.":".$this->smtp_port."\n");
$this->sock = @fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out);
if (!($this->sock && $this->smtp_ok()))
{
$this->log_write("Error: Cannot connenct to relay host " . $this->relay_host . "\n");
$this->log_write("Error: " . $errstr . " (" . $errno . ")\n");
$this->log_write("Error: Cannot connenct to relay host ".$this->relay_host."\n");
$this->log_write("Error: ".$errstr." (".$errno.")\n");
return FALSE;
}
$this->log_write("Connected to relay host " . $this->relay_host . "\n");
$this->log_write("Connected to relay host ".$this->relay_host."\n");
return TRUE;;
}
function smtp_sockopen_mx($address)
@@ -178,29 +178,29 @@ class smtp
$domain = preg_replace("/^.+@([^@]+)$/i", "\1", $address);
if (!@getmxrr($domain, $MXHOSTS))
{
$this->log_write("Error: Cannot resolve MX \"" . $domain . "\"\n");
$this->log_write("Error: Cannot resolve MX \"".$domain."\"\n");
return FALSE;
}
foreach ($MXHOSTS as $host)
{
$this->log_write("Trying to " . $host . ":" . $this->smtp_port . "\n");
$this->log_write("Trying to ".$host.":".$this->smtp_port."\n");
$this->sock = @fsockopen($host, $this->smtp_port, $errno, $errstr, $this->time_out);
if (!($this->sock && $this->smtp_ok()))
{
$this->log_write("Warning: Cannot connect to mx host " . $host . "\n");
$this->log_write("Error: " . $errstr . " (" . $errno . ")\n");
$this->log_write("Warning: Cannot connect to mx host ".$host."\n");
$this->log_write("Error: ".$errstr." (".$errno.")\n");
continue;
}
$this->log_write("Connected to mx host " . $host . "\n");
$this->log_write("Connected to mx host ".$host."\n");
return TRUE;
}
$this->log_write("Error: Cannot connect to any mx hosts (" . implode(", ", $MXHOSTS) . ")\n");
$this->log_write("Error: Cannot connect to any mx hosts (".implode(", ", $MXHOSTS).")\n");
return FALSE;
}
function smtp_message($header, $body)
{
fputs($this->sock, $header . "\r\n" . $body);
$this->smtp_debug("> " . str_replace("\r\n", "\n" . "> ", $header . "\n> " . $body . "\n> "));
fputs($this->sock, $header."\r\n".$body);
$this->smtp_debug("> ".str_replace("\r\n", "\n"."> ", $header."\n> ".$body."\n> "));
return TRUE;
}
function smtp_eom()
@@ -212,12 +212,12 @@ class smtp
function smtp_ok()
{
$response = str_replace("\r\n", "", fgets($this->sock, 512));
$this->smtp_debug($response . "\n");
$this->smtp_debug($response."\n");
if (!preg_match("#^[23]#", $response))
{
fputs($this->sock, "QUIT\r\n");
fgets($this->sock, 512);
$this->log_write("Error: Remote host returned \"" . $response . "\"\n");
$this->log_write("Error: Remote host returned \"".$response."\"\n");
return FALSE;
}
return TRUE;
@@ -230,16 +230,16 @@ class smtp
{
$cmd = $arg;
} else {
$cmd = $cmd . " " . $arg;
$cmd = $cmd." ".$arg;
}
}
fputs($this->sock, $cmd . "\r\n");
$this->smtp_debug("> " . $cmd . "\n");
fputs($this->sock, $cmd."\r\n");
$this->smtp_debug("> ".$cmd."\n");
return $this->smtp_ok();
}
function smtp_error($string)
{
$this->log_write("Error: Error occurred while " . $string . ".\n");
$this->log_write("Error: Error occurred while ".$string.".\n");
return FALSE;
}
function log_write($message)
@@ -249,10 +249,10 @@ class smtp
{
return TRUE;
}
$message = date("M d H:i:s ") . get_current_user() . "[" . getmypid() . "]: " . $message;
$message = date("M d H:i:s ").get_current_user()."[".getmypid()."]: ".$message;
if (!@file_exists($this->log_file) || !($fp = @fopen($this->log_file, "a")))
{
$this->smtp_debug("Warning: Cannot open log file \"" . $this->log_file . "\"\n");
$this->smtp_debug("Warning: Cannot open log file \"".$this->log_file."\"\n");
return FALSE;;
}
flock($fp, LOCK_EX);


+ 9
- 18
src/system/libraries/statistics.class.php View File

@@ -1,8 +1,6 @@
<?php
if (!defined('DEDEINC')) exit('dedebiz');

require_once(DEDEINC."/libraries/agent.class.php");

/**
* 流量统计
* 一个轻量级流量统计功能
@@ -13,13 +11,11 @@ require_once(DEDEINC."/libraries/agent.class.php");
* @license https://www.dedebiz.com/license
* @link https://www.dedebiz.com
*/

class DedeStatistics {
function __construct()
{
}

// 获取统计JS
//获取统计JS
function GetStat()
{
global $envs,$cfg_cookie_encode;
@@ -66,7 +62,7 @@ class DedeStatistics {
var xhr;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
} else if (window.ActiveXObject) { //IE
try {
xhr = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
@@ -83,14 +79,13 @@ class DedeStatistics {
fetch(u);
}
})();
EOT;
EOT;
}

// 统计
//统计
function Record()
{
global $dsql,$cfg_cookie_encode;
// 进行统计
//进行统计
$pm = array('dduuid','ssid','browser','device','device_type','os','t','created_date','created_hour','url_type','typeid','aid','value','sign');
$pmvalue = array();
foreach ($pm as $v) {
@@ -115,8 +110,7 @@ EOT;
$insql = "INSERT INTO `#@__statistics_detail`(".implode(",",$kstr).") VALUES (".implode(",",$vstr).")";
return $dsql->ExecuteNoneQuery($insql);
}

// 生成uuid
//生成uuid
function _uniqidReal($lenght = 13) {
if (function_exists("random_bytes")) {
$bytes = random_bytes(ceil($lenght / 2));
@@ -127,7 +121,6 @@ EOT;
}
return substr(bin2hex($bytes), 0, $lenght);
}

function GetInfoByDateMulti($ds = array())
{
$results = array();
@@ -137,8 +130,7 @@ EOT;
}
return $result;
}

// 获取某天的统计信息
//获取某天的统计信息
function GetInfoByDate($d=0)
{
global $dsql;
@@ -160,9 +152,8 @@ EOT;
$d = $today;
}
$d = intval($d);
// 如果统计数据中存在,则直接查询统计表
//如果统计数据中存在,则直接查询统计表
$info = $dsql->GetOne("SELECT * FROM `#@__statistics` WHERE sdate = $d");
if (is_array($info)) {
return $info;
}
@@ -171,7 +162,7 @@ EOT;
$ip = $dsql->GetOne("SELECT COUNT(DISTINCT ip) as total FROM `#@__statistics_detail` WHERE created_date = $d");
$vv = $dsql->GetOne("SELECT COUNT(DISTINCT ssid) as total FROM `#@__statistics_detail` WHERE created_date = $d");
if ($d < intval($today)) {
// 缓存数据
//缓存数据
$insql = "INSERT INTO `#@__statistics`(`sdate`,`pv`,`uv`,`ip`,`vv`) VALUES ('$d', '{$pv['total']}','{$uv['total']}','{$ip['total']}','{$vv['total']}')";
$dsql->ExecuteNoneQuery($insql);
}


+ 2
- 2
src/theme/plus/download_links_templet.htm View File

@@ -15,7 +15,7 @@
</style>
</head>
<body>
<?php include("plus_header.htm") ; ?>
<?php include("plus_header.htm"); ?>
<div class="container">
<div class="sp-title">
<h2>文件:<a href="<?php echo $arcurl; ?>"><?php echo $title; ?></a></h2>
@@ -32,6 +32,6 @@
</div>
</div>
<div class="advancedsearch"></div>
<?php include("plus_footer.htm") ; ?>
<?php include("plus_footer.htm"); ?>
</body>
</html>

+ 2
- 2
src/theme/plus/flink-add.htm View File

@@ -10,7 +10,7 @@
<script src="<?php echo $cfg_cmsurl; ?>/static/web/js/jquery.min.js"></script>
</head>
<body class="flinkpage">
<?php include("plus_header.htm") ; ?>
<?php include("plus_header.htm"); ?>
<div class="container">
<div class="sp-title">
<nav class="navbar navbar-expand-lg">
@@ -81,6 +81,6 @@
</form>
</div>
</div>
<?php include("plus_footer.htm") ; ?>
<?php include("plus_footer.htm"); ?>
</body>
</html>

+ 2
- 2
src/theme/plus/flink-list.htm View File

@@ -10,7 +10,7 @@
<script src="<?php echo $cfg_cmsurl; ?>/static/web/js/jquery.min.js"></script>
</head>
<body class="flinkpage">
<?php include("plus_header.htm") ; ?>
<?php include("plus_header.htm"); ?>
<div class="container">
<div class="sp-title">
<nav class="navbar navbar-expand-lg">
@@ -49,6 +49,6 @@
</ul>
</div>
</div>
<?php include("plus_footer.htm") ; ?>
<?php include("plus_footer.htm"); ?>
</body>
</html>

+ 2
- 2
src/theme/plus/heightsearch.htm View File

@@ -9,7 +9,7 @@
<link rel="stylesheet" href="<?php echo $cfg_cmsurl; ?>/static/web/css/style.css">
</head>
<body class="flinkpage">
<?php include("plus_header.htm") ; ?>
<?php include("plus_header.htm"); ?>
<div class="container">
<div class="formbox mt-3">
<table width="100%" cellpadding="0" cellspacing="0" bgcolor="#cccccc" class='table'>
@@ -101,6 +101,6 @@
<br>
</div>
</div>
<?php include("plus_footer.htm") ; ?>
<?php include("plus_footer.htm"); ?>
</body>
</html>

+ 2
- 2
src/theme/plus/recommend.htm View File

@@ -9,7 +9,7 @@
<link rel="stylesheet" href="<?php echo $cfg_cmsurl; ?>/static/web/css/style.css">
</head>
<body class="flinkpage">
<?php include("plus_header.htm") ; ?>
<?php include("plus_header.htm"); ?>
<div class="container">
<div class="sp-title mt-3">推荐:<?php echo $title; ?></div>
<div class="formbox">
@@ -42,6 +42,6 @@
</form>
</div>
</div>
<?php include("plus_footer.htm") ; ?>
<?php include("plus_footer.htm"); ?>
</body>
</html>

+ 2
- 2
src/theme/plus/view_msg.htm View File

@@ -10,7 +10,7 @@
<script src="<?php echo $cfg_cmsurl; ?>/static/web/js/jquery.min.js"></script>
</head>
<body class="flinkpage">
<?php include("plus_header.htm") ; ?>
<?php include("plus_header.htm"); ?>
<div class="container">
<div class="sp-title">
<span class="more">
@@ -43,6 +43,6 @@
<br>
</div>
</div>
<?php include("plus_footer.htm") ; ?>
<?php include("plus_footer.htm"); ?>
</body>
</html>

+ 1
- 1
src/theme/templets/navbar.htm View File

@@ -11,7 +11,7 @@
</li>
{dede:channel type='top' row='10' currentstyle="<li class='nav-item'><a class='nav-link active' href='~typelink~' ~rel~><span>~typename~</span></a></li>"}
<li class="nav-item">
<a class="nav-link" href="[field:typeurl/]" typeid=[field:id/]>[field:typename/]</a>
<a class="nav-link" href="[field:typeurl/]">[field:typename/]</a>
</li>
{/dede:channel}
</ul>


+ 3
- 3
src/user/ajax_feedback.php View File

@@ -12,9 +12,9 @@ if ($myurl == '') exit('');
else {
$uid = $cfg_ml->M_LoginID;
$face = $cfg_ml->fields['face'] == '' ? $GLOBALS['cfg_memberurl'].'/images/nopic.gif' : $cfg_ml->fields['face'];
echo "用户名:{$cfg_ml->M_UserName} <input name=\"notuser\" type=\"checkbox\" id=\"notuser\" value=\"1\" />匿名评论\r\n";
echo "用户名:{$cfg_ml->M_UserName} <input name='notuser' type='checkbox' id='notuser' value='1' />匿名评论\r\n";
if ($cfg_feedback_ck == 'Y') {
echo "验证码:<input name=\"validate\" type=\"text\" id=\"validate\" size=\"10\" style=\"height:18px;width:60px;margin-right:6px;text-transform: uppercase;\" class=\"nb\" />";
echo "<img src='{$cfg_cmsurl}/apps/vdimgck.php' style='cursor:pointer' id='validateimg' onclick=\"this.src=this.src+'?'\" title='验证码' alt='验证码' />\r\n";
echo "验证码:<input name='validate' type='text' id='validate' size='10' style='height:18px;width:60px;margin-right:6px;text-transform: uppercase;' class='nb' />";
echo "<img src='{$cfg_cmsurl}/apps/vdimgck.php' style='cursor:pointer' id='validateimg' onclick='this.src=this.src+'?'' alt='验证码' title='验证码' />\r\n";
}
}

+ 0
- 1
src/user/operation.php View File

@@ -27,7 +27,6 @@ function GetSta($sta)
else if ($sta == 1) return '已付款';
else return '已完成';
}
if ($dopost == '') {
$sql = "SELECT * FROM `#@__member_operation` WHERE mid='".$cfg_ml->M_ID."' AND product<>'archive' ORDER BY aid DESC";
$dlist = new DataListCP();


Loading…
Cancel
Save