From 04a8e382018f778e9c43f977b56f3d5786aacc6d Mon Sep 17 00:00:00 2001 From: ovclas Date: Tue, 22 Nov 2011 07:57:21 +0000 Subject: [PATCH] issue 148 if update group by admin, point should be updated too git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@9853 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/member/member.controller.php | 32 ++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 02044fab4..d583b228b 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -1854,6 +1854,9 @@ return $output; } } + + // if group is changed, point changed too. + $this->_updatePointByGroup($orgMemberInfo->member_srl, $group_srl_list); } } // Call a trigger (after) @@ -1980,5 +1983,34 @@ executeQuery('member.deleteAutologin', $args); } } + + function _updatePointByGroup($memberSrl, $groupSrlList) + { + $oModuleModel = &getModel('module'); + $pointModuleConfig = $oModuleModel->getModuleConfig('point'); + $pointGroup = $pointModuleConfig->point_group; + + if(is_array($pointGroup) && count($pointGroup)>0) + { + $levelGroup = array_flip($pointGroup); + ksort($levelGroup); + } + $maxLevel = 0; + $resultGroup = array_intersect($levelGroup, $groupSrlList); + if(count($resultGroup) > 0) + $maxLevel = max(array_flip($resultGroup)); + + if($maxLevel > 0) + { + $oPointModel = &getModel('point'); + $originPoint = $oPointModel->getPoint($memberSrl); + + if($pointModuleConfig->level_step[$maxLevel] > $originPoint) + { + $oPointController = &getController('point'); + $oPointController->setPoint($memberSrl, $pointModuleConfig->level_step[$maxLevel], 'update'); + } + } + } } ?>