1
0
mirror of https://github.com/e107inc/e107.git synced 2025-04-19 20:21:51 +02:00

Issue #2796 - New Forum Posts Menu query and shortcode fixes.

This commit is contained in:
Cameron 2017-09-24 14:12:35 -07:00
parent 8053319b5c
commit a4091ea6d6
3 changed files with 88 additions and 17 deletions

View File

@ -54,21 +54,49 @@ if(!class_exists('forum_newforumposts_menu'))
$forumList = implode(',', $this->forumObj->getForumPermList('view'));
$qry = "
SELECT
p.post_user, p.post_id, p.post_datestamp, p.post_user_anon, p.post_entry,
t.*,
u.user_id, u.user_name, u.user_image, u.user_currentvisit,
lu.user_name as thread_lastuser_username,
f.forum_name, f.forum_sef
FROM `#forum_post` as p
$qry = '';
switch($this->menuPref['layout'])
{
case "minimal":
case "default":
$qry = "
SELECT
p.post_user, p.post_id, p.post_datestamp, p.post_user_anon, p.post_entry,
t.*,
u.user_id, u.user_name, u.user_image, u.user_currentvisit,
lu.user_name as thread_lastuser_username,
f.forum_name, f.forum_sef
FROM `#forum_post` as p
LEFT JOIN `#forum_thread` AS t ON t.thread_id = p.post_thread
LEFT JOIN `#forum` as f ON f.forum_id = t.thread_forum_id
LEFT JOIN `#user` AS u ON u.user_id = p.post_user
LEFT JOIN `#user` AS lu ON t.thread_lastuser = lu.user_id
WHERE {$max_age} p.post_forum IN ({$forumList})
ORDER BY p.post_datestamp DESC LIMIT 0, ".vartrue($this->menuPref['display'],10);
break;
// standardized field names. thread_user_[user table fields without the '_')
default:
$qry = "
SELECT t.thread_id, t.thread_name, t.thread_datestamp, t.thread_user, t.thread_views, t.thread_lastpost, t.thread_lastuser, t.thread_total_replies, t.thread_active,
f.forum_id, f.forum_name, f.forum_class, f.forum_sef,
u.user_name as thread_user_username,
u.user_image as thread_user_userimage,
u.user_currentvisit as thread_user_usercurrentvisit,
fp.forum_class, fp.forum_sef as forum_parent_sef,
lp.user_name AS thread_lastuser_username
FROM #forum_thread AS t
LEFT JOIN #user AS u ON t.thread_user = u.user_id
LEFT JOIN #user AS lp ON t.thread_lastuser = lp.user_id
LEFT JOIN #forum AS f ON f.forum_id = t.thread_forum_id
LEFT JOIN #forum AS fp ON f.forum_parent = fp.forum_id
WHERE f.forum_id = t.thread_forum_id AND f.forum_class IN (".USERCLASS_LIST.")
AND fp.forum_class IN (".USERCLASS_LIST.")
ORDER BY t.thread_lastpost DESC LIMIT 0, ".vartrue($this->menuPref['display'],10);
}
LEFT JOIN `#forum_thread` AS t ON t.thread_id = p.post_thread
LEFT JOIN `#forum` as f ON f.forum_id = t.thread_forum_id
LEFT JOIN `#user` AS u ON u.user_id = p.post_user
LEFT JOIN `#user` AS lu ON t.thread_lastuser = lu.user_id
WHERE {$max_age} p.post_forum IN ({$forumList})
ORDER BY p.post_datestamp DESC LIMIT 0, ".vartrue($this->menuPref['display'],10);
return $qry;
}
@ -131,6 +159,8 @@ if(!class_exists('forum_newforumposts_menu'))
{
$row['thread_sef'] = $this->forumObj->getThreadSef($row);
$sc->setScVar('postInfo', $row);
$sc->setVars($row);
$list .= $tp->parseTemplate($template['item'], true, $sc);

View File

@ -80,7 +80,8 @@
function sc_post_author_avatar($parm=null)
{
return $this->sc_avatar($parm);
return e107::getParser()->toAvatar($this->postInfo, $parm);
// return $this->sc_avatar($parm);
}
// @todo new thread/topic shortcodes
@ -91,6 +92,46 @@
}
function sc_topic_author_name($parm=null)
{
if($this->var['thread_user_username'])
{
return "<a href='" . e107::getUrl()->create('user/profile/view', array('name' => $this->postInfo['thread_user_username'], 'id' => $this->postInfo['thread_user'])) . "'>{$this->postInfo['thread_user_username']}</a>";
}
else
{
return '<b>' . e107::getParser()->toHTML($this->postInfo['thread_user_anon']) . '</b>';
}
}
function sc_topic_author_url($parm=null)
{
if(empty($this->var['thread_user_username']) || empty($this->var['thread_user']))
{
return '';
}
return e107::getUrl()->create('user/profile/view', array('name' => $this->var['thread_user_username'], 'id' => $this->var['thread_user']));
}
function sc_topic_author_avatar($parm=null)
{
$arr = array(
'user_id' => $this->var['thread_user'], // standardized field names.
'user_name' => $this->var['thread_user_username'],
'user_image' => $this->var['thread_user_userimage'],
'user_currentvisit' => $this->var['thread_user_usercurrentvisit']
);
return e107::getParser()->toAvatar($arr, $parm);
// return $this->sc_avatar($parm);
}
function sc_topic_url($parm=null)
{
return e107::url('forum', 'topic', $this->var);

View File

@ -14,7 +14,7 @@
<a href='{POST_URL}'>{POST_AUTHOR_AVATAR: shape=circle}</a>
</div>
<div class='media-body'>
<h4 class='media-header'><a href='{POST_URL}'>{POST_TOPIC}</a></h4>{POST_CONTENT}<br /><small class='text-muted muted'>".LAN_FORUM_MENU_001." {POST_AUTHOR} {POST_DATESTAMP}</small>
<h4 class='media-header'><a href='{POST_URL}'>{POST_TOPIC}</a></h4>{POST_CONTENT}<br /><small class='text-muted muted'>".LAN_FORUM_MENU_001." {POST_AUTHOR_NAME} {POST_DATESTAMP}</small>
</div></li>";
$NEWFORUMPOSTS_MENU_TEMPLATE['default']['end'] = "</ul>";
@ -48,7 +48,7 @@
$NEWFORUMPOSTS_MENU_TEMPLATE['main']['item'] = "<tr>
<td style='width:5%; text-align:center' class='forumheader3'>{TOPIC_ICON}</td>
<td style='width:45%' class='forumheader3'><a href='{POST_URL}'>{TOPIC_NAME}</a> <small class='smalltext'>(<a href='{FORUM_URL}'>{FORUM_NAME}</a>)</small></td>
<td style='width:15%; text-align:center' class='forumheader3'>{POST_AUTHOR_NAME}</td>
<td style='width:15%; text-align:center' class='forumheader3'>{TOPIC_AUTHOR_NAME}</td>
<td style='width:5%; text-align:center' class='forumheader3'>{TOPIC_VIEWS}</td>
<td style='width:5%; text-align:center' class='forumheader3'>{TOPIC_REPLIES}</td>
<td style='width:25%; text-align:center' class='forumheader3'>{TOPIC_LASTPOST_AUTHOR}<br /><span class='smalltext'>{TOPIC_LASTPOST_DATE}&nbsp;</span></td>