I have the PM mod installed at my site (http://www.game-warp.com/forums) and was wondering how can I make it so whenever someone registers an account, they'll automatically have an unread message from me, saying whatever I want in their inbox?

Is there some way to do this?

Thanks.

I'll try to contact gary and have it re uploaded wink

some people  visit the forums, post, and then never come back to see their replies.

is there a way for admins only to see a button in viewtopic next to someone post count that says "Notify User of Replies" or something like that, and it sends an email to the user saying that their thread has got replies?

thanks/.

Please? Anyone? sad

That displays the users online today, not amount of guests on the forums today tongue

Anybody please? sad

Anyone?

Anyway somebody could whip up a mod which records the amount of guests online the forums today?

Would be great if possible big_smile

E.G:

"The total number of guests online today are: X"

Thanks!

ANyone?

When someone donates some pints with the cashmod,  is there a way I can make it so at the top, the user that recieved the points, it says:

"<USERNAMEHERE> has donated X points to you"

And as soon as they click the link, it removes the sentance?

Thanks for any help smile

I think he may have done what I did smartys wink

I was the first to use 1.0.9.2 big_smile

SMARTYS FTW!

39

(39 replies, posted in PunBB 1.2 troubleshooting)

viewforum with out link to create new thread:

<?php
/***********************************************************************

  Copyright (C) 2002-2005  Rickard Andersson (rickard@punbb.org)

  This file is part of PunBB.

  PunBB is free software; you can redistribute it and/or modify it
  under the terms of the GNU General Public License as published
  by the Free Software Foundation; either version 2 of the License,
  or (at your option) any later version.

  PunBB is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  MA  02111-1307  USA

************************************************************************/


define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';


if ($pun_user['g_read_board'] == '0')
    message($lang_common['No view']);


$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
if ($id < 1)
    message($lang_common['Bad request']);

// Load the viewforum.php language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/index.php';// Load poll language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/polls.php';

// Fetch some info about the forum
$result = $db->query('SELECT f.forum_name, pf.forum_name AS parent_forum, f.redirect_url, f.moderators, f.num_topics, f.sort_by, f.parent_forum_id, fp.post_topics FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') LEFT JOIN '.$db->prefix.'forums AS pf ON f.parent_forum_id=pf.id WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$id) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());
if (!$db->num_rows($result))
    message($lang_common['Bad request']);

$cur_forum = $db->fetch_assoc($result);

// Is this a redirect forum? In that case, redirect!
if ($cur_forum['redirect_url'] != '')
{
    header('Location: '.$cur_forum['redirect_url']);
    exit;
}

// Sort out who the moderators are and if we are currently a moderator (or an admin)
$mods_array = array();
if ($cur_forum['moderators'] != '')
    $mods_array = unserialize($cur_forum['moderators']);

$is_admmod = ($pun_user['g_id'] == PUN_ADMIN || ($pun_user['g_id'] == PUN_MOD && array_key_exists($pun_user['username'], $mods_array))) ? true : false;
//=========================
//=====RATE TOPIC CODE=====
//=========================
//Eric Subach (kha0s@comcast.net)
//=========================

$rate_topic = 0;

//Make sure Rate Topic is installed, enabled, and the user is not a guest.
if (isset ($pun_config['o_rt_cur_version']) && $pun_config['o_rt_enabled'] && !$pun_user['is_guest'])
{
    $rate_topic = 1;

    //Check for a language pack.
    if (file_exists (PUN_ROOT . 'lang/' . $pun_user['language'] . '/rate_topic.php'))
        require PUN_ROOT . 'lang/' . $pun_user['language'] . '/rate_topic.php';
    else if (file_exists (PUN_ROOT . 'lang/' . $pun_config['o_rt_default_lang'] . '/rate_topic.php'))
        require PUN_ROOT . 'lang/' . $pun_config['o_rt_default_lang'] . '/rate_topic.php';
    else
        $rate_topic = 0;
}

//If it's enabled, create the link to rate the topic.
if ($rate_topic)
    $pre_link = '<a href="rate.php?r_id=' . $id . '">' . $lang_rt['Rate topic'] . '</a> / ';

//==================
//=====END CODE=====
//==================

// Can we or can we not post new topics?
if (($cur_forum['post_topics'] == '' && $pun_user['g_post_topics'] == '1') || $cur_forum['post_topics'] == '1' || $is_admmod)
    $post_link = "\t\t".'<p class="postlink conr"><a href="post.php?fid='.$id.'">'.$lang_forum['Post topic'].'</a> <BR /> <a href="poll.php?fid='.$id.'">'.$lang_polls['New poll'].'</a></p>'."\n";
else
    $post_link = '';


// Determine the topic offset (based on $_GET['p'])
$num_pages = ceil($cur_forum['num_topics'] / $pun_user['disp_topics']);

$p = (!isset($_GET['p']) || $_GET['p'] <= 1 || $_GET['p'] > $num_pages) ? 1 : $_GET['p'];
$start_from = $pun_user['disp_topics'] * ($p - 1);

// Generate paging links
$paging_links = $lang_common['Pages'].': '.paginate($num_pages, $p, 'viewforum.php?id='.$id);


$page_title = pun_htmlspecialchars($pun_config['o_board_title'].' / '.$cur_forum['forum_name']);
define('PUN_ALLOW_INDEX', 1);
require PUN_ROOT.'header.php';
$subforum_result = $db->query('SELECT forum_desc, forum_name, id, last_post, last_post_id, last_poster, moderators, num_posts, num_topics, redirect_url FROM '.$db->prefix.'forums WHERE parent_forum_id='.$id.' ORDER BY disp_position') or error('Unable to fetch sub forum info',__FILE__,__LINE__,$db->error());
if($db->num_rows($subforum_result))
{
?>
<div class="linkst">
    <div class="inbox">
        <ul><li><a href="index.php"><?php echo $lang_common['Index'] ?></a> </li><li>» <?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?></li></ul>
        <div class="clearer"></div>
    </div>
</div>

<div id="vf" class="blocktable">
    <h2><span>Sub forums</span></h2>
    <div class="box">
        <div class="inbox">
            <table cellspacing="0">
            <thead>
                <tr>
                    <th class="tcl" scope="col"><?php echo $lang_common['Forum'] ?></th>
                    <th class="tc2" scope="col"><?php echo $lang_index['Topics'] ?></th>
                    <th class="tc3" scope="col"><?php echo $lang_common['Posts'] ?></th>
                    <th class="tcr" scope="col"><?php echo $lang_common['Last post'] ?></th>
                </tr>
            </thead>
            <tbody>
<?php

while($cur_subforum = $db->fetch_assoc($subforum_result))
{
    $item_status = '';
    $icon_text = $lang_common['Normal icon'];
    $icon_type = 'icon';

    // Are there new posts?
    if (!$pun_user['is_guest'] && $cur_subforum['last_post'] > $pun_user['last_visit'])
    {
        $item_status = 'inew';
        $icon_text = $lang_common['New icon'];
        $icon_type = 'icon inew';
    }

    // Is this a redirect forum?
    if ($cur_forum['redirect_url'] != '')
    {
        $forum_field = '<h3><a href="'.pun_htmlspecialchars($cur_subforum['redirect_url']).'" title="'.$lang_index['Link to'].' '.pun_htmlspecialchars($cur_subforum['redirect_url']).'">'.pun_htmlspecialchars($cur_subforum['forum_name']).'</a></h3>';
        $num_topics = $num_posts = ' ';
        $item_status = 'iredirect';
        $icon_text = $lang_common['Redirect icon'];
        $icon_type = 'icon';
    }
    else
    {
        $forum_field = '<h3><a href="viewforum.php?id='.$cur_subforum['id'].'">'.pun_htmlspecialchars($cur_subforum['forum_name']).'</a></h3>';
        $num_topics = $cur_subforum['num_topics'];
        $num_posts = $cur_subforum['num_posts'];
    }

    if ($cur_subforum['forum_desc'] != '')
        $forum_field .= "\n\t\t\t\t\t\t\t\t".$cur_subforum['forum_desc'];


    // If there is a last_post/last_poster.
    if ($cur_subforum['last_post'] != '')
        $last_post = '<a href="viewtopic.php?pid='.$cur_subforum['last_post_id'].'#p'.$cur_subforum['last_post_id'].'">'.format_time($cur_subforum['last_post']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_subforum['last_poster']).'</span>';
    else
        $last_post = ' ';

    if ($cur_subforum['moderators'] != '')
    {
        $mods_array = unserialize($cur_subforum['moderators']);
        $moderators = array();

        while (list($mod_username, $mod_id) = @each($mods_array))
            $moderators[] = '<a href="profile.php?id='.$mod_id.'">'.pun_htmlspecialchars($mod_username).'</a>';

        $moderators = "\t\t\t\t\t\t\t\t".'<p><em>('.$lang_common['Moderated by'].'</em> '.implode(', ', $moderators).')</p>'."\n";
    }
?>
                <tr<?php if ($item_status != '') echo ' class="'.$item_status.'"'; ?>>
                    <td class="tcl">
                        <div class="intd">
                            <div class="<?php echo $icon_type ?>"><div class="nosize"><?php echo $icon_text ?></div></div>
                            <div class="tclcon">
                                <?php echo $forum_field;
                                if ($cur_subforum['moderators'] != '') {
                                    echo "\n".$moderators;
                                }
                                ?>
                            </div>
                        </div>
                    </td>
                    <td class="tc2"><?php echo $num_topics ?></td>
                    <td class="tc3"><?php echo $num_posts ?></td>
                    <td class="tcr"><?php echo $last_post ?></td>
                </tr>
<?php
    }
?>
            </tbody>
            </table>
        </div>
    </div>
</div>
<?php
}
//=========================
//=====RATE TOPIC CODE=====
//=========================
//Eric Subach (kha0s@comcast.net)
//=========================

$rate_topic = 0;
$rate_stars = 0;

//Check if Rate Topic is installed and enabled.
if (isset ($pun_config['o_rt_cur_version']) && $pun_config['o_rt_enabled'])
{
    $rate_topic = 1;

    //Check for language pack.
    if (file_exists (PUN_ROOT . 'lang/' . $pun_user['language'] . '/rate_topic.php'))
        require PUN_ROOT . 'lang/' . $pun_user['language'] . '/rate_topic.php';
    else if (file_exists (PUN_ROOT . 'lang/' . $pun_config['o_rt_default_lang'] . '/rate_topic.php'))
        require PUN_ROOT . 'lang/' . $pun_config['o_rt_default_lang'] . '/rate_topic.php';
    else
        $rate_topic = 0;

    //Check if using stars or numbers.
    if ($pun_config['o_rt_use_stars'])
        if (file_exists (PUN_ROOT . 'img/rate_stars/' . $pun_config['o_rt_cur_stars']))
            $rate_stars = 1;
}

//==================
//=====END CODE=====
//==================
?>
<div class="linkst">
    <div class="inbox">
        <p class="pagelink conl"><?php echo $paging_links ?></p>
<?php

echo $post_link;
if($cur_forum['parent_forum'])
    echo "\t\t".'<ul><li><a href="index.php">'.$lang_common['Index'].'</a> </li><li>» <a href="viewforum.php?id='.$cur_forum['parent_forum_id'].'">'.pun_htmlspecialchars($cur_forum['parent_forum']).'</a> </li><li>» '.pun_htmlspecialchars($cur_forum['forum_name']).'</li></ul>';
else
    echo "\t\t".'<ul><li><a href="index.php">'.$lang_common['Index'].' </a> </li><li>» '.pun_htmlspecialchars($cur_forum['forum_name']).'</li></ul>';

?>
        <div class="clearer"></div>
    </div>
</div>

<div id="vf" class="blocktable">
    <h2><span><?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?></span></h2>
    <div class="box">
        <div class="inbox">
            <table cellspacing="0">
            <thead>
                <tr>
                    <th class="tcl" scope="col"><?php echo $lang_common['Topic'] ?></th>
                                        <!-- MOD AUTHOR COLUMN 1 line folowing added -->
                    <th class="tc2" scope="col"  style="WIDTH: 12%"><?php echo $lang_common['Author'] ?></th>
                    <th class="tc2" scope="col"><?php echo $lang_common['Replies'] ?></th>
                    <th class="tc3" scope="col"><?php echo $lang_forum['Views'] ?></th>
                    <th class="tcr" scope="col"><?php echo $lang_common['Last post'] ?></th>
                </tr>
            </thead>
            <tbody>
<?php

// Fetch list of topics to display on this page
// <!-- MOD AUTHOR COLUMN - SWITCH BLOCK -->
switch ($db_type)
{
    case 'mysql':
    case 'mysqli':
        $sql = 'SELECT p.poster_id AS has_posted, t.id, t.subject, t.poster, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to, sum(r.rate) AS rate, count(r.user_id) AS num_ratings FROM '.$db->prefix.'topics AS t LEFT JOIN '.$db->prefix.'posts AS p ON t.id=p.topic_id LEFT JOIN '.$db->prefix.'Ratings AS r ON t.id=r.topic_id WHERE t.forum_id='.$id.' GROUP BY t.id ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC LIMIT '.$start_from.', '.$pun_user['disp_topics'];
        break;

    case 'sqlite':
        $sql = 'SELECT p.poster_id AS has_posted, t.id, t.subject, t.poster, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to, sum(r.rate) AS rate, count(r.user_id) AS num_ratings FROM '.$db->prefix.'topics AS t LEFT JOIN '.$db->prefix.'posts AS p ON t.id=p.topic_id WHERE t.id IN(SELECT id FROM '.$db->prefix.'topics WHERE forum_id='.$id.' ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC LIMIT '.$start_from.', '.$pun_user['disp_topics'].') GROUP BY t.id ORDER BY t.sticky DESC, t.last_post DESC';
        break;

    default:
        $sql = 'SELECT p.poster_id AS has_posted, t.id, t.subject, t.poster, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to, sum(r.rate) AS rate, count(r.user_id) AS num_ratings FROM '.$db->prefix.'topics AS t LEFT JOIN '.$db->prefix.'posts AS p ON t.id=p.topic_id LEFT JOIN '.$db->prefix.'Ratings AS r ON t.id=r.topic_id WHERE t.forum_id='.$id.' GROUP BY t.id, t.subject, t.poster, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to, p.poster_id ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC LIMIT '.$start_from.', '.$pun_user['disp_topics'];
        break;

}

$result = $db->query($sql) or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());

// If there are topics in this forum.
if ($db->num_rows($result))
{
    while ($cur_topic = $db->fetch_assoc($result))
    {
        $icon_text = $lang_common['Normal icon'];
        $item_status = '';
        $icon_type = 'icon';
                // MOD AUTHOR COLUMN 1 following line added
        $author = '<a href="profile.php?id='.$cur_topic['has_posted'].'">'.pun_htmlspecialchars($cur_topic['poster']).'</a>';

        if ($cur_topic['moved_to'] == null)
            $last_post = '<a href="viewtopic.php?pid='.$cur_topic['last_post_id'].'#p'.$cur_topic['last_post_id'].'">'.format_time($cur_topic['last_post']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['last_poster']).'</span>';
        else
            $last_post = ' ';

        if ($pun_config['o_censoring'] == '1')
            $cur_topic['subject'] = censor_words($cur_topic['subject']);

if ($cur_topic['question'] != '') {
            if ($pun_config['o_censoring'] == '1')
                $cur_topic['question'] = censor_words($cur_topic['question']);
        
        
            if ($cur_topic['moved_to'] != 0)
                $subject = $lang_forum['Moved'].': '.$lang_polls['Poll'].': <a href="viewpoll.php?id='.$cur_topic['moved_to'].'">'.pun_htmlspecialchars($cur_topic['question']).'</a><br /> <span class="byuser"><b>'.pun_htmlspecialchars($cur_topic['subject']).'</b> '.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';
            else if ($cur_topic['closed'] == '0')
                $subject = $lang_polls['Poll'].': <a href="viewpoll.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['question']).'</a><br \> <span class="byuser"><b>'.pun_htmlspecialchars($cur_topic['subject']).'</b> '.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';
            else
            {
                $subject = $lang_polls['Poll'].': <a href="viewpoll.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['question']).'</a><br /> <span class="byuser"><b>'.pun_htmlspecialchars($cur_topic['subject']).'</b> '.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';
                $icon_text = $lang_common['Closed icon'];
                $item_status = 'iclosed';
            }
    
            if (!$pun_user['is_guest'] && $cur_topic['last_post'] > $pun_user['last_visit'] && $cur_topic['moved_to'] == null)
            {
                $icon_text .= ' '.$lang_common['New icon'];
                $item_status .= ' inew';
                $icon_type = 'icon inew';

    
                $subject = '<strong>'.$subject.'</strong>';
                $subject_new_posts = '<span class="newtext">[ <a href="viewpoll.php?id='.$cur_topic['id'].'&action=new" title="'.$lang_common['New posts info'].'">'.$lang_common['New posts'].'</a> ]</span>';
            }
            else
                $subject_new_posts = null;
    
            // Should we display the dot or not? :)
            if (!$pun_user['is_guest'] && $pun_config['o_show_dot'] == '1')
            {
                if ($cur_topic['has_posted'] == $pun_user['id'])
                    $subject = '<strong>·</strong> '.$subject;
                else
                    $subject = '  '.$subject;
            }
                    // MOD AUTHOR COLUMN 2 following lines added
        else
            $subject = '  '.$subject;
        } else {
        if ($cur_topic['moved_to'] != 0)
            // <!-- MOD AUTHOR COLUMN 1 line folowing modified -->
            $subject = $lang_forum['Moved'].': <a href="viewtopic.php?id='.$cur_topic['moved_to'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a>';
        else if ($cur_topic['closed'] == '0')
            // <!-- MOD AUTHOR COLUMN 1 line folowing modified -->
            $subject = '<a href="viewtopic.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a>';
        else
        {
            // <!-- MOD AUTHOR COLUMN 1 line folowing modified -->
            $subject = '<a href="viewtopic.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a>';
                $icon_text = $lang_common['Closed icon'];
                $item_status = 'iclosed';

            }
    
            if (!$pun_user['is_guest'] && $cur_topic['last_post'] > $pun_user['last_visit'] && $cur_topic['moved_to'] == null)
            {
                $icon_text .= ' '.$lang_common['New icon'];
                $item_status .= ' inew';
                $icon_type = 'icon inew';

    
                $subject = '<strong>'.$subject.'</strong>';
                $subject_new_posts = '<span class="newtext">[ <a href="viewtopic.php?id='.$cur_topic['id'].'&action=new" title="'.$lang_common['New posts info'].'">'.$lang_common['New posts'].'</a> ]</span>';
            }
            else
                $subject_new_posts = null;
    
            // Should we display the dot or not? :)
            if (!$pun_user['is_guest'] && $pun_config['o_show_dot'] == '1')
            {
                if ($cur_topic['has_posted'] == $pun_user['id'])
                    $subject = '<strong>·</strong> '.$subject;
                else
                    $subject = '  '.$subject;
            }
        }

        if ($cur_topic['sticky'] == '1')
        {
            $subject = '<span class="stickytext">'.$lang_forum['Sticky'].': </span>'.$subject;
            $item_status .= ' isticky';
            $icon_text .= ' '.$lang_forum['Sticky'];
        }

        $num_pages_topic = ceil(($cur_topic['num_replies'] + 1) / $pun_user['disp_posts']);

if ($num_pages_topic > 1)
        {
            if ($cur_topic['question'] != '') 
                $subject_multipage = '[ '.paginate($num_pages_topic, -1, 'viewpoll.php?id='.$cur_topic['id']).' ]';
            else
                $subject_multipage = '[ '.paginate($num_pages_topic, -1, 'viewtopic.php?id='.$cur_topic['id']).' ]';
        }
        else
            $subject_multipage = null;

        // Should we show the "New posts" and/or the multipage links?
        if (!empty($subject_new_posts) || !empty($subject_multipage))
        {
            $subject .= '  '.(!empty($subject_new_posts) ? $subject_new_posts : '');
            $subject .= !empty($subject_multipage) ? ' '.$subject_multipage : '';
        }
        //=========================
        //=====RATE TOPIC CODE=====
        //=========================
        //Eric Subach (kha0s@comcast.net)
        //=========================

        if ($rate_topic)
        {
            //If any ratings, calculate the overall rating.
            if ($cur_topic['num_ratings'] > 0)
            {
                $rating = $cur_topic['rate'] / $cur_topic['num_ratings'];
                $rating = round ($rating, 2);

                $subject .= ' ';

                //If the user is not a guest, make the rating clickable to view who voted.
                if (!$pun_user['is_guest'])
                    $subject .= '<a href="rate.php?v_id=' . $cur_topic['id'] . '">';

                //Rating is rounded to the closest star or half-star.
                //If stars are enabled, find what image file to load.
                if ($rate_stars)
                {
                    if ($rating >= 0.0 && $rating < 0.25)
                        $file_name = 'Star_0';
                    else if ($rating >= 0.25 && $rating < 0.75)
                        $file_name = 'Star_0_Half';
                    else if ($rating >= 0.75 && $rating < 1.25)
                        $file_name = 'Star_1';
                    else if ($rating >= 1.25 && $rating < 1.75)
                        $file_name = 'Star_1_Half';
                    else if ($rating >= 1.75 && $rating < 2.25)
                        $file_name = 'Star_2';
                    else if ($rating >= 2.25 && $rating < 2.75)
                        $file_name = 'Star_2_Half';
                    else if ($rating >= 2.75 && $rating < 3.25)
                        $file_name = 'Star_3';
                    else if ($rating >= 3.25 && $rating < 3.75)
                        $file_name = 'Star_3_Half';
                    else if ($rating >= 3.75 && $rating < 4.25)
                        $file_name = 'Star_4';
                    else if ($rating >= 4.25 && $rating < 4.75)
                        $file_name = 'Star_4_Half';
                    else
                        $file_name = 'Star_5';

                    $subject .= '<img src="' . PUN_ROOT . 'img/rate_stars/' . $pun_config['o_rt_cur_stars'] . '/' . $file_name . '.gif" />';
                }
                //Otherwise, use numbers.
                else
                {
                    $decimal = ($rating - floor ($rating)) * 100;
                    $rating = floor ($rating);

                    if ($decimal >= 25 && $decimal < 75)
                        $rating += 0.5;
                    if ($decimal >= 75)
                        $rating += 1;

                    $subject .= '<strong><small>' . $rating . ' / 5</small></strong>';
                }

                //If the link was made clickable, end the tag.
                if (!$pun_user['is_guest'])
                    $subject .= '</a>';
            }
        }

        //==================
        //=====END CODE=====
        //==================
?>
                <tr<?php if ($item_status != '') echo ' class="'.trim($item_status).'"'; ?>>
                    <td class="tcl">
                        <div class="intd">
                            <div class="<?php echo $icon_type ?>"><div class="nosize"><?php echo trim($icon_text) ?></div></div>
                            <div class="tclcon">
                                <?php echo $subject."\n" ?>
                            </div>
                        </div>
                    </td>
                    <!-- MOD AUTHOR COLUMN 1 line folowing added -->
                    <td class="tc2"  style="WIDTH: 12%"><?php echo ($cur_topic['moved_to'] == null) ? $author : ' ' ?></td>
                    <td class="tc2"><?php echo ($cur_topic['moved_to'] == null) ? $cur_topic['num_replies'] : ' ' ?></td>
                    <td class="tc3"><?php echo ($cur_topic['moved_to'] == null) ? $cur_topic['num_views'] : ' ' ?></td>
                    <td class="tcr"><?php echo $last_post ?></td>
                </tr>
<?php

    }
}
else
{

?>
                <tr>
                    <td class="tcl" colspan="4"><?php echo $lang_forum['Empty forum'] ?></td>
                </tr>
<?php

}

?>
            </tbody>
            </table>
        </div>
    </div>
</div>

<div class="linksb">
    <div class="inbox">
        <p class="pagelink conl"><?php echo $paging_links ?></p>
<?php

echo $post_link;
if($cur_forum['parent_forum'])
    echo "\t\t".'<ul><li><a href="index.php">'.$lang_common['Index'].'</a> </li><li>» <a href="viewforum.php?id='.$cur_forum['parent_forum_id'].'">'.pun_htmlspecialchars($cur_forum['parent_forum']).'</a> </li><li>» '.pun_htmlspecialchars($cur_forum['forum_name']).'</li></ul>';
else
    echo "\t\t".'<ul><li><a href="index.php">'.$lang_common['Index'].' </a> </li><li>» '.pun_htmlspecialchars($cur_forum['forum_name']).'</li></ul>';

?>
        <div class="clearer"></div>
    </div>
</div>
<?php

$forum_id = $id;
$footer_style = 'viewforum';
require PUN_ROOT.'footer.php';

40

(39 replies, posted in PunBB 1.2 troubleshooting)

viewforum.php:

<?php
/***********************************************************************

  Copyright (C) 2002-2005  Rickard Andersson (rickard@punbb.org)

  This file is part of PunBB.

  PunBB is free software; you can redistribute it and/or modify it
  under the terms of the GNU General Public License as published
  by the Free Software Foundation; either version 2 of the License,
  or (at your option) any later version.

  PunBB is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  MA  02111-1307  USA

************************************************************************/


define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';


if ($pun_user['g_read_board'] == '0')
    message($lang_common['No view']);


$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
if ($id < 1)
    message($lang_common['Bad request']);

// Load the viewforum.php language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/forum.php';// Load poll language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/polls.php';

// Fetch some info about the forum
$result = $db->query('SELECT f.forum_name, f.redirect_url, f.moderators, f.num_topics, f.sort_by, fp.post_topics FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$id) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());
if (!$db->num_rows($result))
    message($lang_common['Bad request']);

$cur_forum = $db->fetch_assoc($result);

// Is this a redirect forum? In that case, redirect!
if ($cur_forum['redirect_url'] != '')
{
    header('Location: '.$cur_forum['redirect_url']);
    exit;
}

// Sort out who the moderators are and if we are currently a moderator (or an admin)
$mods_array = array();
if ($cur_forum['moderators'] != '')
    $mods_array = unserialize($cur_forum['moderators']);

$is_admmod = ($pun_user['g_id'] == PUN_ADMIN || ($pun_user['g_id'] == PUN_MOD && array_key_exists($pun_user['username'], $mods_array))) ? true : false;
//=========================
//=====RATE TOPIC CODE=====
//=========================
//Eric Subach (kha0s@comcast.net)
//=========================

$rate_topic = 0;

//Make sure Rate Topic is installed, enabled, and the user is not a guest.
if (isset ($pun_config['o_rt_cur_version']) && $pun_config['o_rt_enabled'] && !$pun_user['is_guest'])
{
    $rate_topic = 1;

    //Check for a language pack.
    if (file_exists (PUN_ROOT . 'lang/' . $pun_user['language'] . '/rate_topic.php'))
        require PUN_ROOT . 'lang/' . $pun_user['language'] . '/rate_topic.php';
    else if (file_exists (PUN_ROOT . 'lang/' . $pun_config['o_rt_default_lang'] . '/rate_topic.php'))
        require PUN_ROOT . 'lang/' . $pun_config['o_rt_default_lang'] . '/rate_topic.php';
    else
        $rate_topic = 0;
}

//If it's enabled, create the link to rate the topic.
if ($rate_topic)
    $pre_link = '<a href="rate.php?r_id=' . $id . '">' . $lang_rt['Rate topic'] . '</a> / ';

//==================
//=====END CODE=====
//==================

// Can we or can we not post new topics?
if (($cur_forum['post_topics'] == '' && $pun_user['g_post_topics'] == '1') || $cur_forum['post_topics'] == '1' || $is_admmod)
    $post_link = "\t\t".'<p class="postlink conr"><a href="post.php?fid='.$id.'">'.$lang_forum['Post topic'].'</a> <BR /> <a href="poll.php?fid='.$id.'">'.$lang_polls['New poll'].'</a></p>'."\n";
else
    $post_link = '';


// Determine the topic offset (based on $_GET['p'])
$num_pages = ceil($cur_forum['num_topics'] / $pun_user['disp_topics']);

$p = (!isset($_GET['p']) || $_GET['p'] <= 1 || $_GET['p'] > $num_pages) ? 1 : $_GET['p'];
$start_from = $pun_user['disp_topics'] * ($p - 1);

// Generate paging links
$paging_links = $lang_common['Pages'].': '.paginate($num_pages, $p, 'viewforum.php?id='.$id);


$page_title = pun_htmlspecialchars($pun_config['o_board_title'].' / '.$cur_forum['forum_name']);
define('PUN_ALLOW_INDEX', 1);
require PUN_ROOT.'header.php';
//=========================
//=====RATE TOPIC CODE=====
//=========================
//Eric Subach (kha0s@comcast.net)
//=========================

$rate_topic = 0;
$rate_stars = 0;

//Check if Rate Topic is installed and enabled.
if (isset ($pun_config['o_rt_cur_version']) && $pun_config['o_rt_enabled'])
{
    $rate_topic = 1;

    //Check for language pack.
    if (file_exists (PUN_ROOT . 'lang/' . $pun_user['language'] . '/rate_topic.php'))
        require PUN_ROOT . 'lang/' . $pun_user['language'] . '/rate_topic.php';
    else if (file_exists (PUN_ROOT . 'lang/' . $pun_config['o_rt_default_lang'] . '/rate_topic.php'))
        require PUN_ROOT . 'lang/' . $pun_config['o_rt_default_lang'] . '/rate_topic.php';
    else
        $rate_topic = 0;

    //Check if using stars or numbers.
    if ($pun_config['o_rt_use_stars'])
        if (file_exists (PUN_ROOT . 'img/rate_stars/' . $pun_config['o_rt_cur_stars']))
            $rate_stars = 1;
}

//==================
//=====END CODE=====
//==================
?>
<div class="linkst">
    <div class="inbox">
        <p class="pagelink conl"><?php echo $paging_links ?></p>
<?php echo $post_link ?>
        <ul><li><a href="index.php"><?php echo $lang_common['Index'] ?></a> </li><li>» <?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?></li></ul>
        <div class="clearer"></div>
    </div>
</div>

<div id="vf" class="blocktable">
    <h2><span><?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?></span></h2>
    <div class="box">
        <div class="inbox">
            <table cellspacing="0">
            <thead>
                <tr>
                    <th class="tcl" scope="col"><?php echo $lang_common['Topic'] ?></th>
                                        <!-- MOD AUTHOR COLUMN 1 line folowing added -->
                    <th class="tc2" scope="col"  style="WIDTH: 12%"><?php echo $lang_common['Author'] ?></th>
                    <th class="tc2" scope="col"><?php echo $lang_common['Replies'] ?></th>
                    <th class="tc3" scope="col"><?php echo $lang_forum['Views'] ?></th>
                    <th class="tcr" scope="col"><?php echo $lang_common['Last post'] ?></th>
                </tr>
            </thead>
            <tbody>
<?php

// Fetch list of topics to display on this page
// <!-- MOD AUTHOR COLUMN - SWITCH BLOCK -->
switch ($db_type)
{
    case 'mysql':
    case 'mysqli':
        $sql = 'SELECT p.poster_id AS has_posted, t.id, t.subject, t.poster, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to FROM '.$db->prefix.'topics AS t LEFT JOIN '.$db->prefix.'posts AS p ON t.id=p.topic_id WHERE t.forum_id='.$id.' GROUP BY t.id ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC LIMIT '.$start_from.', '.$pun_user['disp_topics'];
        break;

    case 'sqlite':
        $sql = 'SELECT p.poster_id AS has_posted, t.id, t.subject, t.poster, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to FROM '.$db->prefix.'topics AS t LEFT JOIN '.$db->prefix.'posts AS p ON t.id=p.topic_id WHERE t.id IN(SELECT id FROM '.$db->prefix.'topics WHERE forum_id='.$id.' ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC LIMIT '.$start_from.', '.$pun_user['disp_topics'].') GROUP BY t.id ORDER BY t.sticky DESC, t.last_post DESC';
        break;

    default:
        $sql = 'SELECT p.poster_id AS has_posted, t.id, t.subject, t.poster, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to FROM '.$db->prefix.'topics AS t LEFT JOIN '.$db->prefix.'posts AS p ON t.id=p.topic_id WHERE t.forum_id='.$id.' GROUP BY t.id, t.subject, t.poster, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to, p.poster_id ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC LIMIT '.$start_from.', '.$pun_user['disp_topics'];
        break;

}

$result = $db->query($sql) or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());

// If there are topics in this forum.
if ($db->num_rows($result))
{
    while ($cur_topic = $db->fetch_assoc($result))
    {
        $icon_text = $lang_common['Normal icon'];
        $item_status = '';
        $icon_type = 'icon';
                // MOD AUTHOR COLUMN 1 following line added
        $author = '<a href="profile.php?id='.$cur_topic['has_posted'].'">'.pun_htmlspecialchars($cur_topic['poster']).'</a>';

        if ($cur_topic['moved_to'] == null)
            $last_post = '<a href="viewtopic.php?pid='.$cur_topic['last_post_id'].'#p'.$cur_topic['last_post_id'].'">'.format_time($cur_topic['last_post']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['last_poster']).'</span>';
        else
            $last_post = ' ';

        if ($pun_config['o_censoring'] == '1')
            $cur_topic['subject'] = censor_words($cur_topic['subject']);

if ($cur_topic['question'] != '') {
            if ($pun_config['o_censoring'] == '1')
                $cur_topic['question'] = censor_words($cur_topic['question']);
        
        
            if ($cur_topic['moved_to'] != 0)
                $subject = $lang_forum['Moved'].': '.$lang_polls['Poll'].': <a href="viewpoll.php?id='.$cur_topic['moved_to'].'">'.pun_htmlspecialchars($cur_topic['question']).'</a><br /> <span class="byuser"><b>'.pun_htmlspecialchars($cur_topic['subject']).'</b> '.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';
            else if ($cur_topic['closed'] == '0')
                $subject = $lang_polls['Poll'].': <a href="viewpoll.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['question']).'</a><br \> <span class="byuser"><b>'.pun_htmlspecialchars($cur_topic['subject']).'</b> '.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';
            else
            {
                $subject = $lang_polls['Poll'].': <a href="viewpoll.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['question']).'</a><br /> <span class="byuser"><b>'.pun_htmlspecialchars($cur_topic['subject']).'</b> '.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';
                $icon_text = $lang_common['Closed icon'];
                $item_status = 'iclosed';
            }
    
            if (!$pun_user['is_guest'] && $cur_topic['last_post'] > $pun_user['last_visit'] && $cur_topic['moved_to'] == null)
            {
                $icon_text .= ' '.$lang_common['New icon'];
                $item_status .= ' inew';
                $icon_type = 'icon inew';

    
                $subject = '<strong>'.$subject.'</strong>';
                $subject_new_posts = '<span class="newtext">[ <a href="viewpoll.php?id='.$cur_topic['id'].'&action=new" title="'.$lang_common['New posts info'].'">'.$lang_common['New posts'].'</a> ]</span>';
            }
            else
                $subject_new_posts = null;
    
            // Should we display the dot or not? :)
            if (!$pun_user['is_guest'] && $pun_config['o_show_dot'] == '1')
            {
                if ($cur_topic['has_posted'] == $pun_user['id'])
                    $subject = '<strong>·</strong> '.$subject;
                else
                    $subject = '  '.$subject;
            }
                    // MOD AUTHOR COLUMN 2 following lines added
        else
            $subject = '  '.$subject;
        } else {
        if ($cur_topic['moved_to'] != 0)
            // <!-- MOD AUTHOR COLUMN 1 line folowing modified -->
            $subject = $lang_forum['Moved'].': <a href="viewtopic.php?id='.$cur_topic['moved_to'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a>';
        else if ($cur_topic['closed'] == '0')
            // <!-- MOD AUTHOR COLUMN 1 line folowing modified -->
            $subject = '<a href="viewtopic.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a>';
        else
        {
            // <!-- MOD AUTHOR COLUMN 1 line folowing modified -->
            $subject = '<a href="viewtopic.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a>';
                $icon_text = $lang_common['Closed icon'];
                $item_status = 'iclosed';

            }
    
            if (!$pun_user['is_guest'] && $cur_topic['last_post'] > $pun_user['last_visit'] && $cur_topic['moved_to'] == null)
            {
                $icon_text .= ' '.$lang_common['New icon'];
                $item_status .= ' inew';
                $icon_type = 'icon inew';

    
                $subject = '<strong>'.$subject.'</strong>';
                $subject_new_posts = '<span class="newtext">[ <a href="viewtopic.php?id='.$cur_topic['id'].'&action=new" title="'.$lang_common['New posts info'].'">'.$lang_common['New posts'].'</a> ]</span>';
            }
            else
                $subject_new_posts = null;
    
            // Should we display the dot or not? :)
            if (!$pun_user['is_guest'] && $pun_config['o_show_dot'] == '1')
            {
                if ($cur_topic['has_posted'] == $pun_user['id'])
                    $subject = '<strong>·</strong> '.$subject;
                else
                    $subject = '  '.$subject;
            }
        }

        if ($cur_topic['sticky'] == '1')
        {
            $subject = '<span class="stickytext">'.$lang_forum['Sticky'].': </span>'.$subject;
            $item_status .= ' isticky';
            $icon_text .= ' '.$lang_forum['Sticky'];
        }

        $num_pages_topic = ceil(($cur_topic['num_replies'] + 1) / $pun_user['disp_posts']);

if ($num_pages_topic > 1)
        {
            if ($cur_topic['question'] != '') 
                $subject_multipage = '[ '.paginate($num_pages_topic, -1, 'viewpoll.php?id='.$cur_topic['id']).' ]';
            else
                $subject_multipage = '[ '.paginate($num_pages_topic, -1, 'viewtopic.php?id='.$cur_topic['id']).' ]';
        }
        else
            $subject_multipage = null;

        // Should we show the "New posts" and/or the multipage links?
        if (!empty($subject_new_posts) || !empty($subject_multipage))
        {
            $subject .= '  '.(!empty($subject_new_posts) ? $subject_new_posts : '');
            $subject .= !empty($subject_multipage) ? ' '.$subject_multipage : '';
        }
        //=========================
        //=====RATE TOPIC CODE=====
        //=========================
        //Eric Subach (kha0s@comcast.net)
        //=========================

        if ($rate_topic)
        {
            //Select the rating and user_id for all ratings of the current topic.
            $sql = $db->query ('SELECT rate, user_id FROM ' . $db->prefix . 'Ratings WHERE topic_id = ' . $cur_topic['id']) or error ($lang_rt['Error select user_id and rate'], __FILE__, __LINE__, $db->error ());

            $num_rows = $db->num_rows ($sql);

            if ($num_rows > 0)
            {
                $total_rating = 0;

                //Parse data of ratings and user_ids for all ratings of current topic.
                while ($sql_data = $db->fetch_assoc ($sql))
                {
                    //Should we add the rating to total?
                    $flag = 1;

                    //Get username of user of specific rating.
                    $sql2 = $db->query ('SELECT username FROM ' . $db->prefix . 'users WHERE id = ' . $sql_data['user_id']) or error ($lang_rt['Error select username'], __FILE__, __LINE__, $db->error ());
                    $sql2_data = $db->fetch_assoc ($sql2);

                    //Check if user is banned.
                    foreach ($pun_bans as $ban)
                    {
                        if ($sql2_data['username'] == $ban['username'])
                            $flag = 0;
                    }

                    //If user isn't banned, add rating to total.
                    if ($flag)
                        $total_rating += $sql_data['rate'];
                    else
                        $num_rows--;
                }

                //If any ratings, calculate the overall rating.
                if ($num_rows > 0)
                {
                    $rating = $total_rating / $num_rows;
                    $rating = round ($rating, 2);

                    $subject .= ' ';

                    //If the user is not a guest, make the rating clickable to view who voted.
                    if (!$pun_user['is_guest'])
                        $subject .= '<a href="rate.php?v_id=' . $cur_topic['id'] . '">';

                    //Rating is rounded to the closest star or half-star.
                    //If stars are enabled, find what image file to load.
                    if ($rate_stars)
                    {
                        if ($rating >= 0.0 && $rating < 0.25)
                            $file_name = 'Star_0';
                        else if ($rating >= 0.25 && $rating < 0.75)
                            $file_name = 'Star_0_Half';
                        else if ($rating >= 0.75 && $rating < 1.25)
                            $file_name = 'Star_1';
                        else if ($rating >= 1.25 && $rating < 1.75)
                            $file_name = 'Star_1_Half';
                        else if ($rating >= 1.75 && $rating < 2.25)
                            $file_name = 'Star_2';
                        else if ($rating >= 2.25 && $rating < 2.75)
                            $file_name = 'Star_2_Half';
                        else if ($rating >= 2.75 && $rating < 3.25)
                            $file_name = 'Star_3';
                        else if ($rating >= 3.25 && $rating < 3.75)
                            $file_name = 'Star_3_Half';
                        else if ($rating >= 3.75 && $rating < 4.25)
                            $file_name = 'Star_4';
                        else if ($rating >= 4.25 && $rating < 4.75)
                            $file_name = 'Star_4_Half';
                        else
                            $file_name = 'Star_5';

                        $subject .= '<img src="' . PUN_ROOT . 'img/rate_stars/' . $pun_config['o_rt_cur_stars'] . '/' . $file_name . '.gif" />';
                    }
                    //Otherwise, use numbers.
                    else
                    {
                        $decimal = ($rating - floor ($rating)) * 100;
                        $rating = floor ($rating);

                        if ($decimal >= 25 && $decimal < 75)
                            $rating += 0.5;
                        if ($decimal >= 75)
                            $rating += 1;

                        $subject .= '<strong><small>' . $rating . ' / 5</small></strong>';
                    }

                    //If the link was made clickable, end the tag.
                    if (!$pun_user['is_guest'])
                        $subject .= '</a>';
                }
            }
        }

        //==================
        //=====END CODE=====
        //==================
?>
                <tr<?php if ($item_status != '') echo ' class="'.trim($item_status).'"'; ?>>
                    <td class="tcl">
                        <div class="intd">
                            <div class="<?php echo $icon_type ?>"><div class="nosize"><?php echo trim($icon_text) ?></div></div>
                            <div class="tclcon">
                                <?php echo $subject."\n" ?>
                            </div>
                        </div>
                    </td>
                    <!-- MOD AUTHOR COLUMN 1 line folowing added -->
                    <td class="tc2"  style="WIDTH: 12%"><?php echo ($cur_topic['moved_to'] == null) ? $author : ' ' ?></td>
                    <td class="tc2"><?php echo ($cur_topic['moved_to'] == null) ? $cur_topic['num_replies'] : ' ' ?></td>
                    <td class="tc3"><?php echo ($cur_topic['moved_to'] == null) ? $cur_topic['num_views'] : ' ' ?></td>
                    <td class="tcr"><?php echo $last_post ?></td>
                </tr>
<?php

    }
}
else
{

?>
                <tr>
                    <td class="tcl" colspan="4"><?php echo $lang_forum['Empty forum'] ?></td>
                </tr>
<?php

}

?>
            </tbody>
            </table>
        </div>
    </div>
</div>

<div class="linksb">
    <div class="inbox">
        <p class="pagelink conl"><?php echo $paging_links ?></p>
<?php echo $post_link ?>
        <ul><li><a href="index.php"><?php echo $lang_common['Index'] ?></a> </li><li>» <?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?></li></ul>
        <div class="clearer"></div>
    </div>
</div>
<?php

$forum_id = $id;
$footer_style = 'viewforum';
require PUN_ROOT.'footer.php';

41

(39 replies, posted in PunBB 1.2 troubleshooting)

Viewforum queries:

Time (s)      Query
0.00150     SELECT u.*, g.*, o.logged FROM pspdowngradesusers AS u INNER JOIN pspdowngradesgroups AS g ON u.group_id=g.g_id LEFT JOIN pspdowngradesonline AS o ON o.ident='82.5.41.16' WHERE u.id=1
0.00059     UPDATE pspdowngradesonline SET logged=1177247398 WHERE ident='82.5.41.16'
0.00038     SELECT * FROM pspdowngradesonline WHERE logged<1177247098
0.00039     UPDATE pspdowngradesusers SET last_visit=1177246690 WHERE id=330
0.00031     DELETE FROM pspdowngradesonline WHERE user_id=330
0.00088     SELECT f.forum_name, f.redirect_url, f.moderators, f.num_topics, f.sort_by, fp.post_topics FROM pspdowngradesforums AS f LEFT JOIN pspdowngradesforum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.id=14
0.02105     SELECT p.poster_id AS has_posted, t.id, t.subject, t.poster, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to FROM pspdowngradestopics AS t LEFT JOIN pspdowngradesposts AS p ON t.id=p.topic_id WHERE t.forum_id=14 GROUP BY t.id ORDER BY sticky DESC, last_post DESC LIMIT 0, 30
0.00029     SELECT search_for, replace_with FROM pspdowngradescensoring
0.00062     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 2566
0.00041     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 1475
0.00030     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 838
0.00029     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 48
0.00028     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 49
0.00042     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 102
0.00027     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 426
0.00028     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 51
0.00027     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3290
0.00048     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3309
0.00127     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3301
0.00052     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3308
0.00051     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3284
0.00027     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3299
0.00033     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3289
0.00032     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3261
0.00028     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3282
0.00030     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3176
0.00036     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3254
0.00029     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3222
0.00050     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3214
0.00028     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3206
0.00042     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3196
0.00035     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3183
0.00043     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3128
0.00069     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3159
0.00067     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3158
0.00027     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3137
0.00060     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3131
0.00047     SELECT rate, user_id FROM pspdowngradesRatings WHERE topic_id = 3127
Total query time: 0.03814 s

42

(4 replies, posted in Feature requests)

Thanks but I just found it before wink

Thanks anyway smile

43

(4 replies, posted in Feature requests)

Mark wrote:

there is a mod for this somewere smile

Really?

Can someone please link it to me?

Thanks!

Hey,

How can I make it so that a user has to have like 10 posts before being able to make new topics/post in certain sections? I want them to be able to seel the forum, just not post in it smile

45

(4 replies, posted in Feature requests)

Well I think this will make the "viewforum" much neater if we had a new coloumn with the authors name of the thread in.

So instead of having "by username" we'd have a new column which has the authors name in.

How can I get adverts to show up on my forum?

I've put the adcode and saved it as adverts1.php into include/user

I then got main.tpl and added the line:

<pun_include/user/advert1.php>

But they don't show up hmm

Any ideas?

47

(39 replies, posted in PunBB 1.2 troubleshooting)

Here's my index.php:

<?php
/***********************************************************************

  Copyright (C) 2002-2005  Rickard Andersson (rickard@punbb.org)

  This file is part of PunBB.

  PunBB is free software; you can redistribute it and/or modify it
  under the terms of the GNU General Public License as published
  by the Free Software Foundation; either version 2 of the License,
  or (at your option) any later version.

  PunBB is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  MA  02111-1307  USA

************************************************************************/


define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';


if ($pun_user['g_read_board'] == '0')
    message($lang_common['No view']);


// Load the index.php language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/index.php';

$page_title = pun_htmlspecialchars($pun_config['o_board_title']);
define('PUN_ALLOW_INDEX', 1);
require PUN_ROOT.'header.php';

// Print the categories and forums
$result = $db->query('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name, f.forum_desc, f.redirect_url, f.moderators, f.num_topics, f.num_posts, f.last_post, f.last_post_id, f.last_poster FROM '.$db->prefix.'categories AS c INNER JOIN '.$db->prefix.'forums AS f ON c.id=f.cat_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE fp.read_forum IS NULL OR fp.read_forum=1 ORDER BY c.disp_position, c.id, f.disp_position', true) or error('Unable to fetch category/forum list', __FILE__, __LINE__, $db->error());

$cur_category = 0;
$cat_count = 0;
while ($cur_forum = $db->fetch_assoc($result))
{
    $moderators = '';

    if ($cur_forum['cid'] != $cur_category)    // A new category since last iteration?
    {
        if ($cur_category != 0)
            echo "\t\t\t".'</tbody>'."\n\t\t\t".'</table>'."\n\t\t".'</div>'."\n\t".'</div>'."\n".'</div>'."\n\n";

        ++$cat_count;

?>
<div id="idx<?php echo $cat_count ?>" class="blocktable">
    <h2><span><?php echo pun_htmlspecialchars($cur_forum['cat_name']) ?></span></h2>
    <div class="box">
        <div class="inbox">
            <table cellspacing="0">
            <thead>
                <tr>
                    <th class="tcl" scope="col"><?php echo $lang_common['Forum'] ?></th>
                    <th class="tc2" scope="col"><?php echo $lang_index['Topics'] ?></th>
                    <th class="tc3" scope="col"><?php echo $lang_common['Posts'] ?></th>
                    <th class="tcr" scope="col"><?php echo $lang_common['Last post'] ?></th>
                </tr>
            </thead>
            <tbody>
<?php

        $cur_category = $cur_forum['cid'];
    }

    $item_status = '';
    $icon_text = $lang_common['Normal icon'];
    $icon_type = 'icon';

    // Are there new posts?
    if (!$pun_user['is_guest'] && $cur_forum['last_post'] > $pun_user['last_visit'])
    {
        $item_status = 'inew';
        $icon_text = $lang_common['New icon'];
        $icon_type = 'icon inew';
    }

    // Is this a redirect forum?
    if ($cur_forum['redirect_url'] != '')
    {
        $forum_field = '<h3><a href="'.pun_htmlspecialchars($cur_forum['redirect_url']).'" title="'.$lang_index['Link to'].' '.pun_htmlspecialchars($cur_forum['redirect_url']).'">'.pun_htmlspecialchars($cur_forum['forum_name']).'</a></h3>';
        $num_topics = $num_posts = ' ';
        $item_status = 'iredirect';
        $icon_text = $lang_common['Redirect icon'];
        $icon_type = 'icon';
    }
    else
    {
        $forum_field = '<h3><a href="viewforum.php?id='.$cur_forum['fid'].'">'.pun_htmlspecialchars($cur_forum['forum_name']).'</a></h3>';
        $num_topics = $cur_forum['num_topics'];
        $num_posts = $cur_forum['num_posts'];
    }

    if ($cur_forum['forum_desc'] != '')
        $forum_field .= "\n\t\t\t\t\t\t\t\t".$cur_forum['forum_desc'];


    // If there is a last_post/last_poster.
    if ($cur_forum['last_post'] != '')
        $last_post = '<a href="viewtopic.php?pid='.$l_pid.'#p'.$l_pid.'">'.format_time($l_post).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($l_pr).'</span>';
    else
        $last_post = ' ';

    if ($cur_forum['moderators'] != '')
    {
        $mods_array = unserialize($cur_forum['moderators']);
        $moderators = array();

        while (list($mod_username, $mod_id) = @each($mods_array))
            $moderators[] = '<a href="profile.php?id='.$mod_id.'">'.pun_htmlspecialchars($mod_username).'</a>';

        $moderators = "\t\t\t\t\t\t\t\t".'<p><em>('.$lang_common['Moderated by'].'</em> '.implode(', ', $moderators).')</p>'."\n";
    }

?>
                 <tr<?php if ($item_status != '') echo ' class="'.$item_status.'"'; ?>>
                    <td class="tcl">
                        <div class="intd">
                            <div class="<?php echo $icon_type ?>"><div class="nosize"><?php echo $icon_text ?></div></div>
                            <div class="tclcon">
                                <?php echo $forum_field."\n" ?>
                            </div>
                        </div>
                    </td>
                    <td class="tc2"><?php echo $num_topics ?></td>
                    <td class="tc3"><?php echo $num_posts ?></td>
                    <td class="tcr"><?php echo $last_post ?></td>
                </tr>
<?php

}

// Did we output any categories and forums?
if ($cur_category > 0)
    echo "\t\t\t".'</tbody>'."\n\t\t\t".'</table>'."\n\t\t".'</div>'."\n\t".'</div>'."\n".'</div>'."\n\n";
else
    echo '<div id="idx0" class="block"><div class="box"><div class="inbox"><p>'.$lang_index['Empty board'].'</p></div></div></div>';


// Collect some statistics from the database
$result = $db->query('SELECT COUNT(id)-1 FROM '.$db->prefix.'users') or error('Unable to fetch total user count', __FILE__, __LINE__, $db->error());
$stats['total_users'] = $db->result($result);

$result = $db->query('SELECT id, username FROM '.$db->prefix.'users ORDER BY registered DESC LIMIT 1') or error('Unable to fetch newest registered user', __FILE__, __LINE__, $db->error());
$stats['last_user'] = $db->fetch_assoc($result);

$result = $db->query('SELECT SUM(num_topics), SUM(num_posts) FROM '.$db->prefix.'forums') or error('Unable to fetch topic/post count', __FILE__, __LINE__, $db->error());
list($stats['total_topics'], $stats['total_posts']) = $db->fetch_row($result);

?>
<div id="brdstats" class="block">
    <h2><span><?php echo $lang_index['Board info'] ?></span></h2>
    <div class="box">
        <div class="inbox">
            <dl class="conr">
                <dt><strong><?php echo $lang_index['Board stats'] ?></strong></dt>
                <dd class="stats"><a class="stats" href="stats.php">Post/Topic/User History Status</a></dd>
                <dd><?php echo $lang_index['No of users'].': <strong>'. $stats['total_users'] ?></strong></dd>
                <dd><?php echo $lang_index['No of topics'].': <strong>'.$stats['total_topics'] ?></strong></dd>
                <dd><?php echo $lang_index['No of posts'].': <strong>'.$stats['total_posts'] ?></strong></dd>
                                <?php
                // Begin: Activity Barometer mod
                $result = $db->query("SELECT COUNT(*) FROM ".$db->prefix."posts WHERE posted > ".(time()-7*24*3600)) or error('Unable to fetch online list', __FILE__, __LINE__, $db->error());
                $posts_week = $db->result($result);
                $result = $db->query("SELECT COUNT(*) FROM ".$db->prefix."posts WHERE posted > ".(time()-24*3600)) or error('Unable to fetch online list', __FILE__, __LINE__, $db->error());
                $posts_day = $db->result($result);
                $posts_h = $posts_day/24;
                ?>
                <dd>
                <?php
                if ($posts_h<1)
                       if ($posts_day<1)
                        if ($posts_week<1)
                            echo $lang_index['dormant'];
                        else
                                      echo $lang_index['number week'].': <strong>'.$posts_week;
                       else
                              echo  $lang_index['number day'].': <strong>'.$posts_day;
                else
                       echo $lang_index['average h'].': <strong>'.number_format($posts_h,1);
                ?>
                </strong></dd>
                <?php // End: Activity Barometer mod ?>
            </dl>
            <dl class="conl">
                <dt><strong><?php echo $lang_index['User info'] ?></strong></dt>
                <dd><?php echo $lang_index['Newest user'] ?>: <a href="profile.php?id=<?php echo $stats['last_user']['id'] ?>"><?php echo pun_htmlspecialchars($stats['last_user']['username']) ?></a></dd>
<?php

if ($pun_config['o_users_online'] == '1')
{
    // Fetch users online info and generate strings for output
    $num_guests = 0;
    $users = array();
    $result = $db->query('SELECT user_id, ident FROM '.$db->prefix.'online WHERE idle=0 ORDER BY ident', true) or error('Unable to fetch online list', __FILE__, __LINE__, $db->error());

    while ($pun_user_online = $db->fetch_assoc($result))
    {
        if ($pun_user_online['user_id'] > 1)
            $users[] = "\n\t\t\t\t".'<dd><a href="profile.php?id='.$pun_user_online['user_id'].'">'.pun_htmlspecialchars($pun_user_online['ident']).'</a>';
        else
            ++$num_guests;
    }

    $num_users = count($users);    if($num_users > $pun_config['o_max_users_online'])
    {
        $db->query("UPDATE ".$db->prefix."config SET conf_value = '".$num_users."' WHERE conf_name = 'o_max_users_online'");
        echo $lang_index['Max users online'].": <strong>".$num_users."</strong>\n";
        unlink(PUN_ROOT.'cache/cache_config.php');
    }
    else
        echo $lang_index['Max users online'].": <strong>".$pun_config['o_max_users_online']."</strong>\n";
    
    /* To disable guest counting, remove the last 2 characters of this line */
    if($num_guests > $pun_config['o_max_guests_online'])
    {
        $db->query("UPDATE ".$db->prefix."config SET conf_value = '".$num_users."' WHERE conf_name = 'o_max_guests_online'");
        echo "<br />".$lang_index['Max guests online'].": <strong>".$num_guests."</strong>\n";
        unlink(PUN_ROOT.'cache/cache_config.php');
    }
    else
        echo $lang_index['Max guests online'].": <strong>".$pun_config['o_max_guests_online']."</strong>\n";
    // */
        // users on line today 
    $date = getdate(time());
    $todaystamp = mktime(0,0,0, $date['mon'], $date['mday'], $date['year']);

$result = $db->query("SELECT username, id, last_visit from ".$db->prefix."users WHERE last_visit >= '".$todaystamp."' ORDER by last_visit DESC") or error("Unable to find the list of the users online today", __FILE__, __LINE__, $db->error());

    $users_today = array();
    while ($pun_user_online_today = $db->fetch_assoc($result))
        $users_today[] .=  "\n\t\t\t\t".'<dd><a href="profile.php?id='.$pun_user_online_today['id'].'" title="Last visit of '.$pun_user_online_today['username'].' : '.format_time($pun_user_online_today['last_visit']).'">'.$pun_user_online_today['username'].'</a>';
        
    $num_users_today = count($users_today);
    echo "\t\t\t\t".'<dd>'. $lang_index['Users online'].': <strong>'.$num_users.'</strong></dd>'."\n\t\t\t\t".'<dd>'.$lang_index['Users today'].': <strong>'.$num_users_today.'</strong></dd>'."\n\t\t\t\t".'<dd>'.$lang_index['Guests online'].': <strong>'.$num_guests.'</strong></dd>'."\n\t\t\t".'</dl>'."\n";


    if ($num_users > 0)
        echo "\t\t\t".'<dl id="onlinelist" class= "clearb">'."\n\t\t\t\t".'<dt><strong>'.$lang_index['Online'].': </strong></dt>'."\t\t\t\t".implode(',</dd> ', $users).'</dd>'."\n\t\t\t".'</dl>'."\n";
    else
        echo "\t\t\t".'<div class="clearer"></div>'."\n";// list users on line today
    echo "\t\t\t".'<dl id="onlinetodaylist">'."\n\t\t\t\t".'<dt><strong>'.$lang_index['Online today'].': </strong></dt>';
                
    if ($num_users_today > 0) 
        echo implode(',</dd> ', $users_today).'</dd>'."\n\t\t\t".'</dl>'."\n";
    else
        echo '<dd><em></em></dd>'."\n\t\t\t".'</dl>'."\n";

}
else
    echo "\t\t".'</dl>'."\n\t\t\t".'<div class="clearer"></div>'."\n";


?>
        </div>
    </div>
</div>
<?php

$footer_style = 'index';
require PUN_ROOT.'footer.php';

48

(39 replies, posted in PunBB 1.2 troubleshooting)

OK GUYS I DID IT, WHOOO!

But one thing... neutral

Look at the index of my forum: www.game-warp.com/forums/index.php

It's not showing the last poster in that forum hmm

Please can someone help.

Thank you.

49

(39 replies, posted in PunBB 1.2 troubleshooting)

Bah, I'll not bother with subforums...

I only have one forum subforumed anyway lol

So... Do I need to manually remove the lines of text from the files and/or remove the install from phpmyadmin?

50

(4 replies, posted in General discussion)

Yup.