private function _memcpCheck() { $setting = $this->setting; if ($setting['preMedalid'] && !in_array($setting['preMedalid'], getMedalByUid())) { return false; } return true; }
$applysucceed = TRUE; $medalfieldSetting = (array) unserialize($medal['setting']); foreach (getMedalExtendClass() as $classname => $newclass) { if ($applysucceed && method_exists($newclass, 'memcp_check')) { $applysucceed = $newclass->memcp_check($medalfieldSetting[$classname]); } list($applysucceed, $msg) = is_array($applysucceed) ? $applysucceed : array($applysucceed); if ($applysucceed !== TRUE) { $msg = empty($msg) ? "对不起,由于您尚未满足申请条件,申请失败!请返回。" : $msg; showmessage($msg); } } if ($applysucceed) { $expiration = empty($medal['expiration']) ? 0 : TIMESTAMP + $medal['expiration'] * 86400; if ($medal['type'] == 1 || $medal['type'] == 5) { $usermedal = implode("\t", getMedalByUid($_G['uid'])); $medalShowLimit = $cvars['showMedalLimit'][$_G['groupid']]; if ($medalShowLimit > 0) { //如果限制勋章展示总数 $count = 0; foreach ($usermedalArr as $_medalid => $_expiration) { if ($_expiration >= 0) { $count++; } } //统计显示的勋章数量 if ($count >= $medalShowLimit) { $expiration = $expiration ? -$expiration : -1; } //则新勋章默认不显示 }