501

(26 replies, posted in Feature requests)

Yes, it's indeed I would like to have ... Kh0d believes the 1.2 will be 100% tableless ... I hope he can help me ...

His vision of forum is elegant : and even if punBB is the quickest forum all around the world, tableless is a must smile

502

(26 replies, posted in Feature requests)

OK, One (another) point for you ... smile

Continue to the madness !!! smile We could create too a blog ! smile PunBB would be so a complete interactive web interface smile

504

(26 replies, posted in Feature requests)

See the great stuff realized
http://www.tbrown.org/ideas/tabularlist/

Code is properly, dedrages well ... no ?

505

(26 replies, posted in Feature requests)

I agree with you on all the points, Paul ...

But table with "DT" can be remplaced.

The problem of the table is if you want its layout, you have to write code : with all solutions, all is easy ...

I'm ok on the princip' of tabular data : but ... why "think" a forum like that ?

The biggest erreur of a lot of people who think xHTML, is to think div can replace table : we are ok on that. But with imagination, is it not possible to review the navigation ?

xhtml is not only the possibility to copy tables : but with layout, to create new navigation system

http://www.csszengarden.com is for me the best example of my vision of xhtml.

I have not modified any file ...

Only viewtopic.php : and it's by "good luck" : indeed 99% of the posts are OK, but since I have modified, I have this bug ...

507

(26 replies, posted in Feature requests)

Connorhd wrote:

have a look, http://66.98.138.31/~connorhd/pundev/vi … ?pid=38#38

well like you said in the future it should be that but i think for now most people will be happy with xtml 1.0


Waouh ... great job smile

http://66.98.138.31/~connorhd/pundev/profile.php?id=4

OK ...

why don't you use this techic for the rest where tables are used ?

With display : inline ... all is possible !

508

(26 replies, posted in Feature requests)

I have downladed and failed in installation pun 1.2 ... no matter ...

there are yet too many tables ...

I'll post modifications if you want about some portions ...

However, where it's incredible, the code is Better and cleaner than 1.1.5 ! Great !

http://www.sortons.net/forum/viewtopic. … 0802#40802

As you can see ... crash sad

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

  Copyright (C) 2002, 2003, 2004  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

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


$pun_root = './';
require $pun_root.'include/common.php';


if ($cookie['is_guest'] && $pun_config['p_guests_read'] == '0')
    message($lang_common['Login required']);


if (!$cookie['is_guest'])
    $disp_posts = $cur_user['disp_posts'];
else
    $disp_posts = $pun_config['o_disp_posts_default'];


$id = intval($_GET['id']);
$pid = intval($_GET['pid']);
if ((empty($id) || $id < 0) && (empty($pid) || $pid < 0))
    message($lang_common['Bad request']);

// Load the viewtopic.php language file
require $pun_root.'lang/'.$language.'/'.$language.'_topic.php';


// If a post ID is specified we determine topic ID and page number so we can redirect to the correct message
if (isset($_GET['pid']))
{
    $result = $db->query('SELECT topic_id FROM '.$db->prefix.'posts WHERE id='.$pid) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
    if (!$db->num_rows($result))
        message($lang_common['Bad request']);

    $id = $db->result($result, 0);

    // Determine on what page the post is located (depending on $disp_posts)
    $result = $db->query('SELECT id FROM '.$db->prefix.'posts WHERE topic_id='.$id.' ORDER BY posted') or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
    $num_posts = $db->num_rows($result);

    for ($i = 0; $i < $num_posts; ++$i)
    {
        $cur_id = $db->result($result, $i);
        if ($cur_id == $pid)
            break;
    }
    ++$i;    // we started at 0

    $_GET['p'] = ceil($i / $disp_posts);
}


// If action=new, we redirect to the first new post (if any)
else if (isset($_GET['action']) && $_GET['action'] == 'new' && !$cookie['is_guest'])
{
    $result = $db->query('SELECT MIN(id) FROM '.$db->prefix.'posts WHERE topic_id='.$id.' AND posted>'.$cur_user['last_visit']) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
    $first_new_post_id = $db->result($result, 0);

    if ($first_new_post_id)
        header('Location: viewtopic.php?pid='.$first_new_post_id.'#'.$first_new_post_id);
    else    // If there is no new post, we go to the last post
        header('Location: viewtopic.php?id='.$id.'&action=last');

    exit;
}


// If action=last, we redirect to the last post
else if (isset($_GET['action']) && $_GET['action'] == 'last')
{
    $result = $db->query('SELECT MAX(id) FROM '.$db->prefix.'posts WHERE topic_id='.$id) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
    $last_post_id = $db->result($result, 0);

    if ($last_post_id)
    {
        header('Location: viewtopic.php?pid='.$last_post_id.'#'.$last_post_id);
        exit;
    }
}


if (!$cookie['is_guest'])
    $result = $db->query('SELECT t.subject, t.closed, t.sticky, t.num_replies, f.id, f.forum_name, f.moderators, f.closed AS forum_closed, f.admmod_only, s.user_id AS is_subscribed FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON t.forum_id=f.id LEFT JOIN '.$db->prefix.'subscriptions AS s ON (s.topic_id=t.id AND s.user_id='.$cur_user['id'].') WHERE t.id='.$id.' AND t.moved_to IS NULL') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());
else
    $result = $db->query('SELECT t.subject, t.closed, t.sticky, t.num_replies, f.id, f.forum_name, f.moderators, f.closed AS forum_closed, f.admmod_only, 0 FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON t.forum_id=f.id WHERE t.id='.$id.' AND t.moved_to IS NULL') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());

if (!$db->num_rows($result))
    message($lang_common['Bad request']);

list($subject, $closed, $sticky, $num_replies, $forum_id, $forum_name, $moderators, $forum_closed, $admmod_only, $is_subscribed) = $db->fetch_row($result);

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

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

    $mods_string = implode(', ', $temp_array);
}


if ($cur_user['status'] == PUN_ADMIN || ($cur_user['status'] == PUN_MOD && array_key_exists($cur_user['username'], $mods_array)))
    $is_admmod = true;
else
    $is_admmod = false;

if ($admmod_only == '1' && $cur_user['status'] < PUN_MOD)
    message($lang_common['Bad request']);

if ($closed == '0' && $forum_closed == '0')
{
    if (($pun_config['p_guests_post'] == '0' && $cookie['is_guest']) || ($pun_config['p_users_post'] == '0' && $cur_user['status'] < PUN_MOD))
        $post_link = ' ';
    else
        $post_link = '<a href="post.php?tid='.$id.'">'.$lang_topic['Post reply'].'</a>';
}
else
{
    $post_link = $lang_topic['Topic closed'];

    if ($is_admmod)
        $post_link .= ' / <a href="post.php?tid='.$id.'">'.$lang_topic['Post reply'].'</a>';
}


// Determine the post offset (based on $_GET['p'])
$num_pages = ceil(($num_replies + 1) / $disp_posts);

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

$pages = paginate($num_pages, $p, 'viewtopic.php?id='.$id);


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


$page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$subject;


if ($pun_config['o_quickpost'] == '1' &&
    ((!$cookie['is_guest'] &&
    $pun_config['p_users_post'] == '1' &&
    $closed == '0' &&
    $forum_closed == '0') ||
    $is_admmod))
{
    $validate_form = true;
    $element_names = array('req_message' => $lang_common['Message']);
}
require $pun_root.'header.php';

?>
<table class="punspacer" cellspacing="1" cellpadding="4">
    <tr>
        <td style="width: 53%"><b><a href="index.php"><?php echo pun_htmlspecialchars($pun_config['o_board_title']) ?></a> / <a href="viewforum.php?id=<?php echo $forum_id ?>"><?php echo pun_htmlspecialchars($forum_name) ?></a> / <?php echo pun_htmlspecialchars($subject) ?></b></td>
        <td class="punright" style="width: 28%"><?php echo (!empty($mods_array)) ? $lang_topic['Moderated by'].' '.$mods_string : ' ' ?></td>
        <td class="punright" style="width: 19%; white-space: nowrap"><b><?php echo $post_link ?></b></td>
    </tr>
</table>

<table class="punmain" cellspacing="1" cellpadding="4">
    <tr class="punhead">
        <td class="punhead" style="width: 185px; white-space: nowrap"><?php echo $lang_common['Author'] ?></td>
        <td style="white-space: nowrap">
            <table class="punplain" cellspacing="0" cellpadding="0">
                <tr>
                    <td class="punhead" style="width: 20%"><?php echo $lang_common['Message'] ?></td>
                    <td><?php echo $lang_common['Pages'].': '.$pages ?></td>
                </tr>
            </table>
        </td>
    </tr>
</table>

<?php


// Build an array of user_id's online
$result = $db->query('SELECT user_id FROM '.$db->prefix.'online WHERE user_id>0') or error('Unable to fetch online list', __FILE__, __LINE__, $db->error());
$num_online = $db->num_rows($result);

for ($i = 0; $i < $num_online; ++$i)
    $online_list[] = $db->result($result, $i);


require $pun_root.'include/parser.php';

// Used for switching background color in posts
$bg_switch = true;


// Retrieve the posts (and their respective poster)
$result = $db->query('SELECT u.email, u.title, u.url, u.location, u.realname, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.status, u.registered, u.admin_note, p.id, p.poster, p.poster_id, p.poster_ip, p.poster_email, p.message, p.smilies, p.posted, p.edited, p.edited_by FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'users AS u ON u.id=p.poster_id WHERE p.topic_id='.$id.' ORDER BY p.id LIMIT '.$start_from.','.$disp_posts) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());

while ($cur_post = $db->fetch_assoc($result))
{
    // If the poster is a registered user.
    if ($cur_post['poster_id'] > 1)
    {
        $registered = date($pun_config['o_date_format'], $cur_post['registered']);

        if (isset($online_list) && in_array($cur_post['poster_id'], $online_list))
            $info = '<span class="punheadline"><a href="profile.php?id='.$cur_post['poster_id'].'"><u>'.pun_htmlspecialchars($cur_post['poster']).'</u></a></span>';
        else
            $info = '<span class="punheadline">'.pun_htmlspecialchars($cur_post['poster']).'</span>';

        // get_title() requires that an element 'username' be present in the array
        $cur_post['username'] = $cur_post['poster'];
        $user_title = get_title($cur_post);

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

        $info .= '<br>'."\n\t\t\t\t\t\t\t".$user_title.'<br>';

        if ($pun_config['o_avatars'] == '1' && $cur_post['use_avatar'] == '1' && $cur_user['show_avatars'] != '0')
        {
            if ($img_size = @getimagesize($pun_config['o_avatars_dir'].'/'.$cur_post['poster_id'].'.gif'))
                $info .= "\n\t\t\t\t\t\t\t".'<img class="punavatar" src="'.$pun_config['o_avatars_dir'].'/'.$cur_post['poster_id'].'.gif" '.$img_size[3].' alt=""><br>';
            else if ($img_size = @getimagesize($pun_config['o_avatars_dir'].'/'.$cur_post['poster_id'].'.jpg'))
                $info .= "\n\t\t\t\t\t\t\t".'<img class="punavatar" src="'.$pun_config['o_avatars_dir'].'/'.$cur_post['poster_id'].'.jpg" '.$img_size[3].' alt=""><br>';
            else if ($img_size = @getimagesize($pun_config['o_avatars_dir'].'/'.$cur_post['poster_id'].'.png'))
                $info .= "\n\t\t\t\t\t\t\t".'<img class="punavatar" src="'.$pun_config['o_avatars_dir'].'/'.$cur_post['poster_id'].'.png" '.$img_size[3].' alt=""><br>';
            else
                $info .= '<br>'."\n\t\t\t\t\t\t\t";
        }
        else
            $info .= '<br>'."\n\t\t\t\t\t\t\t";

        if ($cur_post['location'] != '')
        {
            if ($pun_config['o_censoring'] == '1')
                $cur_post['location'] = censor_words($cur_post['location']);

            $info .= $lang_topic['From'].': '.pun_htmlspecialchars($cur_post['location']).'<br>'."\n\t\t\t\t\t\t\t";
        }

        $info .= $lang_common['Registered'].': '.$registered.'<br>';

        if ($cur_user['status'] > PUN_USER)
        {
            $info .= "\n\t\t\t\t\t\t\t".$lang_common['Posts'].': '.$cur_post['num_posts'].'<br>'."\n\t\t\t\t\t\t\t".'IP: <a href="moderate.php?get_host='.$cur_post['id'].'">'.$cur_post['poster_ip'].'</a> <br /><br /><b> '.$cur_post['realname'].'</b>';

            if ($cur_post['admin_note'] != '')
                $info .= '<br><br>'."\n\t\t\t\t\t\t\t".$lang_topic['Note'].': <b>'.$cur_post['admin_note'].'</b>';
        }
        else if ($pun_config['o_show_post_count'] == '1')
            $info .= "\n\t\t\t\t\t\t\t".$lang_common['Posts'].': '.$cur_post['num_posts'];

        // Generate an array of links that appear at the bottom of every message.
        $links = array();


        // Private Message 1.0.8
        require($pun_root.'include/pms/viewtopic_PM-link.php');




         if ($cur_post['email_setting'] == '1' && !$cookie['is_guest'])
            $links[] = '<a href="misc.php?email='.$cur_post['poster_id'].'">'.$lang_common['E-mail'].'</a>';

        if ($cur_post['url'] != '')
        {
            if ($cur_user['link_to_new_win'] == '0')
                $links[] = '<a href="'.pun_htmlspecialchars($cur_post['url']).'">'.$lang_topic['Website'].'</a>';
            else
                $links[] = '<a href="'.pun_htmlspecialchars($cur_post['url']).'" target="_blank">'.$lang_topic['Website'].'</a>';
        }


    }
    // If the poster is a guest (or a user that has been deleted)
    else
    {
        $info = '<span class="punheadline">'.pun_htmlspecialchars($cur_post['poster']).'</span><br>'."\n\t\t\t\t\t\t\t".$lang_topic['Guest'];

        if ($cur_user['status'] > PUN_USER)
            $info .= '<br><br>'."\n\t\t\t\t\t\t\t".'IP: <a href="moderate.php?get_host='.$cur_post['id'].'">'.$cur_post['poster_ip'].'</a><br><br>';
        else
            $info .= '<br><br><br><br>';

        if ($cur_post['poster_email'] != '')
            $links = array('<a href="mailto:'.$cur_post['poster_email'].'">'.$lang_common['E-mail'].'</a>');
        else
            $links = array();
    }


    $actions = array();

    if (!$is_admmod)
    {
        if (!$cookie['is_guest'])
        {
            $actions[] = '<a class="punclosed" href="misc.php?report='.$cur_post['id'].'">'.$lang_topic['Report'].'</a>';

            if ($closed == '0' && $forum_closed == '0')
            {
                if ($pun_config['p_users_edit_post'] == '1' && $cur_post['poster_id'] == $cur_user['id'])
                {
                    if ($pun_config['p_users_del_post'] == '1')
                        $actions[] = '<a href="delete.php?id='.$cur_post['id'].'">'.$lang_topic['Delete'].'</a>';

                    $actions[] = '<a href="edit.php?id='.$cur_post['id'].'">'.$lang_topic['Edit'].'</a>';
                }

                $actions[] = '<a href="post.php?tid='.$id.'&qid='.$cur_post['id'].'">'.$lang_topic['Quote'].'</a>';
            }
        }
        else
        {
            if ($pun_config['p_guests_post'] == '1' && $closed == '0' && $forum_closed == '0')
                $actions[] = '<a href="post.php?tid='.$id.'&qid='.$cur_post['id'].'">'.$lang_topic['Quote'].'</a>';
        }
    }
    else
        $actions[] = '<a class="punclosed" href="misc.php?report='.$cur_post['id'].'">'.$lang_topic['Report'].'</a> | <a href="delete.php?id='.$cur_post['id'].'">'.$lang_topic['Delete'].'</a> | <a href="edit.php?id='.$cur_post['id'].'">'.$lang_topic['Edit'].'</a> | <a href="post.php?tid='.$id.'&qid='.$cur_post['id'].'">'.$lang_topic['Quote'].'</a>';


    // Switch the background color for every message.
    $bg_switch = ($bg_switch) ? $bg_switch = false : $bg_switch = true;

    // Perform the main parsing of the message (BBCode, smilies, censor words etc)
    $cur_post['message'] = parse_message($cur_post['message'], $cur_post['smilies']);

    // Add "Edited by..." if the message was edited
    if ($cur_post['edited'])
        $cur_post['message'] .= '<br><br><span class="punedited">'.$lang_topic['Last edit'].' '.pun_htmlspecialchars($cur_post['edited_by']).' ('.format_time($cur_post['edited']).')</span>';


    // Do signature parsing/caching
    $signature = '';
    if ($cur_post['signature'] != '' && $cur_user['show_sig'] != '0')
    {
        if (isset($signature_cache[$cur_post['poster_id']]))
            $signature = $signature_cache[$cur_post['poster_id']];
        else
        {
            $signature = parse_signature($cur_post['signature']);
            $signature_cache[$cur_post['poster_id']] = $signature;
        }

        $signature = '<br><br>_______________________________________<br>'.$signature.'<br><br>';
    }

?>



<?
    //Attachment Mod Block
    $post_attach_html = "";
   
    //First check if there is an attachment in this post   
    $result_two = $db->query('SELECT id,filename,extention,size,downloads FROM '.$db->prefix.'attach_files WHERE postid='.$cur_post['id']) or error($lang_attachments['Error fetch'], __FILE__, __LINE__, $db->error());
    if ($db->num_rows($result_two)==1) //an attachment found! smile
    {
        //get the info into a variable.
        list($post_attach_id, $post_attach_filename, $post_attach_extention, $post_attach_size, $post_attach_downloads) = $db->fetch_row($result_two);
       
        // time to check if current user may download
        $result_two = $db->query('SELECT rules FROM '.$db->prefix.'attach_rules WHERE affected='.$forum_id) or error($lang_attachments['Error rules'], __FILE__, __LINE__, $db->error());
        if (!$db->num_rows($result_two))
            message($lang_attachments['Error rules']);
        list($forum_attach_rules) = $db->fetch_row($result_two);
       
        if($cur_user['status'] < 1) // Normal users
            $attach_allowed = attach_rule_check($forum_attach_rules,2);
        elseif ($cur_user['status'] == 1) // Moderators
            $attach_allowed = attach_rule_check($forum_attach_rules,4);
        elseif ($cur_user['status'] > 1) // Admin
            $attach_allowed = true; // always allowed to see...
        elseif ($cookie['is_guest'])  // guess this will be right to 'sense' guests ... documentations would be handy :oP
            $attach_allowed = attach_rule_check($forum_attach_rules,1);
        else
            $attach_allowed = false;
       
        // if the user is allowed to download, show this.
        if ($cur_user['show_img'] != '0') // if he wnt to see pictures ... show him the attachment icon
        {
            $attach_icon = attach_icon($post_attach_extention);
        }else $attach_icon = '';
        if($attach_allowed){
            $post_attach_html = '<br><br><span class="pun_text">   Attachment: '. $attach_icon .'<a href="attachment.php?item=' . $post_attach_id . '" target="_blank">' . pun_htmlspecialchars(unescape($post_attach_filename)) . '</a>   <font size="1">Size: ' . number_format($post_attach_size,0) . ' bytes     Downloads: ' . $post_attach_downloads . '</font></span>';
        }
    }
   
//Attachment Mod End block
?>

<div><a name="<?php echo $cur_post['id'] ?>"></a></div>

<table class="punmain" cellspacing="1" cellpadding="4">
    <tr class="<?php echo ($bg_switch) ? 'puncon1' : 'puncon2'; ?>">
        <td class="puntop" style="width: 185px">
            <table class="punplain" cellspacing="0" cellpadding="0">
                <tr>
                    <td>
                        <div style="width: 185px">
                            <?php echo $info."\n" ?>
                        </div>
                    </td>
                </tr>
            </table>
        </td>
        <td class="puntop">
            <table class="punplain" cellspacing="0" cellpadding="0">
                <tr>
                    <td>
                        <span class="puntext"><?php echo $cur_post['message'] ?></span><?php echo ($signature != '') ? '<span class="punsignature">'.$signature.'</span>'."\n" : '<br><br>'."\n"; ?>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
    <tr class="<?php echo ($bg_switch) ? 'puncon1' : 'puncon2'; ?>">
        <td style="width: 185px; white-space: nowrap"><?php echo format_time($cur_post['posted']) ?></td>
        <td>
            <table class="punplain" cellspacing="0" cellpadding="0">
                <tr>
                    <td style="width: 40%"><?php echo (count($links) > 0) ? implode(' | ', $links) : ' '; ?></td>
                    <td class="punright" style="width: 60%"><?php echo (count($actions) > 0) ? implode(' | ', $actions) : ' '; ?></td>
                </tr>
            </table>
        </td>
    </tr>
</table>

<?php

}


if (!$cookie['is_guest'] && $pun_config['o_subscriptions'] == '1')
{
    if ($is_subscribed)
        // I apologize for the variable naming here. It's a mix of subscription and action I guess :-)
        $subscraction = $lang_topic['Is subscribed'].' - <a href="misc.php?unsubscribe='.$id.'">'.$lang_topic['Unsubscribe'].'</a>';
    else
        $subscraction = '<a href="misc.php?subscribe='.$id.'">'.$lang_topic['Subscribe'].'</a>';
}
else
    $subscraction = ' ';


?>
<table class="punspacer" cellspacing="1" cellpadding="4">
    <tr>
        <td style="width: 46%"><?php echo $lang_common['Pages'].': '.$pages ?></td>
        <td class="punright" style="width: 35%"><?php echo $subscraction ?></td>
        <td class="punright" style="width: 19%"><b><?php echo $post_link ?></b></td>
    </tr>
</table>
<?php

// Display quick post if enabled
if ($pun_config['o_quickpost'] == '1' &&
    ((!$cookie['is_guest'] &&
    $pun_config['p_users_post'] == '1' &&
    $closed == '0' &&
    $forum_closed == '0') ||
    $is_admmod))
{

?>

<form method="post" action="post.php?tid=<?php echo $id ?>" onsubmit="return process_form(this)">
    <input type="hidden" name="form_sent" value="1">
    <input type="hidden" name="form_user" value="<?php echo (!$cookie['is_guest']) ? pun_htmlspecialchars($cur_user['username']) : 'Guest'; ?>">
    <input type="hidden" name="smilies" value="<?php echo $cur_user['smilies'] ?>">
    <input type="hidden" name="subscribe" value="0">
    <table class="punmain" cellspacing="1" cellpadding="4">
        <tr class="punhead">
            <td class="punhead" colspan="2"><?php echo $lang_topic['Quick post'] ?></td>
        </tr>
        <tr>
            <td class="puncon1right" style="width: 140px; white-space: nowrap">
                <b><?php echo $lang_common['Message'] ?></b>  <br><br>
                <a href="help.php#bbcode" target="_blank"><?php echo $lang_common['BBCode'] ?></a>: <?php echo ($pun_config['p_message_bbcode'] == '1') ? $lang_common['on'] : $lang_common['off']; ?>  <br>
                <a href="help.php#img" target="_blank"><?php echo $lang_common['img tag'] ?></a>: <?php echo ($pun_config['p_message_img_tag'] == '1') ? $lang_common['on'] : $lang_common['off']; ?>  <br>
                <a href="help.php#smilies" target="_blank"><?php echo $lang_common['Smilies'] ?></a>: <?php echo ($pun_config['o_smilies'] == '1') ? $lang_common['on'] : $lang_common['off']; ?>  
            </td>
            <td class="puncon2"> <textarea name="req_message" rows="7" cols="80"></textarea></td>
        </tr>
        <tr>
            <td class="puncon1right" style="width: 140px; white-space: nowrap"><?php echo $lang_common['Actions'] ?>  </td>
            <td class="puncon2"><br>  <input type="submit" name="submit" value="<?php echo $lang_common['Submit'] ?>" accesskey="s"><br><br></td>
        </tr>
    </table>
</form>

<table class="punspacer" cellspacing="1" cellpadding="4"><tr><td> </td></tr></table>
<?php

}

// Increment "num_views" for topic
$low_prio = ($db_type == 'mysql') ? 'LOW_PRIORITY ' : '';
$db->query('UPDATE '.$low_prio.$db->prefix.'topics SET num_views=num_views+1 WHERE id='.$id) or error('Unable to update topic', __FILE__, __LINE__, $db->error());

$footer_style = 'topic';
require $pun_root.'footer.php';


I don't see in the modified / added code, what's wrong to do this ...

510

(300 replies, posted in PunBB 1.2 discussion)

I use this code for my new XHTML site ...

in <head></head>

       <script type="text/javascript">
         <!--
    function externalLinks() {
        if (!document.getElementsByTagName) return;
            var anchors = document.getElementsByTagName("a");
            for (var i=0; i<anchors.length; i++) {
            var anchor = anchors[i];
                if (anchor.getAttribute("href") &&
                anchor.getAttribute("rel") == "external")
                anchor.target = "_blank";
                }
            }
        window.onload = externalLinks;
           -->
        </script>

When I want a link becomes NEW window (or if you use php) ...

simply add in your link

<a class="punBB" href="http://punbb.org" rel="external">PUNBB IS THE BEST FORUM EVER CREATED</a>
rel="external"

is used for future (see w3c web site)

511

(7 replies, posted in Feature requests)

Connorhd wrote:

you might want to edit userlist.php otherwise that would be very easy to get round

Indeed ...


if ($cookie['is_guest'] && $pun_config['p_guests_read'] == '0')
    message($lang_common['Login required']);

Replace Value 0 by 1

512

(7 replies, posted in Feature requests)

I have done the NAME under IP in Admin Mode ...

viewtopic.php


First is to call 'realname' in db request ...

// Retrieve the posts (and their respective poster)
$result = $db->query('SELECT u.email, u.title, 
u.url, u.location, u.use_avatar,
 u.signature, u.email_setting, u.num_posts, 
u.status, u.registered, u.admin_note, p.id, p.poster, 
p.poster_id, p.poster_ip, p.poster_email, p.message, 
p.smilies, p.posted, p.edited, p.edited_by FROM 
'.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'users 
AS u ON u.id=p.poster_id WHERE p.topic_id='.$id.' ORDER BY 
p.id LIMIT '.$start_from.','.$disp_posts) or error('Unable to 
fetch post info', __FILE__, __LINE__, $db->error());

Add in the list

u.realname
        if ($cur_user['status'] > PUN_USER)
        {
            $info .= "\n\t\t\t\t\t\t\t".$lang_common['Posts'].': '.$cur_post['num_posts'].'<br>'.
"\n\t\t\t\t\t\t\t".'IP: <a href="moderate.php?get_host='.$cur_post['id'].'">
'.$cur_post['poster_ip'].'</a>';

between
</a>         and          ';

Add

<br /><br /><b> '.$cur_post['realname'].'</b>

513

(7 replies, posted in Feature requests)

1. for Membership, I'm gone on functions.php

Find

    // Home and Userlist should always be displayed
    $links[] = '<a href="index.php">'.$lang_common['Home'].'</a>';
    $links[] = '<a href="userlist.php">'.$lang_common['User list'].'</a>';

Cut

$links[] = '<a href="userlist.php">'.$lang_common['User list'].'</a>';

Find few lines later

        else
        {
            $links[] = '<a href="search.php">'.$lang_common['Search'].'</a>';
            $links[] = '<a href="profile.php?id='.$cur_user['id'].'">'.$lang_common['Profile'].'</a>';
            $links[] = '<a href="admin_index.php">'.$lang_common['Admin'].'</a>';

And paste after

$links[] = '<a href="userlist.php">'.$lang_common['User list'].'</a>';

514

(7 replies, posted in Feature requests)

1. Only members can see the memberlist smile

2. An option to add "private forums" : actually, in 1.1.5, you can do "Only Admin / Moderators" : it would be great if a check box could be added with "Members"

3. Mass PM for updates

4. Tableless version (1.2 isn't it ?)

5. Like IP adress, I would like the "NAME" field appears beneath the IP : why ??? I do games, and I ask name/firstname : but to see them, I HAVE to click on EVERY profile ... cool when there are 2 or 3 winners, but when they are 50/60 ...

6. When integrated to Coppermine : like
PM | Website | Email every each post of a member, a new   | Photos appears ...

That's all ! smile

OK ... erase the files ... upload them : work perfectly smile

OK ... link appears with Paul's solution ...

but http://www.sortons.net/forum/calendar.php

is still blank ...

I don't see how (and where) turn on debug mode sad

Your add on is the easiest addon I've ever seen to install, but nothing happens sad

So ...

// Generate the "navigator" that appears at the top of every page
//
function generate_navlinks()
{
    global $pun_config, $lang_common, $cookie, $cur_user;

    // Home and Userlist should always be displayed
    $links[] = '<a href="index.php">'.$lang_common['Home'].'</a> | <a href="userlist.php">'.$lang_common['User list'].'</a>';

    $links[] = '<a href="calendar.php">Calendrier</a>';

    if ($pun_config['o_rules'] == '1')
        $links[] = '<a href="misc.php?action=rules">'.$lang_common['Rules'].'</a>';

I have added the link into functions.php ... no link appears ... (great)

and if I want to go to
http://www.sortons.net/forum/calendar.php ... white page ..

I have tested 0.6 Calendar version ... what's wrong ?

Very impressive : PunBB seems to have no limits about requests smile perfect

What a pity (one more time) copyrights have been removed ...

But amazing however ....

English version
In fact you are not wrong : but if I take your example, you don't want the copyright appears on all the pages ... OK. Why Not ... but On the INDEX PAGE (the first, so) Copyright doesn't appear too. It appears NEVER.

Why this link ? Via your website, you promote PunBB : and you, you have a FREE and SPEED forum. Simply.

French Version
En fait tu n'as pas tort : mais si je prends ton example, tu ne veux pas que le copyright apparaisse sur toutes les pages. Ok, pk pas. Mais sur la page index de celui ci, il n'apparait pas non plus. Il n'apparait jamais en fait.

Alors pk ce lien ? A travers ton site, tu fais la promo de PunBB, et toi, en contre partie, tu as un forum gratuit. Tout simplement.

Take a dolphin brain : better than human brain smile
More cognitive, faster ... smile

zaher wrote:

Some one hate put nother name (person name) in his site (not me), so he remove the copy right, May be resolve it by put link "Punbb Credits" in bottom of page, for punbb "Rickard Andersson" it nice name as holywoods names not like my name zaher dirkey smile.

for example smile

I see thing very simply ...

if someone doesn't want to put a copyright, only 2 solutions
1. it pays. Like a shareware which has limitations, pay "can" desactivate the visibility of the copyright

2. he creates his own forum

I would like to remember all this software is free, I would like to remember Rickard is very available, which is, for a lot of us, the first time (I don't know who has created phpBB or IPS ...), I would like to remember PunBB is the fastest and the more adaptive forum ever created (I remember the post of Nibbler about CPG : "punBB is easy to bridge)

So ... GPL or NOT GPL, adapt a work which isn't coming from you by removing copyright sentence is simply STEAL. Point. Nothing else to say.

I remember the intellectual property : "the rights belong to the creator"

Rickard is Punbb's creator, he has ALL rights on this. Thanx him by putting the Copyright in footer (or anywhere else)

Go on Rickard.

http://forums.journalintime.com/index.php

Not really cool

in french

franchement mec ton site est sympa, mais de la à retirer le copyright de Rickard, c limite moyen ...

Buy a new brain smile