Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="utf-8"?>
- <extension engine="1.0">
- <id>active_topics</id>
- <title>Active Topics List on Index</title>
- <version>1.2.3</version>
- <description>This will add the x most recent posts to the index page of the forum for easy navigation and attention-grabbing.</description>
- <author>Slavok - FalconFour - KeyDog</author>
- <minversion>1.3.2</minversion>
- <maxtestedon>1.4.1</maxtestedon>
- <install>
- <![CDATA[
- ]]>
- </install>
- <uninstall>
- <![CDATA[
- ]]>
- </uninstall>
- <hooks>
- <hook id="in_main_output_start"><![CDATA[
- if (file_exists($ext_info['path'].'/lang/'.$forum_user['language'].'/'.$ext_info['id'].'.php')) {
- include $ext_info['path'].'/lang/'.$forum_user['language'].'/'.$ext_info['id'].'.php';
- } else {
- include $ext_info['path'].'/lang/English/'.$ext_info['id'].'.php';
- }
- $topics_count = 5;
- $query_active_topics= array(
- 'SELECT' => 't.id AS tid, t.poster, t.subject, t.posted AS has_posted, t.last_post, t.last_post_id, t.num_replies, t.num_views, t.closed, t.sticky, t.forum_id, t.last_poster',
- 'FROM' => 'topics AS t',
- 'JOINS' => array(
- array(
- 'INNER JOIN' => 'forums AS f',
- 'ON' => 'f.id=t.forum_id'
- ),
- array(
- 'LEFT JOIN' => 'forum_perms AS fp',
- 'ON' => '(fp.forum_id=f.id AND fp.group_id='.$forum_user['g_id'].')'
- )
- ),
- 'WHERE' => '(fp.read_forum IS NULL OR fp.read_forum=1)',
- 'ORDER BY' => 't.last_post DESC',
- 'LIMIT' => $topics_count
- );
- $result_active = $forum_db->query_build($query_active_topics) or error(__FILE__, __LINE__);
- if ($forum_db->num_rows($result_active) == 0) {
- ?>
- <div class="main-content main-message">
- <p>There are no active topics.</p>
- </div>
- <?php
- } else {
- require_once FORUM_ROOT.'lang/'.$forum_user['language'].'/forum.php';
- ?>
- <div class="main-head">
- <h2 class="hn"><span><?php echo $lang_active_topics['Active topics']; ?></span></h2>
- </div>
- <div class="main-subhead">
- <p class="item-summary">
- <span>
- <strong class="subject-title"><?php echo $lang_index['Topics']; ?></strong>
- <strong class="info-replies"><?php echo $lang_forum['Replies']; ?></strong>
- <strong class="info-views"><?php echo $lang_forum['Views']; ?></strong>
- <strong class="info-lastpost"><?php echo $lang_index['last post']; ?></strong>
- </span>
- </p>
- </div>
- <div class="main-content main-forum">
- <?php
- $item_num = 1;
- while ($cur_set = $forum_db->fetch_assoc($result_active))
- {
- // Start from scratch
- $item_subject = $item_body = $item_status = $item_nav = $item_title = array();
- $item_indicator = '';
- if (!empty($item_nav))
- $item_title['nav'] = '<span class="item-nav">'.sprintf($lang_forum['Topic navigation'], implode('  ', $item_nav)).'</span>';
- if ($cur_set['sticky'] == '1')
- {
- $item_subject_status['sticky'] = $lang_forum['Sticky'];
- $item_status['sticky'] = 'sticky';
- }
- if ($cur_set['closed'] != '0')
- {
- $item_subject_status['closed'] = $lang_forum['Closed'];
- $item_status['closed'] = 'closed';
- }
- if (!empty($item_subject_status))
- $item_title['status'] = '<span class="item-status">'.sprintf($lang_forum['Item status'], implode(' ', $item_subject_status)).'</span>';
- $item_title['link'] = '<a href="'.forum_link($forum_url['post'], $cur_set['last_post_id']).'">'.forum_htmlencode($cur_set['subject']).'</a>';
- if (!$forum_user['is_guest'] && $forum_config['o_show_dot'] == '1' && $cur_set['has_posted'] > 0)
- {
- $item_title['posted'] = '<span class="posted-mark">'.$lang_forum['You posted indicator'].'</span>';
- $item_status['posted'] = 'posted';
- }
- $item_body['subject']['title'] = '<h3 class="hn"><span class="item-num">'.forum_number_format(++$item_num).'</span> '.implode(' ', $item_title).'</h3> ';
- // Does this topic contain posts we haven't read? If so, tag it accordingly.
- if (!$forum_user['is_guest'] && $cur_set['last_post'] > $forum_user['last_visit'] && (!isset($tracked_topics['topics'][$cur_set['tid']]) || $tracked_topics['topics'][$cur_set['tid']] < $cur_set['last_post']) && (!isset($tracked_topics['forums'][$cur_set['forum_id']]) || $tracked_topics['forums'][$cur_set['forum_id']] < $cur_set['last_post']))
- {
- $item_status['new'] = 'new';
- }
- $item_body['subject']['desc'] = implode(' ', $item_subject);
- if (empty($item_status))
- $item_status['normal'] = 'normal';
- $item_style = (($item_num % 2 != 0) ? ' odd' : ' even').(($item_num == 1) ? ' main-first-item' : '').((!empty($item_status)) ? ' '.implode(' ', $item_status) : '');
- $item_body['info']['replies'] = '<li class="info-replies"><strong>'.forum_number_format($cur_set['num_replies']).'</strong> <span class="label">'.(($cur_set['num_replies'] == 1) ? $lang_forum['Reply'] : $lang_forum['Replies']).'</span></li>';
- $item_body['info']['views'] = '<li class="info-replies"><strong>'.forum_number_format($cur_set['num_views']).'</strong> <span class="label">'.(($cur_set['num_views'] == 1) ? $lang_forum['View'] : $lang_forum['Views']).'</span></li>';
- $item_body['info']['last_post'] = '<li class="info-lastpost"><span class="label">'.$lang_index['Last post'].'</span> <strong><a href="'.forum_link($forum_url['post'], $cur_set['last_post_id']).'">'.format_time($cur_set['last_post']).'</a></strong> <cite>'.sprintf($lang_index['Last poster'], forum_htmlencode($cur_set['last_poster'])).'</cite></li>';
- ?>
- <div class="main-item<?php echo $item_style ?>">
- <span class="icon <?php echo implode(' ', $item_status) ?>"><!-- --></span>
- <div class="item-subject">
- <?php echo implode("\n\t\t\t\t", $item_body['subject'])."\n" ?>
- </div>
- <ul class="item-info">
- <?php echo implode("\n\t\t\t\t", $item_body['info'])."\n" ?>
- </ul>
- </div>
- <?php
- }
- }
- ]]></hook>
- </hooks>
- </extension>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement