From a9fa59b030ff6baa62b04579d6dc716085934b42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=8F=E8=83=A1?= <3203164629@qq.com>
Date: Mon, 29 Jan 2024 12:50:01 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=87=B3v1.87.2=EF=BC=8C?=
=?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=86=85=E5=AE=B9=E5=9C=A8Dzzoffice=E7=AC=94?=
=?UTF-8?q?=E8=AE=B0=E4=B8=AD=E6=9F=A5=E7=9C=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
admin/language/zh-cn/lang.php | 2 +-
admin/system/database.php | 9 +--
core/class/class_core.php | 5 +-
core/class/dzz/dzz_app.php | 37 +++++----
core/core_version.php | 4 +-
core/function/function_core.php | 130 ++++++++++++++------------------
6 files changed, 84 insertions(+), 103 deletions(-)
diff --git a/admin/language/zh-cn/lang.php b/admin/language/zh-cn/lang.php
index ceecf02..701cc8c 100644
--- a/admin/language/zh-cn/lang.php
+++ b/admin/language/zh-cn/lang.php
@@ -390,7 +390,7 @@ $lang = array
'database_export_zip_succeed' => '数据成功备份并压缩至服务器 {filename} 中',
'tools_updatecache_tips' => '
当站点进行了数据恢复、升级或者工作出现异常的时候,您可以使用本功能重新生成缓存。更新缓存的时候,可能让服务器负载升高,请尽量避开会员访问的高峰时间
数据缓存:更新站点的全部数据缓存
- 模板缓存:更新论坛模板、风格等缓存文件,当您修改了模板或者风格,但是没有立即生效的时候使用
+ 模板缓存:更新Dzz模板、风格等缓存文件,当您修改了模板或者风格,但是没有立即生效的时候使用
',
// admin/stysem
'updatecache'=>'更新缓存',
diff --git a/admin/system/database.php b/admin/system/database.php
index 9241c14..e38a917 100644
--- a/admin/system/database.php
+++ b/admin/system/database.php
@@ -85,8 +85,7 @@ if ($operation == 'export') {
}
$volume = intval($_GET['volume']) + 1;
- $idstring = '# Identify: ' . base64_encode($_G['timestamp']."," . $_G['setting']['version'] . "," .$_GET['type']."," .$_GET['method']."," .$volume."," .$tablepre."," .$dbcharset) . "\n";
-
+ $idstring = '# Identify: ' . base64_encode("$_G[timestamp]," . $_G['setting']['version'] . ",{$_GET['type']},{$_GET['method']},{$volume},{$tablepre},{$dbcharset}") . "\n";
$dumpcharset = $_GET['sqlcharset'] ? $_GET['sqlcharset'] : str_replace('-', '', $_G['charset']);
$setnames = ($_GET['sqlcharset'] && $db -> version() > '4.1' && (!$_GET['sqlcompat'] || $_GET['sqlcompat'] == 'MYSQL41')) ? "SET NAMES '$dumpcharset';\n\n" : '';
if ($db -> version() > '4.1') {
@@ -499,7 +498,7 @@ function sqldumptablestruct($table) {
}
$tablestatus = DB::fetch_first("SHOW TABLE STATUS LIKE '$table'");
- $tabledump .= ($tablestatus['Auto_increment'] ? " AUTO_INCREMENT=$tablestatus['Auto_increment']" : ''). ";\n\n";
+ $tabledump .= ($tablestatus['Auto_increment'] ? " AUTO_INCREMENT=$tablestatus[Auto_increment]" : ''). ";\n\n";
if ($_GET['sqlcompat'] == 'MYSQL40' && $db -> version() >= '4.1' && $db -> version() < '5.1') {
if ($tablestatus['Auto_increment'] <> '') {
$temppos = strpos($tabledump, ',');
@@ -540,7 +539,7 @@ function sqldumptable($table, $startfrom = 0, $currsize = 0) {
if ($_GET['extendins'] == '0') {
while ($currsize + strlen($tabledump) + 500 < $_GET['sizelimit'] * 1000 && $numrows == $offset) {
if ($firstfield['Extra'] == 'auto_increment') {
- $selectsql = "SELECT * FROM $table WHERE$firstfield['Field']> $startfrom ORDER BY$firstfield['Field']LIMIT $offset";
+ $selectsql = "SELECT * FROM $table WHERE $firstfield[Field] > $startfrom ORDER BY $firstfield[Field] LIMIT $offset";
} else {
$selectsql = "SELECT * FROM $table LIMIT $startfrom, $offset";
}
@@ -571,7 +570,7 @@ function sqldumptable($table, $startfrom = 0, $currsize = 0) {
} else {
while ($currsize + strlen($tabledump) + 500 < $_GET['sizelimit'] * 1000 && $numrows == $offset) {
if ($firstfield['Extra'] == 'auto_increment') {
- $selectsql = "SELECT * FROM $table WHERE$firstfield['Field']> $startfrom LIMIT $offset";
+ $selectsql = "SELECT * FROM $table WHERE $firstfield[Field] > $startfrom LIMIT $offset";
} else {
$selectsql = "SELECT * FROM $table LIMIT $startfrom, $offset";
}
diff --git a/core/class/class_core.php b/core/class/class_core.php
index 591ee22..a119369 100644
--- a/core/class/class_core.php
+++ b/core/class/class_core.php
@@ -149,10 +149,7 @@ class core
}
public static function handleException($exception) {
- global $_config;
- if($_config['debug']>0){
- dzz_error::exception_error($exception);
- }
+ dzz_error::exception_error($exception);
}
diff --git a/core/class/dzz/dzz_app.php b/core/class/dzz/dzz_app.php
index f7a93d8..e36d7b2 100644
--- a/core/class/dzz/dzz_app.php
+++ b/core/class/dzz/dzz_app.php
@@ -610,32 +610,31 @@ class dzz_app extends dzz_base{
}
}
if($appidxu=C::t('app_market')->fetch_by_identifier(CURMODULE)){
- if($this->var['member']['adminid'] || $_GET['do']=='savefile'){
- }elseif($appidxu['available']==0){
- showmessage(lang('该应用已关闭,请联系管理员。'));
+ if($this->var['member']['adminid'] || $_GET['do']=='savefile'){
+ }elseif($appidxu['available']==0){
+ showmessage(lang('该应用已关闭,请联系管理员。'));
}elseif($this->var['member']['uid']){
- $appuid= C::t('user_field')->fetch($this->var['member']['uid']);
- $appuidz=explode(',',$appuid['applist']);
- if (in_array($appidxu['appid'],$appuidz)){
- }elseif($config=dzz_userconfig_init()){
- if($config['applist']){
- $applist=explode(',',$config['applist']);
- }else{
- $applist=array();
- }
- $appuid= C::t('user_field')->fetch($_G['uid']);
+ $appuid= C::t('user_field')->fetch($this->var['member']['uid']);
$appuidz=explode(',',$appuid['applist']);
if (in_array($appidxu['appid'],$appuidz)){
- }else{
- showmessage(lang('您无权限使用该应用,请联系管理员。'));
+ }elseif($config=dzz_userconfig_init()){
+ if($config['applist']){
+ $applist=explode(',',$config['applist']);
+ }else{
+ $applist=array();
+ }
+ $appuid= C::t('user_field')->fetch($_G['uid']);
+ $appuidz=explode(',',$appuid['applist']);
+ if (in_array($appidxu['appid'],$appuidz)){
+ }else{
+ showmessage(lang('您无权限使用该应用,请联系管理员。'));
+ }
}
-
- }
}elseif($appidxu['group']==0 || $appidxu['group']==-1){
}else{
Hook::listen('check_login');
- }
- }
+ }
+ }
if(isset($this->var['setting']['nocacheheaders']) && $this->var['setting']['nocacheheaders']) {
@header("Expires: -1");
@header("Cache-Control: no-store, private, post-check=0, pre-check=0, max-age=0", FALSE);
diff --git a/core/core_version.php b/core/core_version.php
index e70c7a6..0b0a7a1 100644
--- a/core/core_version.php
+++ b/core/core_version.php
@@ -14,7 +14,7 @@ if(!defined('CORE_VERSION')) {
define('CORE_VERSION', '2.02');
define('CORE_RELEASE', '20180909');
define('CORE_FIXBUG' , '20000000');
- define('CORE_XHVERSION', '1.87.1');
- define('CORE_XHRELEASE', '20240127');
+ define('CORE_XHVERSION', '1.87.2');
+ define('CORE_XHRELEASE', '20240129');
define('CORE_XHFIXBUG' , '20240110');
}
\ No newline at end of file
diff --git a/core/function/function_core.php b/core/function/function_core.php
index 4a15525..4a96945 100644
--- a/core/function/function_core.php
+++ b/core/function/function_core.php
@@ -1774,93 +1774,79 @@ $idtype2type = array(
'qid' => 'attach',
'uid' => 'user'
);
-function get_os()
+function get_os($agent = '')
{
- $agent = $_SERVER['HTTP_USER_AGENT'];
- $os = false;
-
- if (eregi('win', $agent) && eregi('nt 5.1', $agent)) {
- $os = 'Windows XP';
- } else if (eregi('win', $agent) && eregi('nt 5.0', $agent)) {
- $os = 'Windows 2000';
- } else if (eregi('win', $agent) && eregi('nt 5.2', $agent)) {
- $os = 'Windows 2003';
- } else if (eregi('win', $agent) && eregi('nt 6.0', $agent)) {
- $os = 'Windows 2008';
- } else if (eregi('win', $agent) && eregi('6.0', $agent)) {
- $os = 'Windows vista';
- } else if (eregi('win', $agent) && eregi('6.1', $agent)) {
+ if (!$agent) $agent = $_SERVER['HTTP_USER_AGENT'];
+ $os = 'unknow';
+ if (stristr($agent, 'iPad')) {
+ $os = "iPad";
+ } elseif (preg_match('/Android (([0-9_.]{1,3})+)/i', $agent, $version)) {
+ $os = "Android " . $version[1];
+ } elseif (preg_match('/iPhone OS (([0-9_.]{1,3})+)/i', $agent, $version)) {
+ $os = "iPhone " . $version[1];
+ } elseif (preg_match('/win/i', $agent) && strpos($agent, '95')) {
+ $os = 'Windows 95';
+ } elseif (preg_match('/win 9x/i', $agent) && strpos($agent, '4.90')) {
+ $os = 'Windows ME';
+ } elseif (preg_match('/win/i', $agent) && preg_match('/98/i', $agent)) {
+ $os = 'Windows 98';
+ } elseif (preg_match('/win/i', $agent) && preg_match('/nt 6.0/i', $agent)) {
+ $os = 'Windows Vista';
+ } elseif (preg_match('/win/i', $agent) && preg_match('/nt 6.1/i', $agent)) {
$os = 'Windows 7';
- } else if (eregi('win', $agent) && eregi('6.2', $agent)) {
+ } elseif (preg_match('/win/i', $agent) && preg_match('/nt 6.2/i', $agent)) {
$os = 'Windows 8';
- } else if (eregi('win', $agent) && eregi('nt', $agent)) {
+ } elseif (preg_match('/win/i', $agent) && preg_match('/nt 10.0/i', $agent)) {
+ $os = 'Windows 10';
+ } elseif (preg_match('/win/i', $agent) && preg_match('/nt 5.1/i', $agent)) {
+ $os = 'Windows XP';
+ } elseif (preg_match('/win/i', $agent) && preg_match('/nt 5/i', $agent)) {
+ $os = 'Windows 2000';
+ } elseif (preg_match('/win/i', $agent) && preg_match('/nt/i', $agent)) {
$os = 'Windows NT';
- } else if (eregi('win', $agent) && ereg('32', $agent)) {
+ } elseif (preg_match('/win/i', $agent) && preg_match('/32/i', $agent)) {
$os = 'Windows 32';
- } else if (eregi('linux', $agent) && ereg('Android', $agent)) {
- $os = 'Android';
- } else if (eregi('linux', $agent)) {
+ } elseif (preg_match('/linux/i', $agent)) {
$os = 'Linux';
- } else if (eregi('unix', $agent)) {
+ } elseif (preg_match('/unix/i', $agent)) {
$os = 'Unix';
- } else if (eregi('sun', $agent) && eregi('os', $agent)) {
+ } elseif (preg_match('/sun/i', $agent) && preg_match('/os/i', $agent)) {
$os = 'SunOS';
- } else if (eregi('ibm', $agent) && eregi('os', $agent)) {
+ } elseif (preg_match('/ibm/i', $agent) && preg_match('/os/i', $agent)) {
$os = 'IBM OS/2';
- } else if (eregi('Mac', $agent) && eregi('Macintosh', $agent)) {
+ } elseif (preg_match('/Mac/i', $agent) && preg_match('/PC/i', $agent)) {
$os = 'Macintosh';
- } else if (eregi('PowerPC', $agent)) {
+ } elseif (preg_match('/PowerPC/i', $agent)) {
$os = 'PowerPC';
- } /* else if (eregi('AIX', $agent))
- {
- $os = 'AIX';
- }
- else if (eregi('HPUX', $agent))
- {
- $os = 'HPUX';
- }
- else if (eregi('NetBSD', $agent))
- {
- $os = 'NetBSD';
- }
- else if (eregi('BSD', $agent))
- {
- $os = 'BSD';
- }
- else if (ereg('OSF1', $agent))
- {
- $os = 'OSF1';
- }
- else if (ereg('IRIX', $agent))
- {
- $os = 'IRIX';
- }
- else if (eregi('FreeBSD', $agent))
- {
- $os = 'FreeBSD';
- }
- else if (eregi('teleport', $agent))
- {
- $os = 'teleport';
- }
- else if (eregi('flashget', $agent))
- {
- $os = 'flashget';
- }
- else if (eregi('webzip', $agent))
- {
- $os = 'webzip';
- }
- else if (eregi('offline', $agent))
- {
- $os = 'offline';
- }*/
- else {
- $os = 'Unknown';
+ } elseif (preg_match('/AIX/i', $agent)) {
+ $os = 'AIX';
+ } elseif (preg_match('/HPUX/i', $agent)) {
+ $os = 'HPUX';
+ } elseif (preg_match('/NetBSD/i', $agent)) {
+ $os = 'NetBSD';
+ } elseif (preg_match('/BSD/i', $agent)) {
+ $os = 'BSD';
+ } elseif (preg_match('/OSF1/i', $agent)) {
+ $os = 'OSF1';
+ } elseif (preg_match('/IRIX/i', $agent)) {
+ $os = 'IRIX';
+ } elseif (preg_match('/FreeBSD/i', $agent)) {
+ $os = 'FreeBSD';
+ } elseif (preg_match('/teleport/i', $agent)) {
+ $os = 'teleport';
+ } elseif (preg_match('/flashget/i', $agent)) {
+ $os = 'flashget';
+ } elseif (preg_match('/webzip/i', $agent)) {
+ $os = 'webzip';
+ } elseif (preg_match('/offline/i', $agent)) {
+ $os = 'offline';
+ } else {
+ $os = 'unkonow';
}
return $os;
}
+
function array_sort($arr, $keys, $type = 'asc')
{ //二维数组排序;
$keysvalue = $new_array = array();