TP-Docs
HTML5 Icon HTML5 Icon HTML5 Icon
TP on Social Media

Recent

Welcome to TinyPortal. Please login or sign up.

Members
  • Total Members: 3,963
  • Latest: BiZaJe
Stats
  • Total Posts: 195,917
  • Total Topics: 21,308
  • Online today: 884
  • Online ever: 8,223 (February 19, 2025, 04:35:35 AM)
Users Online
  • Users: 1
  • Guests: 445
  • Total: 446
  • @rjen

"recent topics" in SMF style

Started by Lesmond, August 17, 2005, 12:01:38 PM

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

IchBin

Not with the recentTopics codes we have right now. I'd bet you'd need to change something in it, or write a new one. If one of the other coders can't get to it, I'll take a look later.

uniektekniek

has anyone been able to have a look into this... or possibly point me in the direction of another block that may hold onto posts a little longer?

ZarPrime

uniektekniek,

Try the one that I posted in this message to see if it will do what you want ...
http://www.tinyportal.net/index.php?topic=596.msg247350#msg247350

On my site, using this configuration, topics are shown no matter how old they are.  If you want to exclude those 3 boards, you will need to gro through the configuration.

ZarPrime

Rav33n

I want to edit this code to show topics from 1 board only. I have tried replacing recentTopics with BoardNews, but I can't get the formatting and linking correct - please help.

This is what I have tried:


global $scripturl;

echo '
                        <table border="0" width="100%" cellspacing="1" cellpadding="4" class="bordercolor">
                               <tr><td colspan="3" class="titlebg">Recent topics</td></tr> ';
       $what=ssi_boardNews($board = 9.0, $limit = 15, $start = null, $length = 250, $output_method = 'array');


        foreach ($what as $topic)
        {
                echo '
                                <tr>
                                        <td class="windowbg" valign="middle">
<a href="', $scripturl, '?topic=', $topic['topic'], '.from', $topic['new_from'], '#new">
                                                ', $topic['subject'], '</a>';

                // Is this topic new? (assuming they are logged in!)
                if (!$topic['new'] && $context['user']['is_logged'])
                        echo '
                                                <a href="', $scripturl, '?topic=', $topic['topic'], '.from', $topic['new_from'], '#new"><img src="', $settings['images_url'], '/', $context['user']['language'], '/new.gif" alt="', $txt[302], '" border="0" /></a>';

                echo '
                                        </td>
                                        <td class="windowbg2" valign="middle" width="20%">
                                                ', $topic['poster']['link'], '
                                        </td>
                                        <td class="windowbg2" valign="middle" width="35%">';
                if ($settings['images_url'] != $settings['theme_url'] . '/images' || file_exists($settings['theme_dir'] . '/images/icons/last_post.gif'))
                        echo '
                                        <a href="', $topic['href'], '"><img src="', $settings['images_url'], '/icons/last_post.gif" alt="', $txt[111], '" title="', $txt[111], '" border="0" style="float: right;" /></a>';
                echo '
                                                <span class="smalltext">
                                                        ', $topic['time'], '
                                                </span>
                                        </td>
                                </tr>';
        }

        echo '
                        </table>';


This currently gives me links like http://XX/index.php/topic,.from.html#new

Help! :)

ZarPrime

Rav33n,

I'm not sure what you are trying to do.  The code shown below placed into a php block will show the most recent post in the 3 most recent topics in 2 different boards on your site.  Maybe looking through this code will help you to figure out whatever it is you are trying to do.

ZarPrime


$result=ssi_recentTopics(3,array(2,3,4),'return');
echo '<span class="smalltext">Last Post from Board #1</span>';
echo '<ul style="margin-left: 2px;">';
foreach($result as $my){
echo '<li>'.$my['link'].'</li>';
}
echo '</ul>';
echo '<hr>';
$result=ssi_recentTopics(3,array(1,3,4),'return');
echo '<span class="smalltext">Last Post from Board #2</span>';
echo '<ul style="margin-left: 2px;">';
foreach($result as $my){
echo '<li>'.$my['link'].'</li>';
}
echo '</ul>';

Rav33n

I went through the SSI documentation and if I understood correct, using recentTopics I can only eliminate boards that I don't want to show, right? In my case, I have too many boards (and keep adding boards) so that will be impossible. I want to be able to display recent topics from just one board... and another thread suggested I use boardNews.

Is there a way I can get topics from just one board without having to exclude each and every other board in the parameters?

Thanks for the reply.

Mick

ZP,....i believe you created this code.   Is it possible to convert it to RC2?

The feature im looking for is to show topics/posts in the last 24 hours adn this script has it.

Thanx man.

Mick.

global $context, $settings, $scripturl, $txt, $db_prefix, $ID_MEMBER, $user_info, $modSettings, $user_profile;

//////////////////////////////////////////// ---------- Unconditional Exclude
//   
   $exclude_boards = array();   // KEEP (to preserve variable declaration)
//   $exclude_boards = array(5);   //  Exclude single board
//     $exclude_boards = array(55,69);   //  Exclude multiple boards
   $ex_board_clause = !empty($exclude_boards) ? ' AND b.ID_BOARD NOT IN (' . implode(', ', $exclude_boards) . ')' : '';
//   
//   

//////////////////////////////////////////// ---------- Use in TP PHP Article (no title or frame from theme)
//   This will give most recent XX posted to topics -OR-
//   most recent XX unreplied to topics -OR-
//   topics posted to in last XX hours -OR-
//   most recent XX topics on topic notify list
//   
//   Sorts by most recent reply (descending; most recent first) -OR-
//            creation order (descending; most recent first)
//   
//   All in the detailed topic format
//   
//   
//   Default
//   index.php?page=##
//   most recent posted to topics - will list
//   number equal to  $settings['number_recent_posts']
//   
//   index.php?page=##;count=50 or index.php?page=##;type=last;count=50
//   50 most recently posted to topics
//   
//   index.php?page=##;type=unreplied or index.php?page=##;type=unreplied;count=50
//   Most recent unreplied to topics - will
//   list number specified in 'count' or default to
//   number equal to  $settings['number_recent_posts']
//   
//   index.php?page=##;type=hours or index.php?page=##;type=hours;count=12
//   Topics posted to in last number of hours
//   specified in 'count' or default to 24.
//   
//   index.php?page=##;type=notify or index.php?page=##;type=notify;count=50
//   Topics in topic notifcation list up to number
//   specified in 'count' or a maximum of 100 topics.
//   
//   *** Admins Only ***
//   index.php?page=##;type=notify;user=XXX or index.php?page=##;type=notify;user=XXX;count=50
//   Topics in topic notifcation list of specified user up to number
//   specified in 'count' or a maximum of 100 topics.
//   
//   index.php?page=##;type=started or index.php?page=##;type=started;count=50
//   Topics started by current user list up to number
//   specified in 'count' or a maximum of 100 topics.
//   
//   *** Admins Only ***
//   index.php?page=##;type=notify;user=XXX or index.php?page=##;type=started;user=XXX;count=50
//   Topics started by specified user up to number
//   specified in 'count' or a maximum of 100 topics.
//   
//   Add argument order=create to sort by topic creation sequence (most recent first)
//   rather than by last reply sequence

   $do_query = 1;

//////////////////////////////////////////// ---------- Poor Man's Global Announcements Block (center block - no Title/Frame)
//   Delete documentation comments above and marked section below
//
//   $announce_topics = array(254, 568, 675, 678); // Topic ID's to be 'Announced'
//
//   $heading = '<center>Announcements<center>';
//   $where_clause = 't.ID_TOPIC IN (' . implode(', ', $announce_topics) . ')';
//   $limit_clause = '';
//   $order_clause = 't.ID_LAST_MSG DESC';
////////////////////////////////////////////   

//////////////////////////////////////////// ---------- Last 5 Topics Started by User Block (center block - no Title/Frame)
//   Delete documentation comments above and marked section below
//
//   $heading = 'Most Recent Topics You Started';
//   $where_clause = 'ms.ID_MEMBER = '.$ID_MEMBER;
//   $limit_clause = 'LIMIT 5';
//   $order_clause = 't.ID_FIRST_MSG DESC';
////////////////////////////////////////////   

//////////////////////////////////////////// ---------- Boardindex Most Recent Topics Arguments
//
//   Comment out the Info Center's Most Recent Posts Code and Insert this
//   to show Most Recent Topics in full detail style instead
//
//   $list_count = $settings['number_recent_posts'];
//   $heading = 'Most Recently Posted To Topics';
//   $where_clause = 't.ID_LAST_MSG >= ' . ($modSettings['maxMsgID'] - 50 * min($list_count, 5));
//   $limit_clause = 'LIMIT ' . $list_count;
//   $order_clause = 't.ID_LAST_MSG DESC';
////////////////////////////////////////////   

////////////////////////////////////////////  ------ Remove down to next mark to use in block/boardindex ------
//
   if (empty($settings['number_recent_posts']))
      $number_recent_posts = 20;
   else
      $number_recent_posts = $settings['number_recent_posts'];

        if( isset($_GET['type']) )
      $list_type = $_GET['type'];
   else
      $list_type = 'last';

        if( isset($_GET['count']) )
      $list_count = $_GET['count'];
   else
   {
      $list_count = $number_recent_posts;
      if ($list_type == 'notify')
         $list_count = 100;
      elseif ($list_type == 'hours')
         $list_count = 24;
   }

   if ($list_count <= 0)
   {
      $list_count = $number_recent_posts;
      if ($list_type == 'hours')
         $list_count = 24;
   }

   if ($list_count > 100)
      $list_count = 100;

        if( isset($_GET['order']) )
      $list_order = $_GET['order'];
   else
      $list_order = 'lastpost';

        if( $list_order == 'create' )
      $order_clause = 't.ID_FIRST_MSG DESC';
   else
      $order_clause = 't.ID_LAST_MSG DESC';

   if ($list_type == 'hours')
   {
      $list_from = strtotime($list_count.' hours ago');
      $where_clause = 'ml.posterTime >= ' . $list_from;
      $limit_clause = ' ';
      $heading = 'Topics Posted To In Last '. $list_count . ' Hours';
   }
   elseif ($list_type == 'unreplied')
   {
      $where_clause = 't.numReplies = 0';
      if ($list_count == 0)
      {
         $limit_clause = ' ';
         $heading = 'Unreplied To Topics';
      }
      else
      {
      $limit_clause = 'LIMIT ' . $list_count;
      $heading = $list_count . ' Most Recent Unreplied To Topics';
      }
   }
   elseif ($list_type == 'notify')
   {
      if (isset($_GET['user']) && $user_info['is_admin'])
      {
         $watched_topics = array();
         $request = db_query("SELECT ID_TOPIC FROM {$db_prefix}log_notify WHERE ID_MEMBER = {$_GET['user']} AND ID_BOARD = 0", __FILE__, __LINE__);
         while ($row = mysql_fetch_assoc($request))
            $watched_topics[] = $row['ID_TOPIC'];
         mysql_free_result($request);
         $heading = $list_count . ' Most Recent Topics Being Watched by User # '.$_GET['user'];
         $where_clause = 't.ID_TOPIC IN (' . implode(', ', $watched_topics) . ')';
         $limit_clause = 'LIMIT ' . $list_count;
         if (empty($watched_topics))
            $do_query = 0;
      }
      else
      {
         $watched_topics = array();
         $request = db_query("SELECT ID_TOPIC FROM {$db_prefix}log_notify WHERE ID_MEMBER = {$ID_MEMBER} AND ID_BOARD = 0", __FILE__, __LINE__);
         while ($row = mysql_fetch_assoc($request))
            $watched_topics[] = $row['ID_TOPIC'];
         mysql_free_result($request);
         $heading = $list_count . ' Most Recent Topics Being Watched';
         $where_clause = 't.ID_TOPIC IN (' . implode(', ', $watched_topics) . ')';
         $limit_clause = 'LIMIT ' . $list_count;
         if (empty($watched_topics))
            $do_query = 0;
      }
   }
   elseif ($list_type == 'started')
   {
      if (isset($_GET['user']) && $user_info['is_admin'])
      {
         $where_clause = 'ms.ID_MEMBER = '.$_GET['user'];
         $limit_clause = 'LIMIT ' . $list_count;
              if( $list_order == 'create' )
         {
            $order_clause = 't.ID_FIRST_MSG DESC';
            $heading = 'Most Recent Topics Started by User '.$_GET['user'];
         }
         else
         {
            $order_clause = 't.ID_LAST_MSG DESC';
            $heading = 'Most Recently Posted To Topics Started by User '.$_GET['user'];
         }
      }
      else
      {
         $where_clause = 'ms.ID_MEMBER = '.$ID_MEMBER;
         $limit_clause = 'LIMIT ' . $list_count;
              if( $list_order == 'create' )
         {
            $order_clause = 't.ID_FIRST_MSG DESC';
            $heading = 'Most Recent Topics You Started';
         }
         else
         {
            $order_clause = 't.ID_LAST_MSG DESC';
            $heading = 'Most Recently Posted To Topics You Started';
         }
      }
   }
   else
   {
      $where_clause = 't.ID_LAST_MSG >= ' . ($modSettings['maxMsgID'] - 90 * min($list_count, 5));
      $limit_clause = 'LIMIT ' . $list_count;
      $heading = $list_count . ' Most Recently Posted To Topics';
   }
//
////////////////////////////////////////////  ------ Remove up to first mark to use in block/boardindex ------

   $stable_icons = array('xx', 'thumbup', 'thumbdown', 'exclamation', 'question', 'lamp', 'smiley', 'angry', 'cheesy', 'grin', 'sad', 'wink', 'moved', 'recycled', 'wireless');
   $icon_sources = array();
   foreach ($stable_icons as $icon)
      $icon_sources[$icon] = 'images_url';

   $groupcolors = array();
   $request = db_query("SELECT ID_GROUP, onlineColor FROM {$db_prefix}membergroups", __FILE__, __LINE__);
   while ($row = mysql_fetch_assoc($request))
      $groupcolors[$row['ID_GROUP']] = $row['onlineColor'];
   mysql_free_result($request);

   $topics = array();

   if ($do_query == 1)
   {
   $request = db_query("
      SELECT
            ms.subject AS firstSubject, ms.posterTime AS firstPosterTime, ms.ID_TOPIC, t.ID_BOARD, b.name AS bname,
            t.numReplies, t.numViews, ms.ID_MEMBER AS ID_FIRST_MEMBER, ml.ID_MEMBER AS ID_LAST_MEMBER,
            ml.posterTime AS lastPosterTime, IFNULL(mems.realName, ms.posterName) AS firstPosterName,
            IFNULL(meml.realName, ml.posterName) AS lastPosterName,
            mems.ID_GROUP as mems_group, meml.ID_GROUP as meml_group,
            ml.subject AS lastSubject, b.memberGroups,
            ml.icon AS lastIcon, ms.icon AS firstIcon, t.ID_POLL, t.isSticky, t.locked, ml.modifiedTime AS lastModifiedTime,
            LEFT(ml.body, 384) AS lastBody, LEFT(ms.body, 384) AS firstBody,
            ml.smileysEnabled AS lastSmileys, ms.smileysEnabled AS firstSmileys, t.ID_FIRST_MSG, t.ID_LAST_MSG,"
            . ($user_info['is_guest'] ? '1 AS isRead, 0 AS new_from' : '
            IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, 0)) >= ml.ID_MSG_MODIFIED AS isRead,
            IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, -1)) + 1 AS new_from') . "
         FROM ({$db_prefix}messages AS ms, {$db_prefix}messages AS ml, {$db_prefix}topics AS t, {$db_prefix}boards AS b)
            LEFT JOIN {$db_prefix}members AS mems ON (mems.ID_MEMBER = ms.ID_MEMBER)
            LEFT JOIN {$db_prefix}members AS meml ON (meml.ID_MEMBER = ml.ID_MEMBER)
            LEFT JOIN {$db_prefix}log_topics AS lt ON (lt.ID_TOPIC = t.ID_TOPIC AND lt.ID_MEMBER = $ID_MEMBER)
            LEFT JOIN {$db_prefix}log_mark_read AS lmr ON (lmr.ID_BOARD = t.ID_BOARD AND lmr.ID_MEMBER = $ID_MEMBER)
         WHERE " . $where_clause . $ex_board_clause . "
            AND t.ID_TOPIC = ms.ID_TOPIC
            AND b.ID_BOARD = t.ID_BOARD" . (!empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0 ? " AND b.ID_BOARD != $modSettings[recycle_board]" : '') . "
            AND ms.ID_MSG = t.ID_FIRST_MSG
            AND ml.ID_MSG = t.ID_LAST_MSG
            AND " . $user_info['query_see_board'] . "
         ORDER BY " . $order_clause . " " . $limit_clause, __FILE__, __LINE__);


   $topic_ids = array();
   while ($row = mysql_fetch_assoc($request))
   {
      if ($row['ID_POLL'] > 0 && $modSettings['pollMode'] == '0')
         continue;

      $topic_ids[] = $row['ID_TOPIC'];

      // Clip the strings first because censoring is slow :/. (for some reason?)
      $row['firstBody'] = strip_tags(strtr(parse_bbc($row['firstBody'], $row['firstSmileys'], $row['ID_FIRST_MSG']), array('<br />' => '
')));
      if (strlen($row['firstBody']) > 128)
         $row['firstBody'] = substr($row['firstBody'], 0, 128) . '...';
      $row['lastBody'] = strip_tags(strtr(parse_bbc($row['lastBody'], $row['lastSmileys'], $row['ID_LAST_MSG']), array('<br />' => '
')));
      if (strlen($row['lastBody']) > 128)
         $row['lastBody'] = substr($row['lastBody'], 0, 128) . '...';

         $row['lastSubject'] = $row['firstSubject'];
         $row['lastBody'] = $row['firstBody'];

      // Decide how many pages the topic should have.
      $topic_length = $row['numReplies'] + 1;
      if ($topic_length > $modSettings['defaultMaxMessages'])
      {
         $tmppages = array();
         $tmpa = 1;
         for ($tmpb = 0; $tmpb < $topic_length; $tmpb += $modSettings['defaultMaxMessages'])
         {
            $tmppages[] = '<a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . '.' . $tmpb . ';topicseen">' . $tmpa . '</a>';
            $tmpa++;
         }
         // Show links to all the pages?
         if (count($tmppages) <= 5)
            $pages = 'Ã,« ' . implode(' ', $tmppages);
         // Or skip a few?
         else
            $pages = 'Ã,« ' . $tmppages[0] . ' ' . $tmppages[1] . ' ... ' . $tmppages[count($tmppages) - 2] . ' ' . $tmppages[count($tmppages) - 1];

         if (!empty($modSettings['enableAllMessages']) && $topic_length < $modSettings['enableAllMessages'])
            $pages .= '  <a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . '.0;all">' . $txt[190] . '</a>';
         $pages .= ' Ã,»';
      }
      else
         $pages = '';

      // We need to check the topic icons exist... you can never be too sure!
      if (empty($modSettings['messageIconChecks_disable']))
      {
         // First icon first... as you'd expect.
         if (!isset($icon_sources[$row['firstIcon']]))
            $icon_sources[$row['firstIcon']] = file_exists($settings['theme_dir'] . '/images/post/' . $row['firstIcon'] . '.gif') ? 'images_url' : 'default_images_url';
         // Last icon... last... duh.
         if (!isset($icon_sources[$row['lastIcon']]))
            $icon_sources[$row['lastIcon']] = file_exists($settings['theme_dir'] . '/images/post/' . $row['lastIcon'] . '.gif') ? 'images_url' : 'default_images_url';
      }

      $color_start = !empty($groupcolors[$row['mems_group']]) ? $groupcolors[$row['mems_group']] : '';
      $color_last = !empty($groupcolors[$row['meml_group']]) ? $groupcolors[$row['meml_group']] : '';

      // And build the array.
      $topics[$row['ID_TOPIC']] = array(
         'id' => $row['ID_TOPIC'],
         'first_post' => array(
            'id' => $row['ID_FIRST_MSG'],
            'member' => array(
               'name' => $row['firstPosterName'],
               'id' => $row['ID_FIRST_MEMBER'],
               'href' => $scripturl . '?action=profile;u=' . $row['ID_FIRST_MEMBER'],
               'link' => !empty($row['ID_FIRST_MEMBER']) ? '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_FIRST_MEMBER'] . '" title="' . $txt[92] . ' ' . $row['firstPosterName'] . '">' . '<font color="' . $color_start . '">' . $row['firstPosterName'] . '</font>' . '</a>' : $row['firstPosterName']
            ),
            'time' => timeformat($row['firstPosterTime']),
            'timestamp' => forum_time(true, $row['firstPosterTime']),
            'subject' => $row['firstSubject'],
            'preview' => $row['firstBody'],
            'icon' => $row['firstIcon'],
            'icon_url' => $settings[$icon_sources[$row['firstIcon']]] . '/post/' . $row['firstIcon'] . '.gif',
            'href' => $scripturl . '?topic=' . $row['ID_TOPIC'] . '.0;topicseen',
            'link' => '<a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . '.0;topicseen">' . $row['firstSubject'] . '</a>'
         ),
         'last_post' => array(
            'id' => $row['ID_LAST_MSG'],
            'member' => array(
               'name' => $row['lastPosterName'],
               'id' => $row['ID_LAST_MEMBER'],
               'href' => $scripturl . '?action=profile;u=' . $row['ID_LAST_MEMBER'],
               'link' => !empty($row['ID_LAST_MEMBER']) ? '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_LAST_MEMBER'] . '">' . '<font color="' . $color_last . '">' . $row['lastPosterName'] . '</font>' . '</a>' : $row['lastPosterName']
            ),
            'time' => timeformat($row['lastPosterTime']),
            'timestamp' => forum_time(true, $row['lastPosterTime']),
            'subject' => $row['lastSubject'],
            'preview' => $row['lastBody'],
            'icon' => $row['lastIcon'],
            'icon_url' => $settings[$icon_sources[$row['lastIcon']]] . '/post/' . $row['lastIcon'] . '.gif',
            'href' => $scripturl . '?topic=' . $row['ID_TOPIC'] . ($row['numReplies'] == 0 ? '.0' : '.msg' . $row['ID_LAST_MSG']) . ';topicseen#msg' . $row['ID_LAST_MSG'],
            'link' => '<a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . ($row['numReplies'] == 0 ? '.0' : '.msg' . $row['ID_LAST_MSG']) . ';topicseen#msg' . $row['ID_LAST_MSG'] . '">' . $row['lastSubject'] . '</a>'
         ),
         'new' => $row['isRead'],
         'new_from' => $row['new_from'],
         'new_href' => $scripturl . '?topic=' . $row['ID_TOPIC'] . '.msg' . $row['new_from'] . ';topicseen#new',
         'href' => $scripturl . '?topic=' . $row['ID_TOPIC'] . ($row['numReplies'] == 0 ? '.0' : '.msg' . $row['new_from']) . ';topicseen' . ($row['numReplies'] == 0 ? '' : 'new'),
         'link' => '<a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . ($row['numReplies'] == 0 ? '.0' : '.msg' . $row['new_from']) . ';topicseen#msg' . $row['new_from'] . '">' . $row['firstSubject'] . '</a>',
         'is_sticky' => !empty($modSettings['enableStickyTopics']) && !empty($row['isSticky']),
         'is_locked' => !empty($row['locked']),
         'is_poll' => $modSettings['pollMode'] == '1' && $row['ID_POLL'] > 0,
         'is_hot' => $row['numReplies'] >= $modSettings['hotTopicPosts'],
         'is_very_hot' => $row['numReplies'] >= $modSettings['hotTopicVeryPosts'],
         'is_posted_in' => false,
         'icon' => $row['firstIcon'],
         'icon_url' => $settings[$icon_sources[$row['firstIcon']]] . '/post/' . $row['firstIcon'] . '.gif',
         'subject' => $row['firstSubject'],
         'pages' => $pages,
         'replies' => $row['numReplies'],
         'views' => $row['numViews'],
         'board' => array(
            'id' => $row['ID_BOARD'],
            'name' => $row['bname'],
            'href' => $scripturl . '?board=' . $row['ID_BOARD'] . '.0',
            'link' => '<a href="' . $scripturl . '?board=' . $row['ID_BOARD'] . '.0">' . $row['bname'] . '</a>'
         )
      );

      determineTopicClass($topics[$row['ID_TOPIC']]);
   }
   mysql_free_result($request);

   if (!empty($modSettings['enableParticipation']) && !empty($topic_ids))
   {
      $result = db_query("
         SELECT ID_TOPIC
         FROM {$db_prefix}messages
         WHERE ID_TOPIC IN (" . implode(', ', $topic_ids) . ")
            AND ID_MEMBER = $ID_MEMBER", __FILE__, __LINE__);
      while ($row = mysql_fetch_assoc($result))
      {
         if (empty($topics[$row['ID_TOPIC']]['is_posted_in']))
         {
            $topics[$row['ID_TOPIC']]['is_posted_in'] = true;
            $topics[$row['ID_TOPIC']]['class'] = 'my_' . $topics[$row['ID_TOPIC']]['class'];
         }
      }
      mysql_free_result($result);
   }

   }

if (!empty($topics))
    {
    echo '
        <div class="tborder" ', $context['browser']['needs_size_fix'] && !$context['browser']['is_ie6'] ? 'style="width: 100%;margin:0px;"' : 'style="margin:0px;"', '>
            <table border="0" width="100%" cellspacing="1" cellpadding="1" class="bordercolor">
                <tr>';

    echo '
                    <td class="titlebg" colspan="7">', $heading, '</td>';
    echo '
                </tr>';

    echo '
            <tr class="titlebg">
               <td width="10%" colspan="2"> </td>
               <td>', $txt[70], '
               </td><td width="14%">', $txt[109], '
               </td><td width="4%" align="center">', $txt[110], '
               </td><td width="4%" align="center">', $txt[301], '
               </td><td width="24%">', $txt[111], '
               </td>
            </tr>';

   foreach ($topics as $topic)
   {
      // Do we want to seperate the sticky and lock status out?
      if (!empty($settings['seperate_sticky_lock']) && strpos($topic['class'], 'sticky') !== false)
         $topic['class'] = substr($topic['class'], 0, strrpos($topic['class'], '_sticky'));
      if (!empty($settings['seperate_sticky_lock']) && strpos($topic['class'], 'locked') !== false)
         $topic['class'] = substr($topic['class'], 0, strrpos($topic['class'], '_locked'));

      echo '
            <tr>
               <td class="windowbg2" valign="middle" align="center" width="6%">
                  <img src="' . $settings['images_url'] . '/topic/' . $topic['class'] . '.gif" alt="" />
               </td><td class="windowbg2" valign="middle" align="center" width="4%">
                  <img src="' . $topic['first_post']['icon_url'] . '" alt="" align="middle" />
               </td><td class="windowbg' , $topic['is_sticky'] && !empty($settings['seperate_sticky_lock']) ? '3' : '' , '" width="48%" valign="middle">' , $topic['is_locked'] && !empty($settings['seperate_sticky_lock']) ? '
                  <img src="' . $settings['images_url'] . '/icons/quick_lock.gif" align="right" alt="" style="margin: 0;" />' : '' , $topic['is_sticky'] && !empty($settings['seperate_sticky_lock']) ? '
                  <img src="' . $settings['images_url'] . '/icons/show_sticky.gif" align="right" alt="" style="margin: 0;" />' : '', $topic['first_post']['link'];
               if ($topic['new'] == 0)
                  {
                  echo '<a href="', $topic['new_href'], '"> <img src="', $settings['images_url'], '/', $context['user']['language'], '/new.gif" alt="', $txt[302], '" /></a>';
                  }
                echo '
               <span class="smalltext">', $topic['pages'], '<br>', $txt['smf88'], ' ', $topic['board']['link'], '</span></td>
               <td class="windowbg2" valign="middle" width="14%">
                  ', $topic['first_post']['member']['link'], '</td>
               <td class="windowbg" valign="middle" width="4%" align="center">
                  ', $topic['replies'], '</td>
               <td class="windowbg" valign="middle" width="4%" align="center">
                  ', $topic['views'], '</td>
               <td class="windowbg2" valign="middle" width="22%">
                  <a href="', $topic['last_post']['href'], '"><img src="', $settings['images_url'], '/icons/last_post.gif" alt="', $txt[111], '" title="', $txt[111], '" style="float: right;" /></a>
                  <span class="smalltext">
                     ', $topic['last_post']['time'], '<br />
                     ', $txt[525], ' ', $topic['last_post']['member']['link'], '
                  </span>
               </td>
            </tr>';
   }

    echo '</table></div>';

    }
   else
       echo '<b><u>'.$heading.'<br><br>No Topics Match Search Criteria</u></b>';

ZarPrime

Mick,

Actually, no, I'm not the one who created that code.  I don't remember who originally wrote it but I posted it somewhere here when someone asked what the code was that I use on one of my sites.  I appreciate the vote of confidence but I'm really not much of a coder.  I have gotten pretty good at troubleshooting code written by others and have even converted a couple of code snippets to work with SMF 2.0 RC2 for my own use, but I haven't spent enough time to teach myself the actual intricacies of writing code yet.

All that being said, this code is probably one of the ones that I will work on a little later because I will need it.  The problem I see with doing that right now is that, now that SMF 2.0 RC3 is known to be not too far off, I don't relish the thought of editing this code for RC2, only to find out that it won't work with RC3.  Combine that with the fact that we are heavily into working out the bugs for TP 1.0 beta 5 and you might understand why I am going to choose to not work on this, at least not yet.

Once TP 1.0 beta 5 is out to the public, I expect that converting some of the existing code snippets is going to occupy a lot of our time for awhile but since  it hasn't been released yet, it's not high on my priority list.  Perhaps JPDeni or Freddy would be willing to take this on before I can but it shouldn't be a priority at this point for you either, unless you are just wanting to use this code on your (non-TP) site. :buck2:  If that's the reason you want it now, I hope you'll understand that this is another reason why I'm not too excited about updating this yet. ;)

Bear with me.  If I get a chance to look at it this weekend, I may take the time to go through the code and see what I can do.

ZarPrime

Mick

ZP, i understand completely ;)

I also waiting for TP5.  Reason i use the other simply because my pages/articles are vital.


...but yes,  this script sure is one that i really like and i'll wait for it whenever becomes available.  :smitten:


Thanx for responding ;)


IchBin

Blue, I just did a quick update of the code. I don't know if it works because I don't have any where to test it at the moment. Please go to this topic while we work on this.

http://www.tinyportal.net/index.php?topic=31950.0

This website is proudly hosted on Crocweb Cloud Website Hosting.