diff -urN punbb-1.2/upload/admin_bans.php punbb-1.2.9/upload/admin_bans.php --- punbb-1.2/upload/admin_bans.php Fri Dec 31 15:40:34 2004 +++ punbb-1.2.9/upload/admin_bans.php Thu Jul 7 19:31:54 2005 @@ -44,7 +44,7 @@ if (isset($_GET['add_ban'])) { $add_ban = intval($_GET['add_ban']); - if ($add_ban < 1) + if ($add_ban < 2) message($lang_common['Bad request']); $user_id = $add_ban; @@ -61,7 +61,7 @@ if ($ban_user != '') { - $result = $db->query('SELECT id, group_id, username, email FROM '.$db->prefix.'users WHERE username=\''.$db->escape($ban_user).'\'') or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); + $result = $db->query('SELECT id, group_id, username, email FROM '.$db->prefix.'users WHERE username=\''.$db->escape($ban_user).'\' AND id>1') or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); if ($db->num_rows($result)) list($user_id, $group_id, $ban_user, $ban_email) = $db->fetch_row($result); else @@ -140,7 +140,7 @@ -

You should be very careful when banning an IP-range because of the possibility of multiple users matching the same partial IP.

+

You should be very careful when banning an IP-range because of the possibility of multiple users matching the same partial IP.

@@ -244,7 +244,7 @@ if ($_POST['mode'] == 'add') $db->query('INSERT INTO '.$db->prefix.'bans (username, ip, email, message, expire) VALUES('.$ban_user.', '.$ban_ip.', '.$ban_email.', '.$ban_message.', '.$ban_expire.')') or error('Unable to add ban', __FILE__, __LINE__, $db->error()); else - $db->query('UPDATE '.$db->prefix.'bans SET username='.$ban_user.', ip='.$ban_ip.', email='.$ban_email.', message='.$ban_message.', expire='.$ban_expire.' WHERE id='.$_POST['ban_id']) or error('Unable to update ban', __FILE__, __LINE__, $db->error()); + $db->query('UPDATE '.$db->prefix.'bans SET username='.$ban_user.', ip='.$ban_ip.', email='.$ban_email.', message='.$ban_message.', expire='.$ban_expire.' WHERE id='.intval($_POST['ban_id'])) or error('Unable to update ban', __FILE__, __LINE__, $db->error()); // Regenerate the bans cache require_once PUN_ROOT.'include/cache.php'; diff -urN punbb-1.2/upload/admin_categories.php punbb-1.2.9/upload/admin_categories.php --- punbb-1.2/upload/admin_categories.php Sun Jan 2 23:47:10 2005 +++ punbb-1.2.9/upload/admin_categories.php Sun Apr 3 20:48:30 2005 @@ -123,7 +123,7 @@ -

   Go back

+

Go back

diff -urN punbb-1.2/upload/admin_censoring.php punbb-1.2.9/upload/admin_censoring.php --- punbb-1.2/upload/admin_censoring.php Fri Dec 31 15:40:34 2004 +++ punbb-1.2.9/upload/admin_censoring.php Thu Apr 7 21:38:22 2005 @@ -57,7 +57,7 @@ { confirm_referrer('admin_censoring.php'); - $id = key($_POST['update']); + $id = intval(key($_POST['update'])); $search_for = trim($_POST['search_for'][$id]); $replace_with = trim($_POST['replace_with'][$id]); @@ -76,7 +76,7 @@ { confirm_referrer('admin_censoring.php'); - $id = key($_POST['remove']); + $id = intval(key($_POST['remove'])); $db->query('DELETE FROM '.$db->prefix.'censoring WHERE id='.$id) or error('Unable to delete censor word', __FILE__, __LINE__, $db->error()); diff -urN punbb-1.2/upload/admin_forums.php punbb-1.2.9/upload/admin_forums.php --- punbb-1.2/upload/admin_forums.php Fri Dec 31 15:40:34 2004 +++ punbb-1.2.9/upload/admin_forums.php Sun Apr 3 20:48:30 2005 @@ -117,7 +117,7 @@ -

   Go back

+

Go back

@@ -229,6 +229,9 @@ // Fetch forum info $result = $db->query('SELECT id, forum_name, forum_desc, redirect_url, num_topics, sort_by, cat_id FROM '.$db->prefix.'forums WHERE id='.$forum_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); diff -urN punbb-1.2/upload/admin_groups.php punbb-1.2.9/upload/admin_groups.php --- punbb-1.2/upload/admin_groups.php Sat Jan 1 16:49:06 2005 +++ punbb-1.2.9/upload/admin_groups.php Fri Sep 2 16:04:40 2005 @@ -54,6 +54,9 @@ message($lang_common['Bad request']); $result = $db->query('SELECT * FROM '.$db->prefix.'groups WHERE g_id='.$group_id) or error('Unable to fetch user group info', __FILE__, __LINE__, $db->error()); + if (!$db->num_rows($result)) + message($lang_common['Bad request']); + $group = $db->fetch_assoc($result); $mode = 'edit'; @@ -180,7 +183,7 @@ -

Please note that in order for a user in this group to have moderator abilities, he/she must be assigned to moderate one or more forums. This is done via the user administration page of the user's profile.

+

Please note that in order for a user in this group to have moderator abilities, he/she must be assigned to moderate one or more forums. This is done via the user administration page of the user's profile.

@@ -206,15 +209,15 @@ $title = trim($_POST['req_title']); $user_title = trim($_POST['user_title']); - $read_board = isset($_POST['read_board']) ? $_POST['read_board'] : '1'; - $post_replies = isset($_POST['post_replies']) ? $_POST['post_replies'] : '1'; - $post_topics = isset($_POST['post_topics']) ? $_POST['post_topics'] : '1'; - $edit_posts = isset($_POST['edit_posts']) ? $_POST['edit_posts'] : ($is_admin_group) ? '1' : '0'; - $delete_posts = isset($_POST['delete_posts']) ? $_POST['delete_posts'] : ($is_admin_group) ? '1' : '0'; - $delete_topics = isset($_POST['delete_topics']) ? $_POST['delete_topics'] : ($is_admin_group) ? '1' : '0'; - $set_title = isset($_POST['set_title']) ? $_POST['set_title'] : ($is_admin_group) ? '1' : '0'; - $search = isset($_POST['search']) ? $_POST['search'] : '1'; - $search_users = isset($_POST['search_users']) ? $_POST['search_users'] : '1'; + $read_board = isset($_POST['read_board']) ? intval($_POST['read_board']) : '1'; + $post_replies = isset($_POST['post_replies']) ? intval($_POST['post_replies']) : '1'; + $post_topics = isset($_POST['post_topics']) ? intval($_POST['post_topics']) : '1'; + $edit_posts = isset($_POST['edit_posts']) ? intval($_POST['edit_posts']) : ($is_admin_group) ? '1' : '0'; + $delete_posts = isset($_POST['delete_posts']) ? intval($_POST['delete_posts']) : ($is_admin_group) ? '1' : '0'; + $delete_topics = isset($_POST['delete_topics']) ? intval($_POST['delete_topics']) : ($is_admin_group) ? '1' : '0'; + $set_title = isset($_POST['set_title']) ? intval($_POST['set_title']) : ($is_admin_group) ? '1' : '0'; + $search = isset($_POST['search']) ? intval($_POST['search']) : '1'; + $search_users = isset($_POST['search_users']) ? intval($_POST['search_users']) : '1'; $edit_subjects_interval = isset($_POST['edit_subjects_interval']) ? intval($_POST['edit_subjects_interval']) : '0'; $post_flood = isset($_POST['post_flood']) ? intval($_POST['post_flood']) : '0'; $search_flood = isset($_POST['search_flood']) ? intval($_POST['search_flood']) : '0'; @@ -226,8 +229,8 @@ if ($_POST['mode'] == 'add') { - $db->query('SELECT 1 FROM '.$db->prefix.'groups WHERE g_title=\''.$db->escape($title).'\'') or error('Unable to check group title collision', __FILE__, __LINE__, $db->error()); - if ($db->num_rows()) + $result = $db->query('SELECT 1 FROM '.$db->prefix.'groups WHERE g_title=\''.$db->escape($title).'\'') or error('Unable to check group title collision', __FILE__, __LINE__, $db->error()); + if ($db->num_rows($result)) message('There is already a group with the title \''.pun_htmlspecialchars($title).'\'.'); $db->query('INSERT INTO '.$db->prefix.'groups (g_title, g_user_title, g_read_board, g_post_replies, g_post_topics, g_edit_posts, g_delete_posts, g_delete_topics, g_set_title, g_search, g_search_users, g_edit_subjects_interval, g_post_flood, g_search_flood) VALUES(\''.$db->escape($title).'\', '.$user_title.', '.$read_board.', '.$post_replies.', '.$post_topics.', '.$edit_posts.', '.$delete_posts.', '.$delete_topics.', '.$set_title.', '.$search.', '.$search_users.', '.$edit_subjects_interval.', '.$post_flood.', '.$search_flood.')') or error('Unable to add group', __FILE__, __LINE__, $db->error()); @@ -239,7 +242,13 @@ $db->query('INSERT INTO '.$db->prefix.'forum_perms (group_id, forum_id, read_forum, post_replies, post_topics) VALUES('.$new_group_id.', '.$cur_forum_perm['forum_id'].', '.$cur_forum_perm['read_forum'].', '.$cur_forum_perm['post_replies'].', '.$cur_forum_perm['post_topics'].')') or error('Unable to insert group forum permissions', __FILE__, __LINE__, $db->error()); } else - $db->query('UPDATE '.$db->prefix.'groups SET g_title=\''.$db->escape($title).'\', g_user_title='.$user_title.', g_read_board='.$read_board.', g_post_replies='.$post_replies.', g_post_topics='.$post_topics.', g_edit_posts='.$edit_posts.', g_delete_posts='.$delete_posts.', g_delete_topics='.$delete_topics.', g_set_title='.$set_title.', g_search='.$search.', g_search_users='.$search_users.', g_edit_subjects_interval='.$edit_subjects_interval.', g_post_flood='.$post_flood.', g_search_flood='.$search_flood.' WHERE g_id='.$_POST['group_id']) or error('Unable to update group', __FILE__, __LINE__, $db->error()); + { + $result = $db->query('SELECT 1 FROM '.$db->prefix.'groups WHERE g_title=\''.$db->escape($title).'\' AND g_id!='.intval($_POST['group_id'])) or error('Unable to check group title collision', __FILE__, __LINE__, $db->error()); + if ($db->num_rows($result)) + message('There is already a group with the title \''.pun_htmlspecialchars($title).'\'.'); + + $db->query('UPDATE '.$db->prefix.'groups SET g_title=\''.$db->escape($title).'\', g_user_title='.$user_title.', g_read_board='.$read_board.', g_post_replies='.$post_replies.', g_post_topics='.$post_topics.', g_edit_posts='.$edit_posts.', g_delete_posts='.$delete_posts.', g_delete_topics='.$delete_topics.', g_set_title='.$set_title.', g_search='.$search.', g_search_users='.$search_users.', g_edit_subjects_interval='.$edit_subjects_interval.', g_post_flood='.$post_flood.', g_search_flood='.$search_flood.' WHERE g_id='.intval($_POST['group_id'])) or error('Unable to update group', __FILE__, __LINE__, $db->error()); + } // Regenerate the quickjump cache require_once PUN_ROOT.'include/cache.php'; diff -urN punbb-1.2/upload/admin_index.php punbb-1.2.9/upload/admin_index.php --- punbb-1.2/upload/admin_index.php Fri Dec 31 15:42:04 2004 +++ punbb-1.2.9/upload/admin_index.php Fri Sep 2 16:03:18 2005 @@ -64,15 +64,19 @@ // Show phpinfo() output -else if ($action == 'phpinfo') +else if ($action == 'phpinfo' && $pun_user['g_id'] == PUN_ADMIN) { + // Is phpinfo() a disabled function? + if (strpos(strtolower((string)@ini_get('disable_functions')), 'phpinfo') !== false) + message('The PHP function phpinfo() has been disabled on this server.'); + phpinfo(); exit; } // Get the server load averages (if possible) -if (@file_exists('/proc/loadavg')) +if (@file_exists('/proc/loadavg') && is_readable('/proc/loadavg')) { // We use @ just in case $fh = @fopen('/proc/loadavg', 'r'); @@ -80,16 +84,16 @@ @fclose($fh); $load_averages = @explode(' ', $load_averages); - $server_load = isset($load_averages[0]) ? $load_averages[0].' '.$load_averages[1].' '.$load_averages[2] : 'Not available'; + $server_load = isset($load_averages[2]) ? $load_averages[0].' '.$load_averages[1].' '.$load_averages[2] : 'Not available'; } -else if (preg_match('/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/i', @exec('uptime'), $load_averages)) +else if (!in_array(PHP_OS, array('WINNT', 'WIN32')) && preg_match('/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/i', @exec('uptime'), $load_averages)) $server_load = $load_averages[1].' '.$load_averages[2].' '.$load_averages[3]; else $server_load = 'Not available'; // Get number of current visitors -$result = $db->query('SELECT COUNT(user_id) FROM '.$db->prefix.'online') or error('Unable to fetch online count', __FILE__, __LINE__, $db->error()); +$result = $db->query('SELECT COUNT(user_id) FROM '.$db->prefix.'online WHERE idle=0') or error('Unable to fetch online count', __FILE__, __LINE__, $db->error()); $num_online = $db->result($result); diff -urN punbb-1.2/upload/admin_loader.php punbb-1.2.9/upload/admin_loader.php --- punbb-1.2/upload/admin_loader.php Sat Jan 8 01:47:50 2005 +++ punbb-1.2.9/upload/admin_loader.php Thu Feb 24 23:15:54 2005 @@ -36,8 +36,8 @@ // The plugin to load should be supplied via GET -$plugin = isset($_GET['plugin']) ? $_GET['plugin'] : null; -if (!$plugin) +$plugin = isset($_GET['plugin']) ? $_GET['plugin'] : ''; +if (!preg_match('/^AM?P_(\w*?)\.php$/i', $plugin)) message($lang_common['Bad request']); // AP_ == Admins only, AMP_ == admins and moderators @@ -49,6 +49,9 @@ if (!file_exists(PUN_ROOT.'plugins/'.$plugin)) message('There is no plugin called \''.$plugin.'\' in the plugin directory.'); +// Construct REQUEST_URI if it isn't set +if (!isset($_SERVER['REQUEST_URI'])) + $_SERVER['REQUEST_URI'] = (isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : '').'?'.(isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : ''); $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / '.$plugin; require PUN_ROOT.'header.php'; diff -urN punbb-1.2/upload/admin_maintenance.php punbb-1.2.9/upload/admin_maintenance.php --- punbb-1.2/upload/admin_maintenance.php Fri Dec 31 15:40:34 2004 +++ punbb-1.2.9/upload/admin_maintenance.php Sun Jan 30 13:58:04 2005 @@ -60,6 +60,7 @@ switch ($db_type) { case 'mysql': + case 'mysqli': $result = $db->query('ALTER TABLE '.$db->prefix.'search_words auto_increment=1') or error('Unable to update table auto_increment', __FILE__, __LINE__, $db->error()); break; @@ -147,7 +148,7 @@
Rebuild search index
-

If you've added, edited or removed posts manually in the database or if you've switched language packs while there were posts in the database, you should rebuild the search index (to remove stopwords). For best performance you should put the forum in maintenance mode during rebuilding. Rebuilding the search index can take a long time and will increase server load during the rebuild process!

+

If you've added, edited or removed posts manually in the database or if you're having problems searching, you should rebuild the search index. For best performance you should put the forum in maintenance mode during rebuilding. Rebuilding the search index can take a long time and will increase server load during the rebuild process!

diff -urN punbb-1.2/upload/admin_options.php punbb-1.2.9/upload/admin_options.php --- punbb-1.2/upload/admin_options.php Sat Jan 1 17:06:44 2005 +++ punbb-1.2.9/upload/admin_options.php Wed Jul 27 23:24:24 2005 @@ -38,7 +38,7 @@ if (isset($_POST['form_sent'])) { // Lazy referer check (in case base_url isn't correct) - if (!preg_match('#/admin_options\.php#i', $_SERVER['HTTP_REFERER'])) + if (!isset($_SERVER['HTTP_REFERER']) || !preg_match('#/admin_options\.php#i', $_SERVER['HTTP_REFERER'])) message($lang_common['Bad referrer']); $form = array_map('trim', $_POST['form']); @@ -67,6 +67,9 @@ if (substr($form['avatars_dir'], -1) == '/') $form['avatars_dir'] = substr($form['avatars_dir'], 0, -1); + if ($form['additional_navlinks'] != '') + $form['additional_navlinks'] = trim(pun_linebreaks($form['additional_navlinks'])); + if ($form['announcement_message'] != '') $form['announcement_message'] = pun_linebreaks($form['announcement_message']); else @@ -114,14 +117,14 @@ while (list($key, $input) = @each($form)) { // Only update values that have changed - if ($pun_config['o_'.$key] != $input) + if (array_key_exists('o_'.$key, $pun_config) && $pun_config['o_'.$key] != $input) { if ($input != '' || is_int($input)) $value = '\''.$db->escape($input).'\''; else $value = 'NULL'; - $db->query('UPDATE '.$db->prefix.'config SET conf_value='.$value.' WHERE conf_name=\'o_'.$key.'\'') or error('Unable to update board config', __FILE__, __LINE__, $db->error()); + $db->query('UPDATE '.$db->prefix.'config SET conf_value='.$value.' WHERE conf_name=\'o_'.$db->escape($key).'\'') or error('Unable to update board config', __FILE__, __LINE__, $db->error()); } } @@ -166,6 +169,13 @@ + + + + - - - -
Topics per cycle
Base URL + + The complete URL of the forum without trailing slash (i.e. http://www.mydomain.com/forums). This must be correct in order for all admin and moderator features to work. If you get "Bad referer" errors, it's probably incorrect. +
Server timezone This is the default style used for guests and users who haven't changed from the default in their profile.
Base URL - - The complete URL of the forum without trailing slash (i.e. http://www.mydomain.com/forums). This must be correct in order for all admin and moderator features to work. If you get "Bad referer" errors, it's probably incorrect. -
@@ -457,6 +464,13 @@ /> Yes    /> No When disabled, searches will only be allowed in one forum at a time. Disable if server load is high due to excessive searching. + + + + Additional menu items + + + By entering HTML hyperlinks into this textbox, any number of items can be added to the navigation menu at the top of all pages. The format for adding new links is X = <a href="URL">LINK</a> where X is the position at which the link should be inserted (e.g. 0 to insert at the beginning and 2 to insert after "User list"). Separate entries with a linebreak. diff -urN punbb-1.2/upload/admin_permissions.php punbb-1.2.9/upload/admin_permissions.php --- punbb-1.2/upload/admin_permissions.php Fri Dec 31 15:40:34 2004 +++ punbb-1.2.9/upload/admin_permissions.php Fri Sep 2 01:36:10 2005 @@ -39,23 +39,13 @@ { confirm_referrer('admin_permissions.php'); - $form = array_map('trim', $_POST['form']); - - $form['sig_length'] = intval($form['sig_length']); - $form['sig_lines'] = intval($form['sig_lines']); + $form = array_map('intval', $_POST['form']); while (list($key, $input) = @each($form)) { // Only update values that have changed - if ($pun_config['p_'.$key] != $input) - { - if ($input != '' || is_int($input)) - $value = '\''.$db->escape($input).'\''; - else - $value = 'NULL'; - - $db->query('UPDATE '.$db->prefix.'config SET conf_value='.$value.' WHERE conf_name=\'p_'.$key.'\'') or error('Unable to update board config', __FILE__, __LINE__, $db->error()); - } + if (array_key_exists('p_'.$key, $pun_config) && $pun_config['p_'.$key] != $input) + $db->query('UPDATE '.$db->prefix.'config SET conf_value='.$input.' WHERE conf_name=\'p_'.$db->escape($key).'\'') or error('Unable to update board config', __FILE__, __LINE__, $db->error()); } // Regenerate the config cache diff -urN punbb-1.2/upload/admin_prune.php punbb-1.2.9/upload/admin_prune.php --- punbb-1.2/upload/admin_prune.php Fri Dec 31 15:40:34 2004 +++ punbb-1.2.9/upload/admin_prune.php Thu Jul 7 19:31:54 2005 @@ -62,6 +62,7 @@ } else { + $prune_from = intval($prune_from); prune($prune_from, $_POST['prune_sticky'], $prune_date); update_forum($prune_from); } @@ -97,6 +98,7 @@ if ($prune_from != 'all') { + $prune_from = intval($prune_from); $sql .= ' AND forum_id='.$prune_from; // Fetch the forum name (just for cosmetic reasons) @@ -135,7 +137,7 @@ -

   Go back

+

Go back

diff -urN punbb-1.2/upload/admin_ranks.php punbb-1.2.9/upload/admin_ranks.php --- punbb-1.2/upload/admin_ranks.php Fri Dec 31 15:40:34 2004 +++ punbb-1.2.9/upload/admin_ranks.php Fri Mar 11 20:17:26 2005 @@ -69,7 +69,7 @@ { confirm_referrer('admin_ranks.php'); - $id = key($_POST['update']); + $id = intval(key($_POST['update'])); $rank = trim($_POST['rank'][$id]); $min_posts = trim($_POST['min_posts'][$id]); @@ -100,7 +100,7 @@ { confirm_referrer('admin_ranks.php'); - $id = key($_POST['remove']); + $id = intval(key($_POST['remove'])); $db->query('DELETE FROM '.$db->prefix.'ranks WHERE id='.$id) or error('Unable to delete rank', __FILE__, __LINE__, $db->error()); diff -urN punbb-1.2/upload/admin_reports.php punbb-1.2.9/upload/admin_reports.php --- punbb-1.2/upload/admin_reports.php Fri Dec 31 15:40:34 2004 +++ punbb-1.2.9/upload/admin_reports.php Fri Mar 11 20:17:26 2005 @@ -40,7 +40,7 @@ { confirm_referrer('admin_reports.php'); - $zap_id = key($_POST['zap_id']); + $zap_id = intval(key($_POST['zap_id'])); $result = $db->query('SELECT zapped FROM '.$db->prefix.'reports WHERE id='.$zap_id) or error('Unable to fetch report info', __FILE__, __LINE__, $db->error()); $zapped = $db->result($result); diff -urN punbb-1.2/upload/admin_users.php punbb-1.2.9/upload/admin_users.php --- punbb-1.2/upload/admin_users.php Sun Jan 2 01:03:06 2005 +++ punbb-1.2.9/upload/admin_users.php Fri Sep 2 16:04:40 2005 @@ -49,7 +49,7 @@ ?>
-
Go back
+
Go back
@@ -98,7 +98,7 @@
-
Go back
+
Go back
-
Go back
+
Go back
@@ -202,7 +202,7 @@
-
Go back
+
Go back
escape($key).' '.$like_command.' \''.$db->escape(str_replace('*', '%', $input)).'\''; } if ($posts_greater != '') @@ -266,9 +267,9 @@ $conditions[] = 'u.num_posts<'.$posts_less; if ($user_group != 'all') - $conditions[] = 'u.group_id='.$user_group; + $conditions[] = 'u.group_id='.$db->escape($user_group); - if (!isset($conditions)) + if (empty($conditions)) message('You didn\'t enter any search terms.'); @@ -278,7 +279,7 @@ ?>
-
Go back
+
Go back
@@ -300,7 +301,7 @@ query('SELECT u.id, u.username, u.email, u.title, u.num_posts, u.admin_note, g.g_id, g.g_user_title FROM '.$db->prefix.'users AS u LEFT JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id WHERE u.id>1 AND '.implode(' AND ', $conditions).' ORDER BY '.$order_by.' '.$direction) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); + $result = $db->query('SELECT u.id, u.username, u.email, u.title, u.num_posts, u.admin_note, g.g_id, g.g_user_title FROM '.$db->prefix.'users AS u LEFT JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id WHERE u.id>1 AND '.implode(' AND ', $conditions).' ORDER BY '.$db->escape($order_by).' '.$db->escape($direction)) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); if ($db->num_rows($result)) { while ($user_data = $db->fetch_assoc($result)) @@ -309,7 +310,7 @@ // This script is a special case in that we want to display "Not verified" for non-verified users if (($user_data['g_id'] == '' || $user_data['g_id'] == PUN_UNVERIFIED) && $user_title != $lang_common['Banned']) - $user_title = 'Not verified'; + $user_title = 'Not verified'; $actions = 'View IP stats - Show posts'; @@ -338,7 +339,7 @@
-
Go back
+
Go back
">
- +

:

diff -urN punbb-1.2/upload/edit.php punbb-1.2.9/upload/edit.php --- punbb-1.2/upload/edit.php Fri Dec 31 15:40:34 2004 +++ punbb-1.2.9/upload/edit.php Fri Sep 2 16:05:30 2005 @@ -175,7 +175,7 @@ else if (isset($_POST['preview'])) { require_once PUN_ROOT.'include/parser.php'; - $message = parse_message(trim($_POST['req_message']), $hide_smilies); + $preview_message = parse_message($message, $hide_smilies); ?>
@@ -184,7 +184,7 @@
- +
@@ -208,7 +208,7 @@ +
'."\n\t\t\t".''."\n\t\t\t".'
'."\n\t\t".'
'; else - $tpl_temp .= '

'."\n\t\t\t".'
'."\n\t\t".'
'; + $tpl_temp .= "\n\t\t\t".''."\n\t\t\t".'
'."\n\t\t".'
'; } $tpl_main = str_replace('', $tpl_temp, $tpl_main); diff -urN punbb-1.2/upload/help.php punbb-1.2.9/upload/help.php --- punbb-1.2/upload/help.php Fri Dec 31 15:40:34 2004 +++ punbb-1.2.9/upload/help.php Fri Mar 18 23:20:44 2005 @@ -37,12 +37,6 @@ // Load the help.php language file require PUN_ROOT.'lang/'.$pun_user['language'].'/help.php'; -// Determine what style to use (for the [img] example) -if ($pun_user['style'] != '' && @file_exists(PUN_ROOT.'style/'.$pun_user['style'].'.css')) - $img_url = $pun_config['o_base_url'].'/img/'.$pun_user['style'].'_new.png'; -else - $img_url = $pun_config['o_base_url'].'/img/'.$pun_config['o_default_style'].'_new.png'; - $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_help['Help']; require PUN_ROOT.'header.php'; @@ -76,7 +70,7 @@ [email=myname@mydomain.com][/email]

-
[img][/img]
+
[img]http://www.punbb.org/img/small_logo.png[/img] http://www.punbb.org/img/small_logo.png

@@ -92,7 +86,7 @@     [quote][/quote]



-

+

@@ -141,7 +135,7 @@ for ($next = $i + 1; $next < $num_smilies; ++$next) { // Did we find a dupe? - if ($smiley_img[$i] == $smiley_img[$next]) + if (isset($smiley_img[$next]) && $smiley_img[$i] == $smiley_img[$next]) { echo ' '.$lang_common['and'].' '.$smiley_text[$next]; diff -urN punbb-1.2/upload/include/cache.php punbb-1.2.9/upload/include/cache.php --- punbb-1.2/upload/include/cache.php Fri Dec 31 15:40:34 2004 +++ punbb-1.2.9/upload/include/cache.php Thu Jul 7 19:00:08 2005 @@ -129,13 +129,13 @@ global $db; // Get the rank list from the DB - $result = $db->query('SELECT * FROM '.$db->prefix.'ranks', true) or error('Unable to fetch rank list', __FILE__, __LINE__, $db->error()); + $result = $db->query('SELECT * FROM '.$db->prefix.'ranks ORDER BY min_posts', true) or error('Unable to fetch rank list', __FILE__, __LINE__, $db->error()); $output = array(); while ($cur_rank = $db->fetch_assoc($result)) $output[] = $cur_rank; - // Output ban list as PHP code + // Output ranks list as PHP code $fh = @fopen(PUN_ROOT.'cache/cache_ranks.php', 'wb'); if (!$fh) error('Unable to write ranks cache file to cache directory. Please make sure PHP has write access to the directory \'cache\'', __FILE__, __LINE__); @@ -174,7 +174,7 @@ if (!$fh) error('Unable to write quickjump cache file to cache directory. Please make sure PHP has write access to the directory \'cache\'', __FILE__, __LINE__); - $output = ''; + $output = ''; $output .= "\t\t\t\t".'
'."\n\t\t\t\t\t".'
@@ -323,7 +324,7 @@ if (preg_match('#\[b\]|\[/b\]|\[u\]|\[/u\]|\[i\]|\[/i\]|\[color|\[/color\]|\[quote\]|\[/quote\]|\[code\]|\[/code\]|\[img\]|\[/img\]|\[url|\[/url\]|\[email|\[/email\]#i', $username)) error('Usernames may not contain any of the text formatting tags (BBCode) that the forum uses. Please go back and correct.'); - if (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/', $email)) + if (strlen($email) > 50 || !preg_match('/^(([^<>()[\]\\.,;:\s@"\']+(\.[^<>()[\]\\.,;:\s@"\']+)*)|("[^"\']+"))@((\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])|(([a-zA-Z\d\-]+\.)+[a-zA-Z]{2,}))$/', $email)) error('The administrator e-mail address you entered is invalid. Please go back and correct.'); @@ -345,6 +346,9 @@ case 'sqlite': require PUN_ROOT.'include/dblayer/sqlite.php'; break; + + default: + error('\''.$db_type.'\' is not a valid database type.'); } // Create the database object (and connect/select db) @@ -360,8 +364,8 @@ case 'pgsql': // Make sure we are running at least PHP 4.3.0 (needed only for PostgreSQL) - if (intval(str_replace('.', '', phpversion())) < 430) - error('You are running PHP version '.phpversion().'. PunBB requires at least PHP 4.3.0 to run properly when using PostgreSQL. You must upgrade your PHP installation or use a different database before you can continue.'); + if (version_compare(PHP_VERSION, '4.3.0', '<')) + error('You are running PHP version '.PHP_VERSION.'. PunBB requires at least PHP 4.3.0 to run properly when using PostgreSQL. You must upgrade your PHP installation or use a different database before you can continue.'); break; case 'sqlite': @@ -524,7 +528,7 @@ break; } - $db->query($sql) or error('Unable to create table '.$db_prefix.'online. Please check your settings and try again.', __FILE__, __LINE__, $db->error()); + $db->query($sql) or error('Unable to create table '.$db_prefix.'config. Please check your settings and try again.', __FILE__, __LINE__, $db->error()); @@ -1094,7 +1098,7 @@ case 'mysqli': $sql = 'CREATE TABLE '.$db_prefix."users ( id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, - group_id INT(10) NOT NULL DEFAULT 4, + group_id INT(10) UNSIGNED NOT NULL DEFAULT 4, username VARCHAR(200) NOT NULL DEFAULT '', password VARCHAR(40) NOT NULL DEFAULT '', email VARCHAR(50) NOT NULL DEFAULT '', @@ -1311,6 +1315,7 @@ 'o_show_dot' => "'0'", 'o_quickjump' => "'1'", 'o_gzip' => "'0'", + 'o_additional_navlinks' => "''", 'o_report_method' => "'0'", 'o_regs_report' => "'0'", 'o_mailing_list' => "'$email'", @@ -1395,7 +1400,7 @@ /// Display config.php and give further instructions - $config = '"; + $config = ' @@ -1418,7 +1423,7 @@
-

To finalize the installation all you need to do is to copy and paste the text in the text box below into a file called config.php and then upload this file to the root directory of your PunBB installation. Make sure there are no linebreaks or spaces before <?php and after ?> in the file. You can later edit config.php if you reconfigure your setup (e.g. change the database password or ).

+

To finalize the installation all you need to do is to copy and paste the text in the text box below into a file called config.php and then upload this file to the root directory of your PunBB installation. Make sure there are no linebreaks or spaces before <?php. You can later edit config.php if you reconfigure your setup (e.g. change the database password or ).

diff -urN punbb-1.2/upload/lang/English/common.php punbb-1.2.9/upload/lang/English/common.php --- punbb-1.2/upload/lang/English/common.php Thu Jan 6 17:30:30 2005 +++ punbb-1.2.9/upload/lang/English/common.php Wed Jan 12 00:45:28 2005 @@ -146,7 +146,7 @@ 'Debug table' => 'Debug information', // For extern.php RSS feed -'RSS Desc Active ' => 'The most recently active topics at', // board_title will be appended to this string +'RSS Desc Active' => 'The most recently active topics at', // board_title will be appended to this string 'RSS Desc New' => 'The newest topics at', // board_title will be appended to this string 'Posted' => 'Posted' // The date/time a topic was started diff -urN punbb-1.2/upload/lang/English/misc.php punbb-1.2.9/upload/lang/English/misc.php --- punbb-1.2/upload/lang/English/misc.php Sun Oct 31 20:50:28 2004 +++ punbb-1.2.9/upload/lang/English/misc.php Sun Jan 16 04:30:38 2005 @@ -9,7 +9,7 @@ 'Form e-mail disabled' => 'The user you are trying to send an e-mail to has disabled form e-mail.', 'No e-mail subject' => 'You must enter a subject.', 'No e-mail message' => 'You must enter a message.', -'Too long e-mail message' => 'Messages cannot be longer that 65535 characters (64 Kb).', +'Too long e-mail message' => 'Messages cannot be longer than 65535 characters (64 KB).', 'E-mail sent redirect' => 'E-mail sent. Redirecting …', 'Send e-mail to' => 'Send e-mail to', 'E-mail subject' => 'Subject', diff -urN punbb-1.2/upload/lang/English/profile.php punbb-1.2.9/upload/lang/English/profile.php --- punbb-1.2/upload/lang/English/profile.php Wed Nov 3 21:45:54 2004 +++ punbb-1.2.9/upload/lang/English/profile.php Fri Jan 14 22:48:58 2005 @@ -46,6 +46,7 @@ 'Avatars disabled' => 'The administrator has disabled avatar support.', 'Too large ini' => 'The selected file was too large to upload. The server didn\'t allow the upload.', 'Partial upload' => 'The selected file was only partially uploaded. Please try again.', +'No tmp directory' => 'PHP was unable to save the uploaded file to a temporary location.', 'No file' => 'You did not select a file for upload.', 'Bad type' => 'The file you tried to upload is not of an allowed type. Allowed types are gif, jpeg and png.', 'Too wide or high' => 'The file you tried to upload is wider and/or higher than the maximum allowed', diff -urN punbb-1.2/upload/login.php punbb-1.2.9/upload/login.php --- punbb-1.2/upload/login.php Fri Dec 31 15:40:34 2004 +++ punbb-1.2.9/upload/login.php Thu Sep 22 00:36:08 2005 @@ -40,7 +40,9 @@ $form_username = trim($_POST['req_username']); $form_password = trim($_POST['req_password']); - $result = $db->query('SELECT id, group_id, password, save_pass FROM '.$db->prefix.'users WHERE username=\''.$db->escape($form_username).'\'') or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); + $username_sql = ($db_type == 'mysql' || $db_type == 'mysqli') ? 'username=\''.$db->escape($form_username).'\'' : 'LOWER(username)=LOWER(\''.$db->escape($form_username).'\')'; + + $result = $db->query('SELECT id, group_id, password, save_pass FROM '.$db->prefix.'users WHERE '.$username_sql) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); list($user_id, $group_id, $db_password_hash, $save_pass) = $db->fetch_row($result); $authorized = false; @@ -91,6 +93,10 @@ // Remove user from "users online" list. $db->query('DELETE FROM '.$db->prefix.'online WHERE user_id='.$pun_user['id']) or error('Unable to delete from online list', __FILE__, __LINE__, $db->error()); + // Update last_visit (make sure there's something to update it with) + if (isset($pun_user['logged'])) + $db->query('UPDATE '.$db->prefix.'users SET last_visit='.$pun_user['logged'].' WHERE id='.$pun_user['id']) or error('Unable to update user visit data', __FILE__, __LINE__, $db->error()); + pun_setcookie(1, random_pass(8), time() + 31536000); redirect('index.php', $lang_login['Logout redirect']); @@ -147,7 +153,7 @@ message($lang_login['Forget mail'].' '.$pun_config['o_admin_email'].'.'); } else - message($lang_login['No e-mail match'].' '.$email.'.'); + message($lang_login['No e-mail match'].' '.htmlspecialchars($email).'.'); } @@ -185,7 +191,7 @@ header('Location: index.php'); // Try to determine if the data in HTTP_REFERER is valid (if not, we redirect to index.php after login) -$redirect_url = (isset($_SERVER['HTTP_REFERER']) && preg_match('#^'.preg_quote($pun_config['o_base_url']).'/(.*?)\.php#i', $_SERVER['HTTP_REFERER'])) ? $_SERVER['HTTP_REFERER'] : 'index.php'; +$redirect_url = (isset($_SERVER['HTTP_REFERER']) && preg_match('#^'.preg_quote($pun_config['o_base_url']).'/(.*?)\.php#i', $_SERVER['HTTP_REFERER'])) ? htmlspecialchars($_SERVER['HTTP_REFERER']) : 'index.php'; $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_common['Login']; $required_fields = array('req_username' => $lang_common['Username'], 'req_password' => $lang_common['Password']); diff -urN punbb-1.2/upload/misc.php punbb-1.2.9/upload/misc.php --- punbb-1.2/upload/misc.php Fri Dec 31 15:40:34 2004 +++ punbb-1.2.9/upload/misc.php Sun Jul 3 13:54:30 2005 @@ -76,7 +76,7 @@ message($lang_common['No permission']); $recipient_id = intval($_GET['email']); - if ($recipient_id < 1) + if ($recipient_id < 2) message($lang_common['Bad request']); $result = $db->query('SELECT username, email, email_setting FROM '.$db->prefix.'users WHERE id='.$recipient_id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); @@ -118,7 +118,7 @@ require_once PUN_ROOT.'include/email.php'; - pun_mail($recipient_email, $mail_subject, $mail_message, $pun_user['username'].' <'.$pun_user['email'].'>'); + pun_mail($recipient_email, $mail_subject, $mail_message, '"'.str_replace('"', '', $pun_user['username']).'" <'.$pun_user['email'].'>'); redirect($_POST['redirect_url'], $lang_misc['E-mail sent redirect']); } @@ -245,7 +245,7 @@ else if (isset($_GET['subscribe'])) { - if ($pun_user['is_guest']) + if ($pun_user['is_guest'] || $pun_config['o_subscriptions'] != '1') message($lang_common['No permission']); $topic_id = intval($_GET['subscribe']); @@ -264,7 +264,7 @@ else if (isset($_GET['unsubscribe'])) { - if ($pun_user['is_guest']) + if ($pun_user['is_guest'] || $pun_config['o_subscriptions'] != '1') message($lang_common['No permission']); $topic_id = intval($_GET['unsubscribe']); diff -urN punbb-1.2/upload/moderate.php punbb-1.2.9/upload/moderate.php --- punbb-1.2/upload/moderate.php Fri Dec 31 15:40:34 2004 +++ punbb-1.2.9/upload/moderate.php Thu May 5 01:13:32 2005 @@ -50,7 +50,7 @@ $ip = $db->result($result); } - message('The IP address is: '.$ip.'
The host name is: '.gethostbyaddr($ip).'

Show more users for this IP'); + message('The IP address is: '.$ip.'
The host name is: '.@gethostbyaddr($ip).'

Show more users for this IP'); } @@ -98,6 +98,9 @@ { confirm_referrer('moderate.php'); + if (preg_match('/[^0-9,]/', $posts)) + message($lang_common['Bad request']); + // Delete the posts $db->query('DELETE FROM '.$db->prefix.'posts WHERE id IN('.$posts.')') or error('Unable to delete posts', __FILE__, __LINE__, $db->error()); @@ -278,8 +281,11 @@ { confirm_referrer('moderate.php'); + if (preg_match('/[^0-9,]/', $_POST['topics'])) + message($lang_common['Bad request']); + $topics = explode(',', $_POST['topics']); - $move_to_forum = intval($_POST['move_to_forum']); + $move_to_forum = isset($_POST['move_to_forum']) ? intval($_POST['move_to_forum']) : 0; if (empty($topics) || $move_to_forum < 1) message($lang_common['Bad request']); @@ -345,7 +351,7 @@

+
@@ -524,6 +530,9 @@ $result = $db->query('SELECT group_id, username FROM '.$db->prefix.'users WHERE id='.$id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); list($group_id, $username) = $db->fetch_row($result); + if ($group_id == PUN_ADMIN) + message('Administrators cannot be deleted. In order to delete this user, you must first move him/her to a different user group.'); + if (isset($_POST['delete_user_comply'])) { // If the user is a moderator or an administrator, we remove him/her from the moderator list in all forums as well @@ -601,7 +610,7 @@
-

+

@@ -654,7 +663,7 @@ { case 'essentials': { - $form = extract_elements(array('timezone', 'language', 'style')); + $form = extract_elements(array('timezone', 'language')); if ($pun_user['g_id'] < PUN_GUEST) { @@ -701,6 +710,14 @@ message($lang_common['Invalid e-mail']); } + // Make sure we got a valid language string + if (isset($form['language'])) + { + $form['language'] = preg_replace('#[\.\\\/]#', '', $form['language']); + if (!file_exists(PUN_ROOT.'lang/'.$form['language'].'/common.php')) + message($lang_common['Bad request']); + } + break; } @@ -708,7 +725,7 @@ { $form = extract_elements(array('realname', 'url', 'location')); - if ($pun_user['g_id'] < PUN_GUEST) + if ($pun_user['g_id'] == PUN_ADMIN) $form['title'] = trim($_POST['title']); else if ($pun_user['g_set_title'] == '1') { @@ -792,7 +809,7 @@ { $form = extract_elements(array('email_setting', 'save_pass', 'notify_with_post')); - $form['email_setting'] == intval($form['email_setting']); + $form['email_setting'] = intval($form['email_setting']); if ($form['email_setting'] < 0 && $form['email_setting'] > 2) $form['email_setting'] = 1; if (!isset($form['save_pass']) || $form['save_pass'] != '1') $form['save_pass'] = '0'; @@ -814,13 +831,17 @@ // Singlequotes around non-empty values and NULL for empty values + $temp = array(); while (list($key, $input) = @each($form)) { - $value = ($input != '') ? '\''.$db->escape($input).'\'' : 'NULL'; + $value = ($input !== '') ? '\''.$db->escape($input).'\'' : 'NULL'; $temp[] = $key.'='.$value; } + if (empty($temp)) + message($lang_common['Bad request']); + $db->query('UPDATE '.$db->prefix.'users SET '.implode(',', $temp).' WHERE id='.$id) or error('Unable to update profile', __FILE__, __LINE__, $db->error()); @@ -861,7 +882,7 @@ } -$result = $db->query('SELECT u.username, u.email, u.title, u.realname, u.url, u.jabber, u.icq, u.msn, u.aim, u.yahoo, u.location, u.use_avatar, u.signature, u.disp_topics, u.disp_posts, u.email_setting, u.save_pass, u.notify_with_post, u.show_smilies, u.show_img, u.show_img_sig, u.show_avatars, u.show_sig, u.timezone, u.style, u.num_posts, u.last_post, u.registered, u.registration_ip, u.admin_note, g.g_id, g.g_user_title FROM '.$db->prefix.'users AS u LEFT JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id WHERE u.id='.$id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); +$result = $db->query('SELECT u.username, u.email, u.title, u.realname, u.url, u.jabber, u.icq, u.msn, u.aim, u.yahoo, u.location, u.use_avatar, u.signature, u.disp_topics, u.disp_posts, u.email_setting, u.save_pass, u.notify_with_post, u.show_smilies, u.show_img, u.show_img_sig, u.show_avatars, u.show_sig, u.timezone, u.language, u.style, u.num_posts, u.last_post, u.registered, u.registration_ip, u.admin_note, g.g_id, g.g_user_title FROM '.$db->prefix.'users AS u LEFT JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id WHERE u.id='.$id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); if (!$db->num_rows($result)) message($lang_common['Bad request']); @@ -963,7 +984,7 @@
:
-
+
:
:
@@ -1125,7 +1146,7 @@ $d = dir(PUN_ROOT.'lang'); while (($entry = $d->read()) !== false) { - if ($entry != '.' && $entry != '..' && is_dir(PUN_ROOT.'lang/'.$entry)) + if ($entry != '.' && $entry != '..' && is_dir(PUN_ROOT.'lang/'.$entry) && file_exists(PUN_ROOT.'lang/'.$entry.'/common.php')) $languages[] = $entry; } $d->close(); @@ -1133,6 +1154,7 @@ // Only display the language selection box if there's more than one language available if (count($languages) > 1) { + natsort($languages); ?>
@@ -1344,6 +1366,7 @@ echo "\t\t\t".'
'."\n"; else if (count($styles) > 1) { + natsort($styles); ?>
@@ -1393,10 +1416,9 @@
-

-
+

@@ -1483,6 +1505,8 @@ } else { + if ($pun_user['id'] != $id) + { ?> @@ -1490,15 +1514,15 @@ @@ -1508,6 +1532,11 @@
+
   @@ -1516,7 +1545,7 @@
diff -urN punbb-1.2/upload/register.php punbb-1.2.9/upload/register.php --- punbb-1.2/upload/register.php Fri Dec 31 15:40:34 2004 +++ punbb-1.2.9/upload/register.php Tue Aug 30 02:45:44 2005 @@ -125,7 +125,7 @@ } // Check that the username (or a too similar username) is not already registered - $result = $db->query('SELECT username FROM '.$db->prefix.'users WHERE username=\''.$db->escape($username).'\' OR username=\''.$db->escape(preg_replace('/[^\w]/', '', $username)).'\'') or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); + $result = $db->query('SELECT username FROM '.$db->prefix.'users WHERE UPPER(username)=UPPER(\''.$db->escape($username).'\') OR UPPER(username)=UPPER(\''.$db->escape(preg_replace('/[^\w]/', '', $username)).'\')') or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); if ($db->num_rows($result)) { @@ -171,7 +171,7 @@ $save_pass = (!isset($_POST['save_pass']) || $_POST['save_pass'] != '1') ? '0' : '1'; $email_setting = intval($_POST['email_setting']); - if ($email_setting < 0 && $email_setting > 2) $email_setting = 1; + if ($email_setting < 0 || $email_setting > 2) $email_setting = 1; // Insert the new user into the database. We do this now to get the last inserted id for later use. $now = time(); @@ -180,7 +180,7 @@ $password_hash = pun_hash($password1); // Add the user - $db->query('INSERT INTO '.$db->prefix.'users (username, group_id, password, email, email_setting, save_pass, timezone, language, style, registered, registration_ip, last_visit) VALUES(\''.$db->escape($username).'\', '.$intial_group_id.', \''.$password_hash.'\', \''.$email1.'\', '.$email_setting.', '.$save_pass.', '.$timezone.' , \''.$language.'\', \''.$pun_config['o_default_style'].'\', '.$now.', \''.get_remote_address().'\', '.$now.')') or error('Unable to create user', __FILE__, __LINE__, $db->error()); + $db->query('INSERT INTO '.$db->prefix.'users (username, group_id, password, email, email_setting, save_pass, timezone, language, style, registered, registration_ip, last_visit) VALUES(\''.$db->escape($username).'\', '.$intial_group_id.', \''.$password_hash.'\', \''.$email1.'\', '.$email_setting.', '.$save_pass.', '.$timezone.' , \''.$db->escape($language).'\', \''.$pun_config['o_default_style'].'\', '.$now.', \''.get_remote_address().'\', '.$now.')') or error('Unable to create user', __FILE__, __LINE__, $db->error()); $new_uid = $db->insert_id(); @@ -337,7 +337,7 @@ $d = dir(PUN_ROOT.'lang'); while (($entry = $d->read()) !== false) { - if ($entry != '.' && $entry != '..' && is_dir(PUN_ROOT.'lang/'.$entry)) + if ($entry != '.' && $entry != '..' && is_dir(PUN_ROOT.'lang/'.$entry) && file_exists(PUN_ROOT.'lang/'.$entry.'/common.php')) $languages[] = $entry; } $d->close(); diff -urN punbb-1.2/upload/search.php punbb-1.2.9/upload/search.php --- punbb-1.2/upload/search.php Fri Jan 7 15:25:44 2005 +++ punbb-1.2.9/upload/search.php Sun Oct 16 11:48:28 2005 @@ -51,6 +51,7 @@ $action = (isset($_GET['action'])) ? $_GET['action'] : null; $forum = (isset($_GET['forum'])) ? intval($_GET['forum']) : -1; $sort_dir = (isset($_GET['sort_dir'])) ? (($_GET['sort_dir'] == 'DESC') ? 'DESC' : 'ASC') : 'DESC'; + if (isset($search_id)) unset($search_id); // If a search_id was supplied if (isset($_GET['search_id'])) @@ -62,8 +63,14 @@ // If it's a regular search (keywords and/or author) else if ($action == 'search') { - $keywords = (isset($_GET['keywords'])) ? trim($_GET['keywords']) : null; - $author = (isset($_GET['author'])) ? trim($_GET['author']) : null; + $keywords = (isset($_GET['keywords'])) ? strtolower(trim($_GET['keywords'])) : null; + $author = (isset($_GET['author'])) ? strtolower(trim($_GET['author'])) : null; + + if (preg_match('#^[\*%]+$#', $keywords) || strlen(str_replace(array('*', '%'), '', $keywords)) < 3) + $keywords = ''; + + if (preg_match('#^[\*%]+$#', $author) || strlen(str_replace(array('*', '%'), '', $author)) < 3) + $author = ''; if (!$keywords && !$author) message($lang_search['No terms']); @@ -162,7 +169,7 @@ } $word_count = 0; - $match_type = 'or'; + $match_type = 'and'; @reset($keywords_array); while (list(, $cur_word) = @each($keywords_array)) { @@ -297,7 +304,7 @@ $num_hits = count($search_ids); } - else if ($forum_sql != '') + else { $result = $db->query('SELECT p.id FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_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) AND p.id IN('.implode(',', $search_ids).')'.$forum_sql, true) or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error()); @@ -380,6 +387,7 @@ // Prune "old" search results + $old_searches = array(); $result = $db->query('SELECT ident FROM '.$db->prefix.'online') or error('Unable to fetch online list', __FILE__, __LINE__, $db->error()); if ($db->num_rows($result)) @@ -506,12 +514,6 @@
- - - - - - @@ -548,11 +550,11 @@ if ($show_as == 'posts') { - $icon = '
'.$lang_common['Normal icon'].'
'."\n"; + $icon = '
'.$lang_common['Normal icon'].'
'."\n"; $subject = ''.pun_htmlspecialchars($search_set[$i]['subject']).''; if (!$pun_user['is_guest'] && $search_set[$i]['last_post'] > $pun_user['last_visit']) - $icon = '
'.$lang_common['New icon'].'
'."\n"; + $icon = '
'.$lang_common['New icon'].'
'."\n"; if ($pun_config['o_censoring'] == '1') @@ -601,18 +603,28 @@ } else { - $icon = '
'.$lang_common['Normal icon'].'
'."\n"; + $icon = '
'.$lang_common['Normal icon'].'
'."\n"; + + $icon_text = $lang_common['Normal icon']; + $item_status = ''; + $icon_type = 'icon'; - if ($search_set[$i]['closed'] != '1') - $subject = ''.pun_htmlspecialchars($search_set[$i]['subject']).''.$lang_common['by'].' '.pun_htmlspecialchars($search_set[$i]['poster']).''; - else - $subject = ''.pun_htmlspecialchars($search_set[$i]['subject']).''.$lang_common['by'].' '.pun_htmlspecialchars($search_set[$i]['poster']).''; + + $subject = ''.pun_htmlspecialchars($search_set[$i]['subject']).''.$lang_common['by'].' '.pun_htmlspecialchars($search_set[$i]['poster']).''; + + if ($search_set[$i]['closed'] != '0') + { + $icon_text = $lang_common['Closed icon']; + $item_status = 'iclosed'; + } if (!$pun_user['is_guest'] && $search_set[$i]['last_post'] > $pun_user['last_visit']) { - $icon = '
'.$lang_common['New icon'].'
'."\n"; + $icon_text .= ' '.$lang_common['New icon']; + $item_status .= ' inew'; + $icon_type = 'icon inew'; $subject = ''.$subject.''; - $subject_new_posts = '[ '.$lang_common['New posts'].' ]'; + $subject_new_posts = ''.$lang_common['New posts'].' ]'; } else $subject_new_posts = null; @@ -632,10 +644,10 @@ } ?> - + >
- +
@@ -683,10 +695,9 @@
-

-
+

@@ -694,7 +705,6 @@
-

-
+

@@ -738,7 +748,6 @@
-

-
+

diff -urN punbb-1.2/upload/style/Cobalt.css punbb-1.2.9/upload/style/Cobalt.css --- punbb-1.2/upload/style/Cobalt.css Fri Jan 7 18:44:38 2005 +++ punbb-1.2.9/upload/style/Cobalt.css Wed Feb 2 02:01:52 2005 @@ -7,61 +7,56 @@ /* Import the colour scheme */ @import url(imports/Cobalt_cs.css); -/****************************************************************/ -/* 2. TEXT SETTINGS */ -/****************************************************************/ - -/* 2.1 This sets the default Font Group */ - -.pun, .pun INPUT, .pun SELECT, .pun TEXTAREA, .pun OPTGROUP { - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif -} - -.pun {FONT-SIZE: 10px} - -/* IEWin Font Size only - to allow IEWin to zoom. Do not remove comments \*/ -* HTML BODY .pun {FONT-SIZE: 62.5%} -/* End IE Win Font Size */ - -/* Set font size for tables for IE5 */ -* HTML .pun TABLE {FONT-SIZE: 1em} - -/* 2.2 Set the font-size for preformatted text i.e in code boxes */ - -.pun PRE {FONT-FAMILY: monaco, "Bitstream Vera Sans Mono", "Courier New", courier, monospace} - -/* 2.3 Font size for board title */ - -#brdtitle H1 {FONT-SIZE: 1.5em} - -/* 2.4 Larger text for particular items */ - -.pun H2, #viewprofile DL, #brdmenu, DIV.postmsg P, DIV.forminfo P, #puninstall DIV.block P, DIV.postsignature, -DIV.linkst LI, P.postlink, DIV.postmsg H4 {FONT-SIZE: 1.1em} - -.pun H3, .pun PRE, DIV.postleft DT {FONT-SIZE: 1.2em} - -/* 2.5 Font sizes for form elements. */ - -.pun TEXTAREA, .pun LEGEND, .pun LABEL, .pun INPUT, .pun SELECT, .pun OPTGROUP {FONT-SIZE: 1.1em} -.pun LABEL INPUT, .pun LABEL TEXTAREA, .pun LABEL SELECT, .pun LABEL OPTGROUP {font-size: 1em} - -/* 2.6 Bold text */ - -DIV.postleft DT, DIV.postmsg H4, TD.tcl H3, DIV.forminfo H3, P.postlink, DIV.linkst LI, -.blockmenu LI, #brdtitle H1 {FONT-WEIGHT: bold} - - +/****************************************************************/ +/* 2. TEXT SETTINGS */ +/****************************************************************/ + +/* 2.1 This sets the default Font Group */ + +.pun, .pun INPUT, .pun SELECT, .pun TEXTAREA, .pun OPTGROUP { + FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif +} + +.pun {FONT-SIZE: 11px; LINE-HEIGHT: normal} + +/* IEWin Font Size only - to allow IEWin to zoom. Do not remove comments \*/ +* HTML .pun {FONT-SIZE: 68.75%} +/* End IE Win Font Size */ + +/* Set font size for tables because IE requires it */ +.pun TABLE, .pun INPUT, .pun SELECT, .pun OPTGROUP, .pun TEXTAREA, DIV.postmsg P.postedit {FONT-SIZE: 1em} + +/* 2.2 Set the font-size for preformatted text i.e in code boxes */ + +.pun PRE {FONT-FAMILY: monaco, "Bitstream Vera Sans Mono", "Courier New", courier, monospace} + +/* 2.3 Font size for headers */ + +.pun H2, .pun H4 {FONT-SIZE: 1em} +.pun H3 {FONT-SIZE: 1.1em} +#brdtitle H1 {FONT-SIZE: 1.4em} + +/* 2.4 Larger text for particular items */ +DIV.postmsg P {LINE-HEIGHT: 1.4} +DIV.postleft DT {FONT-SIZE: 1.1em} +.pun PRE {FONT-SIZE: 1.2em} + +/* 2.5 Bold text */ + +DIV.postleft DT, DIV.postmsg H4, TD.tcl H3, DIV.forminfo H3, P.postlink, DIV.linkst LI, +DIV.linksb LI, DIV.postlinksb LI, .blockmenu LI, #brdtitle H1, .pun SPAN.warntext, .pun P.warntext {FONT-WEIGHT: bold} + /****************************************************************/ /* 3. LINKS */ /****************************************************************/ /* 3.1 Remove underlining for main menu, post header links, post links and vertical menus */ -#brdmenu A:link, #brdmenu A:visited, -.blockpost DT A:link, .blockpost DT A:visited, .blockpost H2 A:link, .blockpost H2 A:visited, -.postlink A:link, .postlink A:visited, .postfootright A:link, .postfootright A:visited, .blockmenu A:link, .blockmenu A:visited -{TEXT-DECORATION: none} +#brdmenu A:link, #brdmenu A:visited, .blockpost DT A:link, .blockpost DT A:visited, .blockpost H2 A:link, +.blockpost H2 A:visited, .postlink A:link, .postlink A:visited, .postfootright A:link, .postfootright A:visited, +.blockmenu A:link, .blockmenu A:visited { + TEXT-DECORATION: none +} /* 3.2 Underline on hover for links in headers and main menu */ @@ -97,7 +92,7 @@ BORDER-STYLE: solid; BORDER-WIDTH: 1px } - + /****************************************************************/ /* 5. VERTICAL AND PAGE SPACING */ /****************************************************************/ @@ -187,7 +182,7 @@ } P.multidelete { - PADDING-TOP: 10px; + PADDING-TOP: 15px; PADDING-BOTTOM: 5px } @@ -226,7 +221,32 @@ /* 9.5 Horizontal positioning for the submit button on forms */ DIV.blockform P INPUT {MARGIN-LEFT: 12px} - + +/****************************************************************/ +/* 10. POST STATUS INDICATORS */ +/****************************************************************/ + +/* 10.1 These are the post status indicators which appear at the left of some tables. +.inew = new posts, .iredirect = redirect forums, .iclosed = closed topics and +.isticky = sticky topics. By default only .inew is different from the default.*/ + +DIV.icon { + FLOAT: left; + MARGIN-TOP: 0.1em; + MARGIN-LEFT: 0.2em; + DISPLAY: block; + BORDER-WIDTH: 0.6em 0.6em 0.6em 0.6em; + BORDER-STYLE: solid +} + +DIV.searchposts DIV.icon {MARGIN-LEFT: 0} + +/* 10.2 Class .tclcon is a div inside the first column of tables with post indicators. The +margin creates space for the post status indicator */ + +TD DIV.tclcon {MARGIN-LEFT: 2.3em} + + diff -urN punbb-1.2/upload/style/Lithium.css punbb-1.2.9/upload/style/Lithium.css --- punbb-1.2/upload/style/Lithium.css Fri Jan 7 18:44:54 2005 +++ punbb-1.2.9/upload/style/Lithium.css Wed Feb 2 02:01:52 2005 @@ -6,51 +6,45 @@ @import url(imports/base.css); /* Import the colour scheme */ @import url(imports/Lithium_cs.css); - -/****************************************************************/ -/* 2. TEXT SETTINGS */ -/****************************************************************/ - -/* 2.1 This sets the default Font Group */ - -.pun, .pun INPUT, .pun SELECT, .pun TEXTAREA, .pun OPTGROUP { - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif -} - -.pun {FONT-SIZE: 10px} - -/* IEWin Font Size only - to allow IEWin to zoom. Do not remove comments \*/ -* HTML BODY .pun {FONT-SIZE: 62.5%} -/* End IE Win Font Size */ - -/* Set font size for tables for IE5 */ -* HTML .pun TABLE {FONT-SIZE: 1em} - -/* 2.2 Set the font-size for preformatted text i.e in code boxes */ - -.pun PRE {FONT-FAMILY: monaco, "Bitstream Vera Sans Mono", "Courier New", courier, monospace} - -/* 2.3 Font size for board title */ - -#brdtitle H1 {FONT-SIZE: 1.5em} - -/* 2.4 Larger text for particular items */ - -.pun H2, #viewprofile DL, #brdmenu, DIV.postmsg P, DIV.forminfo P, #puninstall DIV.block P, DIV.postsignature, -DIV.linkst LI, P.postlink, DIV.postmsg H4 {FONT-SIZE: 1.1em} - -.pun H3, .pun PRE, DIV.postleft DT {FONT-SIZE: 1.2em} - -/* 2.5 Font sizes for form elements. */ - -.pun TEXTAREA, .pun LEGEND, .pun LABEL, .pun INPUT, .pun SELECT, .pun OPTGROUP {FONT-SIZE: 1.1em} -.pun LABEL INPUT, .pun LABEL TEXTAREA, .pun LABEL SELECT, .pun LABEL OPTGROUP {font-size: 1em} - -/* 2.6 Bold text */ - -DIV.postleft DT, DIV.postmsg H4, TD.tcl H3, DIV.forminfo H3, P.postlink, DIV.linkst LI, -.blockmenu LI, #brdtitle H1 {FONT-WEIGHT: bold} - + +/****************************************************************/ +/* 2. TEXT SETTINGS */ +/****************************************************************/ + +/* 2.1 This sets the default Font Group */ + +.pun, .pun INPUT, .pun SELECT, .pun TEXTAREA, .pun OPTGROUP { + FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif +} + +.pun {FONT-SIZE: 11px; LINE-HEIGHT: normal} + +/* IEWin Font Size only - to allow IEWin to zoom. Do not remove comments \*/ +* HTML .pun {FONT-SIZE: 68.75%} +/* End IE Win Font Size */ + +/* Set font size for tables because IE requires it */ +.pun TABLE, .pun INPUT, .pun SELECT, .pun OPTGROUP, .pun TEXTAREA, DIV.postmsg P.postedit {FONT-SIZE: 1em} + +/* 2.2 Set the font-size for preformatted text i.e in code boxes */ + +.pun PRE {FONT-FAMILY: monaco, "Bitstream Vera Sans Mono", "Courier New", courier, monospace} + +/* 2.3 Font size for headers */ + +.pun H2, .pun H4 {FONT-SIZE: 1em} +.pun H3 {FONT-SIZE: 1.1em} +#brdtitle H1 {FONT-SIZE: 1.4em} + +/* 2.4 Larger text for particular items */ +DIV.postmsg P {LINE-HEIGHT: 1.4} +DIV.postleft DT {FONT-SIZE: 1.1em} +.pun PRE {FONT-SIZE: 1.2em} + +/* 2.5 Bold text */ + +DIV.postleft DT, DIV.postmsg H4, TD.tcl H3, DIV.forminfo H3, P.postlink, DIV.linkst LI, +DIV.linksb LI, DIV.postlinksb LI, .blockmenu LI, #brdtitle H1, .pun SPAN.warntext, .pun P.warntext {FONT-WEIGHT: bold} /****************************************************************/ /* 3. LINKS */ @@ -58,10 +52,11 @@ /* 3.1 Remove underlining for main menu, post header links, post links and vertical menus */ -#brdmenu A:link, #brdmenu A:visited, -.blockpost DT A:link, .blockpost DT A:visited, .blockpost H2 A:link, .blockpost H2 A:visited, -.postlink A:link, .postlink A:visited, .postfootright A:link, .postfootright A:visited, .blockmenu A:link, .blockmenu A:visited -{TEXT-DECORATION: none} +#brdmenu A:link, #brdmenu A:visited, .blockpost DT A:link, .blockpost DT A:visited, .blockpost H2 A:link, +.blockpost H2 A:visited, .postlink A:link, .postlink A:visited, .postfootright A:link, .postfootright A:visited, +.blockmenu A:link, .blockmenu A:visited { + TEXT-DECORATION: none +} /* 3.2 Underline on hover for links in headers and main menu */ @@ -97,7 +92,7 @@ BORDER-STYLE: solid; BORDER-WIDTH: 1px } - + /****************************************************************/ /* 5. VERTICAL AND PAGE SPACING */ /****************************************************************/ @@ -187,7 +182,7 @@ } P.multidelete { - PADDING-TOP: 10px; + PADDING-TOP: 15px; PADDING-BOTTOM: 5px } @@ -226,7 +221,32 @@ /* 9.5 Horizontal positioning for the submit button on forms */ DIV.blockform P INPUT {MARGIN-LEFT: 12px} - + +/****************************************************************/ +/* 10. POST STATUS INDICATORS */ +/****************************************************************/ + +/* 10.1 These are the post status indicators which appear at the left of some tables. +.inew = new posts, .iredirect = redirect forums, .iclosed = closed topics and +.isticky = sticky topics. By default only .inew is different from the default.*/ + +DIV.icon { + FLOAT: left; + MARGIN-TOP: 0.1em; + MARGIN-LEFT: 0.2em; + DISPLAY: block; + BORDER-WIDTH: 0.6em 0.6em 0.6em 0.6em; + BORDER-STYLE: solid +} + +DIV.searchposts DIV.icon {MARGIN-LEFT: 0} + +/* 10.2 Class .tclcon is a div inside the first column of tables with post indicators. The +margin creates space for the post status indicator */ + +TD DIV.tclcon {MARGIN-LEFT: 2.3em} + + diff -urN punbb-1.2/upload/style/Mercury.css punbb-1.2.9/upload/style/Mercury.css --- punbb-1.2/upload/style/Mercury.css Fri Jan 7 18:45:08 2005 +++ punbb-1.2.9/upload/style/Mercury.css Wed Feb 2 02:01:52 2005 @@ -7,61 +7,56 @@ /* Import the colour scheme */ @import url(imports/Mercury_cs.css); -/****************************************************************/ -/* 2. TEXT SETTINGS */ -/****************************************************************/ - -/* 2.1 This sets the default Font Group */ - -.pun, .pun INPUT, .pun SELECT, .pun TEXTAREA, .pun OPTGROUP { - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif -} - -.pun {FONT-SIZE: 10px} - -/* IEWin Font Size only - to allow IEWin to zoom. Do not remove comments \*/ -* HTML BODY .pun {FONT-SIZE: 62.5%} -/* End IE Win Font Size */ - -/* Set font size for tables for IE5 */ -* HTML .pun TABLE {FONT-SIZE: 1em} - -/* 2.2 Set the font-size for preformatted text i.e in code boxes */ - -.pun PRE {FONT-FAMILY: monaco, "Bitstream Vera Sans Mono", "Courier New", courier, monospace} - -/* 2.3 Font size for board title */ - -#brdtitle H1 {FONT-SIZE: 1.5em} - -/* 2.4 Larger text for particular items */ - -.pun H2, #viewprofile DL, #brdmenu, DIV.postmsg P, DIV.forminfo P, #puninstall DIV.block P, DIV.postsignature, -DIV.linkst LI, P.postlink, DIV.postmsg H4 {FONT-SIZE: 1.1em} - -.pun H3, .pun PRE, DIV.postleft DT {FONT-SIZE: 1.2em} - -/* 2.5 Font sizes for form elements. */ - -.pun TEXTAREA, .pun LEGEND, .pun LABEL, .pun INPUT, .pun SELECT, .pun OPTGROUP {FONT-SIZE: 1.1em} -.pun LABEL INPUT, .pun LABEL TEXTAREA, .pun LABEL SELECT, .pun LABEL OPTGROUP {font-size: 1em} - -/* 2.6 Bold text */ - -DIV.postleft DT, DIV.postmsg H4, TD.tcl H3, DIV.forminfo H3, P.postlink, DIV.linkst LI, -.blockmenu LI, #brdtitle H1 {FONT-WEIGHT: bold} - - +/****************************************************************/ +/* 2. TEXT SETTINGS */ +/****************************************************************/ + +/* 2.1 This sets the default Font Group */ + +.pun, .pun INPUT, .pun SELECT, .pun TEXTAREA, .pun OPTGROUP { + FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif +} + +.pun {FONT-SIZE: 11px; LINE-HEIGHT: normal} + +/* IEWin Font Size only - to allow IEWin to zoom. Do not remove comments \*/ +* HTML .pun {FONT-SIZE: 68.75%} +/* End IE Win Font Size */ + +/* Set font size for tables because IE requires it */ +.pun TABLE, .pun INPUT, .pun SELECT, .pun OPTGROUP, .pun TEXTAREA, DIV.postmsg P.postedit {FONT-SIZE: 1em} + +/* 2.2 Set the font-size for preformatted text i.e in code boxes */ + +.pun PRE {FONT-FAMILY: monaco, "Bitstream Vera Sans Mono", "Courier New", courier, monospace} + +/* 2.3 Font size for headers */ + +.pun H2, .pun H4 {FONT-SIZE: 1em} +.pun H3 {FONT-SIZE: 1.1em} +#brdtitle H1 {FONT-SIZE: 1.4em} + +/* 2.4 Larger text for particular items */ +DIV.postmsg P {LINE-HEIGHT: 1.4} +DIV.postleft DT {FONT-SIZE: 1.1em} +.pun PRE {FONT-SIZE: 1.2em} + +/* 2.5 Bold text */ + +DIV.postleft DT, DIV.postmsg H4, TD.tcl H3, DIV.forminfo H3, P.postlink, DIV.linkst LI, +DIV.linksb LI, DIV.postlinksb LI, .blockmenu LI, #brdtitle H1, .pun SPAN.warntext, .pun P.warntext {FONT-WEIGHT: bold} + /****************************************************************/ /* 3. LINKS */ /****************************************************************/ /* 3.1 Remove underlining for main menu, post header links, post links and vertical menus */ -#brdmenu A:link, #brdmenu A:visited, -.blockpost DT A:link, .blockpost DT A:visited, .blockpost H2 A:link, .blockpost H2 A:visited, -.postlink A:link, .postlink A:visited, .postfootright A:link, .postfootright A:visited, .blockmenu A:link, .blockmenu A:visited -{TEXT-DECORATION: none} +#brdmenu A:link, #brdmenu A:visited, .blockpost DT A:link, .blockpost DT A:visited, .blockpost H2 A:link, +.blockpost H2 A:visited, .postlink A:link, .postlink A:visited, .postfootright A:link, .postfootright A:visited, +.blockmenu A:link, .blockmenu A:visited { + TEXT-DECORATION: none +} /* 3.2 Underline on hover for links in headers and main menu */ @@ -97,7 +92,7 @@ BORDER-STYLE: solid; BORDER-WIDTH: 1px } - + /****************************************************************/ /* 5. VERTICAL AND PAGE SPACING */ /****************************************************************/ @@ -187,7 +182,7 @@ } P.multidelete { - PADDING-TOP: 10px; + PADDING-TOP: 15px; PADDING-BOTTOM: 5px } @@ -226,7 +221,32 @@ /* 9.5 Horizontal positioning for the submit button on forms */ DIV.blockform P INPUT {MARGIN-LEFT: 12px} - + +/****************************************************************/ +/* 10. POST STATUS INDICATORS */ +/****************************************************************/ + +/* 10.1 These are the post status indicators which appear at the left of some tables. +.inew = new posts, .iredirect = redirect forums, .iclosed = closed topics and +.isticky = sticky topics. By default only .inew is different from the default.*/ + +DIV.icon { + FLOAT: left; + MARGIN-TOP: 0.1em; + MARGIN-LEFT: 0.2em; + DISPLAY: block; + BORDER-WIDTH: 0.6em 0.6em 0.6em 0.6em; + BORDER-STYLE: solid +} + +DIV.searchposts DIV.icon {MARGIN-LEFT: 0} + +/* 10.2 Class .tclcon is a div inside the first column of tables with post indicators. The +margin creates space for the post status indicator */ + +TD DIV.tclcon {MARGIN-LEFT: 2.3em} + + diff -urN punbb-1.2/upload/style/Oxygen.css punbb-1.2.9/upload/style/Oxygen.css --- punbb-1.2/upload/style/Oxygen.css Fri Jan 7 18:44:16 2005 +++ punbb-1.2.9/upload/style/Oxygen.css Wed Feb 2 02:01:52 2005 @@ -17,40 +17,34 @@ FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif } -.pun {FONT-SIZE: 10px} +.pun {FONT-SIZE: 11px; LINE-HEIGHT: normal} /* IEWin Font Size only - to allow IEWin to zoom. Do not remove comments \*/ -* HTML BODY .pun {FONT-SIZE: 62.5%} +* HTML .pun {FONT-SIZE: 68.75%} /* End IE Win Font Size */ -/* Set font size for tables for IE5 */ -* HTML .pun TABLE {FONT-SIZE: 1em} - +/* Set font size for tables because IE requires it */ +.pun TABLE, .pun INPUT, .pun SELECT, .pun OPTGROUP, .pun TEXTAREA, DIV.postmsg P.postedit {FONT-SIZE: 1em} + /* 2.2 Set the font-size for preformatted text i.e in code boxes */ .pun PRE {FONT-FAMILY: monaco, "Bitstream Vera Sans Mono", "Courier New", courier, monospace} -/* 2.3 Font size for board title */ - -#brdtitle H1 {FONT-SIZE: 1.5em} +/* 2.3 Font size for headers */ + +.pun H2, .pun H4 {FONT-SIZE: 1em} +.pun H3 {FONT-SIZE: 1.1em} +#brdtitle H1 {FONT-SIZE: 1.4em} /* 2.4 Larger text for particular items */ + DIV.postmsg P {LINE-HEIGHT: 1.4} +DIV.postleft DT {FONT-SIZE: 1.1em} +.pun PRE {FONT-SIZE: 1.2em} -.pun H2, #viewprofile DL, #brdmenu, DIV.postmsg P, DIV.forminfo P, #puninstall DIV.block P, DIV.postsignature, -DIV.linkst LI, P.postlink, DIV.postmsg H4 {FONT-SIZE: 1.1em} - -.pun H3, .pun PRE, DIV.postleft DT {FONT-SIZE: 1.2em} - -/* 2.5 Font sizes for form elements. */ - -.pun TEXTAREA, .pun LEGEND, .pun LABEL, .pun INPUT, .pun SELECT, .pun OPTGROUP {FONT-SIZE: 1.1em} -.pun LABEL INPUT, .pun LABEL TEXTAREA, .pun LABEL SELECT, .pun LABEL OPTGROUP {font-size: 1em} - -/* 2.6 Bold text */ - -DIV.postleft DT, DIV.postmsg H4, TD.tcl H3, DIV.forminfo H3, P.postlink, DIV.linkst LI, -.blockmenu LI, #brdtitle H1 {FONT-WEIGHT: bold} +/* 2.5 Bold text */ +DIV.postleft DT, DIV.postmsg H4, TD.tcl H3, DIV.forminfo H3, P.postlink, DIV.linkst LI, +DIV.linksb LI, DIV.postlinksb LI, .blockmenu LI, #brdtitle H1, .pun SPAN.warntext, .pun P.warntext {FONT-WEIGHT: bold} /****************************************************************/ /* 3. LINKS */ @@ -58,10 +52,11 @@ /* 3.1 Remove underlining for main menu, post header links, post links and vertical menus */ -#brdmenu A:link, #brdmenu A:visited, -.blockpost DT A:link, .blockpost DT A:visited, .blockpost H2 A:link, .blockpost H2 A:visited, -.postlink A:link, .postlink A:visited, .postfootright A:link, .postfootright A:visited, .blockmenu A:link, .blockmenu A:visited -{TEXT-DECORATION: none} +#brdmenu A:link, #brdmenu A:visited, .blockpost DT A:link, .blockpost DT A:visited, .blockpost H2 A:link, +.blockpost H2 A:visited, .postlink A:link, .postlink A:visited, .postfootright A:link, .postfootright A:visited, +.blockmenu A:link, .blockmenu A:visited { + TEXT-DECORATION: none +} /* 3.2 Underline on hover for links in headers and main menu */ @@ -97,7 +92,7 @@ BORDER-STYLE: solid; BORDER-WIDTH: 1px } - + /****************************************************************/ /* 5. VERTICAL AND PAGE SPACING */ /****************************************************************/ @@ -226,7 +221,32 @@ /* 9.5 Horizontal positioning for the submit button on forms */ DIV.blockform P INPUT {MARGIN-LEFT: 12px} - + +/****************************************************************/ +/* 10. POST STATUS INDICATORS */ +/****************************************************************/ + +/* 10.1 These are the post status indicators which appear at the left of some tables. +.inew = new posts, .iredirect = redirect forums, .iclosed = closed topics and +.isticky = sticky topics. By default only .inew is different from the default.*/ + +DIV.icon { + FLOAT: left; + MARGIN-TOP: 0.1em; + MARGIN-LEFT: 0.2em; + DISPLAY: block; + BORDER-WIDTH: 0.6em 0.6em 0.6em 0.6em; + BORDER-STYLE: solid +} + +DIV.searchposts DIV.icon {MARGIN-LEFT: 0} + +/* 10.2 Class .tclcon is a div inside the first column of tables with post indicators. The +margin creates space for the post status indicator */ + +TD DIV.tclcon {MARGIN-LEFT: 2.3em} + + diff -urN punbb-1.2/upload/style/Radium.css punbb-1.2.9/upload/style/Radium.css --- punbb-1.2/upload/style/Radium.css Fri Jan 7 18:45:24 2005 +++ punbb-1.2.9/upload/style/Radium.css Wed Feb 2 02:01:52 2005 @@ -7,61 +7,56 @@ /* Import the colour scheme */ @import url(imports/Radium_cs.css); -/****************************************************************/ -/* 2. TEXT SETTINGS */ -/****************************************************************/ - -/* 2.1 This sets the default Font Group */ - -.pun, .pun INPUT, .pun SELECT, .pun TEXTAREA, .pun OPTGROUP { - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif -} - -.pun {FONT-SIZE: 10px} - -/* IEWin Font Size only - to allow IEWin to zoom. Do not remove comments \*/ -* HTML BODY .pun {FONT-SIZE: 62.5%} -/* End IE Win Font Size */ - -/* Set font size for tables for IE5 */ -* HTML .pun TABLE {FONT-SIZE: 1em} - -/* 2.2 Set the font-size for preformatted text i.e in code boxes */ - -.pun PRE {FONT-FAMILY: monaco, "Bitstream Vera Sans Mono", "Courier New", courier, monospace} - -/* 2.3 Font size for board title */ - -#brdtitle H1 {FONT-SIZE: 1.5em} - -/* 2.4 Larger text for particular items */ - -.pun H2, #viewprofile DL, #brdmenu, DIV.postmsg P, DIV.forminfo P, #puninstall DIV.block P, DIV.postsignature, -DIV.linkst LI, P.postlink, DIV.postmsg H4 {FONT-SIZE: 1.1em} - -.pun H3, .pun PRE, DIV.postleft DT {FONT-SIZE: 1.2em} - -/* 2.5 Font sizes for form elements. */ - -.pun TEXTAREA, .pun LEGEND, .pun LABEL, .pun INPUT, .pun SELECT, .pun OPTGROUP {FONT-SIZE: 1.1em} -.pun LABEL INPUT, .pun LABEL TEXTAREA, .pun LABEL SELECT, .pun LABEL OPTGROUP {font-size: 1em} - -/* 2.6 Bold text */ - -DIV.postleft DT, DIV.postmsg H4, TD.tcl H3, DIV.forminfo H3, P.postlink, DIV.linkst LI, -.blockmenu LI, #brdtitle H1 {FONT-WEIGHT: bold} - - +/****************************************************************/ +/* 2. TEXT SETTINGS */ +/****************************************************************/ + +/* 2.1 This sets the default Font Group */ + +.pun, .pun INPUT, .pun SELECT, .pun TEXTAREA, .pun OPTGROUP { + FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif +} + +.pun {FONT-SIZE: 11px; LINE-HEIGHT: normal} + +/* IEWin Font Size only - to allow IEWin to zoom. Do not remove comments \*/ +* HTML .pun {FONT-SIZE: 68.75%} +/* End IE Win Font Size */ + +/* Set font size for tables because IE requires it */ +.pun TABLE, .pun INPUT, .pun SELECT, .pun OPTGROUP, .pun TEXTAREA, DIV.postmsg P.postedit {FONT-SIZE: 1em} + +/* 2.2 Set the font-size for preformatted text i.e in code boxes */ + +.pun PRE {FONT-FAMILY: monaco, "Bitstream Vera Sans Mono", "Courier New", courier, monospace} + +/* 2.3 Font size for headers */ + +.pun H2, .pun H4 {FONT-SIZE: 1em} +.pun H3 {FONT-SIZE: 1.1em} +#brdtitle H1 {FONT-SIZE: 1.4em} + +/* 2.4 Larger text for particular items */ +DIV.postmsg P {LINE-HEIGHT: 1.4} +DIV.postleft DT {FONT-SIZE: 1.1em} +.pun PRE {FONT-SIZE: 1.2em} + +/* 2.5 Bold text */ + +DIV.postleft DT, DIV.postmsg H4, TD.tcl H3, DIV.forminfo H3, P.postlink, DIV.linkst LI, +DIV.linksb LI, DIV.postlinksb LI, .blockmenu LI, #brdtitle H1, .pun SPAN.warntext, .pun P.warntext {FONT-WEIGHT: bold} + /****************************************************************/ /* 3. LINKS */ /****************************************************************/ /* 3.1 Remove underlining for main menu, post header links, post links and vertical menus */ -#brdmenu A:link, #brdmenu A:visited, -.blockpost DT A:link, .blockpost DT A:visited, .blockpost H2 A:link, .blockpost H2 A:visited, -.postlink A:link, .postlink A:visited, .postfootright A:link, .postfootright A:visited, .blockmenu A:link, .blockmenu A:visited -{TEXT-DECORATION: none} +#brdmenu A:link, #brdmenu A:visited, .blockpost DT A:link, .blockpost DT A:visited, .blockpost H2 A:link, +.blockpost H2 A:visited, .postlink A:link, .postlink A:visited, .postfootright A:link, .postfootright A:visited, +.blockmenu A:link, .blockmenu A:visited { + TEXT-DECORATION: none +} /* 3.2 Underline on hover for links in headers and main menu */ @@ -97,7 +92,7 @@ BORDER-STYLE: solid; BORDER-WIDTH: 1px } - + /****************************************************************/ /* 5. VERTICAL AND PAGE SPACING */ /****************************************************************/ @@ -187,7 +182,7 @@ } P.multidelete { - PADDING-TOP: 10px; + PADDING-TOP: 15px; PADDING-BOTTOM: 5px } @@ -226,7 +221,32 @@ /* 9.5 Horizontal positioning for the submit button on forms */ DIV.blockform P INPUT {MARGIN-LEFT: 12px} - + +/****************************************************************/ +/* 10. POST STATUS INDICATORS */ +/****************************************************************/ + +/* 10.1 These are the post status indicators which appear at the left of some tables. +.inew = new posts, .iredirect = redirect forums, .iclosed = closed topics and +.isticky = sticky topics. By default only .inew is different from the default.*/ + +DIV.icon { + FLOAT: left; + MARGIN-TOP: 0.1em; + MARGIN-LEFT: 0.2em; + DISPLAY: block; + BORDER-WIDTH: 0.6em 0.6em 0.6em 0.6em; + BORDER-STYLE: solid +} + +DIV.searchposts DIV.icon {MARGIN-LEFT: 0} + +/* 10.2 Class .tclcon is a div inside the first column of tables with post indicators. The +margin creates space for the post status indicator */ + +TD DIV.tclcon {MARGIN-LEFT: 2.3em} + + diff -urN punbb-1.2/upload/style/Sulfur.css punbb-1.2.9/upload/style/Sulfur.css --- punbb-1.2/upload/style/Sulfur.css Fri Jan 7 19:46:46 2005 +++ punbb-1.2.9/upload/style/Sulfur.css Wed Feb 2 02:01:52 2005 @@ -7,61 +7,56 @@ /* Import the colour scheme */ @import url(imports/Sulfur_cs.css); -/****************************************************************/ -/* 2. TEXT SETTINGS */ -/****************************************************************/ - -/* 2.1 This sets the default Font Group */ - -.pun, .pun INPUT, .pun SELECT, .pun TEXTAREA, .pun OPTGROUP { - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif -} - -.pun {FONT-SIZE: 10px} - -/* IEWin Font Size only - to allow IEWin to zoom. Do not remove comments \*/ -* HTML BODY .pun {FONT-SIZE: 62.5%} -/* End IE Win Font Size */ - -/* Set font size for tables for IE5 */ -* HTML .pun TABLE {FONT-SIZE: 1em} - -/* 2.2 Set the font-size for preformatted text i.e in code boxes */ - -.pun PRE {FONT-FAMILY: monaco, "Bitstream Vera Sans Mono", "Courier New", courier, monospace} - -/* 2.3 Font size for board title */ - -#brdtitle H1 {FONT-SIZE: 1.5em} - -/* 2.4 Larger text for particular items */ - -.pun H2, #viewprofile DL, #brdmenu, DIV.postmsg P, DIV.forminfo P, #puninstall DIV.block P, DIV.postsignature, -DIV.linkst LI, P.postlink, DIV.postmsg H4 {FONT-SIZE: 1.1em} - -.pun H3, .pun PRE, DIV.postleft DT {FONT-SIZE: 1.2em} - -/* 2.5 Font sizes for form elements. */ - -.pun TEXTAREA, .pun LEGEND, .pun LABEL, .pun INPUT, .pun SELECT, .pun OPTGROUP {FONT-SIZE: 1.1em} -.pun LABEL INPUT, .pun LABEL TEXTAREA, .pun LABEL SELECT, .pun LABEL OPTGROUP {font-size: 1em} - -/* 2.6 Bold text */ - -DIV.postleft DT, DIV.postmsg H4, TD.tcl H3, DIV.forminfo H3, P.postlink, DIV.linkst LI, -.blockmenu LI, #brdtitle H1 {FONT-WEIGHT: bold} - - +/****************************************************************/ +/* 2. TEXT SETTINGS */ +/****************************************************************/ + +/* 2.1 This sets the default Font Group */ + +.pun, .pun INPUT, .pun SELECT, .pun TEXTAREA, .pun OPTGROUP { + FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif +} + +.pun {FONT-SIZE: 11px; LINE-HEIGHT: normal} + +/* IEWin Font Size only - to allow IEWin to zoom. Do not remove comments \*/ +* HTML .pun {FONT-SIZE: 68.75%} +/* End IE Win Font Size */ + +/* Set font size for tables because IE requires it */ +.pun TABLE, .pun INPUT, .pun SELECT, .pun OPTGROUP, .pun TEXTAREA, DIV.postmsg P.postedit {FONT-SIZE: 1em} + +/* 2.2 Set the font-size for preformatted text i.e in code boxes */ + +.pun PRE {FONT-FAMILY: monaco, "Bitstream Vera Sans Mono", "Courier New", courier, monospace} + +/* 2.3 Font size for headers */ + +.pun H2, .pun H4 {FONT-SIZE: 1em} +.pun H3 {FONT-SIZE: 1.1em} +#brdtitle H1 {FONT-SIZE: 1.4em} + +/* 2.4 Larger text for particular items */ +DIV.postmsg P {LINE-HEIGHT: 1.4} +DIV.postleft DT {FONT-SIZE: 1.1em} +.pun PRE {FONT-SIZE: 1.2em} + +/* 2.5 Bold text */ + +DIV.postleft DT, DIV.postmsg H4, TD.tcl H3, DIV.forminfo H3, P.postlink, DIV.linkst LI, +DIV.linksb LI, DIV.postlinksb LI, .blockmenu LI, #brdtitle H1, .pun SPAN.warntext, .pun P.warntext {FONT-WEIGHT: bold} + /****************************************************************/ /* 3. LINKS */ /****************************************************************/ /* 3.1 Remove underlining for main menu, post header links, post links and vertical menus */ -#brdmenu A:link, #brdmenu A:visited, -.blockpost DT A:link, .blockpost DT A:visited, .blockpost H2 A:link, .blockpost H2 A:visited, -.postlink A:link, .postlink A:visited, .postfootright A:link, .postfootright A:visited, .blockmenu A:link, .blockmenu A:visited -{TEXT-DECORATION: none} +#brdmenu A:link, #brdmenu A:visited, .blockpost DT A:link, .blockpost DT A:visited, .blockpost H2 A:link, +.blockpost H2 A:visited, .postlink A:link, .postlink A:visited, .postfootright A:link, .postfootright A:visited, +.blockmenu A:link, .blockmenu A:visited { + TEXT-DECORATION: none +} /* 3.2 Underline on hover for links in headers and main menu */ @@ -97,7 +92,7 @@ BORDER-STYLE: solid; BORDER-WIDTH: 1px } - + /****************************************************************/ /* 5. VERTICAL AND PAGE SPACING */ /****************************************************************/ @@ -226,7 +221,32 @@ /* 9.5 Horizontal positioning for the submit button on forms */ DIV.blockform P INPUT {MARGIN-LEFT: 12px} - + +/****************************************************************/ +/* 10. POST STATUS INDICATORS */ +/****************************************************************/ + +/* 10.1 These are the post status indicators which appear at the left of some tables. +.inew = new posts, .iredirect = redirect forums, .iclosed = closed topics and +.isticky = sticky topics. By default only .inew is different from the default.*/ + +DIV.icon { + FLOAT: left; + MARGIN-TOP: 0.1em; + MARGIN-LEFT: 0.2em; + DISPLAY: block; + BORDER-WIDTH: 0.6em 0.6em 0.6em 0.6em; + BORDER-STYLE: solid +} + +DIV.searchposts DIV.icon {MARGIN-LEFT: 0} + +/* 10.2 Class .tclcon is a div inside the first column of tables with post indicators. The +margin creates space for the post status indicator */ + +TD DIV.tclcon {MARGIN-LEFT: 2.3em} + + diff -urN punbb-1.2/upload/style/imports/Cobalt_cs.css punbb-1.2.9/upload/style/imports/Cobalt_cs.css --- punbb-1.2/upload/style/imports/Cobalt_cs.css Fri Jan 7 15:45:22 2005 +++ punbb-1.2.9/upload/style/imports/Cobalt_cs.css Tue Feb 1 17:16:46 2005 @@ -32,7 +32,7 @@ /* 1.6 Highlighted text for various items */ -.showhot, .pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #D4D4D4} +.pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #D4D4D4} /* 1.7 Dark background for form elements */ @@ -99,35 +99,19 @@ /* 4.3 This is for closed topics and "hot" links */ -A:link.showclosed, A:visited.showclosed {COLOR: #888} -A:hover.showclosed {COLOR: #AAA} -A:link.showhot, A:visited.showhot {COLOR: #FF4000} -A:hover.showhot {COLOR: #FF5010} +LI.postreport A:link, LI.postreport A:visited, TR.iclosed TD.tcl A:link, TR.iclosed TD.tcl A:visited {COLOR: #888} +LI.postreport A:hover, TR.iclosed TD.tcl A:hover {COLOR: #AAA} +LI.maintenancelink A:link, LI.maintenancelink A:visited {COLOR: #FF4000} +LI.maintenancelink A:hover {COLOR: #FF5010} /****************************************************************/ /* 5. POST STATUS INDICATORS */ /****************************************************************/ -/* 5.1 These are the post status indicators which appear at the left of some tables. +/* These are the post status indicators which appear at the left of some tables. .inew = new posts, .iredirect = redirect forums, .iclosed = closed topics and -.inormal = everything else. By default only .inew and .inormal are visible.*/ +.isticky = sticky topics. The default is "icon". By default only .inew is different.*/ -DIV.inew, DIV.inormal, DIV.iclosed, DIV.iredirect { - FLOAT: left; - MARGIN-TOP: 0.2em; - MARGIN-LEFT: 0.2em; - DISPLAY: block; - BORDER-WIDTH: 0.6em 0.6em 0.6em 0.6em; - BORDER-STYLE: solid -} - -DIV.searchposts DIV.inew, DIV.searchposts DIV.inormal {MARGIN-LEFT: 0} - -DIV.iredirect {BORDER-COLOR: #383838 #383838 #383838 #383838} -DIV.inormal, DIV.iclosed {BORDER-COLOR: #484848 #404040 #3C3C3C #444444} -DIV.inew {BORDER-COLOR: #5496D8 #4B85C0 #4377AC #4F8DCB} - -/* 5.2 Class .tclcon is a div inside the first column of tables with post indicators. The -margin creates space for the post status indicator */ - -TD DIV.tclcon {MARGIN-LEFT: 2.3em} +DIV.icon {BORDER-COLOR: #484848 #404040 #3C3C3C #444444} +TR.iredirect DIV.icon {BORDER-COLOR: #383838 #383838 #383838 #383838} +DIV.inew {BORDER-COLOR: #5496D8 #4B85C0 #4377AC #4F8DCB} \ No newline at end of file diff -urN punbb-1.2/upload/style/imports/Lithium_cs.css punbb-1.2.9/upload/style/imports/Lithium_cs.css --- punbb-1.2/upload/style/imports/Lithium_cs.css Fri Jan 7 15:47:14 2005 +++ punbb-1.2.9/upload/style/imports/Lithium_cs.css Tue Feb 1 17:16:46 2005 @@ -4,6 +4,8 @@ /* 1.1 Default background colour and text colour */ +BODY {BACKGROUND-COLOR: #FFF} + .pun {COLOR: #333} DIV.box, .pun BLOCKQUOTE, DIV.codebox, #adminconsole FIELDSET TH, .rowodd, .roweven {BACKGROUND-COLOR: #F1F1F1} @@ -28,7 +30,7 @@ /* 1.6 Highlighted text for various items */ -.showhot, .pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #333} +.pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #333} /****************************************************************/ /* 2. POST BACKGROUNDS AND TEXT */ @@ -91,35 +93,19 @@ /* 4.3 This is for closed topics and "hot" links */ -A:link.showclosed, A:visited.showclosed {COLOR: #888} -A:hover.showclosed {COLOR: #AAA} -A:link.showhot, A:visited.showhot {COLOR: #B42000} -A:hover.showhot {COLOR: #B42000} +LI.postreport A:link, LI.postreport A:visited, TR.iclosed TD.tcl A:link, TR.iclosed TD.tcl A:visited {COLOR: #888} +LI.postreport A:hover, TR.iclosed TD.tcl A:hover {COLOR: #AAA} +LI.maintenancelink A:link, LI.maintenancelink A:visited {COLOR: #B42000} +LI.maintenancelink A:hover {COLOR: #B42000} /****************************************************************/ /* 5. POST STATUS INDICATORS */ /****************************************************************/ -/* 5.1 These are the post status indicators which appear at the left of some tables. +/* These are the post status indicators which appear at the left of some tables. .inew = new posts, .iredirect = redirect forums, .iclosed = closed topics and -.inormal = everything else. By default only .inew and .inormal are visible.*/ - -DIV.inew, DIV.inormal, DIV.iclosed, DIV.iredirect { - FLOAT: left; - MARGIN-TOP: 0.2em; - MARGIN-LEFT: 0.2em; - DISPLAY: block; - BORDER-WIDTH: 0.6em 0.6em 0.6em 0.6em; - BORDER-STYLE: solid -} - -DIV.searchposts DIV.inew, DIV.searchposts DIV.inormal {MARGIN-LEFT: 0} - -DIV.iredirect {BORDER-COLOR: #F1F1F1 #F1F1F1 #F1F1F1 #F1F1F1} -DIV.inormal, DIV.iclosed {BORDER-COLOR: #E6E6E6 #DEDEDE #DADADA #E2E2E2} -DIV.inew {BORDER-COLOR: #8BB453 #7A9E48 #709142 #799C47} - -/* 5.2 Class .tclcon is a div inside the first column of tables with post indicators. The -margin creates space for the post status indicator */ +.isticky = sticky topics. The default is "icon". By default only .inew is different.*/ -TD DIV.tclcon {MARGIN-LEFT: 2.3em} \ No newline at end of file +DIV.icon {BORDER-COLOR: #E6E6E6 #DEDEDE #DADADA #E2E2E2} +TR.iredirect DIV.icon {BORDER-COLOR: #F1F1F1 #F1F1F1 #F1F1F1 #F1F1F1} +DIV.inew {BORDER-COLOR: #8BB453 #7A9E48 #709142 #799C47} \ No newline at end of file diff -urN punbb-1.2/upload/style/imports/Mercury_cs.css punbb-1.2.9/upload/style/imports/Mercury_cs.css --- punbb-1.2/upload/style/imports/Mercury_cs.css Fri Jan 7 15:48:36 2005 +++ punbb-1.2.9/upload/style/imports/Mercury_cs.css Tue Feb 1 17:16:46 2005 @@ -32,7 +32,7 @@ /* 1.6 Highlighted text for various items */ -.showhot, .pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #D4D4D4} +.pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #D4D4D4} /* 1.7 Dark background for form elements */ @@ -99,35 +99,19 @@ /* 4.3 This is for closed topics and "hot" links */ -A:link.showclosed, A:visited.showclosed {COLOR: #888} -A:hover.showclosed {COLOR: #AAA} -A:link.showhot, A:visited.showhot {COLOR: #FF4000} -A:hover.showhot {COLOR: #FF5010} +LI.postreport A:link, LI.postreport A:visited, TR.iclosed TD.tcl A:link, TR.iclosed TD.tcl A:visited {COLOR: #888} +LI.postreport A:hover, TR.iclosed TD.tcl A:hover {COLOR: #AAA} +LI.maintenancelink A:link, LI.maintenancelink A:visited {COLOR: #FF4000} +LI.maintenancelink A:hover {COLOR: #FF5010} /****************************************************************/ /* 5. POST STATUS INDICATORS */ /****************************************************************/ -/* 5.1 These are the post status indicators which appear at the left of some tables. +/* These are the post status indicators which appear at the left of some tables. .inew = new posts, .iredirect = redirect forums, .iclosed = closed topics and -.inormal = everything else. By default only .inew and .inormal are visible.*/ +.isticky = sticky topics. The default is "icon". By default only .inew is different.*/ -DIV.inew, DIV.inormal, DIV.iclosed, DIV.iredirect { - FLOAT: left; - MARGIN-TOP: 0.2em; - MARGIN-LEFT: 0.2em; - DISPLAY: block; - BORDER-WIDTH: 0.6em 0.6em 0.6em 0.6em; - BORDER-STYLE: solid -} - -DIV.searchposts DIV.inew, DIV.searchposts DIV.inormal {MARGIN-LEFT: 0} - -DIV.iredirect {BORDER-COLOR: #383838 #383838 #383838 #383838} -DIV.inormal, DIV.iclosed {BORDER-COLOR: #484848 #404040 #3C3C3C #444444} -DIV.inew {BORDER-COLOR: #F6B620 #ECAE1F #D09A1B #E1A61D} - -/* 5.2 Class .tclcon is a div inside the first column of tables with post indicators. The -margin creates space for the post status indicator */ - -TD DIV.tclcon {MARGIN-LEFT: 2.3em} +DIV.icon {BORDER-COLOR: #484848 #404040 #3C3C3C #444444} +TR.iredirect DIV.icon {BORDER-COLOR: #383838 #383838 #383838 #383838} +DIV.inew {BORDER-COLOR: #F6B620 #ECAE1F #D09A1B #E1A61D} \ No newline at end of file diff -urN punbb-1.2/upload/style/imports/Oxygen_cs.css punbb-1.2.9/upload/style/imports/Oxygen_cs.css --- punbb-1.2/upload/style/imports/Oxygen_cs.css Fri Jan 7 03:57:04 2005 +++ punbb-1.2.9/upload/style/imports/Oxygen_cs.css Tue Feb 1 17:16:46 2005 @@ -4,6 +4,8 @@ /* 1.1 Default background colour and text colour */ +BODY {BACKGROUND-COLOR: #FFF} + .pun {COLOR: #333} DIV.box, .pun BLOCKQUOTE, DIV.codebox, #adminconsole FIELDSET TH, .rowodd, .roweven {BACKGROUND-COLOR: #F1F1F1} @@ -28,7 +30,7 @@ /* 1.6 Highlighted text for various items */ -.showhot, .pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #333} +.pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #333} /****************************************************************/ /* 2. POST BACKGROUNDS AND TEXT */ @@ -91,35 +93,19 @@ /* 4.3 This is for closed topics and "hot" links */ -A:link.showclosed, A:visited.showclosed {COLOR: #888} -A:hover.showclosed {COLOR: #AAA} -A:link.showhot, A:visited.showhot {COLOR: #B42000} -A:hover.showhot {COLOR: #B42000} +LI.postreport A:link, LI.postreport A:visited, TR.iclosed TD.tcl A:link, TR.iclosed TD.tcl A:visited {COLOR: #888} +LI.postreport A:hover, TR.iclosed TD.tcl A:hover {COLOR: #AAA} +LI.maintenancelink A:link, LI.maintenancelink A:visited {COLOR: #B42000} +LI.maintenancelink A:hover {COLOR: #B42000} /****************************************************************/ /* 5. POST STATUS INDICATORS */ /****************************************************************/ -/* 5.1 These are the post status indicators which appear at the left of some tables. +/* These are the post status indicators which appear at the left of some tables. .inew = new posts, .iredirect = redirect forums, .iclosed = closed topics and -.inormal = everything else. By default only .inew and .inormal are visible.*/ - -DIV.inew, DIV.inormal, DIV.iclosed, DIV.iredirect { - FLOAT: left; - MARGIN-TOP: 0.2em; - MARGIN-LEFT: 0.2em; - DISPLAY: block; - BORDER-WIDTH: 0.6em 0.6em 0.6em 0.6em; - BORDER-STYLE: solid -} - -DIV.searchposts DIV.inew, DIV.searchposts DIV.inormal {MARGIN-LEFT: 0} - -DIV.iredirect {BORDER-COLOR: #F1F1F1 #F1F1F1 #F1F1F1 #F1F1F1} -DIV.inormal, DIV.iclosed {BORDER-COLOR: #E6E6E6 #DEDEDE #DADADA #E2E2E2} -DIV.inew {BORDER-COLOR: #0080D7 #0065C0 #0058B3 #0072CA} - -/* 5.2 Class .tclcon is a div inside the first column of tables with post indicators. The -margin creates space for the post status indicator */ +.isticky = sticky topics. The default is "icon". By default only .inew is different.*/ -TD DIV.tclcon {MARGIN-LEFT: 2.3em} +DIV.icon {BORDER-COLOR: #E6E6E6 #DEDEDE #DADADA #E2E2E2} +TR.iredirect DIV.icon {BORDER-COLOR: #F1F1F1 #F1F1F1 #F1F1F1 #F1F1F1} +DIV.inew {BORDER-COLOR: #0080D7 #0065C0 #0058B3 #0072CA} \ No newline at end of file diff -urN punbb-1.2/upload/style/imports/Radium_cs.css punbb-1.2.9/upload/style/imports/Radium_cs.css --- punbb-1.2/upload/style/imports/Radium_cs.css Fri Jan 7 15:49:12 2005 +++ punbb-1.2.9/upload/style/imports/Radium_cs.css Tue Feb 1 17:16:46 2005 @@ -32,7 +32,7 @@ /* 1.6 Highlighted text for various items */ -.showhot, .pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #D4D4D4} +.pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #D4D4D4} /* 1.7 Dark background for form elements */ @@ -99,32 +99,21 @@ /* 4.3 This is for closed topics and "hot" links */ -A:link.showclosed, A:visited.showclosed {COLOR: #888} -A:hover.showclosed {COLOR: #AAA} -A:link.showhot, A:visited.showhot {COLOR: #FF4000} -A:hover.showhot {COLOR: #FF5010} +LI.postreport A:link, LI.postreport A:visited, TR.iclosed TD.tcl A:link, TR.iclosed TD.tcl A:visited {COLOR: #888} +LI.postreport A:hover, TR.iclosed TD.tcl A:hover {COLOR: #AAA} +LI.maintenancelink A:link, LI.maintenancelink A:visited {COLOR: #FF4000} +LI.maintenancelink A:hover {COLOR: #FF5010} /****************************************************************/ /* 5. POST STATUS INDICATORS */ /****************************************************************/ -/* 5.1 These are the post status indicators which appear at the left of some tables. +/* These are the post status indicators which appear at the left of some tables. .inew = new posts, .iredirect = redirect forums, .iclosed = closed topics and -.inormal = everything else. By default only .inew and .inormal are visible.*/ +.isticky = sticky topics. The default is "icon". By default only .inew is different.*/ -DIV.inew, DIV.inormal, DIV.iclosed, DIV.iredirect { - FLOAT: left; - MARGIN-TOP: 0.2em; - MARGIN-LEFT: 0.2em; - DISPLAY: block; - BORDER-WIDTH: 0.6em 0.6em 0.6em 0.6em; - BORDER-STYLE: solid -} - -DIV.searchposts DIV.inew, DIV.searchposts DIV.inormal {MARGIN-LEFT: 0} - -DIV.iredirect {BORDER-COLOR: #383838 #383838 #383838 #383838} -DIV.inormal, DIV.iclosed {BORDER-COLOR: #484848 #404040 #3C3C3C #444444} +DIV.icon {BORDER-COLOR: #484848 #404040 #3C3C3C #444444} +TR.iredirect DIV.icon {BORDER-COLOR: #383838 #383838 #383838 #383838} DIV.inew {BORDER-COLOR: #60C860 #54AF54 #499849 #59B657} /* 5.2 Class .tclcon is a div inside the first column of tables with post indicators. The diff -urN punbb-1.2/upload/style/imports/Sulfur_cs.css punbb-1.2.9/upload/style/imports/Sulfur_cs.css --- punbb-1.2/upload/style/imports/Sulfur_cs.css Fri Jan 7 15:49:50 2005 +++ punbb-1.2.9/upload/style/imports/Sulfur_cs.css Tue Feb 1 17:16:46 2005 @@ -4,6 +4,8 @@ /* 1.1 Default background colour and text colour */ +BODY {BACKGROUND-COLOR: #FFF} + .pun {COLOR: #333} DIV.box, .pun BLOCKQUOTE, DIV.codebox, #adminconsole FIELDSET TH, .rowodd, .roweven {BACKGROUND-COLOR: #F1F1F1} @@ -28,7 +30,7 @@ /* 1.6 Highlighted text for various items */ -.showhot, .pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #333} +.pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #333} /****************************************************************/ /* 2. POST BACKGROUNDS AND TEXT */ @@ -91,35 +93,19 @@ /* 4.3 This is for closed topics and "hot" links */ -A:link.showclosed, A:visited.showclosed {COLOR: #888} -A:hover.showclosed {COLOR: #AAA} -A:link.showhot, A:visited.showhot {COLOR: #B42000} -A:hover.showhot {COLOR: #B42000} +LI.postreport A:link, LI.postreport A:visited, TR.iclosed TD.tcl A:link, TR.iclosed TD.tcl A:visited {COLOR: #888} +LI.postreport A:hover, TR.iclosed TD.tcl A:hover {COLOR: #AAA} +LI.maintenancelink A:link, LI.maintenancelink A:visited {COLOR: #B42000} +LI.maintenancelink A:hover {COLOR: #B42000} /****************************************************************/ /* 5. POST STATUS INDICATORS */ /****************************************************************/ -/* 5.1 These are the post status indicators which appear at the left of some tables. +/* These are the post status indicators which appear at the left of some tables. .inew = new posts, .iredirect = redirect forums, .iclosed = closed topics and -.inormal = everything else. By default only .inew and .inormal are visible.*/ - -DIV.inew, DIV.inormal, DIV.iclosed, DIV.iredirect { - FLOAT: left; - MARGIN-TOP: 0.2em; - MARGIN-LEFT: 0.2em; - DISPLAY: block; - BORDER-WIDTH: 0.6em 0.6em 0.6em 0.6em; - BORDER-STYLE: solid -} - -DIV.searchposts DIV.inew, DIV.searchposts DIV.inormal {MARGIN-LEFT: 0} - -DIV.iredirect {BORDER-COLOR: #F1F1F1 #F1F1F1 #F1F1F1 #F1F1F1} -DIV.inormal, DIV.iclosed {BORDER-COLOR: #E6E6E6 #DEDEDE #DADADA #E2E2E2} -DIV.inew {BORDER-COLOR: #C23000 #AF2C00 #992600 #AC2B00} - -/* 5.2 Class .tclcon is a div inside the first column of tables with post indicators. The -margin creates space for the post status indicator */ +.isticky = sticky topics. The default is "icon". By default only .inew is different.*/ -TD DIV.tclcon {MARGIN-LEFT: 2.3em} +DIV.icon {BORDER-COLOR: #E6E6E6 #DEDEDE #DADADA #E2E2E2} +TR.iredirect DIV.icon {BORDER-COLOR: #F1F1F1 #F1F1F1 #F1F1F1 #F1F1F1} +DIV.inew {BORDER-COLOR: #C23000 #AF2C00 #992600 #AC2B00} \ No newline at end of file diff -urN punbb-1.2/upload/style/imports/base.css punbb-1.2.9/upload/style/imports/base.css --- punbb-1.2/upload/style/imports/base.css Sat Jan 8 01:45:20 2005 +++ punbb-1.2.9/upload/style/imports/base.css Tue Feb 1 17:16:46 2005 @@ -18,7 +18,8 @@ /****************************************************************/ /* 2. STRUCTURAL SETTINGS - VERY IMPORTANT - DO NOT CHANGE */ /****************************************************************/ - + +/* 2.1 Clearing floats and invisible items */ .pun .clearer, .pun .nosize { HEIGHT: 0; WIDTH: 0; @@ -29,14 +30,17 @@ .pun .clearer, .pun .clearb {CLEAR: both} .pun .nosize {POSITION: absolute; LEFT: -10000px} + +/* 2.2 Overflow settings for posts */ + +DIV.blockpost DIV.box, DIV.postleft, DIV.postsignature, DIV.postmsg {OVERFLOW: hidden} /****************************************************************/ /* 3. BUG FIXES - VERY IMPORTANT - DO NOT CHANGE */ /****************************************************************/ -/* 3.1 This fixes bugs in Gecko browsers. */ +/* 3.1 This attempts to eliminate rounding errors in Gecko browsers. */ -DIV>DIV>DIV.inbox , DIV>DIV>DIV.block2col {BORDER-BOTTOM: 1px solid transparent} DIV>DIV>DIV.postfootleft, DIV>DIV>DIV.postfootright {PADDING-TOP: 1px; MARGIN-TOP: -1px} /* 3.2 This is only visible to IE Windows and cures various bugs. Do not alter comments */ @@ -97,9 +101,11 @@ /* 5.3 Keep breadcrumbs from shifting to the right when wrapping */ -.linkst UL {MARGIN-LEFT: 18em} +.linkst UL, linksb UL, .postlinksb UL {MARGIN-LEFT: 18em} /* 5.4 Settings for Profile and Admin interface.*/ + +DIV.block2col {PADDING-BOTTOM: 1px} DIV.block2col DIV.blockform, DIV.block2col DIV.block, #viewprofile DD {MARGIN-LEFT: 14em} @@ -133,7 +139,7 @@ .tcr {WIDTH: 32%; TEXT-ALIGN: left} -#punsearch #vf .tcl {WIDTH: 41%} +#punsearch #vf .tcl, #punmoderate #vf .tcl {WIDTH: 41%} #punsearch #vf .tc2 {WIDTH: 18%; TEXT-ALIGN: left} @@ -151,9 +157,7 @@ #debug .tcr {WIDTH: 85%; WHITE-SPACE: normal} -/* 6.4 Give a little more height to table rows other than index */ - -#vf TD, #users1 TD, #users2 TD {LINE-HEIGHT: 1.5em} +#punindex TD.tcr SPAN.byuser {DISPLAY: block} /****************************************************************/ /* 7. VIEWTOPIC SETUP */ @@ -173,6 +177,8 @@ } DIV.postfootright, P.multidelete {TEXT-ALIGN: right} + +DIV.blockpost>DIV>DIV.inbox {PADDING-BOTTOM: 1px} /* 7.3 This is the div which actually contains the post and is inside .postright */ @@ -180,10 +186,10 @@ /* 7.4 These items control overflow and scrolling within posts. */ -DIV.blockpost, DIV.postleft, DIV.postsignature, DIV.postmsg {OVERFLOW: hidden} DIV.incqbox {WIDTH: 100%; OVERFLOW: hidden} DIV.scrollbox {WIDTH: 100%; OVERFLOW: auto} -* HTML .imgbox {WIDTH: auto} +IMG.postimg {max-width: 100%} +A .postimg {max-width: 100%} /* 7.5 Turn off the poster information column for preview */ @@ -199,16 +205,12 @@ BORDER:none } -/* 7.7 Vertical alignment of smilies in posts and signatures */ - -DIV.postsignature IMG, DIV.postmsg IMG {VERTICAL-ALIGN: middle;} - -/* 7.8 Maximum height for search results as posts. Position go to post link */ +/* 7.7 Maximum height for search results as posts. Position go to post link */ DIV.searchposts DIV.postmsg {HEIGHT: 8em} DIV.searchposts DD P {PADDING-TOP: 3em} -/* 7.9 Class for bbcode [u] */ +/* 7.8 Class for bbcode [u] */ SPAN.bbu {TEXT-DECORATION: underline} @@ -218,7 +220,8 @@ /* 8.1 Horizontal display of online list, main navigation menu and breadcrumbs */ -#onlinelist DD, #onlinelist DT, #brdmenu LI, DIV.linkst LI, DIV.postfootright LI, UL.bblinks LI { +#onlinelist DD, #onlinelist DT, #brdmenu LI, DIV.linkst LI, DIV.linksb LI, DIV.postlinksb LI, +DIV.postfootright LI, UL.bblinks LI { DISPLAY: inline; HEIGHT: 0 } diff -urN punbb-1.2/upload/style/imports/minmax.js punbb-1.2.9/upload/style/imports/minmax.js --- punbb-1.2/upload/style/imports/minmax.js Thu Jan 1 00:00:00 1970 +++ punbb-1.2.9/upload/style/imports/minmax.js Tue Feb 1 20:27:26 2005 @@ -0,0 +1,84 @@ +// minmax.js - written by Andrew Clover +// Adapted for PunBB by Rickard Andersson and Paul Sullivan + +/*@cc_on +@if (@_win32 && @_jscript_version>4) + +var minmax_elements; + +function minmax_bind(el) { + var em, ms; + var st= el.style, cs= el.currentStyle; + + if (minmax_elements==window.undefined) { + if (!document.body || !document.body.currentStyle) return; + minmax_elements= new Array(); + window.attachEvent('onresize', minmax_delayout); + } + + if (cs['max-width']) + st['maxWidth']= cs['max-width']; + + ms= cs['maxWidth']; + if (ms && ms!='auto' && ms!='none' && ms!='0' && ms!='') { + st.minmaxWidth= cs.width; + minmax_elements[minmax_elements.length]= el; + minmax_delayout(); + } +} + +var minmax_delaying= false; +function minmax_delayout() { + if (minmax_delaying) return; + minmax_delaying= true; + window.setTimeout(minmax_layout, 0); +} + +function minmax_stopdelaying() { + minmax_delaying= false; +} + +function minmax_layout() { + window.setTimeout(minmax_stopdelaying, 100); + var i, el, st, cs, optimal, inrange; + for (i= minmax_elements.length; i-->0;) { + el= minmax_elements[i]; st= el.style; cs= el.currentStyle; + + st.width= st.minmaxWidth; optimal= el.offsetWidth; + inrange= true; + if (inrange && cs.minWidth && cs.minWidth!='0' && cs.minWidth!='auto' && cs.minWidth!='') { + st.width= cs.minWidth; + inrange= (el.offsetWidthoptimal); + } + if (inrange) st.width= st.minmaxWidth; + } +} + +var minmax_SCANDELAY= 500; + +function minmax_scan() { + var el; + for (var i= 0; i
-

- - +

@@ -117,7 +116,7 @@ $where_sql[] = 'u.group_id='.$show_group; // Fetch user count -$result = $db->query('SELECT COUNT(id)-1 FROM '.$db->prefix.'users AS u'.(!empty($where_sql) ? ' WHERE '.implode(' AND ', $where_sql) : '')) or error('Unable to fetch user list count', __FILE__, __LINE__, $db->error()); +$result = $db->query('SELECT COUNT(id) FROM '.$db->prefix.'users AS u'.(!empty($where_sql) ? ' WHERE u.id>1 AND '.implode(' AND ', $where_sql) : '')) or error('Unable to fetch user list count', __FILE__, __LINE__, $db->error()); $num_users = $db->result($result); @@ -155,7 +154,7 @@ query('SELECT u.id, u.username, u.title, u.num_posts, u.registered, g.g_id, g.g_user_title FROM '.$db->prefix.'users AS u INNER JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id WHERE u.id>1'.(!empty($where_sql) ? ' AND '.implode(' AND ', $where_sql) : '').' ORDER BY '.$sort_by.' '.$sort_dir.' LIMIT '.$start_from.', 50') or error('Unable to fetch user list', __FILE__, __LINE__, $db->error()); +$result = $db->query('SELECT u.id, u.username, u.title, u.num_posts, u.registered, g.g_id, g.g_user_title FROM '.$db->prefix.'users AS u LEFT JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id WHERE u.id>1'.(!empty($where_sql) ? ' AND '.implode(' AND ', $where_sql) : '').' ORDER BY '.$sort_by.' '.$sort_dir.' LIMIT '.$start_from.', 50') or error('Unable to fetch user list', __FILE__, __LINE__, $db->error()); if ($db->num_rows($result)) { while ($user_data = $db->fetch_assoc($result)) diff -urN punbb-1.2/upload/viewforum.php punbb-1.2.9/upload/viewforum.php --- punbb-1.2/upload/viewforum.php Sun Jan 2 00:56:30 2005 +++ punbb-1.2.9/upload/viewforum.php Thu Sep 22 00:39:30 2005 @@ -55,22 +55,15 @@ // 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']); - while (list($mod_username, $mod_id) = @each($mods_array)) - $temp_array[] = ''.pun_htmlspecialchars($mod_username).''; - - $mods_string = implode(', ', $temp_array); -} - $is_admmod = ($pun_user['g_id'] == PUN_ADMIN || ($pun_user['g_id'] == PUN_MOD && array_key_exists($pun_user['username'], $mods_array))) ? true : false; // 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 = ''.$lang_forum['Post topic'].''; + $post_link = "\t\t".''."\n"; else - $post_link = ' '; + $post_link = ''; // Determine the topic offset (based on $_GET['p']) @@ -91,7 +84,7 @@
- +
  •  
  • » 
@@ -102,12 +95,6 @@
- - - - - - @@ -131,6 +118,7 @@ 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 AND p.poster_id='.$pun_user['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; @@ -152,10 +140,12 @@ { while ($cur_topic = $db->fetch_assoc($result)) { - $icon = '
'.$lang_common['Normal icon'].'
'."\n"; + $icon_text = $lang_common['Normal icon']; + $item_status = ''; + $icon_type = 'icon'; if ($cur_topic['moved_to'] == null) - $last_post = ''.format_time($cur_topic['last_post']).' '.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['last_poster']); + $last_post = ''.format_time($cur_topic['last_post']).''.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['last_poster']).''; else $last_post = ' '; @@ -168,16 +158,18 @@ $subject = ''.pun_htmlspecialchars($cur_topic['subject']).''.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).''; else { - $subject = ''.pun_htmlspecialchars($cur_topic['subject']).''.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).''; - $icon = '
'.$lang_common['Closed icon'].'
'."\n"; + $subject = ''.pun_htmlspecialchars($cur_topic['subject']).''.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).''; + $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 = '
'.$lang_common['New icon'].'
'."\n"; - + $icon_text .= ' '.$lang_common['New icon']; + $item_status .= ' inew'; + $icon_type = 'icon inew'; $subject = ''.$subject.''; - $subject_new_posts = '[ '.$lang_common['New posts'].' ]'; + $subject_new_posts = ''.$lang_common['New posts'].' ]'; } else $subject_new_posts = null; @@ -192,8 +184,11 @@ } if ($cur_topic['sticky'] == '1') - $subject = $lang_forum['Sticky'].': '.$subject; - + { + $subject = ''.$lang_forum['Sticky'].': '.$subject; + $item_status .= ' isticky'; + $icon_text .= ' '.$lang_forum['Sticky']; + } $num_pages_topic = ceil(($cur_topic['num_replies'] + 1) / $pun_user['disp_posts']); @@ -210,10 +205,10 @@ } ?> - + >
- +
@@ -247,9 +242,9 @@
- - -

+ + +
  •  
  • » 
diff -urN punbb-1.2/upload/viewtopic.php punbb-1.2.9/upload/viewtopic.php --- punbb-1.2/upload/viewtopic.php Fri Jan 7 16:12:04 2005 +++ punbb-1.2.9/upload/viewtopic.php Sat Apr 9 02:35:34 2005 @@ -139,14 +139,11 @@ $cur_topic['subject'] = censor_words($cur_topic['subject']); -$page_title = pun_htmlspecialchars($pun_config['o_board_title'].' / '.$cur_topic['subject']); - $quickpost = false; if ($pun_config['o_quickpost'] == '1' && - $is_admmod || - (!$pun_user['is_guest'] && + !$pun_user['is_guest'] && ($cur_topic['post_replies'] == '1' || ($cur_topic['post_replies'] == '' && $pun_user['g_post_replies'] == '1')) && - $cur_topic['closed'] == '0')) + ($cur_topic['closed'] == '0' || $is_admmod)) { $required_fields = array('req_message' => $lang_common['Message']); $quickpost = true; @@ -156,13 +153,14 @@ { if ($cur_topic['is_subscribed']) // I apologize for the variable naming here. It's a mix of subscription and action I guess :-) - $subscraction = $lang_topic['Is subscribed'].' - '.$lang_topic['Unsubscribe'].''; + $subscraction = ''."\n"; else - $subscraction = ''.$lang_topic['Subscribe'].''; + $subscraction = ''."\n"; } else - $subscraction = ' '; + $subscraction = '
'."\n"; +$page_title = pun_htmlspecialchars($pun_config['o_board_title'].' / '.$cur_topic['subject']); define('PUN_ALLOW_INDEX', 1); require PUN_ROOT.'header.php'; @@ -185,7 +183,7 @@ $post_count = 0; // Keep track of post numbers // Retrieve the posts (and their respective poster/online status) -$result = $db->query('SELECT DISTINCT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'users AS u ON u.id=p.poster_id INNER JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id LEFT JOIN '.$db->prefix.'online AS o ON (o.user_id=u.id AND o.idle=0) WHERE p.topic_id='.$id.' ORDER BY p.id LIMIT '.$start_from.','.$pun_user['disp_posts'], true) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error()); +$result = $db->query('SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'users AS u ON u.id=p.poster_id INNER JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id LEFT JOIN '.$db->prefix.'online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id='.$id.' ORDER BY p.id LIMIT '.$start_from.','.$pun_user['disp_posts'], true) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error()); while ($cur_post = $db->fetch_assoc($result)) { $post_count++; @@ -206,7 +204,7 @@ $user_title = censor_words($user_title); // Format the online indicator - $is_online = ($cur_post['is_online'] == $cur_post['poster_id']) ? ''.$lang_topic['Online'].'' : $lang_topic['Offline']; + $is_online = ($cur_post['is_online'] == $cur_post['poster_id']) ? ''.$lang_topic['Online'].'' : $lang_topic['Offline']; if ($pun_config['o_avatars'] == '1' && $cur_post['use_avatar'] == '1' && $pun_user['show_avatars'] != '0') { @@ -271,24 +269,24 @@ if (!$is_admmod) { if (!$pun_user['is_guest']) - $post_actions[] = '
  • '.$lang_topic['Report'].''; + $post_actions[] = '
  • '.$lang_topic['Report'].''; if ($cur_topic['closed'] == '0') { if ($cur_post['poster_id'] == $pun_user['id']) { if ((($start_from + $post_count) == 1 && $pun_user['g_delete_topics'] == '1') || (($start_from + $post_count) > 1 && $pun_user['g_delete_posts'] == '1')) - $post_actions[] = '
  • '.$lang_topic['Delete'].''; + $post_actions[] = '
  • '.$lang_topic['Delete'].''; if ($pun_user['g_edit_posts'] == '1') - $post_actions[] = '
  • '.$lang_topic['Edit'].''; + $post_actions[] = '
  • '.$lang_topic['Edit'].''; } if (($cur_topic['post_replies'] == '' && $pun_user['g_post_replies'] == '1') || $cur_topic['post_replies'] == '1') - $post_actions[] = '
  • '.$lang_topic['Quote'].''; + $post_actions[] = '
  • '.$lang_topic['Quote'].''; } } else - $post_actions[] = '
  • '.$lang_topic['Report'].''.$lang_topic['Link separator'].'
  • '.$lang_topic['Delete'].''.$lang_topic['Link separator'].'
  • '.$lang_topic['Edit'].''.$lang_topic['Link separator'].'
  • '.$lang_topic['Quote'].''; + $post_actions[] = '
  • '.$lang_topic['Report'].''.$lang_topic['Link separator'].'
  • '.$lang_topic['Delete'].''.$lang_topic['Link separator'].'
  • '.$lang_topic['Edit'].''.$lang_topic['Link separator'].'
  • '.$lang_topic['Quote'].''; // Switch the background color for every message. @@ -330,8 +328,8 @@
    '.$lang_topic['Last edit'].' '.pun_htmlspecialchars($cur_post['edited_by']).' ('.format_time($cur_post['edited']).')

    '."\n"; ?> -
    '.$signature.'
    '."\n"; ?>
  • +
    '.$signature.''."\n"; ?>
    1) echo '

    '.$is_online.'

    '; ?>
    @@ -349,8 +347,8 @@
    -

    -
    +
    •  » 
    •  » 
    +