/** * Show the special page * * @param $par Mixed: parameter passed to the page or null */ public function execute($par) { global $wgUploadPath, $wgUser, $wgHuijiPrefix; $templateParser = new TemplateParser(__DIR__ . '/pages'); $out = $this->getOutput(); $user = $this->getUser(); if (!$user->isAllowed('AdminDashboard')) { $out->permissionRequired('AdminDashboard'); return; } // Set the page title, robot policies, etc. $this->setHeaders(); // Add CSS $out->addModules('ext.socialprofile.userprofile.css'); $out->addModules('ext.socialprofile.admindashboard.css'); // Add js and message // $out->addModules( 'skin.bootstrapmediawiki.huiji.getRecordsInterface.js' ); $out->addModules('ext.socialprofile.admindashboard.js'); $out->addModules('ext.socialprofile.userprofile.js'); $output = ''; // Prevent E_NOTICE $yesterday = date("Y-m-d", strtotime("-1 day")); $totaledit = SiteStats::edits(); $ueb = new UserEditBox(); $rankInfo = AllSitesInfo::getAllSitesRankData($wgHuijiPrefix, $yesterday); $usf = new UserSiteFollow(); $follows = $usf->getSiteFollowers('', $wgHuijiPrefix); // print_r($follows); $followCount = count($follows); if ($followCount >= 8) { $follows = array_slice($follows, 0, 8); $display = ''; } else { $display = 'none'; } $newFollow = array(); foreach ($follows as $value) { $arr['user_name'] = $value['user_name']; $userPage = Title::makeTitle(NS_USER, $value['user_name']); $arr['user_url'] = htmlspecialchars($userPage->getFullURL()); $arr['follow_date'] = wfMessage('comments-time-ago', HuijiFunctions::getTimeAgo(strtotime($value['follow_date'])))->text(); $newFollow[] = $arr; } $sentToAll = SpecialPage::getTitleFor('SendToFollowers')->getFullURL(); $showMore = SpecialPage::getTitleFor('EditRank')->getFullURL(); $rightsManage = SpecialPage::getTitleFor('用户权限')->getFullURL(); $blockUsers = SpecialPage::getTitleFor('封禁')->getFullURL(); $freezeUsers = SpecialPage::getTitleFor('解除封禁')->getFullURL(); $replaceText = SpecialPage::getTitleFor('替换文本')->getFullURL(); $siteRankPage = SpecialPage::getTitleFor('SiteRank')->getFullURL(); $allSpecial = SpecialPage::getTitleFor('特殊页面')->getFullURL(); $siteAvatar = (new wSiteAvatar($wgHuijiPrefix, 'l'))->getAvatarHtml(); $token = $user->getEditToken(); if (is_null($newFollow)) { $newFollow = false; } $output .= $templateParser->processTemplate('admin_index', array('siteRank' => isset($rankInfo[0]['site_rank']) ? $rankInfo[0]['site_rank'] : '暂无', 'siteScore' => isset($rankInfo[0]['site_score']) ? $rankInfo[0]['site_score'] : '暂无', 'yesterdayCount' => UserSiteFollow::getFollowerCountOneday($wgHuijiPrefix, $yesterday), 'totalCount' => UserSiteFollow::getFollowerCount($wgHuijiPrefix), 'yesterdayEdit' => $ueb->getSiteEditCount('', $wgHuijiPrefix, $yesterday, $yesterday), 'totalEdit' => $totaledit, 'totalView' => $ueb->getSiteViewCount(-1, $wgHuijiPrefix, '', ''), 'yesterdayView' => $ueb->getSiteViewCount(-1, $wgHuijiPrefix, $yesterday, $yesterday), 'newFollow' => $newFollow, 'sendToAll' => $sentToAll, 'showMore' => $showMore, 'display' => $display, 'rightsManage' => $rightsManage, 'blockUsers' => $blockUsers, 'freezeUsers' => $freezeUsers, 'replaceText' => $replaceText, 'siteRankPage' => $siteRankPage, 'allSpecial' => $allSpecial, 'siteAvatar' => $siteAvatar, 'token' => $token)); $out->addHtml($output); }
/** * Displays the form for sending board blasts */ function displayForm() { global $wgHuijiPrefix; $user = $this->getUser(); $output = '<div class="board-blast-message-form"> <h2>' . $this->msg('boardblaststep1')->escaped() . '</h2> <form method="post" name="blast" action=""> <input type="hidden" name="ids" id="ids" /> <div class="blast-message-text">' . $this->msg('boardblastprivatenote')->escaped() . '</div> <textarea name="message" id="message" cols="63" rows="4"></textarea> </form> </div> <div class="blast-nav"> <h2>' . $this->msg('boardblaststep2')->escaped() . '</h2> <div class="blast-nav-links"> <a href="javascript:void(0);" class="blast-select-all-link">' . $this->msg('boardlinkselectall')->escaped() . '</a> - <a href="javascript:void(0);" class="blast-unselect-all-link">' . $this->msg('boardlinkunselectall')->escaped() . '</a> '; $output .= '</div> </div>'; $usf = new UserSiteFollow(); $res = $usf->getSiteFollowers($user->getName(), $wgHuijiPrefix); foreach ($res as $value) { $follows[] = $value['user_name']; } $output .= '<div id="blast-friends-list" class="blast-friends-list">'; $x = 1; $per_row = 3; if (count($follows) > 0) { foreach ($follows as $follow) { $class = 'friend'; if ($follow !== $user->getName()) { $id = User::idFromName($follow); $output .= '<div class="blast-' . $class . "-unselected\" id=\"user-{$id}\">\n\t\t\t\t\t\t\t" . $follow . "\n\t\t\t\t\t\t</div>"; if ($x == count($follows) || $x != 1 && $x % $per_row == 0) { $output .= '<div class="cleared"></div>'; } } $x++; } } else { $output .= '<div>' . $this->msg('boardnofriends')->escaped() . '</div>'; } $output .= '</div> <div class="cleared"></div>'; $output .= '<div class="blast-message-box-button"> <input type="button" value="' . $this->msg('boardsendbutton')->escaped() . '" class="site-button" /> </div>'; return $output; }
/** * get site followers * @param boolean $expanded if true return user detail info,eles return simple info * @return array */ public function getFollowers($expanded = false) { if (!$this->mFollowers) { // return $this->mFollowers; $usf = new UserSiteFollow(); $this->mFollowers = $usf->getSiteFollowers($this->mPrefix); $siteCache = self::getSiteCache(); $siteCache->set($this->mPrefix, $this); //return $this->mFollowers; } if (!$expanded) { return $this->mFollowers; } else { $request = array(); foreach ($this->mFollowers as $value) { $u_name = $value['user_name']; $temp['user'] = $u_name; // $temp['user'] = User::getEffectiveGroups($user); $userPage = Title::makeTitle(NS_USER, $u_name); $userPageURL = htmlspecialchars($userPage->getFullURL()); $temp['userUrl'] = $userPageURL; $user_id = User::idFromName($u_name); $temp['userId'] = $user_id; $stats = new UserStats($user_id, $u_name); $stats_data = $stats->getUserStats(); $user_level = new UserLevel($stats_data['points']); $temp['level'] = $user_level->getLevelName(); $avatar = new wAvatar($user_id, 'm'); $temp['url'] = $avatar->getAvatarURL(); $tuser = User::newFromName($u_name); $temp['count'] = UserStats::getSiteEditsCount($tuser, $this->mPrefix); // if(in_array($u_name, $follower)){ // $is_follow = 'Y'; // }else{ // $is_follow = 'N'; // } // $temp['is_follow'] = $is_follow; $request[] = $temp; } foreach ($request as $key => $value) { $count[$key] = $value['count']; } array_multisort($count, SORT_DESC, $request); return $request; } }