/**
     * Gets the recent social activity for a given user.
     *
     * @param $user_name String: name of the user whose activity we want to fetch
     */
    function getActivity($user_name)
    {
        global $wgUser, $wgUserProfileDisplay, $wgScriptPath, $wgUploadPath;
        // If not enabled in site settings, don't display
        if ($wgUserProfileDisplay['activity'] == false) {
            return '';
        }
        $output = '';
        $limit = 8;
        $rel = new UserActivity($user_name, 'user', $limit);
        $rel->setActivityToggle('show_votes', 0);
        $rel->setActivityToggle('show_gifts_sent', 1);
        /**
         * Get all relationship activity
         */
        $activity = $rel->getActivityList();
        if ($activity) {
            $output .= '<div class="user-section-heading">
				<div class="user-section-title">' . wfMsg('user-recent-activity-title') . '</div>
				<div class="user-section-actions">
					<div class="action-right">
					</div>
					<div class="cleared"></div>
				</div>
			</div>
			<div class="cleared"></div>';
            $x = 1;
            if (count($activity) < $limit) {
                $style_limit = count($activity);
            } else {
                $style_limit = $limit;
            }
            foreach ($activity as $item) {
                $item_html = '';
                $title = Title::makeTitle($item['namespace'], $item['pagetitle']);
                $user_title = Title::makeTitle(NS_USER, $item['username']);
                $user_title_2 = Title::makeTitle(NS_USER, $item['comment']);
                if ($user_title_2) {
                    $user_link_2 = '<a href="' . $user_title_2->escapeFullURL() . '" rel="nofollow">' . $item['comment'] . '</a>';
                }
                $comment_url = '';
                if ($item['type'] == 'comment') {
                    $comment_url = "#comment-{$item['id']}";
                }
                $page_link = '<b><a href="' . $title->escapeFullURL() . "{$comment_url}\">" . $title->getPrefixedText() . '</a></b> ';
                $b = new UserBoard();
                // Easier than porting the time-related functions here
                $item_time = '<span class="item-small">' . wfMsg('user-time-ago', $b->getTimeAgo($item['timestamp'])) . '</span>';
                if ($x < $style_limit) {
                    $item_html .= '<div class="activity-item">
						<img src="' . $wgScriptPath . '/extensions/SocialProfile/images/' . UserActivity::getTypeIcon($item['type']) . '" alt="" border="0" />';
                } else {
                    $item_html .= '<div class="activity-item-bottom">
						<img src="' . $wgScriptPath . '/extensions/SocialProfile/images/' . UserActivity::getTypeIcon($item['type']) . '" alt="" border="0" />';
                }
                switch ($item['type']) {
                    case 'edit':
                        $item_html .= wfMsg('user-recent-activity-edit') . " {$page_link} {$item_time}\r\n\t\t\t\t\t\t\t<div class=\"item\">";
                        if ($item['comment']) {
                            $item_html .= "\"{$item['comment']}\"";
                        }
                        $item_html .= '</div>';
                        break;
                    case 'vote':
                        $item_html .= wfMsg('user-recent-activity-vote') . " {$page_link} {$item_time}";
                        break;
                    case 'comment':
                        $item_html .= wfMsg('user-recent-activity-comment') . " {$page_link} {$item_time}\r\n\t\t\t\t\t\t\t<div class=\"item\">\r\n\t\t\t\t\t\t\t\t\"{$item['comment']}\"\r\n\t\t\t\t\t\t\t</div>";
                        break;
                    case 'gift-sent':
                        $gift_image = "<img src=\"{$wgUploadPath}/awards/" . Gifts::getGiftImage($item['namespace'], 'm') . '" border="0" alt="" />';
                        $item_html .= wfMsg('user-recent-activity-gift-sent') . " {$user_link_2} {$item_time}\r\n\t\t\t\t\t\t<div class=\"item\">\r\n\t\t\t\t\t\t\t<a href=\"" . $wgScriptPath . "/index.php?title=Special:ViewGift&gift_id={$item['id']}\" rel=\"nofollow\">\r\n\t\t\t\t\t\t\t\t{$gift_image}\r\n\t\t\t\t\t\t\t\t{$item['pagetitle']}\r\n\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t</div>";
                        break;
                    case 'gift-rec':
                        $gift_image = "<img src=\"{$wgUploadPath}/awards/" . Gifts::getGiftImage($item['namespace'], 'm') . '" border="0" alt="" />';
                        $item_html .= wfMsg('user-recent-activity-gift-rec') . " {$user_link_2} {$item_time}</span>\r\n\t\t\t\t\t\t\t\t<div class=\"item\">\r\n\t\t\t\t\t\t\t\t\t<a href=\"" . $wgScriptPath . "/index.php?title=Special:ViewGift&gift_id={$item['id']}\" rel=\"nofollow\">\r\n\t\t\t\t\t\t\t\t\t\t{$gift_image}\r\n\t\t\t\t\t\t\t\t\t\t{$item["pagetitle"]}\r\n\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t</div>";
                        break;
                    case 'system_gift':
                        $gift_image = "<img src=\"{$wgUploadPath}/awards/" . SystemGifts::getGiftImage($item['namespace'], 'm') . '" border="0" alt="" />';
                        $item_html .= wfMsg('user-recent-system-gift') . " {$item_time}\r\n\t\t\t\t\t\t\t\t<div class=\"user-home-item-gift\">\r\n\t\t\t\t\t\t\t\t\t<a href=\"" . $wgScriptPath . "/index.php?title=Special:ViewSystemGift&gift_id={$item['id']}\" rel=\"nofollow\">\r\n\t\t\t\t\t\t\t\t\t\t{$gift_image}\r\n\t\t\t\t\t\t\t\t\t\t{$item['pagetitle']}\r\n\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t</div>";
                        break;
                    case 'friend':
                        $item_html .= wfMsg('user-recent-activity-friend') . " <b>{$user_link_2}</b> {$item_time}";
                        break;
                    case 'foe':
                        $item_html .= wfMsg('user-recent-activity-foe') . " <b>{$user_link_2}</b> {$item_time}";
                        break;
                    case 'system_message':
                        $item_html .= "{$item['comment']} {$item_time}";
                        break;
                    case 'user_message':
                        $item_html .= wfMsg('user-recent-activity-user-message') . " <b><a href=\"" . UserBoard::getUserBoardURL($user_title_2->getText()) . "\" rel=\"nofollow\">{$item['comment']}</a></b>  {$item_time}\r\n\t\t\t\t\t\t\t\t<div class=\"item\">\r\n\t\t\t\t\t\t\t\t\"{$item['namespace']}\"\r\n\t\t\t\t\t\t\t\t</div>";
                        break;
                }
                $item_html .= '</div>';
                if ($x <= $limit) {
                    $items_html_type['all'][] = $item_html;
                }
                $items_html_type[$item['type']][] = $item_html;
                $x++;
            }
            $by_type = '';
            foreach ($items_html_type['all'] as $item) {
                $by_type .= $item;
            }
            $output .= "<div id=\"recent-all\">{$by_type}</div>";
            $by_type = '';
            if (isset($items_html_type['edit']) && is_array($items_html_type['edit'])) {
                foreach ($items_html_type['edit'] as $item) {
                    $by_type .= $item;
                }
            }
            $by_type = '';
            if (isset($items_html_type['comment']) && is_array($items_html_type['comment'])) {
                foreach ($items_html_type['comment'] as $item) {
                    $by_type .= $item;
                }
            }
            $by_type = '';
            if (isset($items_html_type['gift-sent']) && is_array($items_html_type['gift-sent'])) {
                foreach ($items_html_type['gift-sent'] as $item) {
                    $by_type .= $item;
                }
            }
            $by_type = '';
            if (isset($items_html_type['gift-rec']) && is_array($items_html_type['gift-rec'])) {
                foreach ($items_html_type['gift-rec'] as $item) {
                    $by_type .= $item;
                }
            }
            $by_type = '';
            if (isset($items_html_type['system_gift']) && is_array($items_html_type['system_gift'])) {
                foreach ($items_html_type['system_gift'] as $item) {
                    $by_type .= $item;
                }
            }
            $by_type = '';
            if (isset($items_html_type['friend']) && is_array($items_html_type['friend'])) {
                foreach ($items_html_type['friend'] as $item) {
                    $by_type .= $item;
                }
            }
            $by_type = '';
            if (isset($items_html_type['foe']) && is_array($items_html_type['foe'])) {
                foreach ($items_html_type['foe'] as $item) {
                    $by_type .= $item;
                }
            }
            $by_type = '';
            if (isset($items_html_type['system_message']) && is_array($items_html_type['system_message'])) {
                foreach ($items_html_type['system_message'] as $item) {
                    $by_type .= $item;
                }
            }
        }
        return $output;
    }
예제 #2
0
    /**
     * Gets the recent social activity for a given user.
     *
     * @param $user_name String: name of the user whose activity we want to fetch
     */
    function getEditingActivity($user_name)
    {
        global $wgUser, $wgUserProfileDisplay, $wgExtensionAssetsPath, $wgUploadPath;
        // If not enabled in site settings, don't display
        if ($wgUserProfileDisplay['activity'] == false) {
            return '';
        }
        $output = '';
        $limit = 8;
        $rel = new UserActivity($user_name, 'user', $limit);
        $rel->setActivityToggle('show_votes', 0);
        $rel->setActivityToggle('show_edits', 1);
        $rel->setActivityToggle('show_comments', 1);
        $rel->setActivityToggle('show_relationships', 0);
        $rel->setActivityToggle('show_system_gifts', 0);
        $rel->setActivityToggle('show_system_messages', 0);
        $rel->setActivityToggle('show_messages_sent', 0);
        $rel->setActivityToggle('show_user_user_follows', 0);
        $rel->setActivityToggle('show_user_site_follows', 0);
        $rel->setActivityToggle('show_user_update_status', 0);
        $rel->setActivityToggle('show_gifts_sent', 0);
        $rel->setActivityToggle('show_gifts_rec', 0);
        $rel->setActivityToggle('show_domain_creations', 1);
        $rel->setActivityToggle('show_image_uploads', 0);
        /**
         * Get all relationship activity
         */
        $activity = $rel->getActivityList();
        if ($activity) {
            $output .= '<div class="panel panel-default"><div class="user-section-heading panel-heading">
				<div class="user-section-title">' . wfMessage('user-recent-local-activity-title')->escaped() . '</div>
				<div class="user-section-actions">
					<div class="action-right">
					</div>
					<div class="cleared"></div>
				</div>
			</div>
			<div class="cleared"></div>
			<div class="panel-body">';
            $x = 1;
            if (count($activity) < $limit) {
                $style_limit = count($activity);
            } else {
                $style_limit = $limit;
            }
            foreach ($activity as $item) {
                $item_html = '';
                $title = Title::makeTitle($item['namespace'], $item['pagetitle'], '', $item['prefix']);
                $user_title = Title::makeTitle(NS_USER, $item['username']);
                $user_title_2 = Title::makeTitle(NS_USER, $item['comment']);
                if ($user_title_2) {
                    $user_link_2 = '<a href="' . htmlspecialchars($user_title_2->getFullURL()) . '" rel="nofollow">' . $item['comment'] . '</a>';
                }
                $comment_url = '';
                if ($item['type'] == 'comment') {
                    $comment_url = "#comment-{$item['id']}";
                }
                $page_link = '<b><a href="' . htmlspecialchars($title->getFullURL()) . "{$comment_url}\">" . $title->getText() . '</a></b> ';
                $b = new UserBoard();
                // Easier than porting the time-related functions here
                $item_time = '<span class="item-small">' . wfMessage('user-time-ago', $b->getTimeAgo($item['timestamp']))->escaped() . '</span>';
                if ($x < $style_limit) {
                    $item_html .= '<div class="activity-item">' . UserActivity::getTypeIcon($item['type']);
                } else {
                    $item_html .= '<div class="activity-item-bottom">' . UserActivity::getTypeIcon($item['type']);
                }
                $viewGift = SpecialPage::getTitleFor('ViewGift');
                switch ($item['type']) {
                    case 'edit':
                        $item_html .= wfMessage('user-recent-activity-edit')->escaped() . " {$page_link} {$item_time}\n\t\t\t\t\t\t\t<div class=\"item\">";
                        if ($item['comment']) {
                            $item_html .= "\"{$item['comment']}\"";
                        }
                        $item_html .= '</div>';
                        break;
                    case 'vote':
                        $item_html .= wfMessage('user-recent-activity-vote')->escaped() . " {$page_link} {$item_time}";
                        break;
                    case 'comment':
                        $item_html .= wfMessage('user-recent-activity-comment')->escaped() . " {$page_link} {$item_time}\n\t\t\t\t\t\t\t<div class=\"item\">\n\t\t\t\t\t\t\t\t\"{$item['comment']}\"\n\t\t\t\t\t\t\t</div>";
                        break;
                    case 'gift-sent':
                        $gift_image = "<img src=\"{$wgUploadPath}/awards/" . Gifts::getGiftImage($item['namespace'], 'm') . '" border="0" alt="" />';
                        $item_html .= wfMessage('user-recent-activity-gift-sent')->escaped() . " {$user_link_2} {$item_time}\n\t\t\t\t\t\t<div class=\"item\">\n\t\t\t\t\t\t\t<a href=\"" . htmlspecialchars($viewGift->getFullURL("gift_id={$item['id']}")) . "\" rel=\"nofollow\">\n\t\t\t\t\t\t\t\t{$gift_image}\n\t\t\t\t\t\t\t\t{$item['pagetitle']}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div>";
                        break;
                    case 'gift-rec':
                        $gift_image = "<img src=\"{$wgUploadPath}/awards/" . Gifts::getGiftImage($item['namespace'], 'm') . '" border="0" alt="" />';
                        $item_html .= wfMessage('user-recent-activity-gift-rec')->escaped() . " {$user_link_2} {$item_time}</span>\n\t\t\t\t\t\t\t\t<div class=\"item\">\n\t\t\t\t\t\t\t\t\t<a href=\"" . htmlspecialchars($viewGift->getFullURL("gift_id={$item['id']}")) . "\" rel=\"nofollow\">\n\t\t\t\t\t\t\t\t\t\t{$gift_image}\n\t\t\t\t\t\t\t\t\t\t{$item['pagetitle']}\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>";
                        break;
                    case 'system_gift':
                        $gift_image = "<img src=\"{$wgUploadPath}/awards/" . SystemGifts::getGiftImage($item['namespace'], 'm') . '" border="0" alt="" />';
                        $viewSystemGift = SpecialPage::getTitleFor('ViewSystemGift');
                        $item_html .= wfMessage('user-recent-system-gift')->escaped() . " {$item_time}\n\t\t\t\t\t\t\t\t<div class=\"user-home-item-gift\">\n\t\t\t\t\t\t\t\t\t<a href=\"" . htmlspecialchars($viewSystemGift->getFullURL("gift_id={$item['id']}")) . "\" rel=\"nofollow\">\n\t\t\t\t\t\t\t\t\t\t{$gift_image}\n\t\t\t\t\t\t\t\t\t\t{$item['pagetitle']}\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>";
                        break;
                    case 'friend':
                        $item_html .= wfMessage('user-recent-activity-friend')->escaped() . " <b>{$user_link_2}</b> {$item_time}";
                        break;
                    case 'foe':
                        $item_html .= wfMessage('user-recent-activity-foe')->escaped() . " <b>{$user_link_2}</b> {$item_time}";
                        break;
                    case 'system_message':
                        $item_html .= "{$item['comment']} {$item_time}";
                        break;
                    case 'user_message':
                        $item_html .= wfMessage('user-recent-activity-user-message')->escaped() . " <b><a href=\"" . UserBoard::getUserBoardURL($user_title_2->getText()) . "\" rel=\"nofollow\">{$item['comment']}</a></b>  {$item_time}\n\t\t\t\t\t\t\t\t<div class=\"item\">\n\t\t\t\t\t\t\t\t\"{$item['namespace']}\"\n\t\t\t\t\t\t\t\t</div>";
                        break;
                    case 'network_update':
                        $network_image = SportsTeams::getLogo($item['sport_id'], $item['team_id'], 's');
                        $item_html .= wfMessage('user-recent-activity-network-update')->escaped() . '<div class="item">
									<a href="' . SportsTeams::getNetworkURL($item['sport_id'], $item['team_id']) . "\" rel=\"nofollow\">{$network_image} \"{$item['comment']}\"</a>\n\t\t\t\t\t\t\t\t</div>";
                        break;
                    case 'domain_creation':
                        $domainLink = '<b><a href="' . htmlspecialchars($title->getFullURL()) . "\">" . $item['domainname'] . '</a></b> ';
                        $item_html .= wfMessage('user-recent-activity-domain-creation')->escaped() . "{$domainLink} {$item_time}" . '<div class="item">
									<p>' . $item['comment'] . "</p>\n\t\t\t\t\t\t\t\t</div>";
                        break;
                }
                $item_html .= '</div>';
                if ($x <= $limit) {
                    $items_html_type['all'][] = $item_html;
                }
                $items_html_type[$item['type']][] = $item_html;
                $x++;
            }
            $by_type = '';
            foreach ($items_html_type['all'] as $item) {
                $by_type .= $item;
            }
            $output .= "<div id=\"recent-all\">{$by_type}</div></div></div>";
        }
        return $output;
    }