protected function _recountStatistics() { $img = '<img src="' . $this->settings['skin_acp_url'] . '/images/loading_anim.gif" alt="-" /> '; switch ($this->request['step']) { default: $stats = $this->cache->getCache('stats'); $topics = $this->DB->buildAndFetch(array('select' => 'COUNT(*) as tcount', 'from' => 'topics', 'where' => $this->registry->getClass('class_forums')->fetchTopicHiddenQuery(array('visible'), ''))); $posts = $this->DB->buildAndFetch(array('select' => 'SUM(posts) as replies', 'from' => 'topics', 'where' => $this->registry->getClass('class_forums')->fetchTopicHiddenQuery(array('visible'), ''))); $this->registry->output->multipleRedirectHit($this->settings['base_url'] . '&module=setup§ion=finalize&do=recountstats&step=posts', $img . ' Total Topics & Posts Recounted'); break; case 'posts': $stats['total_topics'] = $topics['tcount']; $stats['total_replies'] = $posts['replies']; $r = $this->DB->buildAndFetch(array('select' => 'count(member_id) as members', 'from' => 'members', 'where' => "member_group_id <> '{$this->settings['auth_group']}'")); $this->registry->output->multipleRedirectHit($this->settings['base_url'] . '&module=setup§ion=finalize&do=recountstats&step=members', $img . ' Total Members Recounted'); break; case 'members': $stats['mem_count'] = intval($r['members']); $stats = array_merge($stats, IPSMember::resetLastRegisteredMember(true)); $stats['most_date'] = time(); $stats['most_count'] = 1; $this->cache->setCache('stats', $stats, array('array' => 1)); $this->registry->output->multipleRedirectHit($this->settings['base_url'] . '&module=setup§ion=finalize&do=resynchtopics', $img . ' Most Online & Last Registered Member Recounted'); break; case 'done': break; } }
/** * Count stats * * @return @e void */ public function doCount() { if (empty($this->request['posts']) && empty($this->request['online']) && empty($this->request['members']) && empty($this->request['lastreg'])) { $this->registry->output->showError($this->lang->words['re_nothing'], 11154); } $stats = $this->cache->getCache('stats'); if ($this->request['posts']) { $topics = $this->DB->buildAndFetch(array('select' => 'COUNT(*) as tcount', 'from' => 'topics', 'where' => $this->registry->getClass('class_forums')->fetchTopicHiddenQuery(array('visible'), ''))); $posts = $this->DB->buildAndFetch(array('select' => 'SUM(posts) as replies', 'from' => 'topics', 'where' => $this->registry->getClass('class_forums')->fetchTopicHiddenQuery(array('visible'), ''))); $stats['total_topics'] = $topics['tcount']; $stats['total_replies'] = $posts['replies']; } if ($this->request['members']) { $r = $this->DB->buildAndFetch(array('select' => 'count(member_id) as members', 'from' => 'members', 'where' => "member_group_id <> '{$this->settings['auth_group']}'")); $stats['mem_count'] = intval($r['members']); } if ($this->request['lastreg']) { $stats = array_merge($stats, IPSMember::resetLastRegisteredMember(true)); } if ($this->request['online']) { $stats['most_date'] = time(); $stats['most_count'] = 1; } $this->cache->setCache('stats', $stats, array('array' => 1)); $this->registry->output->global_message = $this->lang->words['re_statsrecount']; $this->registry->output->silentRedirectWithMessage($this->settings['base_url'] . $this->form_code); }
/** * Rebuild the stats * * @return bool * @author Brandon Farber */ public function rebuildStats() { $stats = $this->cache->getCache('stats'); $topics = $this->DB->buildAndFetch(array('select' => 'COUNT(*) as tcount', 'from' => 'topics', 'where' => $this->registry->getClass('class_forums')->fetchTopicHiddenQuery(array('visible'), ''))); $posts = $this->DB->buildAndFetch(array('select' => 'SUM(posts) as replies', 'from' => 'topics', 'where' => $this->registry->getClass('class_forums')->fetchTopicHiddenQuery(array('visible'), ''))); $stats['total_topics'] = $topics['tcount']; $stats['total_replies'] = $posts['replies']; $r = $this->DB->buildAndFetch(array('select' => 'count(member_id) as members', 'from' => 'members', 'where' => "member_group_id <> '{$this->settings['auth_group']}'")); $stats['mem_count'] = intval($r['members']); $stats = array_merge($stats, IPSMember::resetLastRegisteredMember(true)); $this->cache->setCache('stats', $stats, array('array' => 1)); return true; }
/** * Unapprove member email change * * @param int Member ID * @return string Confirmation message * @throws NO_VALIDATING_MEMBER */ public function unapproveEmailChange($id) { $member = $this->DB->buildAndFetch(array('select' => 'v.*', 'from' => array('validating' => 'v'), 'where' => 'v.email_chg=1 AND v.member_id=' . intval($id), 'add_join' => array(array('select' => 'm.member_group_id AS old_member_group', 'from' => array('members' => 'm'), 'where' => 'm.member_id=v.member_id', 'type' => 'left')))); if (!$member['vid']) { throw new Exception("NO_VALIDATING_MEMBER"); } $this->DB->delete("validating", "vid='{$member['vid']}'"); IPSMember::save($member['member_id'], array('core' => array('email' => $member['prev_email'], 'member_group_id' => $member['real_group']))); IPSLib::runMemberSync('onGroupChange', $member['member_id'], $member['real_group'], $member['old_member_group']); /* Reset last member */ IPSMember::resetLastRegisteredMember(); $message = sprintf($this->lang->words['t_emailchangeun'], $member['member_id']); ipsRegistry::getClass('adminFunctions')->saveAdminLog($message); return $message; }