本文整理汇总了PHP中KunenaForumMessageHelper::loadLocation方法的典型用法代码示例。如果您正苦于以下问题:PHP KunenaForumMessageHelper::loadLocation方法的具体用法?PHP KunenaForumMessageHelper::loadLocation怎么用?PHP KunenaForumMessageHelper::loadLocation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KunenaForumMessageHelper
的用法示例。
在下文中一共展示了KunenaForumMessageHelper::loadLocation方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: prepareTopics
/**
* Prepare topics by pre-loading needed information.
*
* @param array $userIds List of additional user Ids to be loaded.
* @param array $mesIds List of additional message Ids to be loaded.
*
* @return void
*/
protected function prepareTopics(array $userIds = array(), array $mesIds = array())
{
// Collect user Ids for avatar prefetch when integrated.
$lastIds = array();
foreach ($this->topics as $topic) {
$userIds[(int) $topic->first_post_userid] = (int) $topic->first_post_userid;
$userIds[(int) $topic->last_post_userid] = (int) $topic->last_post_userid;
$lastIds[(int) $topic->last_post_id] = (int) $topic->last_post_id;
}
// Prefetch all users/avatars to avoid user by user queries during template iterations.
if (!empty($userIds)) {
KunenaUserHelper::loadUsers($userIds);
}
$topicIds = array_keys($this->topics);
KunenaForumTopicHelper::getUserTopics($topicIds);
/* KunenaForumTopicHelper::getKeywords($topicIds); */
$mesIds += KunenaForumTopicHelper::fetchNewStatus($this->topics);
// Fetch also last post positions when user can see unapproved or deleted posts.
// TODO: Optimize? Take account of configuration option...
if ($this->me->isAdmin() || KunenaAccess::getInstance()->getModeratorStatus()) {
$mesIds += $lastIds;
}
// Load position information for all selected messages.
if ($mesIds) {
KunenaForumMessageHelper::loadLocation($mesIds);
}
}
示例2: _common
protected function _common() {
if ($this->total > 0) {
$config = KunenaFactory::getConfig ();
// collect user ids for avatar prefetch when integrated
$userlist = array();
$lastpostlist = array();
foreach ( $this->topics as $topic ) {
$userlist[intval($topic->first_post_userid)] = intval($topic->first_post_userid);
$userlist[intval($topic->last_post_userid)] = intval($topic->last_post_userid);
$lastpostlist[intval($topic->last_post_id)] = intval($topic->last_post_id);
}
// Prefetch all users/avatars to avoid user by user queries during template iterations
if ( !empty($userlist) ) KunenaUserHelper::loadUsers($userlist);
KunenaForumTopicHelper::getUserTopics(array_keys($this->topics));
KunenaForumTopicHelper::getKeywords(array_keys($this->topics));
$lastreadlist = KunenaForumTopicHelper::fetchNewStatus($this->topics);
// Fetch last / new post positions when user can see unapproved or deleted posts
$me = KunenaUserHelper::get();
if (($lastpostlist || $lastreadlist) && $me->userid && $me->isModerator()) {
KunenaForumMessageHelper::loadLocation($lastpostlist + $lastreadlist);
}
}
}
示例3: _common
/**
* @param array $userlist
* @param array $postlist
*/
protected function _common(array $userlist = array(), array $postlist = array())
{
if ($this->total > 0) {
// collect user ids for avatar prefetch when integrated
$lastpostlist = array();
foreach ($this->topics as $topic) {
$userlist[intval($topic->first_post_userid)] = intval($topic->first_post_userid);
$userlist[intval($topic->last_post_userid)] = intval($topic->last_post_userid);
$lastpostlist[intval($topic->last_post_id)] = intval($topic->last_post_id);
}
// Prefetch all users/avatars to avoid user by user queries during template iterations
if (!empty($userlist)) {
KunenaUserHelper::loadUsers($userlist);
}
KunenaForumTopicHelper::getUserTopics(array_keys($this->topics));
KunenaForumTopicHelper::getKeywords(array_keys($this->topics));
$lastreadlist = KunenaForumTopicHelper::fetchNewStatus($this->topics);
// Fetch last / new post positions when user can see unapproved or deleted posts
if ($postlist || $lastreadlist || $this->me->userid && ($this->me->isAdmin() || KunenaAccess::getInstance()->getModeratorStatus())) {
KunenaForumMessageHelper::loadLocation($postlist + $lastpostlist + $lastreadlist);
}
}
}
示例4: getResults
public function getResults()
{
if ($this->messages !== false) {
return $this->messages;
}
$q = $this->getState('searchwords');
if (!$q && !$this->getState('query.searchuser')) {
$this->setError(JText::_('COM_KUNENA_SEARCH_ERR_SHORTKEYWORD'));
return array();
}
/* get results */
$hold = $this->getState('query.show');
if ($hold == 1) {
$mode = 'unapproved';
} elseif ($hold >= 2) {
$mode = 'deleted';
} else {
$mode = 'recent';
}
$params = array('mode' => $mode, 'childforums' => $this->getState('query.childforums'), 'where' => $this->buildWhere(), 'orderby' => $this->buildOrderBy(), 'starttime' => -1);
$limitstart = $this->getState('list.start');
$limit = $this->getState('list.limit');
list($this->total, $this->messages) = KunenaForumMessageHelper::getLatestMessages($this->getState('query.catids'), $limitstart, $limit, $params);
if ($this->total < $limitstart) {
$this->setState('list.start', intval($this->total / $limit) * $limit);
}
$topicids = array();
$userids = array();
foreach ($this->messages as $message) {
$topicids[$message->thread] = $message->thread;
$userids[$message->userid] = $message->userid;
}
if ($topicids) {
$topics = KunenaForumTopicHelper::getTopics($topicids);
foreach ($topics as $topic) {
$userids[$topic->first_post_userid] = $topic->first_post_userid;
}
}
KunenaUserHelper::loadUsers($userids);
KunenaForumMessageHelper::loadLocation($this->messages);
if (empty($this->messages)) {
$this->app->enqueueMessage(JText::sprintf('COM_KUNENA_SEARCH_NORESULTS_FOUND', $q));
}
return $this->messages;
}
示例5: getTopics
public function getTopics()
{
if ($this->topics === false) {
$catid = $this->getState('item.id');
$limitstart = $this->getState('list.start');
$limit = $this->getState('list.limit');
$format = $this->getState('format');
$topic_ordering = $this->getCategory()->topic_ordering;
$access = KunenaAccess::getInstance();
$hold = $format == 'feed' ? 0 : $access->getAllowedHold($this->me, $catid);
$moved = $format == 'feed' ? 0 : 1;
$params = array('hold' => $hold, 'moved' => $moved);
switch ($topic_ordering) {
case 'alpha':
$params['orderby'] = 'tt.ordering DESC, tt.subject ASC ';
break;
case 'creation':
$params['orderby'] = 'tt.ordering DESC, tt.first_post_time ' . strtoupper($this->getState('list.direction'));
break;
case 'lastpost':
default:
$params['orderby'] = 'tt.ordering DESC, tt.last_post_time ' . strtoupper($this->getState('list.direction'));
}
if ($format == 'feed') {
$catid = array_keys(KunenaForumCategoryHelper::getChildren($catid, 100) + array($catid => 1));
}
list($this->total, $this->topics) = KunenaForumTopicHelper::getLatestTopics($catid, $limitstart, $limit, $params);
if ($this->total > 0) {
// collect user ids for avatar prefetch when integrated
$userlist = array();
$lastpostlist = array();
foreach ($this->topics as $topic) {
$userlist[intval($topic->first_post_userid)] = intval($topic->first_post_userid);
$userlist[intval($topic->last_post_userid)] = intval($topic->last_post_userid);
$lastpostlist[intval($topic->last_post_id)] = intval($topic->last_post_id);
}
// Prefetch all users/avatars to avoid user by user queries during template iterations
if (!empty($userlist)) {
KunenaUserHelper::loadUsers($userlist);
}
KunenaForumTopicHelper::getUserTopics(array_keys($this->topics));
KunenaForumTopicHelper::getKeywords(array_keys($this->topics));
$lastreadlist = KunenaForumTopicHelper::fetchNewStatus($this->topics);
// Fetch last / new post positions when user can see unapproved or deleted posts
if (($lastpostlist || $lastreadlist) && ($this->me->isAdmin() || KunenaAccess::getInstance()->getModeratorStatus())) {
KunenaForumMessageHelper::loadLocation($lastpostlist + $lastreadlist);
}
}
}
return $this->topics;
}
示例6: before
//.........这里部分代码省略.........
$this->more[$category->parent_id]++;
unset($sections[$key]);
continue;
}
}
// Get categories and subcategories.
if (empty($sections)) {
return;
}
$this->sections = $sections;
$categories = KunenaForumCategoryHelper::getChildren($sectionIds);
if (empty($categories)) {
return;
}
$categoryIds = array();
$topicIds = array();
$userIds = array();
$postIds = array();
foreach ($categories as $key => $category) {
$this->more[$category->id] = 0;
// Display only categories which are supposed to show up.
if ($catid || $category->params->get('display.index.parent', 3) > 1) {
if ($catid || $category->getParent()->params->get('display.index.children', 3) > 2 && $category->params->get('display.index.children', 3) > 2) {
$categoryIds[] = $category->id;
} else {
$this->more[$category->id]++;
}
} else {
$this->more[$category->parent_id]++;
unset($categories[$key]);
continue;
}
// Get list of topics.
$last = $category->getLastCategory();
if ($last->last_topic_id) {
$topicIds[$last->last_topic_id] = $last->last_topic_id;
}
$this->categories[$category->parent_id][] = $category;
$rssURL = $category->getRSSUrl();
if (!empty($rssURL)) {
$category->rssURL = $category->getRSSUrl();
}
}
$subcategories = KunenaForumCategoryHelper::getChildren($categoryIds);
foreach ($subcategories as $category) {
// Display only categories which are supposed to show up.
if ($catid || $category->params->get('display.index.parent', 3) > 2) {
$this->categories[$category->parent_id][] = $category;
} else {
$this->more[$category->parent_id]++;
}
}
// Pre-fetch topics (also display unauthorized topics as they are in allowed categories).
$topics = KunenaForumTopicHelper::getTopics($topicIds, 'none');
// Pre-fetch users (and get last post ids for moderators).
foreach ($topics as $topic) {
$userIds[$topic->last_post_userid] = $topic->last_post_userid;
$postIds[$topic->id] = $topic->last_post_id;
}
KunenaUserHelper::loadUsers($userIds);
KunenaForumMessageHelper::getMessages($postIds);
// Pre-fetch user related stuff.
$this->pending = array();
if ($this->me->exists() && !$this->me->isBanned()) {
// Load new topic counts.
KunenaForumCategoryHelper::getNewTopics(array_keys($categories + $subcategories));
// Get categories which are moderated by current user.
$access = KunenaAccess::getInstance();
$moderate = $access->getAdminStatus($this->me) + $access->getModeratorStatus($this->me);
if (!empty($moderate[0])) {
// Global moderators.
$moderate = $categories;
} else {
// Category moderators.
$moderate = array_intersect_key($categories, $moderate);
}
if (!empty($moderate)) {
// Get pending messages.
$catlist = implode(',', array_keys($moderate));
$db = JFactory::getDbo();
$db->setQuery("SELECT catid, COUNT(*) AS count\n\t\t\t\t\tFROM #__kunena_messages\n\t\t\t\t\tWHERE catid IN ({$catlist}) AND hold=1\n\t\t\t\t\tGROUP BY catid");
$pending = $db->loadAssocList();
KunenaError::checkDatabaseError();
foreach ($pending as $item) {
if ($item['count']) {
$this->pending[$item['catid']] = $item['count'];
}
}
if ($this->me->ordering != 0) {
$topic_ordering = $this->me->ordering == 1 ? true : false;
} else {
$topic_ordering = $this->config->default_sort == 'asc' ? false : true;
}
// Fix last post position when user can see unapproved or deleted posts.
if (!$topic_ordering) {
KunenaForumMessageHelper::loadLocation($postIds);
}
}
}
}
示例7: before
/**
* Prepare category display.
*
* @return void
*
* @throws KunenaExceptionAuthorise
*/
protected function before()
{
parent::before();
require_once KPATH_SITE . '/models/category.php';
$this->model = new KunenaModelCategory();
$this->me = KunenaUserHelper::getMyself();
$catid = $this->input->getInt('catid');
$limitstart = $this->input->getInt('limitstart', 0);
$limit = $this->input->getInt('limit', 0);
if ($limit < 1 || $limit > 100) {
$limit = $this->config->threads_per_page;
}
// TODO:
$direction = 'DESC';
$this->category = KunenaForumCategoryHelper::get($catid);
$this->category->tryAuthorise();
$this->headerText = JText::_('COM_KUNENA_THREADS_IN_FORUM') . ': ' . $this->category->name;
$topic_ordering = $this->category->topic_ordering;
$access = KunenaAccess::getInstance();
$hold = $access->getAllowedHold($this->me, $catid);
$moved = 1;
$params = array('hold' => $hold, 'moved' => $moved);
switch ($topic_ordering) {
case 'alpha':
$params['orderby'] = 'tt.ordering DESC, tt.subject ASC ';
break;
case 'creation':
$params['orderby'] = 'tt.ordering DESC, tt.first_post_time ' . $direction;
break;
case 'lastpost':
default:
$params['orderby'] = 'tt.ordering DESC, tt.last_post_time ' . $direction;
}
list($this->total, $this->topics) = KunenaForumTopicHelper::getLatestTopics($catid, $limitstart, $limit, $params);
if ($this->total > 0) {
// Collect user ids for avatar prefetch when integrated.
$userlist = array();
$lastpostlist = array();
foreach ($this->topics as $topic) {
$userlist[intval($topic->first_post_userid)] = intval($topic->first_post_userid);
$userlist[intval($topic->last_post_userid)] = intval($topic->last_post_userid);
$lastpostlist[intval($topic->last_post_id)] = intval($topic->last_post_id);
}
// Prefetch all users/avatars to avoid user by user queries during template iterations.
if (!empty($userlist)) {
KunenaUserHelper::loadUsers($userlist);
}
KunenaForumTopicHelper::getUserTopics(array_keys($this->topics));
KunenaForumTopicHelper::getKeywords(array_keys($this->topics));
$lastreadlist = KunenaForumTopicHelper::fetchNewStatus($this->topics);
// Fetch last / new post positions when user can see unapproved or deleted posts.
if ($lastreadlist || $this->me->isAdmin() || KunenaAccess::getInstance()->getModeratorStatus()) {
KunenaForumMessageHelper::loadLocation($lastpostlist + $lastreadlist);
}
}
$this->topicActions = $this->model->getTopicActions();
$this->actionMove = $this->model->getActionMove();
$this->pagination = new KunenaPagination($this->total, $limitstart, $limit);
$this->pagination->setDisplayedPages(5);
}