示例#1
0
function ActivityFeedTag_render($content, $attributes, $parser, $frame)
{
    global $wgExtensionsPath, $wgEnableAchievementsInActivityFeed, $wgEnableAchievementsExt;
    if (!class_exists('ActivityFeedHelper')) {
        return '';
    }
    wfProfileIn(__METHOD__);
    $parameters = ActivityFeedHelper::parseParameters($attributes);
    $tagid = str_replace('.', '_', uniqid('activitytag_', true));
    //jQuery might have a problem with . in ID
    $jsParams = "size={$parameters['maxElements']}";
    if (!empty($parameters['includeNamespaces'])) {
        $jsParams .= "&ns={$parameters['includeNamespaces']}";
    }
    if (!empty($parameters['flags'])) {
        $jsParams .= '&flags=' . implode('|', $parameters['flags']);
    }
    $parameters['tagid'] = $tagid;
    $feedHTML = ActivityFeedHelper::getList($parameters);
    $style = empty($parameters['style']) ? '' : ' style="' . $parameters['style'] . '"';
    $timestamp = wfTimestampNow();
    $snippetsDependencies = array('/extensions/wikia/MyHome/ActivityFeedTag.js', '/extensions/wikia/MyHome/ActivityFeedTag.css');
    if (!empty($wgEnableAchievementsInActivityFeed) && !empty($wgEnableAchievementsExt)) {
        array_push($snippetsDependencies, '/extensions/wikia/AchievementsII/css/achievements_sidebar.css');
    }
    $snippets = F::build('JSSnippets')->addToStack($snippetsDependencies, null, 'ActivityFeedTag.initActivityTag', array('tagid' => $tagid, 'jsParams' => $jsParams, 'timestamp' => $timestamp));
    wfProfileOut(__METHOD__);
    return "<div{$style}>{$feedHTML}</div>{$snippets}";
}
 public function execute()
 {
     $params = $this->extractRequestParams();
     $attributes = '';
     $parameters = ActivityFeedHelper::parseParameters($attributes);
     $removeDuplicatesType = in_array('shortlist', $parameters['flags']) ? 1 : 0;
     //remove duplicates using only title for shortlist
     $feedProxy = new ActivityFeedAPIProxy($parameters['includeNamespaces']);
     $feedRenderer = new ActivityFeedRenderer();
     $feedProvider = new DataFeedProvider($feedProxy, $removeDuplicatesType, $parameters);
     $feedData = $feedProvider->get($parameters['maxElements']);
     #echo "<pre>";
     #print_r($feedData);
     #die;
     $data = array();
     foreach ($feedData["results"] as $id => $row) {
         $data[] = $this->rewriteRow($row);
     }
     #print_r($data);
     #die;
     $this->getResult()->setIndexedTagName($data, "af");
     $this->getResult()->addValue("query", $this->getModuleName(), $data);
 }
示例#3
0
/**
 * @author Maciej Błaszkowski <marooned at wikia-inc.com>
 */
function ActivityFeedAjax()
{
    global $wgRequest, $wgLang;
    wfProfileIn(__METHOD__);
    $params = $wgRequest->getVal('params');
    $parameters = ActivityFeedHelper::parseParameters(explode('&', $params));
    if (!empty($parameters['uselang']) && $wgLang->getCode() != $parameters['uselang']) {
        $wgLang = Language::factory($parameters['uselang']);
    }
    $feedHTML = ActivityFeedHelper::getList($parameters);
    $data = array('data' => $feedHTML, 'timestamp' => wfTimestampNow());
    $json = json_encode($data);
    $response = new AjaxResponse($json);
    $response->setContentType('application/json; charset=utf-8');
    $response->setCacheDuration(60);
    wfProfileOut(__METHOD__);
    return $response;
}