コード例 #1
0
 /**
  * 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);
 }
コード例 #2
0
    /**
     * 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;
    }
コード例 #3
0
 /**
  * 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;
     }
 }