From 7157a0a65f6ba0e73324dff573c5ed5ea8c2b2af Mon Sep 17 00:00:00 2001 From: brotherand2 <547996854@qq.com> Date: Thu, 17 Feb 2022 14:00:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E5=AF=BC=E8=88=AA-=E5=8B=8B=E7=AB=A0=E8=8B=A5=E5=B9=B2?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- upload/source/admincp/admincp_medals.php | 2 +- .../source/class/table/table_common_member_medal.php | 2 +- upload/source/function/function_forum.php | 11 ++++++----- upload/source/module/home/home_medal.php | 11 ++++++++--- upload/template/default/home/space_medal.htm | 6 +++--- upload/template/default/home/space_medal_float.htm | 2 +- 6 files changed, 20 insertions(+), 14 deletions(-) diff --git a/upload/source/admincp/admincp_medals.php b/upload/source/admincp/admincp_medals.php index 619c5ce90..d78c7e47d 100644 --- a/upload/source/admincp/admincp_medals.php +++ b/upload/source/admincp/admincp_medals.php @@ -169,7 +169,7 @@ if(!$operation) { $medalstatus = empty($modmedal['expiration']) ? 0 : 1; $modmedal['expiration'] = $modmedal['expiration'] ? (TIMESTAMP + $modmedal['expiration'] - $modmedal['dateline']) : ''; $medalsnew[$modmedal['uid']][] = $modmedal['medalid'].(empty($modmedal['expiration']) ? '' : '|'.$modmedal['expiration']); - C::t('forum_medallog')->update($modmedal['id'], array('type' => 1, 'status' => $medalstatus, 'expiration' => $modmedal['expiration'])); + C::t('forum_medallog')->update($modmedal['id'], array('type' => 1, 'status' => $medalstatus, 'expiration' => $modmedal['expiration'], 'dateline' => TIMESTAMP)); C::t('common_member_medal')->insert(array('uid' => $modmedal['uid'], 'medalid' => $modmedal['medalid']), 0, 1); } diff --git a/upload/source/class/table/table_common_member_medal.php b/upload/source/class/table/table_common_member_medal.php index 846b98e4d..02e7c690f 100644 --- a/upload/source/class/table/table_common_member_medal.php +++ b/upload/source/class/table/table_common_member_medal.php @@ -22,7 +22,7 @@ class table_common_member_medal extends discuz_table } public function fetch_all_by_uid($uid) { - return !empty($uid) ? DB::fetch_all('SELECT * FROM '.DB::table($this->_table).' WHERE '.DB::field('uid', $uid), 'medalid') : array(); + return !empty($uid) ? DB::fetch_all('SELECT * FROM '.DB::table($this->_table).' WHERE '.DB::field('uid', $uid), '', 'medalid') : array(); } public function delete_by_uid_medalid($uid, $medalid) { diff --git a/upload/source/function/function_forum.php b/upload/source/function/function_forum.php index 42f563f29..75dbf22f6 100644 --- a/upload/source/function/function_forum.php +++ b/upload/source/function/function_forum.php @@ -236,7 +236,7 @@ function medalformulaperm($formula, $type) { } } @eval("\$formulaperm = ($formula) ? TRUE : FALSE;"); - if(!$formulaperm || $type == 2) { + if(!$formulaperm || $type == 1) { if(!$permmessage) { $language = lang('forum/misc'); $search = array('regdate', 'regday', 'regip', 'lastip', 'buyercredit', 'sellercredit', 'digestposts', 'posts', 'threads', 'oltime'); @@ -263,13 +263,14 @@ function medalformulaperm($formula, $type) { } $search = array_merge($search, array('and', 'or', '>=', '<=', '==')); $replace = array_merge($replace, array(' '.$language['formulaperm_and'].' ', ' '.$language['formulaperm_or'].' ', '≥', '≤', '=')); - $_G['forum_formulamessage'] = str_replace($search, $replace, $formulatext); - } else { + $permmessage = str_replace($search, $replace, $formulatext); + } + if(!$formulaperm) { $_G['forum_formulamessage'] = $permmessage; } - return $_G['forum_formulamessage']; - } elseif($formulaperm && $type == 1) { + return $permmessage; + } elseif($formulaperm && $type == 2) { return FALSE; } return TRUE; diff --git a/upload/source/module/home/home_medal.php b/upload/source/module/home/home_medal.php index 8bfca071f..5c22acacd 100644 --- a/upload/source/module/home/home_medal.php +++ b/upload/source/module/home/home_medal.php @@ -27,7 +27,7 @@ if(empty($_GET['action'])) { include libfile('function/forum'); $medalcredits = array(); foreach(C::t('forum_medal')->fetch_all_data(1) as $medal) { - $medal['permission'] = medalformulaperm(serialize(array('medal' => dunserialize($medal['permission']))), 1); + $medal['permission'] = medalformulaperm(serialize(array('medal' => dunserialize($medal['permission']))), $medal['type']); if($medal['price']) { $medal['credit'] = $medal['credit'] ? $medal['credit'] : $_G['setting']['creditstransextra'][3]; $medalcredits[$medal['credit']] = $medal['credit']; @@ -47,12 +47,17 @@ if(empty($_GET['action'])) { } $lastmedalusers = C::t('common_member')->fetch_all($uids); $mymedals = C::t('common_member_medal')->fetch_all_by_uid($_G['uid']); + $mymedals = array_keys($mymedals); + $applylogs = C::t('forum_medallog')->fetch_all_by_type(2); + foreach ($applylogs as $id => $log) { + $mymedals[$log['medalid']] = $log['medalid']; + } } elseif($_GET['action'] == 'confirm') { include libfile('function/forum'); $medal = C::t('forum_medal')->fetch($_GET['medalid']); - $medal['permission'] = medalformulaperm(serialize(array('medal' => dunserialize($medal['permission']))), 1); + $medal['permission'] = medalformulaperm(serialize(array('medal' => dunserialize($medal['permission']))), $medal['type']); if($medal['price']) { $medal['credit'] = $medal['credit'] ? $medal['credit'] : $_G['setting']['creditstransextra'][3]; $medalcredits[$medal['credit']] = $medal['credit']; @@ -76,7 +81,7 @@ if(empty($_GET['action'])) { $medalpermission = $medal['permission'] ? dunserialize($medal['permission']) : ''; if($medalpermission[0] || $medalpermission['usergroupallow']) { include libfile('function/forum'); - medalformulaperm(serialize(array('medal' => $medalpermission)), 1); + medalformulaperm(serialize(array('medal' => $medalpermission)), $medal['type']); if($_G['forum_formulamessage']) { showmessage('medal_permforum_nopermission', 'home.php?mod=medal', array('formulamessage' => $_G['forum_formulamessage'], 'usermsg' => $_G['forum_usermsg'])); diff --git a/upload/template/default/home/space_medal.htm b/upload/template/default/home/space_medal.htm index 5ffde0478..a3de83054 100644 --- a/upload/template/default/home/space_medal.htm +++ b/upload/template/default/home/space_medal.htm @@ -63,7 +63,7 @@
$medal[name]
- + {lang space_medal_have} @@ -71,7 +71,7 @@ {lang space_medal_purchased} - + {lang space_medal_applied} {lang space_medal_receive} @@ -82,7 +82,7 @@ {lang space_medal_buy} - + {lang medals_apply} {lang medals_draw} diff --git a/upload/template/default/home/space_medal_float.htm b/upload/template/default/home/space_medal_float.htm index 0dd0f6a9e..5d7cad6f9 100644 --- a/upload/template/default/home/space_medal_float.htm +++ b/upload/template/default/home/space_medal_float.htm @@ -65,7 +65,7 @@ {lang space_medal_buy} - + {lang medals_apply} {lang medals_draw} -- Gitee