protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $template) { $threads = array(); if (isset($params['thread']) and !empty($params['thread']['thread_id'])) { // $thread is found in the template params, try to fetch the tags $tagsOrTexts = Tinhte_XenTag_Helper::unserialize($params['thread'][Tinhte_XenTag_Constants::FIELD_THREAD_TAGS]); } if (empty($tagsOrTexts) and isset($params['page']) and !empty($params['page']['node_id'])) { // fetch page's tags $tagsOrTexts = Tinhte_XenTag_Helper::unserialize($params['page'][Tinhte_XenTag_Constants::FIELD_PAGE_TAGS]); } if (empty($tagsOrTexts) and isset($params['forum']) and !empty($params['forum']['node_id'])) { // fetch forum's tags $tagsOrTexts = Tinhte_XenTag_Helper::unserialize($params['forum'][Tinhte_XenTag_Constants::FIELD_FORUM_TAGS]); } if (empty($tagsOrTexts) and isset($params['resource']) and !empty($params['resource']['resource_id'])) { // fetch resource's tags $tagsOrTexts = Tinhte_XenTag_Helper::unserialize($params['resource'][Tinhte_XenTag_Constants::FIELD_RESOURCE_TAGS]); } if (!empty($tagsOrTexts)) { $core = WidgetFramework_Core::getInstance(); /* @var $threadModel XenForo_Model_Thread */ $threadModel = $core->getModelFromCache('XenForo_Model_Thread'); /* @var $tagModel Tinhte_XenTag_Model_Tag */ $tagModel = $core->getModelFromCache('Tinhte_XenTag_Model_Tag'); $tagTexts = Tinhte_XenTag_Helper::getTextsFromTagsOrTexts($tagsOrTexts); $tags = $tagModel->getTagsByText($tagTexts); $threadIds = array(); foreach ($tags as $tag) { $latest = Tinhte_XenTag_Helper::unserialize($tag['latest_tagged_contents']); if (empty($latest)) { // for some reason, the latest_tagged_contents field is empty // this is illogical because at least there is 1 tagged content (current thread) // so we will rebuild the tag... $latest = $tagModel->updateTag($tag['tag_id']); } if (!empty($latest)) { foreach ($latest as $taggedContent) { if ($taggedContent['content_type'] == 'thread') { // ignore current thread id, obviously!!! if (!empty($params['thread']['thread_id']) and $taggedContent['content_id'] == $params['thread']['thread_id']) { continue; } $threadIds[] = $taggedContent['content_id']; } } } } if (!empty($threadIds)) { $threadIds = array_unique($threadIds); $forumIds = $this->_helperGetForumIdsFromOption(array(), $params, empty($widget['options']['as_guest']) ? false : true); // quick way to get all viewable forum ids $conditions = array('node_id' => $forumIds, Tinhte_XenTag_XenForo_Model_Thread::CONDITIONS_THREAD_ID => $threadIds, 'deleted' => false, 'moderated' => false); $fetchOptions = array('limit' => $widget['options']['limit'], 'join' => XenForo_Model_Thread::FETCH_AVATAR, 'order' => 'post_date', 'orderDirection' => 'desc'); $threads = $threadModel->getThreads($conditions, $fetchOptions); } } $template->setParam('threads', $threads); return $template->render(); }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { if (empty($widget['options']['limit'])) { $widget['options']['limit'] = 5; } if (empty($widget['options']['order'])) { $widget['options']['order'] = 'register_date'; } if (empty($widget['options']['direction'])) { $widget['options']['direction'] = 'DESC'; } $users = false; // try to be smart and get the users data if they happen to be available if ($positionCode == 'member_list') { if ($widget['options']['limit'] == 12 && $widget['options']['order'] == 'message_count' and !empty($params['activeUsers'])) { $users = $params['activeUsers']; } if ($widget['options']['limit'] == 8 && $widget['options']['order'] == 'register_date' and !empty($params['latestUsers'])) { $users = $params['latestUsers']; } } if ($users === false) { /** @var XenForo_Model_User $userModel */ $userModel = WidgetFramework_Core::getInstance()->getModelFromCache('XenForo_Model_User'); $conditions = array('user_state' => 'valid', 'is_banned' => 0); $fetchOptions = array('limit' => $widget['options']['limit'], 'order' => $widget['options']['order'], 'direction' => $widget['options']['direction']); $users = $userModel->getUsers($conditions, $fetchOptions); } $renderTemplateObject->setParam('users', $users); return $renderTemplateObject->render(); }
protected function _getProfilePosts(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { if ($positionCode == 'forum_list' and $widget['options']['limit'] == XenForo_Application::getOptions()->get('forumListNewProfilePosts')) { if (!empty($params['profilePosts'])) { return $params['profilePosts']; } } $core = WidgetFramework_Core::getInstance(); $visitor = XenForo_Visitor::getInstance(); /** @var WidgetFramework_XenForo_Model_ProfilePost $profilePostModel */ $profilePostModel = $core->getModelFromCache('XenForo_Model_ProfilePost'); $profilePosts = $profilePostModel->WidgetFramework_getLatestProfilePosts(array('deleted' => false, 'moderated' => false), array('limit' => $widget['options']['limit'] * 3, 'join' => XenForo_Model_ProfilePost::FETCH_USER_POSTER | XenForo_Model_ProfilePost::FETCH_USER_RECEIVER | XenForo_Model_ProfilePost::FETCH_USER_RECEIVER_PRIVACY, 'permissionCombinationId' => $visitor->get('permission_combination_id'))); foreach ($profilePosts as $id => &$profilePost) { $receivingUser = $profilePostModel->getProfileUserFromProfilePost($profilePost); if (!$profilePostModel->canViewProfilePostAndContainer($profilePost, $receivingUser)) { unset($profilePosts[$id]); } $profilePost = $profilePostModel->prepareProfilePost($profilePost, $receivingUser); if (!empty($profilePost['isIgnored'])) { unset($profilePosts[$id]); } } $profilePosts = array_slice($profilePosts, 0, $widget['options']['limit'], true); return $profilePosts; }
public function prepareParams() { if (!empty($this->_params['_preparedParams'])) { return; } $this->_params['_preparedParams'] = true; $widget = $this->_params['widget']; $widget['_ajaxLoadParams'] = $this->_params['ajaxLoadParams']; $position = 'wf_widget_ajax'; $hookPosition = 'hook:wf_widget_ajax'; if (!empty($widget['_ajaxLoadParams'][WidgetFramework_WidgetRenderer::PARAM_IS_HOOK])) { $widget['position'] = $hookPosition; $widget['template_for_hooks'] = array($hookPosition => array($position)); } else { $widget['position'] = $position; } $widgets = array($widget['widget_id'] => $widget); $core = WidgetFramework_Core::getInstance(); $core->removeAllWidgets(); $core->addWidgets($widgets); $_REQUEST['_getRender'] = 1; $_REQUEST['_getRenderAsTemplateHtml'] = 1; $_REQUEST['_renderedIds'] = $widget['widget_id']; WidgetFramework_Listener::saveLayoutEditorRendered(true); }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { if (empty($widget['options']['limit'])) { $widget['options']['limit'] = 5; } if (empty($widget['options']['type'])) { $widget['options']['type'] = 'new'; } $core = WidgetFramework_Core::getInstance(); $visitor = XenForo_Visitor::getInstance(); $userModel = $core->getModelFromCache('XenForo_Model_User'); $teamModel = $core->getModelFromCache('Nobita_Teams_Model_Team'); $memberModel = $core->getModelFromCache('Nobita_Teams_Model_Member'); $conditions = array('moderated' => false, 'deleted' => false, 'privacy_state' => array(Nobita_Teams_Model_Team::PRIVACY_OPEN, Nobita_Teams_Model_Team::PRIVACY_CLOSED)); $fetchOptions = array('join' => Nobita_Teams_Model_Team::FETCH_PROFILE | Nobita_Teams_Model_Team::FETCH_PRIVACY | Nobita_Teams_Model_Team::FETCH_CATEGORY); switch ($widget['options']['type']) { case 'new': $teams = $teamModel->getTeams($conditions, array_merge($fetchOptions, array('order' => 'team_date', 'direction' => 'desc', 'limit' => $widget['options']['limit']))); break; case 'most_message': $teams = $teamModel->getTeams($conditions, array_merge($fetchOptions, array('order' => 'message_count', 'direction' => 'desc', 'limit' => $widget['options']['limit']))); break; case 'most_member': $teams = $teamModel->getTeams($conditions, array_merge($fetchOptions, array('order' => 'member_count', 'direction' => 'desc', 'limit' => $widget['options']['limit']))); break; case 'suggestion': $users = $userModel->getUsersFollowing($visitor['user_id'], array('limit' => $widget['options']['limit'] * 3)); $setup = Nobita_Teams_Setup::getInstance(); $teamIds = $memberModel->getTeamIdsByUserId(array_keys($users)); $user = $visitor->toArray(); foreach ($teamIds as $key => &$val) { if ($setup->getTeamFromVisitor($val, $user)) { unset($teamIds[$key]); // remove team which visitor has joined } } if (empty($users)) { if (empty($teamIds)) { $teams = array(); } else { $teams = $teamModel->getTeams($conditions, array_merge($fetchOptions, array('team_id' => $teamIds, 'order' => 'random', 'limit' => $widget['options']['limit'] * 3))); } } else { if (empty($teamIds)) { $teams = array(); } else { $teams = $teamModel->getTeams($conditions, array_merge($fetchOptions, array('team_id' => $teamIds, 'order' => 'random', 'limit' => $widget['options']['limit'] * 3))); } } break; } $teams = $teamModel->filterUnviewableTeams($teams); $teams = $teamModel->prepareTeams($teams); if (count($teams) > $widget['options']['limit']) { // too many teams (because we fetched 3 times as needed) $teams = array_slice($teams, 0, $widget['options']['limit'], true); } $renderTemplateObject->setParam('teams', $teams); return $renderTemplateObject->render(); }
protected function _render(array $widget, $templateName, array $params, XenForo_Template_Abstract $renderTemplateObject) { $userModel = WidgetFramework_Core::getInstance()->getModelFromCache('XenForo_Model_User'); $fetchOptions = array(); $users = $userModel->getTopUsers($widget['options']); $renderTemplateObject->setParam('users', $users); return $renderTemplateObject->render(); }
public function prepareParams() { $widgets = array(); foreach ($this->_params['widgets'] as $widget) { $widgets[] = $widget; } $core = WidgetFramework_Core::getInstance(); $core->addWidgets($widgets); parent::prepareParams(); }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { $core = WidgetFramework_Core::getInstance(); /** @var XenForo_Model_Thread $threadModel */ $threadModel = $core->getModelFromCache('XenForo_Model_Thread'); /** @var XenForo_Model_Poll $pollModel */ $pollModel = $core->getModelFromCache('XenForo_Model_Poll'); /** @var XenForo_Model_Node $nodeModel */ $nodeModel = $core->getModelFromCache('XenForo_Model_Node'); $thread = array(); $poll = array(); if (empty($widget['options']['thread_id']) or $widget['options']['thread_id'] === 'random') { $forumIds = array_keys($this->_helperGetViewableNodeList(false)); $conditions = array('node_id' => $forumIds, WidgetFramework_XenForo_Model_Thread::CONDITIONS_DISCUSSION_TYPE => 'poll', 'deleted' => false, 'moderated' => false); if (!empty($widget['options']['open_only'])) { $conditions['discussion_open'] = true; } $fetchOptions = array('order' => $widget['options']['thread_id'] === 'random' ? WidgetFramework_XenForo_Model_Thread::FETCH_OPTIONS_ORDER_RANDOM : 'post_date', 'orderDirection' => 'desc', WidgetFramework_XenForo_Model_Thread::FETCH_OPTIONS_POLL_JOIN => true, WidgetFramework_XenForo_Model_Thread::FETCH_OPTIONS_FORUM_FULL_JOIN => true, 'limit' => 3); $threads = $threadModel->getThreads($conditions, $fetchOptions); if (!empty($threads)) { $thread = array(); $nodePermissions = $nodeModel->getNodePermissionsForPermissionCombination(); foreach ($threads as $_thread) { if ($threadModel->canViewThread($_thread, $_thread, $null, $nodePermissions[$_thread['node_id']])) { $thread = $_thread; break; } } } } else { $thread = $threadModel->getThreadById($widget['options']['thread_id'], array(WidgetFramework_XenForo_Model_Thread::FETCH_OPTIONS_POLL_JOIN => true, WidgetFramework_XenForo_Model_Thread::FETCH_OPTIONS_FORUM_FULL_JOIN => true)); if ($thread['discussion_type'] != 'poll') { $thread = array(); } if (!empty($widget['options']['open_only'])) { if (empty($thread['discussion_open'])) { $thread = array(); } } } if (!empty($thread)) { if (XenForo_Application::$versionId > 1040000) { // XenForo 1.4.0+ has some major changes regarding polls $poll = $pollModel->getPollByContent('thread', $thread['thread_id']); if (!empty($poll)) { $poll = $pollModel->preparePoll($poll, $threadModel->canVoteOnPoll($poll, $thread, $thread)); } } else { $poll = $pollModel->preparePoll($thread, $threadModel->canVoteOnPoll($thread, $thread)); } } $renderTemplateObject->setParam('thread', $thread); $renderTemplateObject->setParam('poll', $poll); return $renderTemplateObject->render(); }
protected function _getProfilePosts(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { $core = WidgetFramework_Core::getInstance(); /** @var XenForo_Model_User $userModel */ $userModel = $core->getModelFromCache('XenForo_Model_User'); /** @var XenForo_Model_UserProfile $userProfileModel */ $userProfileModel = $core->getModelFromCache('XenForo_Model_UserProfile'); /** @var XenForo_Model_ProfilePost $profilePostModel */ $profilePostModel = $core->getModelFromCache('XenForo_Model_ProfilePost'); if (XenForo_Visitor::getUserId() == 0 or empty($widget['options']['friends_only'])) { // get statuses from all users if friends_only option is not used // also do it if current user is guest (guest has no friend list, lol) $conditions = array(WidgetFramework_XenForo_Model_User::CONDITIONS_STATUS_DATE => array('>', 0)); $fetchOptions = array('join' => XenForo_Model_User::FETCH_USER_PROFILE, 'order' => WidgetFramework_XenForo_Model_User::ORDER_STATUS_DATE, 'direction' => 'desc', 'limit' => $widget['options']['limit'] * 3); $users = $userModel->getUsers($conditions, $fetchOptions); // remove users if current user has no permission foreach (array_keys($users) as $userId) { if ($userProfileModel->canViewProfilePosts($users[$userId]) == false) { unset($users[$userId]); } } } else { $users = $userModel->getFollowedUserProfiles(XenForo_Visitor::getUserId(), $widget['options']['limit'], 'user_profile.status_date DESC'); // remove users if no status is found foreach (array_keys($users) as $userId) { if (empty($users[$userId]['status_date'])) { unset($users[$userId]); } } } $profilePostIds = array(); if (!empty($widget['options']['show_duplicates']) and !empty($users)) { $userIds = array_keys($users); /** @var WidgetFramework_XenForo_Model_ProfilePost $profilePostModel */ $profilePostModel = $core->getModelFromCache('XenForo_Model_ProfilePost'); $profilePostIds = $profilePostModel->WidgetFramework_getProfilePostIdsOfUserStatuses($userIds, intval($widget['options']['limit'])); } else { foreach ($users as $user) { $profilePostIds[] = $user['status_profile_post_id']; } } $profilePosts = $profilePostModel->getProfilePostsByIds($profilePostIds, array('join' => XenForo_Model_ProfilePost::FETCH_USER_POSTER | XenForo_Model_ProfilePost::FETCH_USER_RECEIVER | XenForo_Model_ProfilePost::FETCH_USER_RECEIVER_PRIVACY)); foreach ($profilePosts as $id => &$profilePost) { $receivingUser = $profilePostModel->getProfileUserFromProfilePost($profilePost); $profilePost = $profilePostModel->prepareProfilePost($profilePost, $receivingUser); if (!empty($profilePost['isIgnored'])) { unset($profilePosts[$id]); } } uasort($profilePosts, array(__CLASS__, '_cmpFunction')); $profilePosts = array_slice($profilePosts, 0, $widget['options']['limit'], true); return $profilePosts; }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { $limit = XenForo_Application::getOptions()->get('xengalleryShowTopContributors', 'limit'); if (!empty($widget['options']['limit'])) { $limit = $widget['options']['limit']; } /** @var XenGallery_Model_Media $mediaModel */ $mediaModel = WidgetFramework_Core::getInstance()->getModelFromCache('XenGallery_Model_Media'); $users = $mediaModel->getTopContributors($limit); $renderTemplateObject->setParam('users', $users); return $renderTemplateObject->render(); }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $template) { $core = WidgetFramework_Core::getInstance(); /** @var Tinhte_XenTag_XenForo_Model_Tag $tagModel */ $tagModel = $core->getModelFromCache('XenForo_Model_Tag'); if (!empty($widget['options']['days'])) { $days = $widget['options']['days']; } else { $days = Tinhte_XenTag_Option::get('trendingDays'); } $cutoff = XenForo_Application::$time - $days * 86400; if (!empty($widget['options']['limit'])) { $limit = $widget['options']['limit']; } else { $limit = Tinhte_XenTag_Option::get('trendingMax'); } $forumIds = array(); if (!empty($widget['options']['forums'])) { $forumIds = $this->_helperGetForumIdsFromOption($widget['options']['forums'], $params, true); } $db = XenForo_Application::getDb(); $counts = $db->fetchPairs(' SELECT tag_content.tag_id, COUNT(*) AS tagged_count FROM `xf_tag_content` AS tag_content ' . (!empty($forumIds) ? 'INNER JOIN `xf_thread` AS thread ON (thread.thread_id = tag_content.content_id)' : '') . ' WHERE tag_content.content_type = "thread" AND tag_content.add_date > ? ' . (!empty($forumIds) ? 'AND thread.node_id IN (' . $db->quote($forumIds) . ')' : '') . ' GROUP BY tag_content.tag_id ORDER BY tagged_count DESC LIMIT ?; ', array($cutoff, $limit)); $tags = array(); if (!empty($counts)) { $tagsDb = $tagModel->fetchAllKeyed(' SELECT * FROM `xf_tag` WHERE tag_id IN (' . $db->quote(array_keys($counts)) . ') ', 'tag_id'); foreach ($counts as $tagId => $count) { if (isset($tagsDb[$tagId])) { $tags[$tagId] = $tagsDb[$tagId]; $tags[$tagId]['use_count'] = $count; } } } $tagsLevels = $tagModel->getTagCloudLevels($tags); $template->setParam('tags', $tags); $template->setParam('tagsLevels', $tagsLevels); return $template->render(); }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { if ('forum_list' == $positionCode) { $renderTemplateObject->setParam('boardTotals', $params['boardTotals']); } else { $core = WidgetFramework_Core::getInstance(); $boardTotals = $core->getModelFromCache('XenForo_Model_DataRegistry')->get('boardTotals'); if (!$boardTotals) { $boardTotals = $core->getModelFromCache('XenForo_Model_Counters')->rebuildBoardTotalsCounter(); } $renderTemplateObject->setParam('boardTotals', $boardTotals); } return $renderTemplateObject->render(); }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { if ('forum_list' === $positionCode and !empty($params['onlineUsers'])) { $renderTemplateObject->setParam('onlineUsers', $params['onlineUsers']); } else { if (empty($GLOBALS['WidgetFramework_onlineUsers'])) { $visitor = XenForo_Visitor::getInstance(); $sessionModel = WidgetFramework_Core::getInstance()->getModelFromCache('XenForo_Model_Session'); $GLOBALS['WidgetFramework_onlineUsers'] = $sessionModel->getSessionActivityQuickList($visitor->toArray(), array('cutOff' => array('>', $sessionModel->getOnlineStatusTimeout())), $visitor['user_id'] ? $visitor->toArray() : null); } $renderTemplateObject->setParam('onlineUsers', $GLOBALS['WidgetFramework_onlineUsers']); } return $renderTemplateObject->render(); }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $template) { $threads = array(); if (isset($params['thread']) and !empty($params['thread']['thread_id'])) { // $thread is found in the template params, try to fetch the tags $tags = Tinhte_XenTag_Helper::unserialize($params['thread'][Tinhte_XenTag_Constants::FIELD_THREAD_TAGS]); } if (empty($tags) and isset($params['page']) and !empty($params['page']['node_id'])) { // fetch page's tags $tags = Tinhte_XenTag_Helper::unserialize($params['page'][Tinhte_XenTag_Constants::FIELD_PAGE_TAGS]); } if (empty($tags) and isset($params['forum']) and !empty($params['forum']['node_id'])) { // fetch forum's tags $tags = Tinhte_XenTag_Helper::unserialize($params['forum'][Tinhte_XenTag_Constants::FIELD_FORUM_TAGS]); } if (empty($tags) and isset($params['resource']) and !empty($params['resource']['resource_id'])) { // fetch resource's tags $tags = Tinhte_XenTag_Helper::unserialize($params['resource'][Tinhte_XenTag_Constants::FIELD_RESOURCE_TAGS]); } if (!empty($tags)) { $core = WidgetFramework_Core::getInstance(); /* @var $searchModel XenForo_Model_Search */ $searchModel = $core->getModelFromCache('XenForo_Model_Search'); $tagConstraint = implode(' ', array_keys($tags)); $constraints = array(Tinhte_XenTag_Constants::SEARCH_CONSTRAINT_TAGS => $tagConstraint); $searcher = new XenForo_Search_Searcher($searchModel); $searchQuery = ''; $order = 'date'; $typeHandler = $searchModel->getSearchDataHandler('thread'); $results = $searcher->searchType($typeHandler, $searchQuery, $constraints, $order, false, $widget['options']['limit'] * 10); if (!empty($results)) { $threadIds = array(); foreach ($results as $result) { if ($result[0] === 'thread') { $threadIds[] = $result[1]; } } $threadIds = array_unique($threadIds); $forumIds = $this->_helperGetForumIdsFromOption(array(), $params, empty($widget['options']['as_guest']) ? false : true); $conditions = array('node_id' => $forumIds, Tinhte_XenTag_XenForo_Model_Thread::CONDITIONS_THREAD_ID => $threadIds, 'deleted' => false, 'moderated' => false); $fetchOptions = array('limit' => $widget['options']['limit'], 'join' => XenForo_Model_Thread::FETCH_AVATAR, 'order' => 'post_date', 'orderDirection' => 'desc'); /* @var $threadModel XenForo_Model_Thread */ $threadModel = $core->getModelFromCache('XenForo_Model_Thread'); $threads = $threadModel->getThreads($conditions, $fetchOptions); } } $template->setParam('threads', $threads); return $template->render(); }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $template) { $core = WidgetFramework_Core::getInstance(); /** @var Tinhte_XenTag_XenForo_Model_Tag $tagModel */ $tagModel = $core->getModelFromCache('XenForo_Model_Tag'); if (!empty($widget['options']['limit'])) { $limit = $widget['options']['limit']; } else { $limit = XenForo_Application::getOptions()->get('tagCloud', 'count'); } $tags = $tagModel->getTagsForCloud($limit); $tagsLevels = $tagModel->getTagCloudLevels($tags); $template->setParam('tags', $tags); $template->setParam('tagsLevels', $tagsLevels); return $template->render(); }
protected function _getOnlineUsers() { try { $onlineUsers = XenForo_Application::get(self::APPLICATION_KEY); } catch (Exception $e) { $onlineUsers = false; } if (empty($onlineUsers)) { $visitor = XenForo_Visitor::getInstance(); /* @var $sessionModel XenForo_Model_Session */ $sessionModel = WidgetFramework_Core::getInstance()->getModelFromCache('XenForo_Model_Session'); $onlineUsers = $sessionModel->getSessionActivityQuickList($visitor->toArray(), array('cutOff' => array('>', $sessionModel->getOnlineStatusTimeout())), $visitor['user_id'] ? $visitor->toArray() : null); XenForo_Application::set(self::APPLICATION_KEY, $onlineUsers); } return $onlineUsers; }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $template) { $threads = array(); $tags = Tinhte_XenTag_Helper::explodeTags($widget['options']['tags']); $tagsText = array(); foreach ($tags as $tag) { $tag = trim($tag); if (!empty($tag)) { $tagsText[] = $tag; } } if (!empty($tagsText)) { $core = WidgetFramework_Core::getInstance(); /* @var $threadModel XenForo_Model_Thread */ $threadModel = $core->getModelFromCache('XenForo_Model_Thread'); /* @var $tagModel Tinhte_XenTag_Model_Tag */ $tagModel = $core->getModelFromCache('Tinhte_XenTag_Model_Tag'); $tags = $tagModel->getTagsByText($tagsText); $threadIds = array(); foreach ($tags as $tag) { $latest = Tinhte_XenTag_Helper::unserialize($tag['latest_tagged_contents']); if (empty($latest)) { // for some reason, the latest_tagged_contents field is empty // this is illogical because at least there is 1 tagged content (current thread) // so we will rebuild the tag... $latest = $tagModel->updateTag($tag['tag_id']); } if (!empty($latest)) { foreach ($latest as $taggedContent) { if ($taggedContent['content_type'] == 'thread') { $threadIds[] = $taggedContent['content_id']; } } } } if (!empty($threadIds)) { $threadIds = array_unique($threadIds); $forumIds = $this->_helperGetForumIdsFromOption(array(), $params, empty($widget['options']['as_guest']) ? false : true); // quick way to get all viewable forum ids $conditions = array('node_id' => $forumIds, Tinhte_XenTag_XenForo_Model_Thread::CONDITIONS_THREAD_ID => $threadIds, 'deleted' => false, 'moderated' => false); $fetchOptions = array('limit' => $widget['options']['limit'], 'join' => XenForo_Model_Thread::FETCH_AVATAR, 'order' => 'post_date', 'orderDirection' => 'desc'); $threads = $threadModel->getThreads($conditions, $fetchOptions); } } $template->setParam('threads', $threads); return $template->render(); }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $template) { $core = WidgetFramework_Core::getInstance(); $tagModel = $core->getModelFromCache('Tinhte_XenTag_Model_Tag'); if (!empty($widget['options']['days'])) { $days = $widget['options']['days']; } else { $days = Tinhte_XenTag_Option::get('trendingDays'); } $cutoff = XenForo_Application::$time - $days * 86400; $createdCutoff = 0; if (!empty($widget['options']['created_days'])) { $createdCutoff = XenForo_Application::$time - $widget['options']['created_days'] * 86400; } if (!empty($widget['options']['limit'])) { $limit = $widget['options']['limit']; } else { $limit = Tinhte_XenTag_Option::get('trendingMax'); } $forumIds = $this->_helperGetForumIdsFromOption($widget['options']['forums'], $params, true); $db = XenForo_Application::getDb(); $taggedCount = $db->fetchPairs(' SELECT tagged.tag_id, count(*) AS tagged_count FROM `xf_tinhte_xentag_tagged_content` AS tagged INNER JOIN `xf_thread` AS thread ON (thread.thread_id = tagged.content_id) ' . ($createdCutoff > 0 ? 'INNER JOIN `xf_tinhte_xentag_tag` AS tag ON (tag.tag_id = tagged.tag_id AND tag.created_date > ' . $createdCutoff . ')' : '') . ' WHERE tagged.content_type = "thread" AND tagged.tagged_date > ? ' . (!empty($forumIds) ? 'AND thread.node_id IN (' . $db->quote($forumIds) . ')' : '') . ' GROUP BY tagged.tag_id ORDER BY tagged_count DESC LIMIT ?; ', array($cutoff, $limit)); $tags = array(); if (!empty($taggedCount)) { $tagsDb = $tagModel->getAllTag(array('tag_id' => array_keys($taggedCount))); foreach ($taggedCount as $tagId => $count) { if (isset($tagsDb[$tagId])) { $tags[$tagId] = $tagsDb[$tagId]; $tags[$tagId]['tagged_count'] = $count; } } } $tagModel->calculateCloudLevel($tags); $template->setParam('tags', $tags); return $template->render(); }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { if (empty($widget['options']['limit'])) { $widget['options']['limit'] = 5; } $users = false; // try to be smart and get the users data if they happen to be available if ($positionCode == 'member_notable' and $widget['options']['limit'] == 0 and !empty($params['staff'])) { $users = $params['staff']; } if ($users === false) { $userModel = WidgetFramework_Core::getInstance()->getModelFromCache('XenForo_Model_User'); $users = $userModel->getUsers(array('is_staff' => true), array('join' => XenForo_Model_User::FETCH_USER_FULL, 'limit' => $widget['options']['limit'], 'order' => 'username')); } $renderTemplateObject->setParam('users', $users); return $renderTemplateObject->render(); }
protected function _renderOptions(XenForo_Template_Abstract $template) { $existingCategoryIds = array(); $existingOptions = $template->getParam('options'); if (!empty($existingOptions['categoryIds'])) { $existingCategoryIds = $existingOptions['categoryIds']; } /** @var XenGallery_Model_Category $categoryModel */ $categoryModel = WidgetFramework_Core::getInstance()->getModelFromCache('XenGallery_Model_Category'); $rows = $categoryModel->getCategoryStructure(); $categories = array(); foreach ($rows as $category) { $categories[] = array('value' => $category['category_id'], 'label' => $category['category_title'], 'depth' => $category['depth'], 'selected' => in_array($category['category_id'], $existingCategoryIds)); } $template->setParam('categories', $categories); return parent::_renderOptions($template); }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { $limit = XenForo_Application::getOptions()->get('xengalleryShowTopContributors', 'limit'); if (!empty($widget['options']['limit'])) { $limit = $widget['options']['limit']; } /** @var XenGallery_Model_Album $albumModel */ $albumModel = WidgetFramework_Core::getInstance()->getModelFromCache('XenGallery_Model_Album'); /** @var XenGallery_Model_Media $mediaModel */ $mediaModel = WidgetFramework_Core::getInstance()->getModelFromCache('XenGallery_Model_Media'); $visitor = XenForo_Visitor::getInstance(); $conditions = array('deleted' => false, 'privacyUserId' => $visitor->getUserId(), 'viewAlbums' => XenForo_Permission::hasPermission($visitor->getPermissions(), 'xengallery', 'viewAlbums'), 'viewCategoryIds' => $mediaModel->getViewableCategoriesForVisitor($visitor->toArray()), 'album_media_count' => '> 0', 'is_banned' => 0); $fetchOptions = array('order' => 'new', 'orderDirection' => 'desc', 'limit' => $limit, 'join' => XenGallery_Model_Album::FETCH_PRIVACY | XenGallery_Model_Album::FETCH_USER); $albums = $albumModel->getAlbums($conditions, $fetchOptions); $albums = $albumModel->prepareAlbums($albums); $renderTemplateObject->setParam('albums', $albums); return $renderTemplateObject->render(); }
protected function _getResources(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { $core = WidgetFramework_Core::getInstance(); /** @var XenResource_Model_Category $categoryModel */ $categoryModel = $core->getModelFromCache('XenResource_Model_Category'); /** @var XenResource_Model_Resource $resourceModel */ $resourceModel = $core->getModelFromCache('XenResource_Model_Resource'); $visitor = XenForo_Visitor::getInstance(); $categoryIds = array(); $resources = array(); $viewableCategories = $categoryModel->getViewableCategories(); foreach ($viewableCategories as $category) { if (!empty($widget['options']['categories'])) { if (in_array($category['resource_category_id'], $widget['options']['categories'])) { // configured with some category id // only include those that were selected $categoryIds[] = $category['resource_category_id']; } } else { $categoryIds[] = $category['resource_category_id']; } } if (!empty($categoryIds)) { $conditions = array('deleted' => $visitor->isSuperAdmin(), 'moderated' => $visitor->isSuperAdmin(), 'resource_category_id' => $categoryIds); $fetchOptions = array('limit' => $widget['options']['limit'], 'join' => XenResource_Model_Resource::FETCH_USER | XenResource_Model_Resource::FETCH_CATEGORY | XenResource_Model_Resource::FETCH_DESCRIPTION); switch ($widget['options']['type']) { case 'latest_update': $resources = $resourceModel->getResources($conditions, array_merge($fetchOptions, array('order' => 'last_update', 'direction' => 'desc'))); break; case 'highest_rating': $resources = $resourceModel->getResources($conditions, array_merge($fetchOptions, array('order' => 'rating_weighted', 'direction' => 'desc'))); break; case 'most_downloaded': $resources = $resourceModel->getResources($conditions, array_merge($fetchOptions, array('order' => 'download_count', 'direction' => 'desc'))); break; case 'new': default: $resources = $resourceModel->getResources($conditions, array_merge($fetchOptions, array('order' => 'resource_date', 'direction' => 'desc'))); break; } $resources = $resourceModel->prepareResources($resources); } return $resources; }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { $core = WidgetFramework_Core::getInstance(); /** @var XenForo_Model_User $userModel */ $userModel = $core->getModelFromCache('XenForo_Model_User'); /** @var XenForo_Model_UserProfile $userProfileModel */ $userProfileModel = $core->getModelFromCache('XenForo_Model_UserProfile'); $todayStart = XenForo_Locale::getDayStartTimestamps(); $todayStart = $todayStart['today']; $day = XenForo_Locale::getFormattedDate($todayStart, 'd'); $month = XenForo_Locale::getFormattedDate($todayStart, 'm'); $conditions = array(WidgetFramework_XenForo_Model_User::CONDITIONS_DOB => array('d' => $day, 'm' => $month), 'user_state' => 'valid', 'is_banned' => false); $fetchOptions = array('order' => 'username', 'join' => XenForo_Model_User::FETCH_USER_PROFILE + XenForo_Model_User::FETCH_USER_OPTION); if (!empty($widget['options']['limit'])) { $fetchOptions['limit'] = $widget['options']['limit']; } if (!empty($widget['options']['avatar_only'])) { $conditions[WidgetFramework_XenForo_Model_User::CONDITIONS_HAS_AVATAR] = true; } $users = $userModel->getUsers($conditions, $fetchOptions); foreach (array_keys($users) as $userId) { $user =& $users[$userId]; if (!empty($widget['options']['whitelist_user_groups'])) { // check for whitelist user groups if (!$userModel->isMemberOfUserGroup($user, $widget['options']['whitelist_user_groups'])) { unset($users[$userId]); continue; } } if (!empty($widget['options']['blacklist_user_groups'])) { // check for blacklist user groups if ($userModel->isMemberOfUserGroup($user, $widget['options']['blacklist_user_groups'])) { unset($users[$userId]); continue; } } // we can call XenForo_Model_User::prepareUserCard instead $user['age'] = $userProfileModel->getUserAge($user); } $renderTemplateObject->setParam('users', array_values($users)); return $renderTemplateObject->render(); }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { $core = WidgetFramework_Core::getInstance(); $threadModel = $core->getModelFromCache('XenForo_Model_Thread'); $visitor = XenForo_Visitor::getInstance(); // Get data for each param. $new = $this->_getDataForThisVar(); $recent = $this->_getDataForThisVar(); $popular = $this->_getDataForThisVar(); $mostReplied = $this->_getDataForThisVar(); $mostLiked = $this->_getDataForThisVar(); $polls = $this->_getDataForThisVar(); $renderTemplateObject->setParam('new', $new); $renderTemplateObject->setParam('recent', $recent); $renderTemplateObject->setParam('popular', $popular); $renderTemplateObject->setParam('mostReplied', $mostReplied); $renderTemplateObject->setParam('mostLiked', $mostLiked); $renderTemplateObject->setParam('polls', $polls); return $renderTemplateObject->render(); }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { if (empty($widget['options']['url'])) { return ''; } if (empty($widget['options']['limit'])) { $widget['options']['limit'] = 5; } $core = WidgetFramework_Core::getInstance(); /** @var XenForo_Model_Feed $feedModel */ $feedModel = $core->getModelFromCache('XenForo_Model_Feed'); $feedUrl = $widget['options']['url']; $feedData = $feedModel->getFeedData($feedUrl); $feedConfig = array(); $feedConfig['baseUrl'] = $feedModel->getFeedBaseUrl($feedUrl); $entries = array(); if (!empty($feedData['entries'])) { foreach ($feedData['entries'] as $entryRaw) { $entry = array(); $entryRaw = $feedModel->prepareFeedEntry($entryRaw, $feedData, $feedConfig); $entry['link'] = $entryRaw['link']; $entry['author'] = $entryRaw['author']; $entry['title'] = $entryRaw['title']; $entry['content'] = $entryRaw['content']; if (defined('BDIMAGE_IS_WORKING')) { // outsource the image processing + handling to [bd] Image $entry['bdImage_image'] = call_user_func(array('bdImage_Integration', 'getBbCodeImage'), $entryRaw['content']); } else { // TODO: support other method? } $entries[] = $entry; if (count($entries) >= $widget['options']['limit']) { // we have got enough entries, stop here break; } } } $renderTemplateObject->setParam('entries', $entries); return $renderTemplateObject->render(); }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $template) { $core = WidgetFramework_Core::getInstance(); /** @var Tinhte_XenTag_XenForo_Model_Tag $tagModel */ $tagModel = $core->getModelFromCache('XenForo_Model_Tag'); if (!empty($widget['options']['days'])) { $days = $widget['options']['days']; } else { $days = Tinhte_XenTag_Option::get('trendingDays'); } $cutoff = XenForo_Application::$time - $days * 86400; if (!empty($widget['options']['limit'])) { $limit = $widget['options']['limit']; } else { $limit = Tinhte_XenTag_Option::get('trendingMax'); } $tags = $tagModel->Tinhte_XenTag_getTrendingTags($cutoff, $limit); $tagsLevels = $tagModel->getTagCloudLevels($tags); $template->setParam('tags', $tags); $template->setParam('tagsLevels', $tagsLevels); return $template->render(); }
public function extraPrepareTitle(array $widget) { if (!empty($widget['title'])) { if (is_string($widget['title']) && preg_match('/^{xen:phrase ([^}]+)}$/i', $widget['title'], $matches)) { // {xen:phrase title} as widget title, use the specified phrase if (XenForo_Application::debugMode()) { // this kind of usage is deprecated, log server error entry if debug mode is on XenForo_Error::logError(sprintf('Widget title support for {xen:phrase title} has been deprecated. ' . 'Please update widget #%d.', $widget['widget_id'])); } return new XenForo_Phrase($matches[1]); } else { if (!empty($widget['options'][WidgetFramework_DataWriter_Widget::WIDGET_OPTION_ADDON_VERSION_ID]) && $widget['widget_id'] > 0) { // since 2.6.0 // use self-managed phrase for widget title /** @var WidgetFramework_Model_Widget $widgetModel */ $widgetModel = WidgetFramework_Core::getInstance()->getModelFromCache('WidgetFramework_Model_Widget'); return new XenForo_Phrase($widgetModel->getWidgetTitlePhrase($widget['widget_id'])); } else { // legacy support return $widget['title']; } } } else { return $this->getName(); } }
protected function _prepareThreads(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject, array &$threads) { $core = WidgetFramework_Core::getInstance(); $layoutNeedPost = $renderTemplateObject->getParam('layoutNeedPost'); /** @var WidgetFramework_XenForo_Model_Thread $threadModel */ $threadModel = $core->getModelFromCache('XenForo_Model_Thread'); /** @var XenForo_Model_Node $nodeModel */ $nodeModel = $core->getModelFromCache('XenForo_Model_Node'); /** @var XenForo_Model_Forum $forumModel */ $forumModel = $core->getModelFromCache('XenForo_Model_Forum'); /** @var XenForo_Model_User $userModel */ $userModel = $core->getModelFromCache('XenForo_Model_User'); /** @var XenForo_Model_Post $postModel */ $postModel = $core->getModelFromCache('XenForo_Model_Post'); $nodePermissions = $nodeModel->getNodePermissionsForPermissionCombination(empty($widget['options']['as_guest']) ? null : 1); $viewObj = self::getViewObject($params, $renderTemplateObject); if ($layoutNeedPost and !empty($viewObj)) { $bbCodeFormatter = XenForo_BbCode_Formatter_Base::create('Base', array('view' => $viewObj)); if (XenForo_Application::$versionId < 1020000) { // XenForo 1.1.x $bbCodeParser = new XenForo_BbCode_Parser($bbCodeFormatter); } else { // XenForo 1.2.x $bbCodeParser = XenForo_BbCode_Parser::create($bbCodeFormatter); } $bbCodeOptions = array('states' => array(), 'contentType' => 'post', 'contentIdKey' => 'post_id'); $postsWithAttachment = array(); foreach (array_keys($threads) as $threadId) { $threadRef =& $threads[$threadId]; if (empty($threadRef['attach_count'])) { continue; } if (!empty($threadRef['fetched_last_post'])) { $postsWithAttachment[$threadRef['last_post_id']] = array('post_id' => $threadRef['last_post_id'], 'thread_id' => $threadId, 'attach_count' => $threadRef['attach_count']); } else { $postsWithAttachment[$threadRef['first_post_id']] = array('post_id' => $threadRef['first_post_id'], 'thread_id' => $threadId, 'attach_count' => $threadRef['attach_count']); } } if (!empty($postsWithAttachment)) { $postsWithAttachment = $postModel->getAndMergeAttachmentsIntoPosts($postsWithAttachment); foreach ($postsWithAttachment as $postWithAttachment) { if (empty($postWithAttachment['attachments'])) { continue; } if (empty($threads[$postWithAttachment['thread_id']])) { continue; } $threadRef =& $threads[$postWithAttachment['thread_id']]; $threadRef['attachments'] = $postWithAttachment['attachments']; } } } $threadForumIds = array(); foreach ($threads as $thread) { $threadForumIds[] = $thread['node_id']; } $threadForums = $forumModel->getForumsByIds($threadForumIds); $viewingUser = empty($widget['options']['as_guest']) ? null : $userModel->getVisitingGuestUser(); foreach (array_keys($threads) as $threadId) { $threadRef =& $threads[$threadId]; if (empty($nodePermissions[$threadRef['node_id']])) { unset($threads[$threadId]); continue; } $threadPermissionsRef =& $nodePermissions[$threadRef['node_id']]; if (empty($threadForums[$threadRef['node_id']])) { unset($threads[$threadId]); continue; } $threadForumRef =& $threadForums[$threadRef['node_id']]; if ($threadModel->isRedirect($threadRef)) { unset($threads[$threadId]); continue; } if (!$threadModel->canViewThread($threadRef, $threadForumRef, $null, $threadPermissionsRef, $viewingUser)) { unset($threads[$threadId]); continue; } if (!empty($bbCodeParser) and !empty($bbCodeOptions)) { $threadBbCodeOptions = $bbCodeOptions; $threadBbCodeOptions['states']['viewAttachments'] = $threadModel->canViewAttachmentsInThread($threadRef, $threadForumRef, $null, $threadPermissionsRef, $viewingUser); $threadRef['messageHtml'] = XenForo_ViewPublic_Helper_Message::getBbCodeWrapper($threadRef, $bbCodeParser, $threadBbCodeOptions); } $threadRef = $threadModel->WidgetFramework_prepareThreadForRendererThreads($threadRef, $threadForumRef, $threadPermissionsRef, $viewingUser); } }
public static function front_controller_post_view(XenForo_FrontController $fc, &$output) { if (defined('WIDGET_FRAMEWORK_LOADED')) { WidgetFramework_Core::getInstance()->shutdown(); } }
/** * Renders the widget. * Add variables to the template obj: $renderTemplateObject->setParam('users', $users); * @param array $widget * @param string $positionCode * @param array $params * @param XenForo_Template_Abstract $renderTemplateObject * @return string */ protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { // $widget['passObject']=true; // return parent::_render( $widget, $positionCode, $params, $renderTemplateObject ); $core = WidgetFramework_Core::getInstance(); $threadModel = $core->getModelFromCache('XenForo_Model_Thread'); $visitor = XenForo_Visitor::getInstance(); $forumIds = $this->_helperGetForumIdsFromOption($widget['options']['forums'], $params, empty($widget['options']['as_guest']) ? false : true); $conditions = array('node_id' => $forumIds, 'deleted' => $visitor->isSuperAdmin() and empty($widget['options']['as_guest']), 'moderated' => $visitor->isSuperAdmin() and empty($widget['options']['as_guest'])); $fetchOptions = array('limit' => $widget['options']['limit'], 'join' => XenForo_Model_Thread::FETCH_AVATAR | XenForo_Model_Thread::FETCH_FIRSTPOST); // process prefix // since 1.3.4 if (!empty($widget['options']['prefixes'])) { $conditions['prefix_id'] = $widget['options']['prefixes']; } if (in_array($widget['options']['type'], array('new', 'all'))) { $new = $threadModel->getThreads($conditions, array_merge($fetchOptions, array('order' => 'post_date', 'orderDirection' => 'desc'))); } else { $new = array(); } if (in_array($widget['options']['type'], array('recent', 'all'))) { $recent = $threadModel->getThreads($conditions, array_merge($fetchOptions, array('order' => 'last_post_date', 'orderDirection' => 'desc', 'last_post_join' => XenForo_Model_Thread::FETCH_AVATAR))); foreach ($recent as &$thread) { $thread['user_id'] = $thread['last_post_user_id']; $thread['username'] = $thread['last_post_username']; } } else { $recent = array(); } if (in_array($widget['options']['type'], array('popular', 'all'))) { $popular = $threadModel->getThreads(array_merge($conditions, array('post_date' => array('>', XenForo_Application::$time - $widget['options']['cutoff'] * 86400))), array_merge($fetchOptions, array('order' => 'view_count', 'orderDirection' => 'desc'))); } else { $popular = array(); } if (in_array($widget['options']['type'], array('most_replied', 'all'))) { $mostReplied = $threadModel->getThreads(array_merge($conditions, array('post_date' => array('>', XenForo_Application::$time - $widget['options']['cutoff'] * 86400))), array_merge($fetchOptions, array('order' => 'reply_count', 'orderDirection' => 'desc'))); foreach (array_keys($mostReplied) as $postId) { if ($mostReplied[$postId]['reply_count'] == 0) { // remove threads with zero reply_count unset($mostReplied[$postId]); } } } else { $mostReplied = array(); } if (in_array($widget['options']['type'], array('most_liked', 'all'))) { $mostLiked = $threadModel->getThreads(array_merge($conditions, array('post_date' => array('>', XenForo_Application::$time - $widget['options']['cutoff'] * 86400))), array_merge($fetchOptions, array('order' => 'first_post_likes', 'orderDirection' => 'desc'))); foreach (array_keys($mostLiked) as $postId) { if ($mostLiked[$postId]['first_post_likes'] == 0) { // remove threads with zero first_post_likes unset($mostLiked[$postId]); } } } else { $mostLiked = array(); } if (in_array($widget['options']['type'], array('polls', 'all'))) { $polls = $threadModel->getThreads(array_merge($conditions, array('discussion_type' => 'poll')), array_merge($fetchOptions, array('order' => 'post_date', 'orderDirection' => 'desc'))); } else { $polls = array(); } $renderTemplateObject->setParam('new', WidgetPortal_Helper_Post::helperPreparePostDataForDisplay($new)); $renderTemplateObject->setParam('recent', WidgetPortal_Helper_Post::helperPreparePostDataForDisplay($recent)); $renderTemplateObject->setParam('popular', WidgetPortal_Helper_Post::helperPreparePostDataForDisplay($popular)); $renderTemplateObject->setParam('mostReplied', WidgetPortal_Helper_Post::helperPreparePostDataForDisplay($mostReplied)); $renderTemplateObject->setParam('mostLiked', WidgetPortal_Helper_Post::helperPreparePostDataForDisplay($mostLiked)); $renderTemplateObject->setParam('polls', WidgetPortal_Helper_Post::helperPreparePostDataForDisplay($polls)); return $renderTemplateObject->render(); }