$subject = COM_truncate($record['subject'], $CONF_FORUM['show_subject_length'], '...'); } else { $subject = $record['subject']; } if ($record['uid'] > 1) { $firstposterName = COM_getDisplayName($record['uid']); } else { $firstposterName = $record['name']; } $topicinfo = "<b>{$LANG_GF01['STARTEDBY']} {$firstposterName}, {$firstdate}</b><br" . XHTML . ">"; $lastpostinfo = stripBBCode($lastpostinfo); // Simple function to strip out bbcode so tooltips display better $lastpostinfo = strip_tags(COM_truncate($record['comment'], $CONF_FORUM['contentinfo_numchars'], '...')); $lastpostinfo = htmlspecialchars($lastpostinfo); // Escape things like " so it displays properly in tooltip $topicinfo .= str_replace(LB, "<br" . XHTML . ">", forum_mb_wordwrap($lastpostinfo, $CONF_FORUM['linkinfo_width'], LB)); if (function_exists('COM_getTooltip')) { $topiclink = "viewtopic.php?showtopic={$record['id']}"; $tooltip_subject = COM_getTooltip($subject, $topicinfo, $topiclink); //$subject = ''; $topiclisting->set_var('tooltip_subject', $tooltip_subject); } $topiclisting->set_var('topicinfo', $topicinfo); $topiclisting->parse('folderimg', $folderimg); $topiclisting->set_var('topic_id', $record['id']); $topiclisting->set_var('subject', $subject); $topiclisting->set_var('fullsubject', $record['subject']); $topiclisting->set_var('gotomsg', $gotomsg); $topiclisting->set_var('displaypageslink', $displaypageslink); $topiclisting->set_var('showuserlink', $showuserlink); $topiclisting->set_var('lastposter', $lastposter);
/** * Display latest forum posts in the center block. * * @param where int where the block will be displayed (0..2) * @param page int page number * @param topic string topic ID * @return string HTML for the center blcok (can be empty) */ function CUSTOM_centerblock_forum($limit = '') { global $_CONF, $_USER, $_TABLES, $LANG_GF01, $CONF_FORUM; global $LANG_GF02, $mode, $order; //$TIMER = new timerobject(); //$TIMER->startTimer(); //$exectime = $TIMER->stopTimer(); if ($CONF_FORUM['installed_version'] < 2.6) { return; } if ($CONF_FORUM['registration_required'] && $_USER['uid'] < 2) { return; } $retval = ''; $cb_enable = $CONF_FORUM['show_centerblock']; $cb_where = $CONF_FORUM['centerblock_where']; // If enabled only for homepage and this is not page 1 or a topic page, // then set disable flag if ($CONF_FORUM['centerblock_homepage'] == 1 and ($page > 1 or !empty($topic))) { $cb_enable = 0; } elseif ($CONF_FORUM['centerblock_homepage'] == 0 and $page > 1) { $cb_where = 1; // Top of Page } // Check if there are no featured articles in this topic // and if so then place it at the top of the page if (!empty($topic)) { $fromsql = ", {$_TABLES['topic_assignments']} ta"; $wheresql = "WHERE ta.id = sid AND ta.tid='{$topic}' AND featured > 0"; } else { $fromsql = ''; $wheresql = 'WHERE featured = 1'; } $query = DB_query("SELECT COUNT(*) AS count FROM {$_TABLES['stories']} {$fromsql} {$wheresql}"); $result = DB_fetchArray($query); if ($result['count'] == 0 and $cb_where == 2) { $cb_where = 1; } $block = new Template($_CONF['path'] . 'system/custom/forum'); $block->set_file(array('block' => 'centerblock.thtml', 'record' => 'centerblock_displayline.thtml')); $block->set_var('xhtml', XHTML); $block->set_var('phpself', $_CONF['site_url'] . '/index.php'); $block->set_var('startblock', COM_startBlock($LANG_GF02['msg170'])); $block->set_var('endblock', COM_endBlock()); $block->set_var('site_url', $_CONF['site_url']); $block->set_var('layout_url', $CONF_FORUM['layout_url']); $block->set_var('LANG_title', $LANG_GF02['msg170']); $block->set_var('LANG_FORUM', $LANG_GF01['FORUM']); $block->set_var('LANG_TOPIC', $LANG_GF01['TOPIC']); $block->set_var('LANG_LASTPOST', $LANG_GF01['LASTPOST']); $block->set_var('LANG_viewlastpost', $LANG_GF02['msg160']); $block->set_var('LANG_forumjump', $LANG_GF02['msg195']); $groups = array(); $usergroups = SEC_getUserGroups(); foreach ($usergroups as $group) { $groups[] = $group; } $grouplist = implode(',', $groups); if ($limit != '') { $CONF_FORUM['centerblock_numposts'] = $limit; } $sql = "SELECT a.id, a.forum, a.name, a.date, a.lastupdated, a.last_reply_rec, a.subject, "; $sql .= "a.comment, a.uid, a.name, a.pid, a.replies, a.views, b.forum_name "; $sql .= "FROM {$_TABLES['forum_topic']} a "; $sql .= "LEFT JOIN {$_TABLES['forum_forums']} b ON a.forum=b.forum_id "; $sql .= "WHERE pid=0 AND b.grp_id IN ({$grouplist}) AND b.no_newposts = 0 "; $sql .= "ORDER BY lastupdated DESC LIMIT {$CONF_FORUM['centerblock_numposts']}"; $result = DB_query($sql); if (DB_numRows($result) == 0) { return; } $f_tooltip = function_exists('COM_getTooltip'); $cssid = 0; while ($A = DB_fetchArray($result)) { // $fullsubject = "{$A['subject']}\n{$LANG_GF01['POSTEDBY']}:{$A['name']}{$LANG_GF01['VIEWS']}:{$A['views']}, {$LANG_GF01['REPLIES']}:{$A['replies']}"; $fullsubject = "{$LANG_GF01['POSTEDBY']}:{$A['name']}{$LANG_GF01['VIEWS']}:{$A['views']}"; if (strlen($A['subject']) > $CONF_FORUM['cb_subject_size']) { $A['subject'] = COM_truncate($A['subject'], $CONF_FORUM['cb_subject_size'], '...'); } if ($CONF_FORUM['allow_user_dateformat']) { $firstdate = COM_getUserDateTimeFormat($A['date']); $firstdate = $firstdate[0]; $lastdate = COM_getUserDateTimeFormat($A['lastupdated']); $lastdate = $lastdate[0]; } else { $firstdate = strftime($CONF_FORUM['default_Datetime_format'], $A['date']); $lastdate = strftime($CONF_FORUM['default_Datetime_format'], $A['lastupdated']); } if ($A['uid'] > 1) { $topicinfo = COM_getDisplayName($A['uid']); //$topicinfo .= sprintf($LANG_GF01['LASTREPLYBY'],COM_getDisplayName($A['uid'])); } else { $topicinfo = "{$A['name']}"; } // $topicinfo .= "{$firstdate} " . " {$LANG_GF01['VIEWS']}:{$A['views']}, {$LANG_GF01['REPLIES']}:{$A['replies']}</span>"; // $topicinfo .= "{$firstdate} " . " {$LANG_GF01['VIEWS']}:{$A['views']}"."</span>"; if (empty($A['last_reply_rec']) or $A['last_reply_rec'] < 1) { $lastid = $A['id']; $lastcomment = $A['comment']; } else { $qlreply = DB_query("SELECT id,uid,name,comment FROM {$_TABLES['forum_topic']} WHERE id={$A['last_reply_rec']}"); $B = DB_fetchArray($qlreply); $lastid = $B['id']; $lastcomment = $B['comment']; if ($B['uid'] > 1) { $lastpostuser = sprintf("%s", COM_getDisplayName($B['uid'])); } else { $lastpostuser = sprintf("%s", $B['name']); } } $lastpostinfo = strip_tags(COM_truncate($lastcomment, $CONF_FORUM['contentinfo_numchars'], '...')); $lastpostinfo = str_replace(LB, "<br" . XHTML . ">", forum_mb_wordwrap($lastpostinfo, $CONF_FORUM['linkinfo_width'], LB)); $cssid = $cssid == 1 ? 2 : 1; $f_tooltip = 0; if ($f_tooltip) { $lastpostlink = "{$_CONF['site_url']}/forum/viewtopic.php?showtopic={$A['id']}&lastpost=true#{$lastid}"; $block->set_var('tooltip_date', COM_getTooltip($lastdate, $lastpostinfo, $lastpostlink)); $topiclink = "{$_CONF['site_url']}/forum/viewtopic.php?showtopic={$A['id']}"; $block->set_var('tooltip_topic_subject', COM_getTooltip($A['subject'], $topicinfo, $topiclink)); } else { $block->set_var('lastpostinfo', $lastpostinfo); $block->set_var('topicinfo', $topicinfo); $block->set_var('date', $firstdate); $block->set_var('lastdate', $lastdate); $block->set_var('topic_subject', $A['subject']); } $block->set_var('lastpostuser', $lastpostuser); $block->set_var('lastpostid', $lastid); $block->set_var('cssid', $cssid); $block->set_var('img_dir', $CONF_FORUM['imgset']); $block->set_var('forum_id', $A['forum']); $block->set_var('forum_name', $A['forum_name']); $block->set_var('topic_id', $A['id']); $block->set_var('fullsubject', $fullsubject); $block->set_var('views', $A['views']); $block->set_var('replies', $A['replies']); $block->set_var('posts', $A['replies'] + 1); $block->set_var('lastpostby', $A['name']); $block->parse('block_records', 'record', true); } $block->parse('output', 'block'); $retval .= $block->finish($block->get_var('output')); //$exectime = $TIMER->stopTimer(); //COM_errorLog("Centerblock Execution Time: $exectime seconds"); return $retval; }