Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • osian/sucs-site
  • kais58/sucs-site
  • imranh/sucs-site
  • foshjedi2004/sucs-site
  • gigosaurus/sucs-site
  • matstn/sucs-site
  • ripp_/sucs-site
  • eggnog/sucs-site
  • sucssite/sucs-site
  • elbows/sucs-site
  • realitykiller/sucs-site
  • crox/sucs-site
  • vectre/sucs-site
  • welshbyte/sucs-site
  • paperclipman/sucs-site
15 results
Show changes
Showing
with 0 additions and 4036 deletions
<?php
/***********************************************************************
Copyright (C) 2002-2008 PunBB
This file is part of PunBB.
PunBB is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
PunBB is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA 02111-1307 USA
************************************************************************/
define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';
// If we are logged in, we shouldn't be here
if (!$pun_user['is_guest'])
{
header('Location: index.php');
pun_exit();
}
// Load the register.php language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/register.php';
// Load the register.php/profile.php language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/prof_reg.php';
if ($pun_config['o_regs_allow'] == '0')
message($lang_register['No new regs']);
// User pressed the cancel button
if (isset($_GET['cancel']))
redirect('index.php', $lang_register['Reg cancel redirect']);
else if ($pun_config['o_rules'] == '1' && !isset($_GET['agree']) && !isset($_POST['form_sent']))
{
$page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_register['Register'];
require PUN_ROOT.'header.php';
?>
<div class="blockform">
<h2><span><?php echo $lang_register['Forum rules'] ?></span></h2>
<div class="box">
<form method="get" action="register.php">
<div class="inform">
<fieldset>
<legend><?php echo $lang_register['Rules legend'] ?></legend>
<div class="infldset">
<p><?php echo $pun_config['o_rules_message'] ?></p>
</div>
</fieldset>
</div>
<p><input type="submit" name="agree" value="<?php echo $lang_register['Agree'] ?>" /><input type="submit" name="cancel" value="<?php echo $lang_register['Cancel'] ?>" /></p>
</form>
</div>
</div>
<?php
require PUN_ROOT.'footer.php';
}
else if (isset($_POST['form_sent']))
{
// Check that someone from this IP didn't register a user within the last hour (DoS prevention)
$result = $db->query('SELECT 1 FROM '.$db->prefix.'users WHERE registration_ip=\''.get_remote_address().'\' AND registered>'.(time() - 3600)) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
if ($db->num_rows($result))
message('A new user was registered with the same IP address as you within the last hour. To prevent registration flooding, at least an hour has to pass between registrations from the same IP. Sorry for the inconvenience.');
$username = pun_trim($_POST['req_username']);
$email1 = strtolower(trim($_POST['req_email1']));
if ($pun_config['o_regs_verify'] == '1')
{
$email2 = strtolower(trim($_POST['req_email2']));
$password1 = random_pass(8);
$password2 = $password1;
}
else
{
$password1 = trim($_POST['req_password1']);
$password2 = trim($_POST['req_password2']);
}
// Convert multiple whitespace characters into one (to prevent people from registering with indistinguishable usernames)
$username = preg_replace('#\s+#s', ' ', $username);
// Validate username and passwords
if (strlen($username) < 2)
message($lang_prof_reg['Username too short']);
else if (pun_strlen($username) > 25) // This usually doesn't happen since the form element only accepts 25 characters
message($lang_common['Bad request']);
else if (strlen($password1) < 4)
message($lang_prof_reg['Pass too short']);
else if ($password1 != $password2)
message($lang_prof_reg['Pass not match']);
else if (!strcasecmp($username, 'Guest') || !strcasecmp($username, $lang_common['Guest']))
message($lang_prof_reg['Username guest']);
else if (preg_match('/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/', $username))
message($lang_prof_reg['Username IP']);
else if ((strpos($username, '[') !== false || strpos($username, ']') !== false) && strpos($username, '\'') !== false && strpos($username, '"') !== false)
message($lang_prof_reg['Username reserved chars']);
else if (preg_match('#\[b\]|\[/b\]|\[u\]|\[/u\]|\[i\]|\[/i\]|\[color|\[/color\]|\[quote\]|\[quote=|\[/quote\]|\[code\]|\[/code\]|\[img\]|\[/img\]|\[url|\[/url\]|\[email|\[/email\]#i', $username))
message($lang_prof_reg['Username BBCode']);
// Check username for any censored words
if ($pun_config['o_censoring'] == '1')
{
// If the censored username differs from the username
if (censor_words($username) != $username)
message($lang_register['Username censor']);
}
// Check that the username (or a too similar username) is not already registered
$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))
{
$busy = $db->result($result);
message($lang_register['Username dupe 1'].' '.pun_htmlspecialchars($busy).'. '.$lang_register['Username dupe 2']);
}
// Validate e-mail
require PUN_ROOT.'include/email.php';
if (!is_valid_email($email1))
message($lang_common['Invalid e-mail']);
else if ($pun_config['o_regs_verify'] == '1' && $email1 != $email2)
message($lang_register['E-mail not match']);
// Check it it's a banned e-mail address
if (is_banned_email($email1))
{
if ($pun_config['p_allow_banned_email'] == '0')
message($lang_prof_reg['Banned e-mail']);
$banned_email = true; // Used later when we send an alert e-mail
}
else
$banned_email = false;
// Check if someone else already has registered with that e-mail address
$dupe_list = array();
$result = $db->query('SELECT username FROM '.$db->prefix.'users WHERE email=\''.$email1.'\'') or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
if ($db->num_rows($result))
{
if ($pun_config['p_allow_dupe_email'] == '0')
message($lang_prof_reg['Dupe e-mail']);
while ($cur_dupe = $db->fetch_assoc($result))
$dupe_list[] = $cur_dupe['username'];
}
// Make sure we got a valid language string
if (isset($_POST['language']))
{
$language = preg_replace('#[\.\\\/]#', '', $_POST['language']);
if (!file_exists(PUN_ROOT.'lang/'.$language.'/common.php'))
message($lang_common['Bad request']);
}
else
$language = $pun_config['o_default_lang'];
$timezone = round($_POST['timezone'], 1);
$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;
// Insert the new user into the database. We do this now to get the last inserted id for later use.
$now = time();
$intial_group_id = ($pun_config['o_regs_verify'] == '0') ? $pun_config['o_default_user_group'] : PUN_UNVERIFIED;
$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.' , \''.$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();
// If we previously found out that the e-mail was banned
if ($banned_email && $pun_config['o_mailing_list'] != '')
{
$mail_subject = 'Alert - Banned e-mail detected';
$mail_message = 'User \''.$username.'\' registered with banned e-mail address: '.$email1."\n\n".'User profile: '.$pun_config['o_base_url'].'/profile.php?id='.$new_uid."\n\n".'-- '."\n".'Forum Mailer'."\n".'(Do not reply to this message)';
pun_mail($pun_config['o_mailing_list'], $mail_subject, $mail_message);
}
// If we previously found out that the e-mail was a dupe
if (!empty($dupe_list) && $pun_config['o_mailing_list'] != '')
{
$mail_subject = 'Alert - Duplicate e-mail detected';
$mail_message = 'User \''.$username.'\' registered with an e-mail address that also belongs to: '.implode(', ', $dupe_list)."\n\n".'User profile: '.$pun_config['o_base_url'].'/profile.php?id='.$new_uid."\n\n".'-- '."\n".'Forum Mailer'."\n".'(Do not reply to this message)';
pun_mail($pun_config['o_mailing_list'], $mail_subject, $mail_message);
}
// Should we alert people on the admin mailing list that a new user has registered?
if ($pun_config['o_regs_report'] == '1')
{
$mail_subject = 'Alert - New registration';
$mail_message = 'User \''.$username.'\' registered in the forums at '.$pun_config['o_base_url']."\n\n".'User profile: '.$pun_config['o_base_url'].'/profile.php?id='.$new_uid."\n\n".'-- '."\n".'Forum Mailer'."\n".'(Do not reply to this message)';
pun_mail($pun_config['o_mailing_list'], $mail_subject, $mail_message);
}
// Must the user verify the registration or do we log him/her in right now?
if ($pun_config['o_regs_verify'] == '1')
{
// Load the "welcome" template
$mail_tpl = trim(file_get_contents(PUN_ROOT.'lang/'.$pun_user['language'].'/mail_templates/welcome.tpl'));
// The first row contains the subject
$first_crlf = strpos($mail_tpl, "\n");
$mail_subject = trim(substr($mail_tpl, 8, $first_crlf-8));
$mail_message = trim(substr($mail_tpl, $first_crlf));
$mail_subject = str_replace('<board_title>', $pun_config['o_board_title'], $mail_subject);
$mail_message = str_replace('<base_url>', $pun_config['o_base_url'].'/', $mail_message);
$mail_message = str_replace('<username>', $username, $mail_message);
$mail_message = str_replace('<password>', $password1, $mail_message);
$mail_message = str_replace('<login_url>', $pun_config['o_base_url'].'/login.php', $mail_message);
$mail_message = str_replace('<board_mailer>', $pun_config['o_board_title'].' '.$lang_common['Mailer'], $mail_message);
pun_mail($email1, $mail_subject, $mail_message);
message($lang_register['Reg e-mail'].' <a href="mailto:'.$pun_config['o_admin_email'].'">'.$pun_config['o_admin_email'].'</a>.', true);
}
pun_setcookie($new_uid, $password_hash, ($save_pass != '0') ? $now + 31536000 : 0);
redirect('index.php', $lang_register['Reg complete']);
}
$page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_register['Register'];
$required_fields = array('req_username' => $lang_common['Username'], 'req_password1' => $lang_common['Password'], 'req_password2' => $lang_prof_reg['Confirm pass'], 'req_email1' => $lang_common['E-mail'], 'req_email2' => $lang_common['E-mail'].' 2');
$focus_element = array('register', 'req_username');
require PUN_ROOT.'header.php';
?>
<div class="blockform">
<h2><span><?php echo $lang_register['Register'] ?></span></h2>
<div class="box">
<form id="register" method="post" action="register.php?action=register" onsubmit="this.register.disabled=true;if(process_form(this)){return true;}else{this.register.disabled=false;return false;}">
<div class="inform">
<div class="forminfo">
<h3><?php echo $lang_common['Important information'] ?></h3>
<p><?php echo $lang_register['Desc 1'] ?></p>
<p><?php echo $lang_register['Desc 2'] ?></p>
</div>
<fieldset>
<legend><?php echo $lang_register['Username legend'] ?></legend>
<div class="infldset">
<input type="hidden" name="form_sent" value="1" />
<label><strong><?php echo $lang_common['Username'] ?></strong><br /><input type="text" name="req_username" size="25" maxlength="25" /><br /></label>
</div>
</fieldset>
</div>
<?php if ($pun_config['o_regs_verify'] == '0'): ?> <div class="inform">
<fieldset>
<legend><?php echo $lang_register['Pass legend 1'] ?></legend>
<div class="infldset">
<label class="conl"><strong><?php echo $lang_common['Password'] ?></strong><br /><input type="password" name="req_password1" size="16" maxlength="16" /><br /></label>
<label class="conl"><strong><?php echo $lang_prof_reg['Confirm pass'] ?></strong><br /><input type="password" name="req_password2" size="16" maxlength="16" /><br /></label>
<p class="clearb"><?php echo $lang_register['Pass info'] ?></p>
</div>
</fieldset>
</div>
<?php endif; ?> <div class="inform">
<fieldset>
<legend><?php echo ($pun_config['o_regs_verify'] == '1') ? $lang_prof_reg['E-mail legend 2'] : $lang_prof_reg['E-mail legend'] ?></legend>
<div class="infldset">
<?php if ($pun_config['o_regs_verify'] == '1'): ?> <p><?php echo $lang_register['E-mail info'] ?></p>
<?php endif; ?> <label><strong><?php echo $lang_common['E-mail'] ?></strong><br />
<input type="text" name="req_email1" size="50" maxlength="50" /><br /></label>
<?php if ($pun_config['o_regs_verify'] == '1'): ?> <label><strong><?php echo $lang_register['Confirm e-mail'] ?></strong><br />
<input type="text" name="req_email2" size="50" maxlength="50" /><br /></label>
<?php endif; ?> </div>
</fieldset>
</div>
<div class="inform">
<fieldset>
<legend><?php echo $lang_prof_reg['Localisation legend'] ?></legend>
<div class="infldset">
<label><?php echo $lang_prof_reg['Timezone'] ?>: <?php echo $lang_prof_reg['Timezone info'] ?>
<br /><select id="time_zone" name="timezone">
<option value="-12"<?php if ($pun_config['o_server_timezone'] == -12 ) echo ' selected="selected"' ?>>-12</option>
<option value="-11"<?php if ($pun_config['o_server_timezone'] == -11) echo ' selected="selected"' ?>>-11</option>
<option value="-10"<?php if ($pun_config['o_server_timezone'] == -10) echo ' selected="selected"' ?>>-10</option>
<option value="-9.5"<?php if ($pun_config['o_server_timezone'] == -9.5) echo ' selected="selected"' ?>>-9.5</option>
<option value="-9"<?php if ($pun_config['o_server_timezone'] == -9 ) echo ' selected="selected"' ?>>-09</option>
<option value="-8.5"<?php if ($pun_config['o_server_timezone'] == -8.5) echo ' selected="selected"' ?>>-8.5</option>
<option value="-8"<?php if ($pun_config['o_server_timezone'] == -8 ) echo ' selected="selected"' ?>>-08 PST</option>
<option value="-7"<?php if ($pun_config['o_server_timezone'] == -7 ) echo ' selected="selected"' ?>>-07 MST</option>
<option value="-6"<?php if ($pun_config['o_server_timezone'] == -6 ) echo ' selected="selected"' ?>>-06 CST</option>
<option value="-5"<?php if ($pun_config['o_server_timezone'] == -5 ) echo ' selected="selected"' ?>>-05 EST</option>
<option value="-4"<?php if ($pun_config['o_server_timezone'] == -4 ) echo ' selected="selected"' ?>>-04 AST</option>
<option value="-3.5"<?php if ($pun_config['o_server_timezone'] == -3.5) echo ' selected="selected"' ?>>-3.5</option>
<option value="-3"<?php if ($pun_config['o_server_timezone'] == -3 ) echo ' selected="selected"' ?>>-03 ADT</option>
<option value="-2"<?php if ($pun_config['o_server_timezone'] == -2 ) echo ' selected="selected"' ?>>-02</option>
<option value="-1"<?php if ($pun_config['o_server_timezone'] == -1) echo ' selected="selected"' ?>>-01</option>
<option value="0"<?php if ($pun_config['o_server_timezone'] == 0) echo ' selected="selected"' ?>>00 GMT</option>
<option value="1"<?php if ($pun_config['o_server_timezone'] == 1) echo ' selected="selected"' ?>>+01 CET</option>
<option value="2"<?php if ($pun_config['o_server_timezone'] == 2 ) echo ' selected="selected"' ?>>+02</option>
<option value="3"<?php if ($pun_config['o_server_timezone'] == 3 ) echo ' selected="selected"' ?>>+03</option>
<option value="3.5"<?php if ($pun_config['o_server_timezone'] == 3.5 ) echo ' selected="selected"' ?>>+03.5</option>
<option value="4"<?php if ($pun_config['o_server_timezone'] == 4 ) echo ' selected="selected"' ?>>+04</option>
<option value="4.5"<?php if ($pun_config['o_server_timezone'] == 4.5 ) echo ' selected="selected"' ?>>+04.5</option>
<option value="5"<?php if ($pun_config['o_server_timezone'] == 5 ) echo ' selected="selected"' ?>>+05</option>
<option value="5.5"<?php if ($pun_config['o_server_timezone'] == 5.5 ) echo ' selected="selected"' ?>>+05.5</option>
<option value="6"<?php if ($pun_config['o_server_timezone'] == 6 ) echo ' selected="selected"' ?>>+06</option>
<option value="6.5"<?php if ($pun_config['o_server_timezone'] == 6.5 ) echo ' selected="selected"' ?>>+06.5</option>
<option value="7"<?php if ($pun_config['o_server_timezone'] == 7 ) echo ' selected="selected"' ?>>+07</option>
<option value="8"<?php if ($pun_config['o_server_timezone'] == 8 ) echo ' selected="selected"' ?>>+08</option>
<option value="9"<?php if ($pun_config['o_server_timezone'] == 9 ) echo ' selected="selected"' ?>>+09</option>
<option value="9.5"<?php if ($pun_config['o_server_timezone'] == 9.5 ) echo ' selected="selected"' ?>>+09.5</option>
<option value="10"<?php if ($pun_config['o_server_timezone'] == 10) echo ' selected="selected"' ?>>+10</option>
<option value="10.5"<?php if ($pun_config['o_server_timezone'] == 10.5 ) echo ' selected="selected"' ?>>+10.5</option>
<option value="11"<?php if ($pun_config['o_server_timezone'] == 11) echo ' selected="selected"' ?>>+11</option>
<option value="11.5"<?php if ($pun_config['o_server_timezone'] == 11.5 ) echo ' selected="selected"' ?>>+11.5</option>
<option value="12"<?php if ($pun_config['o_server_timezone'] == 12 ) echo ' selected="selected"' ?>>+12</option>
<option value="13"<?php if ($pun_config['o_server_timezone'] == 13 ) echo ' selected="selected"' ?>>+13</option>
<option value="14"<?php if ($pun_config['o_server_timezone'] == 14 ) echo ' selected="selected"' ?>>+14</option>
</select>
<br /></label>
<?php
$languages = array();
$d = dir(PUN_ROOT.'lang');
while (($entry = $d->read()) !== false)
{
if ($entry != '.' && $entry != '..' && is_dir(PUN_ROOT.'lang/'.$entry) && file_exists(PUN_ROOT.'lang/'.$entry.'/common.php'))
$languages[] = $entry;
}
$d->close();
// Only display the language selection box if there's more than one language available
if (count($languages) > 1)
{
?>
<label><?php echo $lang_prof_reg['Language'] ?>: <?php echo $lang_prof_reg['Language info'] ?>
<br /><select name="language">
<?php
while (list(, $temp) = @each($languages))
{
if ($pun_config['o_default_lang'] == $temp)
echo "\t\t\t\t\t\t\t\t".'<option value="'.$temp.'" selected="selected">'.$temp.'</option>'."\n";
else
echo "\t\t\t\t\t\t\t\t".'<option value="'.$temp.'">'.$temp.'</option>'."\n";
}
?>
</select>
<br /></label>
<?php
}
?>
</div>
</fieldset>
</div>
<div class="inform">
<fieldset>
<legend><?php echo $lang_prof_reg['Privacy options legend'] ?></legend>
<div class="infldset">
<p><?php echo $lang_prof_reg['E-mail setting info'] ?></p>
<div class="rbox">
<label><input type="radio" name="email_setting" value="0" /><?php echo $lang_prof_reg['E-mail setting 1'] ?><br /></label>
<label><input type="radio" name="email_setting" value="1" checked="checked" /><?php echo $lang_prof_reg['E-mail setting 2'] ?><br /></label>
<label><input type="radio" name="email_setting" value="2" /><?php echo $lang_prof_reg['E-mail setting 3'] ?><br /></label>
</div>
<p><?php echo $lang_prof_reg['Save user/pass info'] ?></p>
<div class="rbox">
<label><input type="checkbox" name="save_pass" value="1" checked="checked" /><?php echo $lang_prof_reg['Save user/pass'] ?><br /></label>
</div>
</div>
</fieldset>
</div>
<p><input type="submit" name="register" value="<?php echo $lang_register['Register'] ?>" /></p>
</form>
</div>
</div>
<?php
require PUN_ROOT.'footer.php';
<?php
/***********************************************************************
Copyright (C) 2002-2008 PunBB
This file is part of PunBB.
PunBB is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
PunBB is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA 02111-1307 USA
************************************************************************/
// The contents of this file are very much inspired by the file search.php
// from the phpBB Group forum software phpBB2 (http://www.phpbb.com).
define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';
// Load the search.php language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/search.php';
if ($pun_user['g_read_board'] == '0')
message($lang_common['No view']);
else if ($pun_user['g_search'] == '0')
message($lang_search['No search permission']);
// Detect two byte character sets
$multibyte = (isset($lang_common['lang_multibyte']) && $lang_common['lang_multibyte']) ? true : false;
// Figure out what to do :-)
if (isset($_GET['action']) || isset($_GET['search_id']))
{
$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']))
{
$search_id = intval($_GET['search_id']);
if ($search_id < 1)
message($lang_common['Bad request']);
}
// If it's a regular search (keywords and/or author)
else if ($action == 'search')
{
$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']);
if ($author)
$author = str_replace('*', '%', $author);
$show_as = (isset($_GET['show_as'])) ? $_GET['show_as'] : 'posts';
$sort_by = (isset($_GET['sort_by'])) ? intval($_GET['sort_by']) : null;
$search_in = (!isset($_GET['search_in']) || $_GET['search_in'] == 'all') ? 0 : (($_GET['search_in'] == 'message') ? 1 : -1);
}
// If it's a user search (by id)
else if ($action == 'show_user')
{
$user_id = intval($_GET['user_id']);
if ($user_id < 2)
message($lang_common['Bad request']);
}
else
{
if ($action != 'show_new' && $action != 'show_24h' && $action != 'show_unanswered' && $action != 'show_subscriptions')
message($lang_common['Bad request']);
}
// If a valid search_id was supplied we attempt to fetch the search results from the db
if (isset($search_id))
{
$ident = ($pun_user['is_guest']) ? get_remote_address() : $pun_user['username'];
$result = $db->query('SELECT search_data FROM '.$db->prefix.'search_cache WHERE id='.$search_id.' AND ident=\''.$db->escape($ident).'\'') or error('Unable to fetch search results', __FILE__, __LINE__, $db->error());
if ($row = $db->fetch_assoc($result))
{
$temp = unserialize($row['search_data']);
$search_results = $temp['search_results'];
$num_hits = $temp['num_hits'];
$sort_by = $temp['sort_by'];
$sort_dir = $temp['sort_dir'];
$show_as = $temp['show_as'];
unset($temp);
}
else
message($lang_search['No hits']);
}
else
{
$keyword_results = $author_results = array();
// Search a specific forum?
$forum_sql = ($forum != -1 || ($forum == -1 && $pun_config['o_search_all_forums'] == '0' && $pun_user['g_id'] >= PUN_GUEST)) ? ' AND t.forum_id = '.$forum : '';
if (!empty($author) || !empty($keywords))
{
// If it's a search for keywords
if ($keywords)
{
$stopwords = (array)@file(PUN_ROOT.'lang/'.$pun_user['language'].'/stopwords.txt');
$stopwords = array_map('trim', $stopwords);
// Are we searching for multibyte charset text?
if ($multibyte)
{
// Strip out excessive whitespace
$keywords = trim(preg_replace('#\s+#', ' ', $keywords));
$keywords_array = explode(' ', $keywords);
}
else
{
// Filter out non-alphabetical chars
$noise_match = array('^', '$', '&', '(', ')', '<', '>', '`', '\'', '"', '|', ',', '@', '_', '?', '%', '~', '[', ']', '{', '}', ':', '\\', '/', '=', '#', '\'', ';', '!', '');
$noise_replace = array(' ', ' ', ' ', ' ', ' ', ' ', ' ', '', '', ' ', ' ', ' ', ' ', '', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '' , ' ', ' ', ' ', ' ', ' ', ' ', ' ');
$keywords = str_replace($noise_match, $noise_replace, $keywords);
// Strip out excessive whitespace
$keywords = trim(preg_replace('#\s+#', ' ', $keywords));
// Fill an array with all the words
$keywords_array = explode(' ', $keywords);
if (empty($keywords_array))
message($lang_search['No hits']);
while (list($i, $word) = @each($keywords_array))
{
$num_chars = pun_strlen($word);
if ($word !== 'or' && ($num_chars < 3 || $num_chars > 20 || in_array($word, $stopwords)))
unset($keywords_array[$i]);
}
// Should we search in message body or topic subject specifically?
$search_in_cond = ($search_in) ? (($search_in > 0) ? ' AND m.subject_match = 0' : ' AND m.subject_match = 1') : '';
}
$word_count = 0;
$match_type = 'and';
$result_list = array();
@reset($keywords_array);
while (list(, $cur_word) = @each($keywords_array))
{
switch ($cur_word)
{
case 'and':
case 'or':
case 'not':
$match_type = $cur_word;
break;
default:
{
// Are we searching for multibyte charset text?
if ($multibyte)
{
$cur_word = $db->escape('%'.str_replace('*', '', $cur_word).'%');
$cur_word_like = ($db_type == 'pgsql') ? 'ILIKE \''.$cur_word.'\'' : 'LIKE \''.$cur_word.'\'';
if ($search_in > 0)
$sql = 'SELECT id FROM '.$db->prefix.'posts WHERE message '.$cur_word_like;
else if ($search_in < 0)
$sql = 'SELECT p.id FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id WHERE t.subject '.$cur_word_like.' GROUP BY p.id, t.id';
else
$sql = 'SELECT p.id FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id WHERE p.message '.$cur_word_like.' OR t.subject '.$cur_word_like.' GROUP BY p.id, t.id';
}
else
{
$cur_word = $db->escape(str_replace('*', '%', $cur_word));
$sql = 'SELECT m.post_id FROM '.$db->prefix.'search_words AS w INNER JOIN '.$db->prefix.'search_matches AS m ON m.word_id = w.id WHERE w.word LIKE \''.$cur_word.'\''.$search_in_cond;
}
$result = $db->query($sql, true) or error('Unable to search for posts', __FILE__, __LINE__, $db->error());
$row = array();
while ($temp = $db->fetch_row($result))
{
$row[$temp[0]] = 1;
if (!$word_count)
$result_list[$temp[0]] = 1;
else if ($match_type == 'or')
$result_list[$temp[0]] = 1;
else if ($match_type == 'not')
$result_list[$temp[0]] = 0;
}
if ($match_type == 'and' && $word_count)
{
@reset($result_list);
while (list($post_id,) = @each($result_list))
{
if (!isset($row[$post_id]))
$result_list[$post_id] = 0;
}
}
++$word_count;
$db->free_result($result);
break;
}
}
}
@reset($result_list);
while (list($post_id, $matches) = @each($result_list))
{
if ($matches)
$keyword_results[] = $post_id;
}
unset($result_list);
}
// If it's a search for author name (and that author name isn't Guest)
if ($author && strcasecmp($author, 'Guest') && strcasecmp($author, $lang_common['Guest']))
{
switch ($db_type)
{
case 'pgsql':
$result = $db->query('SELECT id FROM '.$db->prefix.'users WHERE username ILIKE \''.$db->escape($author).'\'') or error('Unable to fetch users', __FILE__, __LINE__, $db->error());
break;
default:
$result = $db->query('SELECT id FROM '.$db->prefix.'users WHERE username LIKE \''.$db->escape($author).'\'') or error('Unable to fetch users', __FILE__, __LINE__, $db->error());
break;
}
if ($db->num_rows($result))
{
$user_ids = '';
while ($row = $db->fetch_row($result))
$user_ids .= (($user_ids != '') ? ',' : '').$row[0];
$result = $db->query('SELECT id FROM '.$db->prefix.'posts WHERE poster_id IN('.$user_ids.')') or error('Unable to fetch matched posts list', __FILE__, __LINE__, $db->error());
$search_ids = array();
while ($row = $db->fetch_row($result))
$author_results[] = $row[0];
$db->free_result($result);
}
}
if ($author && $keywords)
{
// If we searched for both keywords and author name we want the intersection between the results
$search_ids = array_intersect($keyword_results, $author_results);
unset($keyword_results, $author_results);
}
else if ($keywords)
$search_ids = $keyword_results;
else
$search_ids = $author_results;
$num_hits = count($search_ids);
if (!$num_hits)
message($lang_search['No hits']);
if ($show_as == 'topics')
{
$result = $db->query('SELECT t.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.' GROUP BY t.id', true) or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
$search_ids = array();
while ($row = $db->fetch_row($result))
$search_ids[] = $row[0];
$db->free_result($result);
$num_hits = count($search_ids);
}
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());
$search_ids = array();
while ($row = $db->fetch_row($result))
$search_ids[] = $row[0];
$db->free_result($result);
$num_hits = count($search_ids);
}
}
else if ($action == 'show_new' || $action == 'show_24h' || $action == 'show_user' || $action == 'show_subscriptions' || $action == 'show_unanswered')
{
// If it's a search for new posts
if ($action == 'show_new')
{
if ($pun_user['is_guest'])
message($lang_common['No permission']);
$result = $db->query('SELECT t.id FROM '.$db->prefix.'topics AS t 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 t.last_post>'.$pun_user['last_visit'].' AND t.moved_to IS NULL') or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
$num_hits = $db->num_rows($result);
if (!$num_hits)
message($lang_search['No new posts']);
}
// If it's a search for todays posts
else if ($action == 'show_24h')
{
$result = $db->query('SELECT t.id FROM '.$db->prefix.'topics AS t 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 t.last_post>'.(time() - 86400).' AND t.moved_to IS NULL') or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
$num_hits = $db->num_rows($result);
if (!$num_hits)
message($lang_search['No recent posts']);
}
// If it's a search for posts by a specific user ID
else if ($action == 'show_user')
{
$result = $db->query('SELECT t.id FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'posts AS p 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.poster_id='.$user_id.' GROUP BY t.id') or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
$num_hits = $db->num_rows($result);
if (!$num_hits)
message($lang_search['No user posts']);
}
// If it's a search for subscribed topics
else if ($action == 'show_subscriptions')
{
if ($pun_user['is_guest'])
message($lang_common['Bad request']);
$result = $db->query('SELECT t.id FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'subscriptions AS s ON (t.id=s.topic_id AND s.user_id='.$pun_user['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)') or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
$num_hits = $db->num_rows($result);
if (!$num_hits)
message($lang_search['No subscriptions']);
}
// If it's a search for unanswered posts
else
{
$result = $db->query('SELECT t.id FROM '.$db->prefix.'topics AS t 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 t.num_replies=0 AND t.moved_to IS NULL') or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
$num_hits = $db->num_rows($result);
if (!$num_hits)
message($lang_search['No unanswered']);
}
// We want to sort things after last post
$sort_by = 4;
$search_ids = array();
while ($row = $db->fetch_row($result))
$search_ids[] = $row[0];
$db->free_result($result);
$show_as = 'topics';
}
else
message($lang_common['Bad request']);
// 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))
{
while ($row = $db->fetch_row($result))
$old_searches[] = '\''.$db->escape($row[0]).'\'';
$db->query('DELETE FROM '.$db->prefix.'search_cache WHERE ident NOT IN('.implode(',', $old_searches).')') or error('Unable to delete search results', __FILE__, __LINE__, $db->error());
}
// Final search results
$search_results = implode(',', $search_ids);
// Fill an array with our results and search properties
$temp['search_results'] = $search_results;
$temp['num_hits'] = $num_hits;
$temp['sort_by'] = $sort_by;
$temp['sort_dir'] = $sort_dir;
$temp['show_as'] = $show_as;
$temp = serialize($temp);
$search_id = mt_rand(1, 2147483647);
$ident = ($pun_user['is_guest']) ? get_remote_address() : $pun_user['username'];
$db->query('INSERT INTO '.$db->prefix.'search_cache (id, ident, search_data) VALUES('.$search_id.', \''.$db->escape($ident).'\', \''.$db->escape($temp).'\')') or error('Unable to insert search results', __FILE__, __LINE__, $db->error());
if ($action != 'show_new' && $action != 'show_24h')
{
$db->end_transaction();
$db->close();
// Redirect the user to the cached result page
header('Location: search.php?search_id='.$search_id);
pun_exit();
}
}
// Fetch results to display
if ($search_results != '')
{
switch ($sort_by)
{
case 1:
$sort_by_sql = ($show_as == 'topics') ? 't.poster' : 'p.poster';
break;
case 2:
$sort_by_sql = 't.subject';
break;
case 3:
$sort_by_sql = 't.forum_id';
break;
case 4:
$sort_by_sql = 't.last_post';
break;
default:
$sort_by_sql = ($show_as == 'topics') ? 't.posted' : 'p.posted';
break;
}
if ($show_as == 'posts')
{
$substr_sql = ($db_type != 'sqlite') ? 'SUBSTRING' : 'SUBSTR';
$sql = 'SELECT p.id AS pid, p.poster AS pposter, p.posted AS pposted, p.poster_id, '.$substr_sql.'(p.message, 1, 1000) AS message, t.id AS tid, t.poster, t.subject, t.last_post, t.last_post_id, t.last_poster, t.num_replies, t.forum_id FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id WHERE p.id IN('.$search_results.') ORDER BY '.$sort_by_sql;
}
else
$sql = 'SELECT t.id AS tid, t.poster, t.subject, t.last_post, t.last_post_id, t.last_poster, t.num_replies, t.closed, t.forum_id FROM '.$db->prefix.'topics AS t WHERE t.id IN('.$search_results.') ORDER BY '.$sort_by_sql;
// Determine the topic or post offset (based on $_GET['p'])
$per_page = ($show_as == 'posts') ? $pun_user['disp_posts'] : $pun_user['disp_topics'];
$num_pages = ceil($num_hits / $per_page);
$p = (!isset($_GET['p']) || !is_numeric($_GET['p']) || $_GET['p'] <= 1 || $_GET['p'] > $num_pages) ? 1 : $_GET['p'];
$start_from = $per_page * ($p - 1);
// Generate paging links
$paging_links = $lang_common['Pages'].': '.paginate($num_pages, $p, 'search.php?search_id='.$search_id);
$sql .= ' '.$sort_dir.' LIMIT '.$start_from.', '.$per_page;
$result = $db->query($sql) or error('Unable to fetch search results', __FILE__, __LINE__, $db->error());
$search_set = array();
while ($row = $db->fetch_assoc($result))
$search_set[] = $row;
$db->free_result($result);
$page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_search['Search results'];
require PUN_ROOT.'header.php';
?>
<div class="linkst">
<div class="inbox">
<p class="pagelink"><?php echo $paging_links ?></p>
</div>
</div>
<?php
//Set background switching on for show as posts
$bg_switch = true;
if ($show_as == 'topics')
{
?>
<div id="vf" class="blocktable">
<h2><span><?php echo $lang_search['Search results']; ?></span></h2>
<div class="box">
<div class="inbox">
<table cellspacing="0">
<thead>
<tr>
<th class="tcl" scope="col"><?php echo $lang_common['Topic']; ?></th>
<th class="tc2" scope="col"><?php echo $lang_common['Forum'] ?></th>
<th class="tc3" scope="col"><?php echo $lang_common['Replies'] ?></th>
<th class="tcr" scope="col"><?php echo $lang_common['Last post'] ?></th>
</tr>
</thead>
<tbody>
<?php
}
// Fetch the list of forums
$result = $db->query('SELECT id, forum_name FROM '.$db->prefix.'forums') or error('Unable to fetch forum list', __FILE__, __LINE__, $db->error());
$forum_list = array();
while ($forum_list[] = $db->fetch_row($result))
;
// Finally, lets loop through the results and output them
for ($i = 0; $i < count($search_set); ++$i)
{
@reset($forum_list);
while (list(, $temp) = @each($forum_list))
{
if ($temp[0] == $search_set[$i]['forum_id'])
$forum = '<a href="viewforum.php?id='.$temp[0].'">'.pun_htmlspecialchars($temp[1]).'</a>';
}
if ($pun_config['o_censoring'] == '1')
$search_set[$i]['subject'] = censor_words($search_set[$i]['subject']);
if ($show_as == 'posts')
{
$icon = '<div class="icon"><div class="nosize">'.$lang_common['Normal icon'].'</div></div>'."\n";
$subject = '<a href="viewtopic.php?id='.$search_set[$i]['tid'].'">'.pun_htmlspecialchars($search_set[$i]['subject']).'</a>';
if (!$pun_user['is_guest'] && $search_set[$i]['last_post'] > $pun_user['last_visit'])
$icon = '<div class="icon inew"><div class="nosize">'.$lang_common['New icon'].'</div></div>'."\n";
if ($pun_config['o_censoring'] == '1')
$search_set[$i]['message'] = censor_words($search_set[$i]['message']);
$message = str_replace("\n", '<br />', pun_htmlspecialchars($search_set[$i]['message']));
$pposter = pun_htmlspecialchars($search_set[$i]['pposter']);
if ($search_set[$i]['poster_id'] > 1)
$pposter = '<strong><a href="profile.php?id='.$search_set[$i]['poster_id'].'">'.$pposter.'</a></strong>';
if (pun_strlen($message) >= 1000)
$message .= ' &hellip;';
$vtpost1 = ($i == 0) ? ' vtp1' : '';
// Switch the background color for every message.
$bg_switch = ($bg_switch) ? $bg_switch = false : $bg_switch = true;
$vtbg = ($bg_switch) ? ' rowodd' : ' roweven';
?>
<div class="blockpost searchposts<?php echo $vtbg ?>">
<h2><?php echo $forum ?>&nbsp;&raquo;&nbsp;<?php echo $subject ?>&nbsp;&raquo;&nbsp;<a href="viewtopic.php?pid=<?php echo $search_set[$i]['pid'].'#p'.$search_set[$i]['pid'] ?>"><?php echo format_time($search_set[$i]['pposted']) ?></a></h2>
<div class="box">
<div class="inbox">
<div class="postleft">
<dl>
<dt><?php echo $pposter ?></dt>
<dd>Replies: <?php echo $search_set[$i]['num_replies'] ?></dd>
<dd><?php echo $icon; ?></dd>
<dd><p class="clearb"><a href="viewtopic.php?pid=<?php echo $search_set[$i]['pid'].'#p'.$search_set[$i]['pid'] ?>"><?php echo $lang_search['Go to post'] ?></a></p></dd>
</dl>
</div>
<div class="postright">
<div class="postmsg">
<p><?php echo $message ?></p>
</div>
</div>
<div class="clearer"></div>
</div>
</div>
</div>
<?php
}
else
{
$icon = '<div class="icon"><div class="nosize">'.$lang_common['Normal icon'].'</div></div>'."\n";
$icon_text = $lang_common['Normal icon'];
$item_status = '';
$icon_type = 'icon';
$subject = '<a href="viewtopic.php?id='.$search_set[$i]['tid'].'">'.pun_htmlspecialchars($search_set[$i]['subject']).'</a> <span class="byuser">'.$lang_common['by'].'&nbsp;'.pun_htmlspecialchars($search_set[$i]['poster']).'</span>';
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_text .= ' '.$lang_common['New icon'];
$item_status .= ' inew';
$icon_type = 'icon inew';
$subject = '<strong>'.$subject.'</strong>';
$subject_new_posts = '<span class="newtext">[&nbsp;<a href="viewtopic.php?id='.$search_set[$i]['tid'].'&amp;action=new" title="'.$lang_common['New posts info'].'">'.$lang_common['New posts'].'</a>&nbsp;]</span>';
}
else
$subject_new_posts = null;
$num_pages_topic = ceil(($search_set[$i]['num_replies'] + 1) / $pun_user['disp_posts']);
if ($num_pages_topic > 1)
$subject_multipage = '[ '.paginate($num_pages_topic, -1, 'viewtopic.php?id='.$search_set[$i]['tid']).' ]';
else
$subject_multipage = null;
// Should we show the "New posts" and/or the multipage links?
if (!empty($subject_new_posts) || !empty($subject_multipage))
{
$subject .= '&nbsp; '.(!empty($subject_new_posts) ? $subject_new_posts : '');
$subject .= !empty($subject_multipage) ? ' '.$subject_multipage : '';
}
?>
<tr<?php if ($item_status != '') echo ' class="'.trim($item_status).'"'; ?>>
<td class="tcl">
<div class="intd">
<div class="<?php echo $icon_type ?>"><div class="nosize"><?php echo trim($icon_text) ?></div></div>
<div class="tclcon">
<?php echo $subject."\n" ?>
</div>
</div>
</td>
<td class="tc2"><?php echo $forum ?></td>
<td class="tc3"><?php echo $search_set[$i]['num_replies'] ?></td>
<td class="tcr"><?php echo '<a href="viewtopic.php?pid='.$search_set[$i]['last_post_id'].'#p'.$search_set[$i]['last_post_id'].'">'.format_time($search_set[$i]['last_post']).'</a> '.$lang_common['by'].'&nbsp;'.pun_htmlspecialchars($search_set[$i]['last_poster']) ?></td>
</tr>
<?php
}
}
if ($show_as == 'topics')
echo "\t\t\t".'</tbody>'."\n\t\t\t".'</table>'."\n\t\t".'</div>'."\n\t".'</div>'."\n".'</div>'."\n\n";
?>
<div class="<?php echo ($show_as == 'topics') ? 'linksb' : 'postlinksb'; ?>">
<div class="inbox">
<p class="pagelink"><?php echo $paging_links ?></p>
</div>
</div>
<?php
$footer_style = 'search';
require PUN_ROOT.'footer.php';
}
else
message($lang_search['No hits']);
}
$page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_search['Search'];
$focus_element = array('search', 'keywords');
require PUN_ROOT.'header.php';
?>
<div id="searchform" class="blockform">
<h2><span><?php echo $lang_search['Search'] ?></span></h2>
<div class="box">
<form id="search" method="get" action="search.php">
<div class="inform">
<fieldset>
<legend><?php echo $lang_search['Search criteria legend'] ?></legend>
<div class="infldset">
<input type="hidden" name="action" value="search" />
<label class="conl"><?php echo $lang_search['Keyword search'] ?><br /><input type="text" name="keywords" size="40" maxlength="100" /><br /></label>
<label class="conl"><?php echo $lang_search['Author search'] ?><br /><input id="author" type="text" name="author" size="25" maxlength="25" /><br /></label>
<p class="clearb"><?php echo $lang_search['Search info'] ?></p>
</div>
</fieldset>
</div>
<div class="inform">
<fieldset>
<legend><?php echo $lang_search['Search in legend'] ?></legend>
<div class="infldset">
<label class="conl"><?php echo $lang_search['Forum search'] ?>
<br /><select id="forum" name="forum">
<?php
if ($pun_config['o_search_all_forums'] == '1' || $pun_user['g_id'] < PUN_GUEST)
echo "\t\t\t\t\t\t\t".'<option value="-1">'.$lang_search['All forums'].'</option>'."\n";
$result = $db->query('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name, f.redirect_url FROM '.$db->prefix.'categories AS c INNER JOIN '.$db->prefix.'forums AS f ON c.id=f.cat_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.redirect_url IS NULL ORDER BY c.disp_position, c.id, f.disp_position', true) or error('Unable to fetch category/forum list', __FILE__, __LINE__, $db->error());
$cur_category = 0;
while ($cur_forum = $db->fetch_assoc($result))
{
if ($cur_forum['cid'] != $cur_category) // A new category since last iteration?
{
if ($cur_category)
echo "\t\t\t\t\t\t\t".'</optgroup>'."\n";
echo "\t\t\t\t\t\t\t".'<optgroup label="'.pun_htmlspecialchars($cur_forum['cat_name']).'">'."\n";
$cur_category = $cur_forum['cid'];
}
echo "\t\t\t\t\t\t\t\t".'<option value="'.$cur_forum['fid'].'">'.pun_htmlspecialchars($cur_forum['forum_name']).'</option>'."\n";
}
?>
</optgroup>
</select>
<br /></label>
<label class="conl"><?php echo $lang_search['Search in'] ?>
<br /><select id="search_in" name="search_in">
<option value="all"><?php echo $lang_search['Message and subject'] ?></option>
<option value="message"><?php echo $lang_search['Message only'] ?></option>
<option value="topic"><?php echo $lang_search['Topic only'] ?></option>
</select>
<br /></label>
<p class="clearb"><?php echo $lang_search['Search in info'] ?></p>
</div>
</fieldset>
</div>
<div class="inform">
<fieldset>
<legend><?php echo $lang_search['Search results legend'] ?></legend>
<div class="infldset">
<label class="conl"><?php echo $lang_search['Sort by'] ?>
<br /><select name="sort_by">
<option value="0"><?php echo $lang_search['Sort by post time'] ?></option>
<option value="1"><?php echo $lang_search['Sort by author'] ?></option>
<option value="2"><?php echo $lang_search['Sort by subject'] ?></option>
<option value="3"><?php echo $lang_search['Sort by forum'] ?></option>
</select>
<br /></label>
<label class="conl"><?php echo $lang_search['Sort order'] ?>
<br /><select name="sort_dir">
<option value="DESC"><?php echo $lang_search['Descending'] ?></option>
<option value="ASC"><?php echo $lang_search['Ascending'] ?></option>
</select>
<br /></label>
<label class="conl"><?php echo $lang_search['Show as'] ?>
<br /><select name="show_as">
<option value="topics"><?php echo $lang_search['Show as topics'] ?></option>
<option value="posts"><?php echo $lang_search['Show as posts'] ?></option>
</select>
<br /></label>
<p class="clearb"><?php echo $lang_search['Search results info'] ?></p>
</div>
</fieldset>
</div>
<p><input type="submit" name="search" value="<?php echo $lang_common['Submit'] ?>" accesskey="s" /></p>
</form>
</div>
</div>
<?php
require PUN_ROOT.'footer.php';
/****************************************************************/
/* 1. IMPORTED STYLESHEETS */
/****************************************************************/
/* Import the basic setup styles */
@import url(imports/base.css);
/* 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: 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
}
/* 3.2 Underline on hover for links in headers and main menu */
#brdmenu A:hover, .blockpost H2 A:hover {TEXT-DECORATION: underline}
/****************************************************************/
/* 4. BORDER WIDTH AND STYLE */
/****************************************************************/
/* 4.1 By default borders are 1px solid */
DIV.box, .pun TD, .pun TH, .pun BLOCKQUOTE, DIV.codebox, DIV.forminfo, DIV.blockpost LABEL {
BORDER-STYLE: solid;
BORDER-WIDTH: 1px
}
/* 4.2 Special settings for the board header. */
#brdheader DIV.box {BORDER-TOP-WIDTH: 4px}
/* 4.3 Borders for table cells */
.pun TD, .pun TH {
BORDER-BOTTOM: none;
BORDER-RIGHT: none
}
.pun .tcl {BORDER-LEFT: none}
/* 4.4 Special setting for fieldsets to preserve IE defaults */
DIV>FIELDSET {
BORDER-STYLE: solid;
BORDER-WIDTH: 1px
}
/****************************************************************/
/* 5. VERTICAL AND PAGE SPACING */
/****************************************************************/
/* 5.1 Page margins */
HTML, BODY {MARGIN: 0; PADDING: 0}
#punwrap {margin:12px 20px}
/* 5.2 Creates vertical space between main board elements (Margins) */
DIV.blocktable, DIV.block, DIV.blockform, DIV.block2col, #postreview {MARGIN-BOTTOM: 12px}
#punindex DIV.blocktable, DIV.blockpost {MARGIN-BOTTOM: 6px}
DIV.block2col DIV.blockform, DIV.block2col DIV.block {MARGIN-BOTTOM: 0px}
/* 5.3 Remove space above breadcrumbs, postlinks and pagelinks with a negative top margin */
DIV.linkst, DIV.linksb {MARGIN-TOP: -12px}
DIV.postlinksb {MARGIN-TOP: -6px}
/* 5.4 Put a 12px gap above the board information box in index because the category tables only
have a 6px space beneath them */
#brdstats {MARGIN-TOP: 12px}
/****************************************************************/
/* 6. SPACING AROUND CONTENT */
/****************************************************************/
/* 6.1 Default padding for main items */
DIV.block DIV.inbox, DIV.blockmenu DIV.inbox {PADDING: 3px 6px}
.pun P, .pun UL, .pun DL, DIV.blockmenu LI, .pun LABEL, #announce DIV.inbox DIV {PADDING: 3px 0}
.pun H2 {PADDING: 4px 6px}
/* 6.2 Special spacing for various elements */
.pun H1 {PADDING: 3px 0px 0px 0}
#brdtitle P {PADDING-TOP: 0px}
DIV.linkst {PADDING: 8px 6px 3px 6px}
DIV.linksb, DIV.postlinksb {PADDING: 3px 6px 8px 6px}
#brdwelcome, #brdfooter DL A, DIV.blockmenu LI, DIV.rbox INPUT {LINE-HEIGHT: 1.4em}
#viewprofile DT, #viewprofile DD {PADDING: 0 3px; LINE-HEIGHT: 2em}
/* 6.4 Create some horizontal spacing for various elements */
#brdmenu LI, DIV.rbox INPUT, DIV.blockform P INPUT {MARGIN-RIGHT: 12px}
/****************************************************************/
/* 7. SPACING FOR TABLES */
/****************************************************************/
.pun TH, .pun TD {PADDING: 4px 6px}
.pun TD P {PADDING: 5px 0 0 0}
/****************************************************************/
/* 8. SPACING FOR POSTS */
/****************************************************************/
/* 8.1 Padding around left and right columns in viewtopic */
DIV.postleft DL, DIV.postright {PADDING: 6px}
/* 8.2 Extra spacing for poster contact details and avatar */
DD.usercontacts, DD.postavatar {MARGIN-TOP: 5px}
DD.postavatar {MARGIN-BOTTOM: 5px}
/* 8.3 Extra top spacing for signatures and edited by */
DIV.postsignature, DIV.postmsg P.postedit {PADDING-TOP: 15px}
/* 8.4 Spacing for code and quote boxes */
DIV.postmsg H4 {MARGIN-BOTTOM: 10px}
.pun BLOCKQUOTE, DIV.codebox {MARGIN: 5px 15px 15px 15px; PADDING: 8px}
/* 8.5 Padding for the action links and online indicator in viewtopic */
DIV.postfootleft P, DIV.postfootright UL, DIV.postfootright DIV {PADDING: 10px 6px 5px 6px}
/* 8.6 This is the input on moderators multi-delete view */
DIV.blockpost INPUT, DIV.blockpost LABEL {
PADDING: 3px;
DISPLAY: inline
}
P.multidelete {
PADDING-TOP: 15px;
PADDING-BOTTOM: 5px
}
/* 8.7 Make sure paragraphs in posts don't get any padding */
DIV.postmsg P {PADDING: 0}
/****************************************************************/
/* 9. SPECIAL SPACING FOR FORMS */
/****************************************************************/
/* 9.1 Padding around fieldsets */
DIV.blockform FORM, DIV.fakeform {PADDING: 20px 20px 15px 20px}
DIV.inform {PADDING-BOTTOM: 12px}
/* 9.2 Padding inside fieldsets */
.pun FIELDSET {PADDING: 0px 12px 0px 12px}
DIV.infldset {PADDING: 9px 0px 12px 0}
.pun LEGEND {PADDING: 0px 6px}
/* 9.3 The information box at the top of the registration form and elsewhere */
DIV.forminfo {
MARGIN-BOTTOM: 12px;
PADDING: 9px 10px
}
/* 9.4 BBCode help links in post forms */
UL.bblinks LI {PADDING-RIGHT: 20px}
UL.bblinks {PADDING-BOTTOM: 10px; PADDING-LEFT: 4px}
/* 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}
/****************************************************************/
/* 1. IMPORTED STYLESHEETS */
/****************************************************************/
/* Import the basic setup styles */
@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: 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
}
/* 3.2 Underline on hover for links in headers and main menu */
#brdmenu A:hover, .blockpost H2 A:hover {TEXT-DECORATION: underline}
/****************************************************************/
/* 4. BORDER WIDTH AND STYLE */
/****************************************************************/
/* 4.1 By default borders are 1px solid */
DIV.box, .pun TD, .pun TH, .pun BLOCKQUOTE, DIV.codebox, DIV.forminfo, DIV.blockpost LABEL {
BORDER-STYLE: solid;
BORDER-WIDTH: 1px
}
/* 4.2 Special settings for the board header. */
#brdheader DIV.box {BORDER-TOP-WIDTH: 4px}
/* 4.3 Borders for table cells */
.pun TD, .pun TH {
BORDER-BOTTOM: none;
BORDER-RIGHT: none
}
.pun .tcl {BORDER-LEFT: none}
/* 4.4 Special setting for fieldsets to preserve IE defaults */
DIV>FIELDSET {
BORDER-STYLE: solid;
BORDER-WIDTH: 1px
}
/****************************************************************/
/* 5. VERTICAL AND PAGE SPACING */
/****************************************************************/
/* 5.1 Page margins */
HTML, BODY {MARGIN: 0; PADDING: 0}
#punwrap {margin:12px 20px}
/* 5.2 Creates vertical space between main board elements (Margins) */
DIV.blocktable, DIV.block, DIV.blockform, DIV.block2col, #postreview {MARGIN-BOTTOM: 12px}
#punindex DIV.blocktable, DIV.blockpost {MARGIN-BOTTOM: 6px}
DIV.block2col DIV.blockform, DIV.block2col DIV.block {MARGIN-BOTTOM: 0px}
/* 5.3 Remove space above breadcrumbs, postlinks and pagelinks with a negative top margin */
DIV.linkst, DIV.linksb {MARGIN-TOP: -12px}
DIV.postlinksb {MARGIN-TOP: -6px}
/* 5.4 Put a 12px gap above the board information box in index because the category tables only
have a 6px space beneath them */
#brdstats {MARGIN-TOP: 12px}
/****************************************************************/
/* 6. SPACING AROUND CONTENT */
/****************************************************************/
/* 6.1 Default padding for main items */
DIV.block DIV.inbox, DIV.blockmenu DIV.inbox {PADDING: 3px 6px}
.pun P, .pun UL, .pun DL, DIV.blockmenu LI, .pun LABEL, #announce DIV.inbox DIV {PADDING: 3px 0}
.pun H2 {PADDING: 4px 6px}
/* 6.2 Special spacing for various elements */
.pun H1 {PADDING: 3px 0px 0px 0}
#brdtitle P {PADDING-TOP: 0px}
DIV.linkst {PADDING: 8px 6px 3px 6px}
DIV.linksb, DIV.postlinksb {PADDING: 3px 6px 8px 6px}
#brdwelcome, #brdfooter DL A, DIV.blockmenu LI, DIV.rbox INPUT {LINE-HEIGHT: 1.4em}
#viewprofile DT, #viewprofile DD {PADDING: 0 3px; LINE-HEIGHT: 2em}
/* 6.4 Create some horizontal spacing for various elements */
#brdmenu LI, DIV.rbox INPUT, DIV.blockform P INPUT {MARGIN-RIGHT: 12px}
/****************************************************************/
/* 7. SPACING FOR TABLES */
/****************************************************************/
.pun TH, .pun TD {PADDING: 4px 6px}
.pun TD P {PADDING: 5px 0 0 0}
/****************************************************************/
/* 8. SPACING FOR POSTS */
/****************************************************************/
/* 8.1 Padding around left and right columns in viewtopic */
DIV.postleft DL, DIV.postright {PADDING: 6px}
/* 8.2 Extra spacing for poster contact details and avatar */
DD.usercontacts, DD.postavatar {MARGIN-TOP: 5px}
DD.postavatar {MARGIN-BOTTOM: 5px}
/* 8.3 Extra top spacing for signatures and edited by */
DIV.postsignature, DIV.postmsg P.postedit {PADDING-TOP: 15px}
/* 8.4 Spacing for code and quote boxes */
DIV.postmsg H4 {MARGIN-BOTTOM: 10px}
.pun BLOCKQUOTE, DIV.codebox {MARGIN: 5px 15px 15px 15px; PADDING: 8px}
/* 8.5 Padding for the action links and online indicator in viewtopic */
DIV.postfootleft P, DIV.postfootright UL, DIV.postfootright DIV {PADDING: 10px 6px 5px 6px}
/* 8.6 This is the input on moderators multi-delete view */
DIV.blockpost INPUT, DIV.blockpost LABEL {
PADDING: 3px;
DISPLAY: inline
}
P.multidelete {
PADDING-TOP: 15px;
PADDING-BOTTOM: 5px
}
/* 8.7 Make sure paragraphs in posts don't get any padding */
DIV.postmsg P {PADDING: 0}
/****************************************************************/
/* 9. SPECIAL SPACING FOR FORMS */
/****************************************************************/
/* 9.1 Padding around fieldsets */
DIV.blockform FORM, DIV.fakeform {PADDING: 20px 20px 15px 20px}
DIV.inform {PADDING-BOTTOM: 12px}
/* 9.2 Padding inside fieldsets */
.pun FIELDSET {PADDING: 0px 12px 0px 12px}
DIV.infldset {PADDING: 9px 0px 12px 0}
.pun LEGEND {PADDING: 0px 6px}
/* 9.3 The information box at the top of the registration form and elsewhere */
DIV.forminfo {
MARGIN-BOTTOM: 12px;
PADDING: 9px 10px
}
/* 9.4 BBCode help links in post forms */
UL.bblinks LI {PADDING-RIGHT: 20px}
UL.bblinks {PADDING-BOTTOM: 10px; PADDING-LEFT: 4px}
/* 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}
/****************************************************************/
/* 1. IMPORTED STYLESHEETS */
/****************************************************************/
/* Import the basic setup styles */
@import url(imports/base.css);
/* 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: 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
}
/* 3.2 Underline on hover for links in headers and main menu */
#brdmenu A:hover, .blockpost H2 A:hover {TEXT-DECORATION: underline}
/****************************************************************/
/* 4. BORDER WIDTH AND STYLE */
/****************************************************************/
/* 4.1 By default borders are 1px solid */
DIV.box, .pun TD, .pun TH, .pun BLOCKQUOTE, DIV.codebox, DIV.forminfo, DIV.blockpost LABEL {
BORDER-STYLE: solid;
BORDER-WIDTH: 1px
}
/* 4.2 Special settings for the board header. */
#brdheader DIV.box {BORDER-TOP-WIDTH: 4px}
/* 4.3 Borders for table cells */
.pun TD, .pun TH {
BORDER-BOTTOM: none;
BORDER-RIGHT: none
}
.pun .tcl {BORDER-LEFT: none}
/* 4.4 Special setting for fieldsets to preserve IE defaults */
DIV>FIELDSET {
BORDER-STYLE: solid;
BORDER-WIDTH: 1px
}
/****************************************************************/
/* 5. VERTICAL AND PAGE SPACING */
/****************************************************************/
/* 5.1 Page margins */
HTML, BODY {MARGIN: 0; PADDING: 0}
#punwrap {margin:12px 20px}
/* 5.2 Creates vertical space between main board elements (Margins) */
DIV.blocktable, DIV.block, DIV.blockform, DIV.block2col, #postreview {MARGIN-BOTTOM: 12px}
#punindex DIV.blocktable, DIV.blockpost {MARGIN-BOTTOM: 6px}
DIV.block2col DIV.blockform, DIV.block2col DIV.block {MARGIN-BOTTOM: 0px}
/* 5.3 Remove space above breadcrumbs, postlinks and pagelinks with a negative top margin */
DIV.linkst, DIV.linksb {MARGIN-TOP: -12px}
DIV.postlinksb {MARGIN-TOP: -6px}
/* 5.4 Put a 12px gap above the board information box in index because the category tables only
have a 6px space beneath them */
#brdstats {MARGIN-TOP: 12px}
/****************************************************************/
/* 6. SPACING AROUND CONTENT */
/****************************************************************/
/* 6.1 Default padding for main items */
DIV.block DIV.inbox, DIV.blockmenu DIV.inbox {PADDING: 3px 6px}
.pun P, .pun UL, .pun DL, DIV.blockmenu LI, .pun LABEL, #announce DIV.inbox DIV {PADDING: 3px 0}
.pun H2 {PADDING: 4px 6px}
/* 6.2 Special spacing for various elements */
.pun H1 {PADDING: 3px 0px 0px 0}
#brdtitle P {PADDING-TOP: 0px}
DIV.linkst {PADDING: 8px 6px 3px 6px}
DIV.linksb, DIV.postlinksb {PADDING: 3px 6px 8px 6px}
#brdwelcome, #brdfooter DL A, DIV.blockmenu LI, DIV.rbox INPUT {LINE-HEIGHT: 1.4em}
#viewprofile DT, #viewprofile DD {PADDING: 0 3px; LINE-HEIGHT: 2em}
/* 6.4 Create some horizontal spacing for various elements */
#brdmenu LI, DIV.rbox INPUT, DIV.blockform P INPUT {MARGIN-RIGHT: 12px}
/****************************************************************/
/* 7. SPACING FOR TABLES */
/****************************************************************/
.pun TH, .pun TD {PADDING: 4px 6px}
.pun TD P {PADDING: 5px 0 0 0}
/****************************************************************/
/* 8. SPACING FOR POSTS */
/****************************************************************/
/* 8.1 Padding around left and right columns in viewtopic */
DIV.postleft DL, DIV.postright {PADDING: 6px}
/* 8.2 Extra spacing for poster contact details and avatar */
DD.usercontacts, DD.postavatar {MARGIN-TOP: 5px}
DD.postavatar {MARGIN-BOTTOM: 5px}
/* 8.3 Extra top spacing for signatures and edited by */
DIV.postsignature, DIV.postmsg P.postedit {PADDING-TOP: 15px}
/* 8.4 Spacing for code and quote boxes */
DIV.postmsg H4 {MARGIN-BOTTOM: 10px}
.pun BLOCKQUOTE, DIV.codebox {MARGIN: 5px 15px 15px 15px; PADDING: 8px}
/* 8.5 Padding for the action links and online indicator in viewtopic */
DIV.postfootleft P, DIV.postfootright UL, DIV.postfootright DIV {PADDING: 10px 6px 5px 6px}
/* 8.6 This is the input on moderators multi-delete view */
DIV.blockpost INPUT, DIV.blockpost LABEL {
PADDING: 3px;
DISPLAY: inline
}
P.multidelete {
PADDING-TOP: 15px;
PADDING-BOTTOM: 5px
}
/* 8.7 Make sure paragraphs in posts don't get any padding */
DIV.postmsg P {PADDING: 0}
/****************************************************************/
/* 9. SPECIAL SPACING FOR FORMS */
/****************************************************************/
/* 9.1 Padding around fieldsets */
DIV.blockform FORM, DIV.fakeform {PADDING: 20px 20px 15px 20px}
DIV.inform {PADDING-BOTTOM: 12px}
/* 9.2 Padding inside fieldsets */
.pun FIELDSET {PADDING: 0px 12px 0px 12px}
DIV.infldset {PADDING: 9px 0px 12px 0}
.pun LEGEND {PADDING: 0px 6px}
/* 9.3 The information box at the top of the registration form and elsewhere */
DIV.forminfo {
MARGIN-BOTTOM: 12px;
PADDING: 9px 10px
}
/* 9.4 BBCode help links in post forms */
UL.bblinks LI {PADDING-RIGHT: 20px}
UL.bblinks {PADDING-BOTTOM: 10px; PADDING-LEFT: 4px}
/* 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}
/****************************************************************/
/* 1. IMPORTED STYLESHEETS */
/****************************************************************/
/* Import the basic setup styles */
@import url(imports/base.css);
/* Import the colour scheme */
@import url(imports/Oxygen_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: 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
}
/* 3.2 Underline on hover for links in headers and main menu */
#brdmenu A:hover, .blockpost H2 A:hover {TEXT-DECORATION: underline}
/****************************************************************/
/* 4. BORDER WIDTH AND STYLE */
/****************************************************************/
/* 4.1 By default borders are 1px solid */
DIV.box, .pun TD, .pun TH, .pun BLOCKQUOTE, DIV.codebox, DIV.forminfo, DIV.blockpost LABEL {
BORDER-STYLE: solid;
BORDER-WIDTH: 1px
}
/* 4.2 Special settings for the board header. */
#brdheader DIV.box {BORDER-TOP-WIDTH: 4px}
/* 4.3 Borders for table cells */
.pun TD, .pun TH {
BORDER-BOTTOM: none;
BORDER-RIGHT: none
}
.pun .tcl {BORDER-LEFT: none}
/* 4.4 Special setting for fieldsets to preserve IE defaults */
DIV>FIELDSET {
BORDER-STYLE: solid;
BORDER-WIDTH: 1px
}
/****************************************************************/
/* 5. VERTICAL AND PAGE SPACING */
/****************************************************************/
/* 5.1 Page margins */
HTML, BODY {MARGIN: 0; PADDING: 0}
#punwrap {margin:12px 20px}
/* 5.2 Creates vertical space between main board elements (Margins) */
DIV.blocktable, DIV.block, DIV.blockform, DIV.block2col, #postreview {MARGIN-BOTTOM: 12px}
#punindex DIV.blocktable, DIV.blockpost {MARGIN-BOTTOM: 6px}
DIV.block2col DIV.blockform, DIV.block2col DIV.block {MARGIN-BOTTOM: 0px}
/* 5.3 Remove space above breadcrumbs, postlinks and pagelinks with a negative top margin */
DIV.linkst, DIV.linksb {MARGIN-TOP: -12px}
DIV.postlinksb {MARGIN-TOP: -6px}
/* 5.4 Put a 12px gap above the board information box in index because the category tables only
have a 6px space beneath them */
#brdstats {MARGIN-TOP: 12px}
/****************************************************************/
/* 6. SPACING AROUND CONTENT */
/****************************************************************/
/* 6.1 Default padding for main items */
DIV.block DIV.inbox, DIV.blockmenu DIV.inbox {PADDING: 3px 6px}
.pun P, .pun UL, .pun DL, DIV.blockmenu LI, .pun LABEL, #announce DIV.inbox DIV {PADDING: 3px 0}
.pun H2 {PADDING: 4px 6px}
/* 6.2 Special spacing for various elements */
.pun H1 {PADDING: 3px 0px 0px 0}
#brdtitle P {PADDING-TOP: 0px}
DIV.linkst {PADDING: 8px 6px 3px 6px}
DIV.linksb, DIV.postlinksb {PADDING: 3px 6px 8px 6px}
#brdwelcome, #brdfooter DL A, DIV.blockmenu LI, DIV.rbox INPUT {LINE-HEIGHT: 1.4em}
#viewprofile DT, #viewprofile DD {PADDING: 0 3px; LINE-HEIGHT: 2em}
/* 6.4 Create some horizontal spacing for various elements */
#brdmenu LI, DIV.rbox INPUT, DIV.blockform P INPUT {MARGIN-RIGHT: 12px}
/****************************************************************/
/* 7. SPACING FOR TABLES */
/****************************************************************/
.pun TH, .pun TD {PADDING: 4px 6px}
.pun TD P {PADDING: 5px 0 0 0}
/****************************************************************/
/* 8. SPACING FOR POSTS */
/****************************************************************/
/* 8.1 Padding around left and right columns in viewtopic */
DIV.postleft DL, DIV.postright {PADDING: 6px}
/* 8.2 Extra spacing for poster contact details and avatar */
DD.usercontacts, DD.postavatar {MARGIN-TOP: 5px}
DD.postavatar {MARGIN-BOTTOM: 5px}
/* 8.3 Extra top spacing for signatures and edited by */
DIV.postsignature, DIV.postmsg P.postedit {PADDING-TOP: 15px}
/* 8.4 Spacing for code and quote boxes */
DIV.postmsg H4 {MARGIN-BOTTOM: 10px}
.pun BLOCKQUOTE, DIV.codebox {MARGIN: 5px 15px 15px 15px; PADDING: 8px}
/* 8.5 Padding for the action links and online indicator in viewtopic */
DIV.postfootleft P, DIV.postfootright UL, DIV.postfootright DIV {PADDING: 10px 6px 5px 6px}
/* 8.6 This is the input on moderators multi-delete view */
DIV.blockpost INPUT, DIV.blockpost LABEL {
PADDING: 3px;
DISPLAY: inline
}
P.multidelete {
PADDING-TOP: 15px;
PADDING-BOTTOM: 5px
}
/* 8.7 Make sure paragraphs in posts don't get any padding */
DIV.postmsg P {PADDING: 0}
/****************************************************************/
/* 9. SPECIAL SPACING FOR FORMS */
/****************************************************************/
/* 9.1 Padding around fieldsets */
DIV.blockform FORM, DIV.fakeform {PADDING: 20px 20px 15px 20px}
DIV.inform {PADDING-BOTTOM: 12px}
/* 9.2 Padding inside fieldsets */
.pun FIELDSET {PADDING: 0px 12px 0px 12px}
DIV.infldset {PADDING: 9px 0px 12px 0}
.pun LEGEND {PADDING: 0px 6px}
/* 9.3 The information box at the top of the registration form and elsewhere */
DIV.forminfo {
MARGIN-BOTTOM: 12px;
PADDING: 9px 10px
}
/* 9.4 BBCode help links in post forms */
UL.bblinks LI {PADDING-RIGHT: 20px}
UL.bblinks {PADDING-BOTTOM: 10px; PADDING-LEFT: 4px}
/* 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}
/****************************************************************/
/* 1. IMPORTED STYLESHEETS */
/****************************************************************/
/* Import the basic setup styles */
@import url(imports/base.css);
/* 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: 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
}
/* 3.2 Underline on hover for links in headers and main menu */
#brdmenu A:hover, .blockpost H2 A:hover {TEXT-DECORATION: underline}
/****************************************************************/
/* 4. BORDER WIDTH AND STYLE */
/****************************************************************/
/* 4.1 By default borders are 1px solid */
DIV.box, .pun TD, .pun TH, .pun BLOCKQUOTE, DIV.codebox, DIV.forminfo, DIV.blockpost LABEL {
BORDER-STYLE: solid;
BORDER-WIDTH: 1px
}
/* 4.2 Special settings for the board header. */
#brdheader DIV.box {BORDER-TOP-WIDTH: 4px}
/* 4.3 Borders for table cells */
.pun TD, .pun TH {
BORDER-BOTTOM: none;
BORDER-RIGHT: none
}
.pun .tcl {BORDER-LEFT: none}
/* 4.4 Special setting for fieldsets to preserve IE defaults */
DIV>FIELDSET {
BORDER-STYLE: solid;
BORDER-WIDTH: 1px
}
/****************************************************************/
/* 5. VERTICAL AND PAGE SPACING */
/****************************************************************/
/* 5.1 Page margins */
HTML, BODY {MARGIN: 0; PADDING: 0}
#punwrap {margin:12px 20px}
/* 5.2 Creates vertical space between main board elements (Margins) */
DIV.blocktable, DIV.block, DIV.blockform, DIV.block2col, #postreview {MARGIN-BOTTOM: 12px}
#punindex DIV.blocktable, DIV.blockpost {MARGIN-BOTTOM: 6px}
DIV.block2col DIV.blockform, DIV.block2col DIV.block {MARGIN-BOTTOM: 0px}
/* 5.3 Remove space above breadcrumbs, postlinks and pagelinks with a negative top margin */
DIV.linkst, DIV.linksb {MARGIN-TOP: -12px}
DIV.postlinksb {MARGIN-TOP: -6px}
/* 5.4 Put a 12px gap above the board information box in index because the category tables only
have a 6px space beneath them */
#brdstats {MARGIN-TOP: 12px}
/****************************************************************/
/* 6. SPACING AROUND CONTENT */
/****************************************************************/
/* 6.1 Default padding for main items */
DIV.block DIV.inbox, DIV.blockmenu DIV.inbox {PADDING: 3px 6px}
.pun P, .pun UL, .pun DL, DIV.blockmenu LI, .pun LABEL, #announce DIV.inbox DIV {PADDING: 3px 0}
.pun H2 {PADDING: 4px 6px}
/* 6.2 Special spacing for various elements */
.pun H1 {PADDING: 3px 0px 0px 0}
#brdtitle P {PADDING-TOP: 0px}
DIV.linkst {PADDING: 8px 6px 3px 6px}
DIV.linksb, DIV.postlinksb {PADDING: 3px 6px 8px 6px}
#brdwelcome, #brdfooter DL A, DIV.blockmenu LI, DIV.rbox INPUT {LINE-HEIGHT: 1.4em}
#viewprofile DT, #viewprofile DD {PADDING: 0 3px; LINE-HEIGHT: 2em}
/* 6.4 Create some horizontal spacing for various elements */
#brdmenu LI, DIV.rbox INPUT, DIV.blockform P INPUT {MARGIN-RIGHT: 12px}
/****************************************************************/
/* 7. SPACING FOR TABLES */
/****************************************************************/
.pun TH, .pun TD {PADDING: 4px 6px}
.pun TD P {PADDING: 5px 0 0 0}
/****************************************************************/
/* 8. SPACING FOR POSTS */
/****************************************************************/
/* 8.1 Padding around left and right columns in viewtopic */
DIV.postleft DL, DIV.postright {PADDING: 6px}
/* 8.2 Extra spacing for poster contact details and avatar */
DD.usercontacts, DD.postavatar {MARGIN-TOP: 5px}
DD.postavatar {MARGIN-BOTTOM: 5px}
/* 8.3 Extra top spacing for signatures and edited by */
DIV.postsignature, DIV.postmsg P.postedit {PADDING-TOP: 15px}
/* 8.4 Spacing for code and quote boxes */
DIV.postmsg H4 {MARGIN-BOTTOM: 10px}
.pun BLOCKQUOTE, DIV.codebox {MARGIN: 5px 15px 15px 15px; PADDING: 8px}
/* 8.5 Padding for the action links and online indicator in viewtopic */
DIV.postfootleft P, DIV.postfootright UL, DIV.postfootright DIV {PADDING: 10px 6px 5px 6px}
/* 8.6 This is the input on moderators multi-delete view */
DIV.blockpost INPUT, DIV.blockpost LABEL {
PADDING: 3px;
DISPLAY: inline
}
P.multidelete {
PADDING-TOP: 15px;
PADDING-BOTTOM: 5px
}
/* 8.7 Make sure paragraphs in posts don't get any padding */
DIV.postmsg P {PADDING: 0}
/****************************************************************/
/* 9. SPECIAL SPACING FOR FORMS */
/****************************************************************/
/* 9.1 Padding around fieldsets */
DIV.blockform FORM, DIV.fakeform {PADDING: 20px 20px 15px 20px}
DIV.inform {PADDING-BOTTOM: 12px}
/* 9.2 Padding inside fieldsets */
.pun FIELDSET {PADDING: 0px 12px 0px 12px}
DIV.infldset {PADDING: 9px 0px 12px 0}
.pun LEGEND {PADDING: 0px 6px}
/* 9.3 The information box at the top of the registration form and elsewhere */
DIV.forminfo {
MARGIN-BOTTOM: 12px;
PADDING: 9px 10px
}
/* 9.4 BBCode help links in post forms */
UL.bblinks LI {PADDING-RIGHT: 20px}
UL.bblinks {PADDING-BOTTOM: 10px; PADDING-LEFT: 4px}
/* 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}
/****************************************************************/
/* 1. IMPORTED STYLESHEETS */
/****************************************************************/
/* Import the basic setup styles */
@import url(imports/base.css);
/* 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: 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
}
/* 3.2 Underline on hover for links in headers and main menu */
#brdmenu A:hover, .blockpost H2 A:hover {TEXT-DECORATION: underline}
/****************************************************************/
/* 4. BORDER WIDTH AND STYLE */
/****************************************************************/
/* 4.1 By default borders are 1px solid */
DIV.box, .pun TD, .pun TH, .pun BLOCKQUOTE, DIV.codebox, DIV.forminfo, DIV.blockpost LABEL {
BORDER-STYLE: solid;
BORDER-WIDTH: 1px
}
/* 4.2 Special settings for the board header. */
#brdheader DIV.box {BORDER-TOP-WIDTH: 4px}
/* 4.3 Borders for table cells */
.pun TD, .pun TH {
BORDER-BOTTOM: none;
BORDER-RIGHT: none
}
.pun .tcl {BORDER-LEFT: none}
/* 4.4 Special setting for fieldsets to preserve IE defaults */
DIV>FIELDSET {
BORDER-STYLE: solid;
BORDER-WIDTH: 1px
}
/****************************************************************/
/* 5. VERTICAL AND PAGE SPACING */
/****************************************************************/
/* 5.1 Page margins */
HTML, BODY {MARGIN: 0; PADDING: 0}
#punwrap {margin:12px 20px}
/* 5.2 Creates vertical space between main board elements (Margins) */
DIV.blocktable, DIV.block, DIV.blockform, DIV.block2col, #postreview {MARGIN-BOTTOM: 12px}
#punindex DIV.blocktable, DIV.blockpost {MARGIN-BOTTOM: 6px}
DIV.block2col DIV.blockform, DIV.block2col DIV.block {MARGIN-BOTTOM: 0px}
/* 5.3 Remove space above breadcrumbs, postlinks and pagelinks with a negative top margin */
DIV.linkst, DIV.linksb {MARGIN-TOP: -12px}
DIV.postlinksb {MARGIN-TOP: -6px}
/* 5.4 Put a 12px gap above the board information box in index because the category tables only
have a 6px space beneath them */
#brdstats {MARGIN-TOP: 12px}
/****************************************************************/
/* 6. SPACING AROUND CONTENT */
/****************************************************************/
/* 6.1 Default padding for main items */
DIV.block DIV.inbox, DIV.blockmenu DIV.inbox {PADDING: 3px 6px}
.pun P, .pun UL, .pun DL, DIV.blockmenu LI, .pun LABEL, #announce DIV.inbox DIV {PADDING: 3px 0}
.pun H2 {PADDING: 4px 6px}
/* 6.2 Special spacing for various elements */
.pun H1 {PADDING: 3px 0px 0px 0}
#brdtitle P {PADDING-TOP: 0px}
DIV.linkst {PADDING: 8px 6px 3px 6px}
DIV.linksb, DIV.postlinksb {PADDING: 3px 6px 8px 6px}
#brdwelcome, #brdfooter DL A, DIV.blockmenu LI, DIV.rbox INPUT {LINE-HEIGHT: 1.4em}
#viewprofile DT, #viewprofile DD {PADDING: 0 3px; LINE-HEIGHT: 2em}
/* 6.4 Create some horizontal spacing for various elements */
#brdmenu LI, DIV.rbox INPUT, DIV.blockform P INPUT {MARGIN-RIGHT: 12px}
/****************************************************************/
/* 7. SPACING FOR TABLES */
/****************************************************************/
.pun TH, .pun TD {PADDING: 4px 6px}
.pun TD P {PADDING: 5px 0 0 0}
/****************************************************************/
/* 8. SPACING FOR POSTS */
/****************************************************************/
/* 8.1 Padding around left and right columns in viewtopic */
DIV.postleft DL, DIV.postright {PADDING: 6px}
/* 8.2 Extra spacing for poster contact details and avatar */
DD.usercontacts, DD.postavatar {MARGIN-TOP: 5px}
DD.postavatar {MARGIN-BOTTOM: 5px}
/* 8.3 Extra top spacing for signatures and edited by */
DIV.postsignature, DIV.postmsg P.postedit {PADDING-TOP: 15px}
/* 8.4 Spacing for code and quote boxes */
DIV.postmsg H4 {MARGIN-BOTTOM: 10px}
.pun BLOCKQUOTE, DIV.codebox {MARGIN: 5px 15px 15px 15px; PADDING: 8px}
/* 8.5 Padding for the action links and online indicator in viewtopic */
DIV.postfootleft P, DIV.postfootright UL, DIV.postfootright DIV {PADDING: 10px 6px 5px 6px}
/* 8.6 This is the input on moderators multi-delete view */
DIV.blockpost INPUT, DIV.blockpost LABEL {
PADDING: 3px;
DISPLAY: inline
}
P.multidelete {
PADDING-TOP: 15px;
PADDING-BOTTOM: 5px
}
/* 8.7 Make sure paragraphs in posts don't get any padding */
DIV.postmsg P {PADDING: 0}
/****************************************************************/
/* 9. SPECIAL SPACING FOR FORMS */
/****************************************************************/
/* 9.1 Padding around fieldsets */
DIV.blockform FORM, DIV.fakeform {PADDING: 20px 20px 15px 20px}
DIV.inform {PADDING-BOTTOM: 12px}
/* 9.2 Padding inside fieldsets */
.pun FIELDSET {PADDING: 0px 12px 0px 12px}
DIV.infldset {PADDING: 9px 0px 12px 0}
.pun LEGEND {PADDING: 0px 6px}
/* 9.3 The information box at the top of the registration form and elsewhere */
DIV.forminfo {
MARGIN-BOTTOM: 12px;
PADDING: 9px 10px
}
/* 9.4 BBCode help links in post forms */
UL.bblinks LI {PADDING-RIGHT: 20px}
UL.bblinks {PADDING-BOTTOM: 10px; PADDING-LEFT: 4px}
/* 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}
/****************************************************************/
/* 1. BACKGROUND AND TEXT COLOURS */
/****************************************************************/
/* 1.1 Default background colour and text colour */
BODY {BACKGROUND-COLOR: #2A2A2A}
.pun {COLOR: #D4D4D4}
DIV.box, #adminconsole FIELDSET TH, .rowodd, .roweven {BACKGROUND-COLOR: #383838}
#adminconsole TD, #adminconsole TH {BORDER-COLOR: #383838}
/* 1. 2 Darker background colours */
TD.tc2, TD.tc3, TD.tcmod, #brdfooter DIV.box {BACKGROUND-COLOR: #424242}
#adminconsole FIELDSET TD, #viewprofile DD, DIV.forminfo, DIV.blockmenu DIV.box, #adstats DD {BACKGROUND-COLOR: #484848}
.pun BLOCKQUOTE, DIV.codebox {BACKGROUND-COLOR: #353533}
/* 1.3 Main headers and navigation bar background and text colour */
.pun H2, #brdmenu {BACKGROUND-COLOR: #565656; COLOR: #D4D4D4}
/* 1.4 Table header rows */
.pun TH, .bgc4 {BACKGROUND-COLOR: #484848}
/* 1.5 Fieldset legend text colour */
.pun LEGEND {COLOR: #60A0DC}
/* 1.6 Highlighted text for various items */
.pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #D4D4D4}
/* 1.7 Dark background for form elements */
.pun TEXTAREA, .pun INPUT, .pun SELECT {BACKGROUND-COLOR: #2A2A2A; COLOR: #D4D4D4}
/****************************************************************/
/* 2. POST BACKGROUNDS AND TEXT */
/****************************************************************/
/* 2.1 This is the setup for posts. */
DIV.blockpost DIV.box, DIV.postright, DIV.postfootright, #postpreview {BACKGROUND-COLOR: #383838}
DIV.postright, DIV.postfootright {BORDER-LEFT-COLOR: #424242}
DIV.postleft, DIV.postfootleft, DIV.blockpost LABEL {BACKGROUND-COLOR: #424242}
/* 2.2 Background for post headers and text colour for post numbers in viewtopic */
DIV.blockpost H2 {BACKGROUND-COLOR: #565656}
DIV.blockpost H2 SPAN.conr {COLOR: #A19E96}
/* 2.3 This is the line above the signature in posts. Colour and background should be the same */
.pun HR {BACKGROUND-COLOR: #606060; COLOR: #606060}
/****************************************************************/
/* 3. BORDER COLOURS */
/****************************************************************/
/* 3.1 All external borders (H1 is the board title) */
DIV.box {BORDER-COLOR: #565656}
/* 3.2 Makes the top border of posts match the colour used for post headers */
DIV.blockpost DIV.box {BORDER-COLOR: #565656 #525252 #525252}
/* 3.3 Table internal borders. By default TH is same as background so border is invisible */
.pun TD {BORDER-COLOR: #565656}
.pun TH {BORDER-COLOR: #484848}
/* 3.4 Creates the inset border for quote boxes, code boxes and form info boxes */
.pun BLOCKQUOTE, DIV.codebox, DIV.forminfo, DIV.blockpost LABEL {BORDER-COLOR: #606060}
/* 3.5 Gecko's default fieldset borders are really nasty so this gives them a colour
without interferring with IE's rather nice default */
.pun DIV>FIELDSET {BORDER-COLOR: #ACA899}
/****************************************************************/
/* 4. LINK COLOURS */
/****************************************************************/
/* 4.1 This is the default for all links */
.pun A:link, .pun A:visited {COLOR: #60A0DC}
.pun A:hover {COLOR: #80D6FF}
/* 4.2 This is the colour for links in header rows and the navigation bar */
.pun H2 A:link, .pun H2 A:visited {COLOR: #D4D4D4}
.pun H2 A:hover {COLOR: #D4D4D4}
/* 4.3 This is for closed topics and "hot" links */
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 */
/****************************************************************/
/* 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. The default is "icon". By default only .inew is different.*/
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
/****************************************************************/
/* 1. BACKGROUND AND TEXT COLOURS */
/****************************************************************/
/* 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}
#adminconsole TD, #adminconsole TH {BORDER-COLOR: #F1F1F1}
/* 1. 2 Darker background colours */
TD.tc2, TD.tc3, TD.tcmod, #postpreview, #viewprofile DD, DIV.forminfo,
#adminconsole FIELDSET TD, DIV.blockmenu DIV.box, #adstats DD {BACKGROUND-COLOR: #DEDFDF}
/* 1.3 Main headers and navigation bar background and text colour */
.pun H2, #brdmenu {BACKGROUND-COLOR: #6C8A3F; COLOR: #FFF}
/* 1.4 Table header rows */
.pun TH, .bgc4 {BACKGROUND-COLOR: #D1D1D1}
/* 1.5 Fieldset legend text colour */
.pun LEGEND {COLOR: #6C8A3F}
/* 1.6 Highlighted text for various items */
.pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #333}
/****************************************************************/
/* 2. POST BACKGROUNDS AND TEXT */
/****************************************************************/
/* 2.1 This is the setup for posts. */
DIV.blockpost DIV.box, DIV.postright, DIV.postfootright {BACKGROUND-COLOR: #DEDFDF}
DIV.postright, DIV.postfootright {BORDER-LEFT-COLOR: #F1F1F1}
DIV.postleft, DIV.postfootleft, DIV.blockpost LABEL {BACKGROUND-COLOR: #F1F1F1}
/* 2.2 Background for post headers and text colour for post numbers in viewtopic */
DIV.blockpost H2 {BACKGROUND-COLOR: #7EA34B}
DIV.blockpost H2 SPAN.conr {COLOR: #B7D094}
/* 2.3 This is the line above the signature in posts. Colour and background should be the same */
.pun HR {BACKGROUND-COLOR: #333; COLOR: #333}
/****************************************************************/
/* 3. BORDER COLOURS */
/****************************************************************/
/* 3.1 All external borders */
DIV.box {BORDER-COLOR: #6C8A3F}
/* 3.2 Makes the top border of posts match the colour used for post headers */
DIV.blockpost DIV.box {BORDER-COLOR: #7EA34B #6C8A3F #6C8A3F}
/* 3.3 Table internal borders. By default TH is same as background so border is invisible */
.pun TD {BORDER-COLOR: #CEDEB9}
.pun TH {BORDER-COLOR: #D1D1D1}
/* 3.4 Creates the inset border for quote boxes, code boxes and form info boxes */
.pun BLOCKQUOTE, DIV.codebox, DIV.forminfo, DIV.blockpost LABEL {BORDER-COLOR: #ACA899 #FFF #FFF #ACA899}
/* 3.5 Gecko's default fieldset borders are really nasty so this gives them a colour
without interferring with IE's rather nice default */
.pun DIV>FIELDSET {BORDER-COLOR: #ACA899}
/****************************************************************/
/* 4. LINK COLOURS */
/****************************************************************/
/* 4.1 This is the default for all links */
.pun A:link, .pun A:visited {COLOR: #638137}
.pun A:hover {COLOR: #8EB653}
/* 4.2 This is the colour for links in header rows and the navigation bar */
.pun H2 A:link, .pun H2 A:visited, #brdmenu A:link, #brdmenu A:visited {COLOR: #FFF}
.pun H2 A:hover, #brdmenu A:hover {COLOR: #FFF}
/* 4.3 This is for closed topics and "hot" links */
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 */
/****************************************************************/
/* 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. The default is "icon". By default only .inew is different.*/
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
/****************************************************************/
/* 1. BACKGROUND AND TEXT COLOURS */
/****************************************************************/
/* 1.1 Default background colour and text colour */
BODY {BACKGROUND-COLOR: #2A2A2A}
.pun {COLOR: #D4D4D4}
DIV.box, #adminconsole FIELDSET TH, .rowodd, .roweven {BACKGROUND-COLOR: #383838}
#adminconsole TD, #adminconsole TH {BORDER-COLOR: #383838}
/* 1. 2 Darker background colours */
TD.tc2, TD.tc3, TD.tcmod, #brdfooter DIV.box {BACKGROUND-COLOR: #424242}
#adminconsole FIELDSET TD, #viewprofile DD, DIV.forminfo, DIV.blockmenu DIV.box, #adstats DD {BACKGROUND-COLOR: #484848}
.pun BLOCKQUOTE, DIV.codebox {BACKGROUND-COLOR: #353533}
/* 1.3 Main headers and navigation bar background and text colour */
.pun H2, #brdmenu {BACKGROUND-COLOR: #565656; COLOR: #D4D4D4}
/* 1.4 Table header rows */
.pun TH {BACKGROUND-COLOR: #484848}
/* 1.5 Fieldset legend text colour */
.pun LEGEND {COLOR: #F6B620}
/* 1.6 Highlighted text for various items */
.pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #D4D4D4}
/* 1.7 Dark background for form elements */
.pun TEXTAREA, .pun INPUT, .pun SELECT {BACKGROUND-COLOR: #2A2A2A; COLOR: #D4D4D4}
/****************************************************************/
/* 2. POST BACKGROUNDS AND TEXT */
/****************************************************************/
/* 2.1 This is the setup for posts. */
DIV.blockpost DIV.box, DIV.postright, DIV.postfootright, #postpreview {BACKGROUND-COLOR: #383838}
DIV.postright, DIV.postfootright {BORDER-LEFT-COLOR: #424242}
DIV.postleft, DIV.postfootleft, DIV.blockpost LABEL {BACKGROUND-COLOR: #424242}
/* 2.2 Background for post headers and text colour for post numbers in viewtopic */
DIV.blockpost H2 {BACKGROUND-COLOR: #565656}
DIV.blockpost H2 SPAN.conr {COLOR: #A19E96}
/* 2.3 This is the line above the signature in posts. Colour and background should be the same */
.pun HR {BACKGROUND-COLOR: #606060; COLOR: #606060}
/****************************************************************/
/* 3. BORDER COLOURS */
/****************************************************************/
/* 3.1 All external borders (H1 is the board title) */
DIV.box {BORDER-COLOR: #565656}
/* 3.2 Makes the top border of posts match the colour used for post headers */
DIV.blockpost DIV.box {BORDER-COLOR: #565656 #525252 #525252}
/* 3.3 Table internal borders. By default TH is same as background so border is invisible */
.pun TD {BORDER-COLOR: #565656}
.pun TH {BORDER-COLOR: #484848}
/* 3.4 Creates the inset border for quote boxes, code boxes and form info boxes */
.pun BLOCKQUOTE, DIV.codebox, DIV.forminfo, DIV.blockpost LABEL {BORDER-COLOR: #565656}
/* 3.5 Gecko's default fieldset borders are really nasty so this gives them a colour
without interferring with IE's rather nice default */
.pun DIV>FIELDSET {BORDER-COLOR: #909090}
/****************************************************************/
/* 4. LINK COLOURS */
/****************************************************************/
/* 4.1 This is the default for all links */
.pun A:link, .pun A:visited {COLOR: #F6B620}
.pun A:hover {COLOR: #FFEE40}
/* 4.2 This is the colour for links in header rows and the navigation bar */
.pun H2 A:link, .pun H2 A:visited {COLOR: #D4D4D4}
.pun H2 A:hover {COLOR: #D4D4D4}
/* 4.3 This is for closed topics and "hot" links */
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 */
/****************************************************************/
/* 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. The default is "icon". By default only .inew is different.*/
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
/****************************************************************/
/* 1. BACKGROUND AND TEXT COLOURS */
/****************************************************************/
/* 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}
#adminconsole TD, #adminconsole TH {BORDER-COLOR: #F1F1F1}
/* 1. 2 Darker background colours */
TD.tc2, TD.tc3, TD.tcmod, #postpreview, #viewprofile DD, DIV.forminfo,
#adminconsole FIELDSET TD, DIV.blockmenu DIV.box, #adstats DD {BACKGROUND-COLOR: #DEDFDF}
/* 1.3 Main headers and navigation bar background and text colour */
.pun H2, #brdmenu {BACKGROUND-COLOR: #0066B9; COLOR: #FFF}
/* 1.4 Table header rows */
.pun TH {BACKGROUND-COLOR: #D1D1D1}
/* 1.5 Fieldset legend text colour */
.pun LEGEND {COLOR: #005CB1}
/* 1.6 Highlighted text for various items */
.pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #333}
/****************************************************************/
/* 2. POST BACKGROUNDS AND TEXT */
/****************************************************************/
/* 2.1 This is the setup for posts. */
DIV.blockpost DIV.box, DIV.postright, DIV.postfootright {BACKGROUND-COLOR: #DEDFDF}
DIV.postright, DIV.postfootright {BORDER-LEFT-COLOR: #f1f1f1}
DIV.postleft, DIV.postfootleft, DIV.blockpost LABEL {BACKGROUND-COLOR: #F1F1F1}
/* 2.2 Background for post headers and text colour for post numbers in viewtopic */
DIV.blockpost H2 {BACKGROUND-COLOR: #006FC9}
DIV.blockpost H2 SPAN.conr {COLOR: #AABDCD}
/* 2.3 This is the line above the signature in posts. Colour and background should be the same */
.pun HR {BACKGROUND-COLOR: #333; COLOR: #333}
/****************************************************************/
/* 3. BORDER COLOURS */
/****************************************************************/
/* 3.1 All external borders */
DIV.box {BORDER-COLOR: #0066B9}
/* 3.2 Makes the top border of posts match the colour used for post headers */
DIV.blockpost DIV.box {BORDER-COLOR: #006fC9 #0066B9 #0066B9}
/* 3.3 Table internal borders. By default TH is same as background so border is invisible */
.pun TD {BORDER-COLOR: #BBCEDE}
.pun TH {BORDER-COLOR: #D1D1D1}
/* 3.4 Creates the inset border for quote boxes, code boxes and form info boxes */
.pun BLOCKQUOTE, DIV.codebox, DIV.forminfo, DIV.blockpost LABEL {BORDER-COLOR: #ACA899 #FFF #FFF #ACA899}
/* 3.5 Gecko's default fieldset borders are really nasty so this gives them a colour
without interferring with IE's rather nice default */
.pun DIV>FIELDSET {BORDER-COLOR: #ACA899}
/****************************************************************/
/* 4. LINK COLOURS */
/****************************************************************/
/* 4.1 This is the default for all links */
.pun A:link, .pun A:visited {COLOR: #005CB1}
.pun A:hover {COLOR: #B42000}
/* 4.2 This is the colour for links in header rows and the navigation bar */
.pun H2 A:link, .pun H2 A:visited, #brdmenu A:link, #brdmenu A:visited {COLOR: #FFF}
.pun H2 A:hover, #brdmenu A:hover {COLOR: #FFF}
/* 4.3 This is for closed topics and "hot" links */
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 */
/****************************************************************/
/* 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. The default is "icon". By default only .inew is different.*/
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
/****************************************************************/
/* 1. BACKGROUND AND TEXT COLOURS */
/****************************************************************/
/* 1.1 Default background colour and text colour */
BODY {BACKGROUND-COLOR: #2A2A2A}
.pun {COLOR: #D4D4D4}
DIV.box, #adminconsole FIELDSET TH, .rowodd, .roweven {BACKGROUND-COLOR: #383838}
#adminconsole TD, #adminconsole TH {BORDER-COLOR: #383838}
/* 1. 2 Darker background colours */
TD.tc2, TD.tc3, TD.tcmod, #brdfooter DIV.box {BACKGROUND-COLOR: #424242}
#adminconsole FIELDSET TD, #viewprofile DD, DIV.forminfo, DIV.blockmenu DIV.box, #adstats DD {BACKGROUND-COLOR: #484848}
.pun BLOCKQUOTE, DIV.codebox {BACKGROUND-COLOR: #353533}
/* 1.3 Main headers and navigation bar background and text colour */
.pun H2, #brdmenu {BACKGROUND-COLOR: #565656; COLOR: #D4D4D4}
/* 1.4 Table header rows */
.pun TH, .bgc4 {BACKGROUND-COLOR: #484848}
/* 1.5 Fieldset legend text colour */
.pun LEGEND {COLOR: #60C860}
/* 1.6 Highlighted text for various items */
.pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #D4D4D4}
/* 1.7 Dark background for form elements */
.pun TEXTAREA, .pun INPUT, .pun SELECT {BACKGROUND-COLOR: #2A2A2A; COLOR: #D4D4D4}
/****************************************************************/
/* 2. POST BACKGROUNDS AND TEXT */
/****************************************************************/
/* 2.1 This is the setup for posts. */
DIV.blockpost DIV.box, DIV.postright, DIV.postfootright, #postpreview {BACKGROUND-COLOR: #383838}
DIV.postright, DIV.postfootright {BORDER-LEFT-COLOR: #424242}
DIV.postleft, DIV.postfootleft, DIV.blockpost LABEL {BACKGROUND-COLOR: #424242}
/* 2.2 Background for post headers and text colour for post numbers in viewtopic */
DIV.blockpost H2 {BACKGROUND-COLOR: #565656}
DIV.blockpost H2 SPAN.conr {COLOR: #A19E96}
/* 2.3 This is the line above the signature in posts. Colour and background should be the same */
.pun HR {BACKGROUND-COLOR: #606060; COLOR: #606060}
/****************************************************************/
/* 3. BORDER COLOURS */
/****************************************************************/
/* 3.1 All external borders (H1 is the board title) */
DIV.box {BORDER-COLOR: #565656}
/* 3.2 Makes the top border of posts match the colour used for post headers */
DIV.blockpost DIV.box {BORDER-COLOR: #565656 #525252 #525252}
/* 3.3 Table internal borders. By default TH is same as background so border is invisible */
.pun TD {BORDER-COLOR: #565656}
.pun TH {BORDER-COLOR: #484848}
/* 3.4 Creates the inset border for quote boxes, code boxes and form info boxes */
.pun BLOCKQUOTE, DIV.codebox, DIV.forminfo, DIV.blockpost LABEL {BORDER-COLOR: #606060}
/* 3.5 Gecko's default fieldset borders are really nasty so this gives them a colour
without interferring with IE's rather nice default */
.pun DIV>FIELDSET {BORDER-COLOR: #ACA899}
/****************************************************************/
/* 4. LINK COLOURS */
/****************************************************************/
/* 4.1 This is the default for all links */
.pun A:link, .pun A:visited {COLOR: #60C860}
.pun A:hover {COLOR: #80EE80}
/* 4.2 This is the colour for links in header rows and the navigation bar */
.pun H2 A:link, .pun H2 A:visited {COLOR: #D4D4D4}
.pun H2 A:hover {COLOR: #D4D4D4}
/* 4.3 This is for closed topics and "hot" links */
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 */
/****************************************************************/
/* 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. The default is "icon". By default only .inew is different.*/
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
margin creates space for the post status indicator */
TD DIV.tclcon {MARGIN-LEFT: 2.3em}
/****************************************************************/
/* 1. BACKGROUND AND TEXT COLOURS */
/****************************************************************/
/* 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}
#adminconsole TD, #adminconsole TH {BORDER-COLOR: #F1F1F1}
/* 1. 2 Darker background colours */
TD.tc2, TD.tc3, TD.tcmod, #postpreview, #viewprofile DD, DIV.forminfo,
#adminconsole FIELDSET TD, DIV.blockmenu DIV.box, #adstats DD {BACKGROUND-COLOR: #DEDFDF}
/* 1.3 Main headers and navigation bar background and text colour */
.pun H2, #brdmenu {BACKGROUND-COLOR: #B84623; COLOR: #FFF}
/* 1.4 Table header rows */
.pun TH {BACKGROUND-COLOR: #D1D1D1}
/* 1.5 Fieldset legend text colour */
.pun LEGEND {COLOR: #822100}
/* 1.6 Highlighted text for various items */
.pun DIV.blockmenu LI.isactive A, #posterror LI STRONG {COLOR: #333}
/****************************************************************/
/* 2. POST BACKGROUNDS AND TEXT */
/****************************************************************/
/* 2.1 This is the setup for posts. */
DIV.blockpost DIV.box, DIV.postright, DIV.postfootright {BACKGROUND-COLOR: #DEDFDF}
DIV.postright, DIV.postfootright {BORDER-LEFT-COLOR: #F1F1F1}
DIV.postleft, DIV.postfootleft, DIV.blockpost LABEL {BACKGROUND-COLOR: #F1F1F1}
/* 2.2 Background for post headers and text colour for post numbers in viewtopic */
DIV.blockpost H2 {BACKGROUND-COLOR: #D25028}
DIV.blockpost H2 SPAN.conr {COLOR: #FCCFC1}
/* 2.3 This is the line above the signature in posts. Colour and background should be the same */
.pun HR {BACKGROUND-COLOR: #333; COLOR: #333}
/****************************************************************/
/* 3. BORDER COLOURS */
/****************************************************************/
/* 3.1 All external borders */
DIV.box {BORDER-COLOR: #B84623}
/* 3.2 Makes the top border of posts match the colour used for post headers */
DIV.blockpost DIV.box {BORDER-COLOR: #D25028 #B84623 #B84623}
/* 3.3 Table internal borders. By default TH is same as background so border is invisible */
.pun TD {BORDER-COLOR: #E1C3C3}
.pun TH {BORDER-COLOR: #D1D1D1}
/* 3.4 Creates the inset border for quote boxes, code boxes and form info boxes */
.pun BLOCKQUOTE, DIV.codebox, DIV.forminfo, DIV.blockpost LABEL {BORDER-COLOR: #ACA899 #FFF #FFF #ACA899}
/* 3.5 Gecko's default fieldset borders are really nasty so this gives them a colour
without interferring with IE's rather nice default */
.pun DIV>FIELDSET {BORDER-COLOR: #ACA899}
/****************************************************************/
/* 4. LINK COLOURS */
/****************************************************************/
/* 4.1 This is the default for all links */
.pun A:link, .pun A:visited {COLOR: #822100}
.pun A:hover {COLOR: #CA3300}
/* 4.2 This is the colour for links in header rows and the navigation bar */
.pun H2 A:link, .pun H2 A:visited, #brdmenu A:link, #brdmenu A:visited {COLOR: #FFF}
.pun H2 A:hover, #brdmenu A:hover {COLOR: #FFF}
/* 4.3 This is for closed topics and "hot" links */
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 */
/****************************************************************/
/* 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. The default is "icon". By default only .inew is different.*/
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
/****************************************************************/
/* 1. INITIAL SETTINGS */
/****************************************************************/
.pun TABLE, .pun DIV, .pun FORM, .pun P, .pun H1, .pun H2, .pun H3,
.pun H4, .pun PRE, .pun BLOCKQUOTE, .pun UL, .pun OL, .pun LI, .pun DL,
.pun DT, .pun DD, .pun TH, .pun TD, .pun FIELDSET, .pun IMG {
MARGIN: 0px;
PADDING: 0px;
FONT-WEIGHT: normal;
LIST-STYLE: none;
}
.pun IMG {BORDER: none}
.pun INPUT, .pun SELECT, .pun TEXTAREA, .pun OPTGROUP {MARGIN: 0}
/****************************************************************/
/* 2. STRUCTURAL SETTINGS - VERY IMPORTANT - DO NOT CHANGE */
/****************************************************************/
/* 2.1 Clearing floats and invisible items */
.pun .clearer, .pun .nosize {
HEIGHT: 0;
WIDTH: 0;
LINE-HEIGHT: 0;
FONT-SIZE: 0;
OVERFLOW: hidden
}
.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 attempts to eliminate rounding errors in Gecko browsers. */
DIV>DIV>DIV.postfootleft, DIV>DIV>DIV.postfootright {PADDING-TOP: 1px; MARGIN-TOP: -1px}
/* 3.2 This is only visible to IE6 Windows and cures various bugs. Do not alter comments */
/* Begin IE6Win Fix \*/
* HTML .inbox, * HTML .inform, * HTML .pun, * HTML .intd, * HTML .tclcon {HEIGHT: 1px}
* HTML .inbox DIV.postmsg {WIDTH: 98%}
/* End of IE6Win Fix */
/* 3.3 This is the equivelant of 3.2 but for IE7. It is visible to other browsers
but does no harm */
/*Begin IE7Win Fix */
.pun, .pun .inbox, .pun .inform, .pun .intd, .pun .tclcon {min-height: 1px}
/* End of IE7Win Fix */
/****************************************************************/
/* 4. HIDDEN ELEMENTS */
/****************************************************************/
/* These are hidden in normal display. Add comments to make them visible */
#brdfooter H2, #brdstats H2, #brdstats .conl DT, #brdstats .conr DT,
#modcontrols DT, #searchlinks DT, DIV.postright H3 {
POSITION: absolute;
DISPLAY: block;
OVERFLOW: hidden;
WIDTH: 1em;
LEFT: -999em
}
/****************************************************************/
/* 5. BOX CONTAINERS AND FLOATS */
/****************************************************************/
/* 5.1. Setup all left and right content using floats. */
.conr {
FLOAT: right;
TEXT-ALIGN: right;
CLEAR: right;
WIDTH: 40%
}
.conl {
FLOAT: left;
WIDTH: 55%;
OVERFLOW: hidden;
WHITE-SPACE: nowrap
}
LABEL.conl {
WIDTH: auto;
OVERFLOW: visible;
MARGIN-RIGHT: 10px
}
/* 5.2 Set up page numbering and posts links */
DIV.linkst .conl, DIV.linksb .conl, DIV.postlinksb .conl {WIDTH:18em}
DIV.linkst .conr, DIV.linksb .conr, DIV.postlinksb .conr {WIDTH:16em}
FORM DIV.linksb .conr {WIDTH: 32em}
/* 5.3 Keep breadcrumbs from shifting to the right when wrapping */
.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}
DIV.blockmenu, #viewprofile DT {
FLOAT:left;
WIDTH: 13em
}
#profileavatar IMG {
FLOAT: right;
MARGIN-LEFT: 1em
}
#viewprofile DL {FLOAT: left; WIDTH: 100%; OVERFLOW: hidden}
/****************************************************************/
/* 6. TABLE SETUP */
/****************************************************************/
/* 6.1 Table Basic Setup */
.pun TABLE {WIDTH: 100%}
/* 6.2 Fixed Table Setup */
#punindex TABLE, #vf TABLE {TABLE-LAYOUT: fixed}
.tcl {TEXT-ALIGN: left; WIDTH: 50%}
.tc2, .tc3, .tcmod {WIDTH: 9%; TEXT-ALIGN: center}
.tcr {WIDTH: 32%; TEXT-ALIGN: left}
#punsearch #vf .tcl, #punmoderate #vf .tcl {WIDTH: 41%}
#punsearch #vf .tc2 {WIDTH: 18%; TEXT-ALIGN: left}
.tcl, .tcr {OVERFLOW: HIDDEN}
/* 6.3 Other Table Setup */
#users1 .tcl {WIDTH: 40%}
#users1 .tcr {WIDTH: 25%}
#users1 .tc2 {WIDTH: 25%; TEXT-ALIGN: left}
#users1 .tc3 {WIDTH: 10%; TEXT-ALIGN: center}
#debug .tcr {WIDTH: 85%; WHITE-SPACE: normal}
#punindex TD.tcr SPAN.byuser {DISPLAY: block}
/****************************************************************/
/* 7. VIEWTOPIC SETUP */
/****************************************************************/
/* 7.1 This is the basic structure. */
DIV.postleft, DIV.postfootleft {
FLOAT:left;
WIDTH: 18em;
OVERFLOW: hidden;
POSITION: relative;
}
DIV.postright, DIV.postfootright {
BORDER-LEFT-WIDTH: 18em;
BORDER-LEFT-STYLE: solid
}
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 */
DIV.postmsg {WIDTH:100%}
/* 7.4 These items control overflow and scrolling within posts. */
DIV.incqbox {WIDTH: 100%; OVERFLOW: hidden}
DIV.scrollbox {WIDTH: 100%; OVERFLOW: auto}
IMG.postimg {max-width: 100%}
A .postimg {max-width: 100%}
/* 7.5 Turn off the poster information column for preview */
#postpreview DIV.postright {BORDER-LEFT: none}
/* 7.6 Create the horizontal line above signatures */
DIV.postsignature HR {
MARGIN-LEFT: 0px;
WIDTH: 200px;
TEXT-ALIGN: left;
HEIGHT: 1px;
BORDER:none
}
/* 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.8 Class for bbcode [u] */
SPAN.bbu {TEXT-DECORATION: underline}
/****************************************************************/
/* 8. LISTS SPECIAL SETTINGS */
/****************************************************************/
/* 8.1 Horizontal display of online list, main navigation menu and breadcrumbs */
#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
}
/* 8.2 Turn on square icon for posterror list */
#posterror UL LI {LIST-STYLE: square inside}
/* 8.3 Right alignment of descriptions in ordinary member view of other members profiles */
#viewprofile DT {TEXT-ALIGN: right}
/****************************************************************/
/* 9. FORM SETTINGS */
/****************************************************************/
/* 9.1 Makes textareas and long text inputs shrink with page */
DIV.txtarea {WIDTH: 75%}
DIV.txtarea TEXTAREA, INPUT.longinput {WIDTH: 100%}
.pun LABEL {DISPLAY: block}
#qjump SELECT {WIDTH: 50%}
/****************************************************************/
/* 10. HELP FILES AND MISC. */
/****************************************************************/
/* 10.1 Put some space between sections of the help file */
#helpfile H2 {MARGIN-TOP: 12px}
/* 10.2 Internal padding */
#helpfile DIV.box {PADDING: 10px}
/* 10.3 Other templates */
#punredirect DIV.block, #punmaint DIV.block {MARGIN: 50px 20% 12px 20%}
#adminconsole .block2 {MARGIN-TOP: 12px}
/*** Admin Main Content ***/
* HTML #adstats DD {HEIGHT: 1%}
#adstats DD {MARGIN-LEFT: 14em; PADDING: 3px; MARGIN-BOTTOM: 5px; LINE-HEIGHT: 1.5em}
#adstats DT {FLOAT:left; WIDTH: 13em; PADDING: 3px; line-height: 1.5em}
#adstats {PADDING: 15px 15px 5px 10px}
#adintro {PADDING: 5px}
#adintro P {PADDING: 10px}
#adstats DL {PADDING: 5px 0 10px 5px}
#adminconsole FIELDSET TD {TEXT-ALIGN: left; PADDING: 4px; WHITE-SPACE: normal}
#adminconsole FIELDSET TH {TEXT-ALIGN: left; PADDING: 4px; WHITE-SPACE: normal}
#adminconsole FIELDSET TD SPAN, #adminconsole FIELDSET TH SPAN {DISPLAY: block; FONT-SIZE: 1em; FONT-WEIGHT: normal}
#adminconsole TH {WIDTH: 15em; FONT-WEIGHT: bold}
#adminconsole INPUT, #adminconsole SELECT, #adminconsole TEXTAREA {MARGIN-BOTTOM: 0; MARGIN-TOP: 0; FONT-WEIGHT: normal}
#adminconsole TABLE.aligntop TH, #adminconsole TABLE.aligntop TD {VERTICAL-ALIGN: top}
#adminconsole TABLE.aligntop TH {PADDING-TOP: 0.7em}
#adminconsole TD, #adminconsole TH {BORDER-STYLE: solid; BORDER-WIDTH: 3px 0px 3px 0px}
#adminconsole P {PADDING-BOTTOM: 6px}
#adminconsole .topspace {PADDING-TOP: 6px}
#adminconsole P.submittop, #adminconsole P.submitend {TEXT-ALIGN: center}
#adminconsole TH.hidehead {COLOR: #f1f1f1}
#adminconsole THEAD TH {PADDING-BOTTOM: 0px}
#adminconsole P.linkactions {FONT-WEIGHT: bold; PADDING-LEFT: 5px}
#adminconsole TH INPUT, #adminconsole DIV.fsetsubmit {MARGIN-TOP: 6px}
/*** Particular table settings ***/
#categoryedit .tcl {WIDTH: 25%}
#censoring .tcl, #censoring .tc2, #ranks .tcl, #ranks .tc2 {WIDTH: 20%}
TABLE#forumperms TH, TABLE#forumperms TD {WHITE-SPACE: normal; WIDTH: auto; TEXT-ALIGN: center}
TABLE#forumperms .atcl {TEXT-ALIGN: left; WIDTH: 15em; WHITE-SPACE: nowrap}
#adminconsole TD.nodefault {BACKGROUND-COLOR: #D59B9B}
/*** User Search Result Tables ***/
#users2 TH, #users2 TH {TEXT-ALIGN: left}
#users2 .tcl, #users2 .tc3, #users2 .tc5 {WIDTH: 15%; TEXT-ALIGN: left}
#users2 .tc2 {WIDTH: 22%; TEXT-ALIGN: left}
#users2 .tc4 {WIDTH: 8%}
#users2 .tc4 {TEXT-ALIGN: center}
#users2 .tcr {WHITE-SPACE: nowrap}
#adminconsole #linkst, #adminconsole #linksb A {FONT-WEIGHT: bold}
/*** Plugins ***/
#exampleplugin .inbox {PADDING: 6px 6px 0px 6px}
<html>
<head>
<title>.</title>
</head>
<body>
.
</body>
</html>
\ No newline at end of file
// minmax.js - written by Andrew Clover <and@doxdesk.com>
// 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.offsetWidth<optimal);
}
if (inrange && cs.maxWidth && cs.maxWidth!='none' && cs.maxWidth!='auto' && cs.maxWidth!='') {
st.width= cs.maxWidth;
inrange= (el.offsetWidth>optimal);
}
if (inrange) st.width= st.minmaxWidth;
}
}
var minmax_SCANDELAY= 500;
function minmax_scan() {
var el;
for (var i= 0; i<document.all.length; i++) {
el= document.all[i];
if (!el.minmax_bound) {
el.minmax_bound= true;
minmax_bind(el);
}
}
}
var minmax_scanner;
function minmax_stop() {
window.clearInterval(minmax_scanner);
minmax_scan();
}
minmax_scan();
minmax_scanner= window.setInterval(minmax_scan, minmax_SCANDELAY);
window.attachEvent('onload', minmax_stop);
@end @*/
<html>
<head>
<title>.</title>
</head>
<body>
.
</body>
</html>
\ No newline at end of file
<?php
/***********************************************************************
Copyright (C) 2002-2008 PunBB
Partially based on code copyright (C) 2008 FluxBB.org
This file is part of PunBB.
PunBB is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
PunBB is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA 02111-1307 USA
************************************************************************/
define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';
if ($pun_user['g_read_board'] == '0')
message($lang_common['No view']);
// Load the userlist.php language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/userlist.php';
// Load the search.php language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/search.php';
// Determine if we are allowed to view post counts
$show_post_count = ($pun_config['o_show_post_count'] == '1' || $pun_user['g_id'] < PUN_GUEST) ? true : false;
$username = (isset($_GET['username']) && $pun_user['g_search_users'] == '1') ? pun_trim($_GET['username']) : '';
$show_group = (!isset($_GET['show_group']) || intval($_GET['show_group']) < -1 && intval($_GET['show_group']) > 2) ? -1 : intval($_GET['show_group']);
$sort_by = (!isset($_GET['sort_by']) || $_GET['sort_by'] != 'username' && $_GET['sort_by'] != 'registered' && ($_GET['sort_by'] != 'num_posts' || !$show_post_count)) ? 'username' : $_GET['sort_by'];
$sort_dir = (!isset($_GET['sort_dir']) || $_GET['sort_dir'] != 'ASC' && $_GET['sort_dir'] != 'DESC') ? 'ASC' : strtoupper($_GET['sort_dir']);
$page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_common['User list'];
if ($pun_user['g_search_users'] == '1')
$focus_element = array('userlist', 'username');
define('PUN_ALLOW_INDEX', 1);
require PUN_ROOT.'header.php';
?>
<div class="blockform">
<h2><span><?php echo $lang_search['User search'] ?></span></h2>
<div class="box">
<form id="userlist" method="get" action="userlist.php">
<div class="inform">
<fieldset>
<legend><?php echo $lang_ul['User find legend'] ?></legend>
<div class="infldset">
<?php if ($pun_user['g_search_users'] == '1'): ?> <label class="conl"><?php echo $lang_common['Username'] ?><br /><input type="text" name="username" value="<?php echo pun_htmlspecialchars($username) ?>" size="25" maxlength="25" /><br /></label>
<?php endif; ?> <label class="conl"><?php echo $lang_ul['User group']."\n" ?>
<br /><select name="show_group">
<option value="-1"<?php if ($show_group == -1) echo ' selected="selected"' ?>><?php echo $lang_ul['All users'] ?></option>
<?php
$result = $db->query('SELECT g_id, g_title FROM '.$db->prefix.'groups WHERE g_id!='.PUN_GUEST.' ORDER BY g_id') or error('Unable to fetch user group list', __FILE__, __LINE__, $db->error());
while ($cur_group = $db->fetch_assoc($result))
{
if ($cur_group['g_id'] == $show_group)
echo "\t\t\t\t\t\t".'<option value="'.$cur_group['g_id'].'" selected="selected">'.pun_htmlspecialchars($cur_group['g_title']).'</option>'."\n";
else
echo "\t\t\t\t\t\t".'<option value="'.$cur_group['g_id'].'">'.pun_htmlspecialchars($cur_group['g_title']).'</option>'."\n";
}
?>
</select>
<br /></label>
<label class="conl"><?php echo $lang_search['Sort by']."\n" ?>
<br /><select name="sort_by">
<option value="username"<?php if ($sort_by == 'username') echo ' selected="selected"' ?>><?php echo $lang_common['Username'] ?></option>
<option value="registered"<?php if ($sort_by == 'registered') echo ' selected="selected"' ?>><?php echo $lang_common['Registered'] ?></option>
<?php if ($show_post_count): ?> <option value="num_posts"<?php if ($sort_by == 'num_posts') echo ' selected="selected"' ?>><?php echo $lang_ul['No of posts'] ?></option>
<?php endif; ?> </select>
<br /></label>
<label class="conl"><?php echo $lang_search['Sort order']."\n" ?>
<br /><select name="sort_dir">
<option value="ASC"<?php if ($sort_dir == 'ASC') echo ' selected="selected"' ?>><?php echo $lang_search['Ascending'] ?></option>
<option value="DESC"<?php if ($sort_dir == 'DESC') echo ' selected="selected"' ?>><?php echo $lang_search['Descending'] ?></option>
</select>
<br /></label>
<p class="clearb"><?php echo $lang_ul['User search info'] ?></p>
</div>
</fieldset>
</div>
<p><input type="submit" name="search" value="<?php echo $lang_common['Submit'] ?>" accesskey="s" /></p>
</form>
</div>
</div>
<?php
// Create any SQL for the WHERE clause
$where_sql = array();
$like_command = ($db_type == 'pgsql') ? 'ILIKE' : 'LIKE';
if ($pun_user['g_search_users'] == '1' && $username != '')
$where_sql[] = 'u.username '.$like_command.' \''.$db->escape(str_replace('*', '%', $username)).'\'';
if ($show_group > -1)
$where_sql[] = 'u.group_id='.$show_group;
// Fetch user count
$result = $db->query('SELECT COUNT(id) FROM '.$db->prefix.'users AS u WHERE u.id>1'.(!empty($where_sql) ? ' AND '.implode(' AND ', $where_sql) : '')) or error('Unable to fetch user list count', __FILE__, __LINE__, $db->error());
$num_users = $db->result($result);
// Determine the user offset (based on $_GET['p'])
$num_pages = ceil($num_users / 50);
$p = (!isset($_GET['p']) || !is_numeric($_GET['p']) || $_GET['p'] <= 1 || $_GET['p'] > $num_pages) ? 1 : $_GET['p'];
$start_from = 50 * ($p - 1);
// Generate paging links
$paging_links = $lang_common['Pages'].': '.paginate($num_pages, $p, 'userlist.php?username='.urlencode($username).'&amp;show_group='.$show_group.'&amp;sort_by='.$sort_by.'&amp;sort_dir='.strtoupper($sort_dir));
?>
<div class="linkst">
<div class="inbox">
<p class="pagelink"><?php echo $paging_links ?></p>
</div>
</div>
<div id="users1" class="blocktable">
<h2><span><?php echo $lang_common['User list'] ?></span></h2>
<div class="box">
<div class="inbox">
<table cellspacing="0">
<thead>
<tr>
<th class="tcl" scope="col"><?php echo $lang_common['Username'] ?></th>
<th class="tc2" scope="col"><?php echo $lang_common['Title'] ?></th>
<?php if ($show_post_count): ?> <th class="tc3" scope="col"><?php echo $lang_common['Posts'] ?></th>
<?php endif; ?> <th class="tcr" scope="col"><?php echo $lang_common['Registered'] ?></th>
</tr>
</thead>
<tbody>
<?php
// Grab the users
$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.', u.id ASC 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))
{
$user_title_field = get_title($user_data);
?>
<tr>
<td class="tcl"><?php echo '<a href="profile.php?id='.$user_data['id'].'">'.pun_htmlspecialchars($user_data['username']).'</a>' ?></td>
<td class="tc2"><?php echo $user_title_field ?></td>
<?php if ($show_post_count): ?> <td class="tc3"><?php echo $user_data['num_posts'] ?></td>
<?php endif; ?>
<td class="tcr"><?php echo format_time($user_data['registered'], true) ?></td>
</tr>
<?php
}
}
else
echo "\t\t\t".'<tr>'."\n\t\t\t\t\t".'<td class="tcl" colspan="'.(($show_post_count) ? 4 : 3).'">'.$lang_search['No hits'].'</td></tr>'."\n";
?>
</tbody>
</table>
</div>
</div>
</div>
<div class="linksb">
<div class="inbox">
<p class="pagelink"><?php echo $paging_links ?></p>
</div>
</div>
<?php
require PUN_ROOT.'footer.php';