" . ANONYMOUS; break; case 'newestuser': $sql = "SELECT user_id, username FROM ".USERS_TABLE." WHERE user_id <> " . ANONYMOUS . " ORDER BY user_id DESC LIMIT 1"; break; case 'topiccount': $sql = "SELECT SUM(forum_topics) AS total FROM ".FORUMS_TABLE; break; } if(!$result = $db->sql_query($sql)) { return 'ERROR'; } else { $row = $db->sql_fetchrow($result); if($mode == 'newestuser') { return($row); } else { return($row['total']); } } } function get_userdata_from_id($userid) { global $db; $sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_id = $userid"; if(!$result = $db->sql_query($sql)) { message_die(GENERAL_ERROR, "Couldn't obtain userdata for id", "", __LINE__, __FILE__, $sql); } if($db->sql_numrows($result)) { $myrow = $db->sql_fetchrowset($result); return($myrow[0]); } else { message_die(GENERAL_ERROR, "No userdata for this user_id", "", __LINE__, __FILE__, $sql); } } function get_userdata($username) { global $db; $sql = "SELECT * FROM " . USERS_TABLE . " WHERE username = '$username' AND user_id <> " . ANONYMOUS; if(!$result = $db->sql_query($sql)) { message_die(GENERAL_ERROR, "Tried obtaining data for a non-existent user", "", __LINE__, __FILE__, $sql); } if($db->sql_numrows($result)) { $myrow = $db->sql_fetchrowset($result); return($myrow[0]); } else { message_die(GENERAL_ERROR, "Tried obtaining data for a non-existent user", "", __LINE__, __FILE__, $sql); } } function make_jumpbox() { global $lang, $db; $sql = "SELECT c.cat_id, c.cat_title, c.cat_order FROM " . CATEGORIES_TABLE . " c, " . FORUMS_TABLE . " f WHERE f.cat_id = c.cat_id GROUP BY c.cat_id, c.cat_title, c.cat_order ORDER BY c.cat_order"; if(!$q_categories = $db->sql_query($sql)) { message_die(GENERAL_ERROR, "Couldn't obtain category list.", "", __LINE__, __FILE__, $sql); } $total_categories = $db->sql_numrows(); if($total_categories) { $category_rows = $db->sql_fetchrowset($q_categories); $limit_forums = ""; $sql = "SELECT * FROM " . FORUMS_TABLE . " ORDER BY cat_id, forum_order"; if(!$q_forums = $db->sql_query($sql)) { message_die(GENERAL_ERROR, "Couldn't obtain forums information.", "", __LINE__, __FILE__, $sql); } $total_forums = $db->sql_numrows($q_forums); $forum_rows = $db->sql_fetchrowset($q_forums); // $is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata); $boxstring = ''; } else { $boxstring .= ''; } return($boxstring); } function make_forum_box($box_name, $default_forum = -1) { global $db; $limit_forums = ""; $sql = "SELECT forum_id, forum_name FROM " . FORUMS_TABLE . " ORDER BY cat_id, forum_order"; if(!$q_forums = $db->sql_query($sql)) { message_die(GENERAL_ERROR, "Couldn't obtain forums information.", "", __LINE__, __FILE__, $sql); } $total_forums = $db->sql_numrows($q_forums); $forum_rows = $db->sql_fetchrowset($q_forums); $boxstring = '\n"; while ($file = readdir($dir)) { if (ereg("^lang_", $file)) { $filename = str_replace("lang_", "", $file); $filename = str_replace(".$phpEx", "", $filename); $displayname = preg_replace("/(.*)_(.*)/", "\\1 [ \\2 ]", $filename); $selected = (strtolower($default) == strtolower($filename)) ? " selected=\"selected\"" : ""; $lang_select .= " \n"; } } $lang_select .= "\n"; closedir($dir); return $lang_select; } // NOTE: This function should check is_dir($file), however the is_dir function seems to be buggy on my // system so its not currently implemented that way // - James function template_select($default, $select_name, $dirname = "templates") { $dir = opendir($dirname); $template_select = ""; closedir($dir); return($template_select); } function theme_select($default, $select_name) { global $db, $board_config, $lang; $sql = "SELECT themes_id, themes_name FROM " . THEMES_TABLE . " WHERE themes_name LIKE '" . $board_config['board_template'] . "-%' ORDER BY themes_name"; if($result = $db->sql_query($sql)) { $num = $db->sql_numrows($result); $rowset = $db->sql_fetchrowset($result); if($num) { $theme_select = "\n"; } else { $theme_select = ""; } } else { message_die(GENERAL_ERROR, "Couldn't query themes table", "", __LINE__, __FILE__, $sql); } return($theme_select); } function tz_select($default, $select_name) { global $sys_timezone; if(!isset($default)) { $default == $sys_timezone; } $tz_select = "\n"; return($tz_select); } // // Smilies code ... would this be better tagged // on to the end of bbcode.php? // // Probably so and I'll move it before B2 // The_Systech // function smilies_pass($message) { global $db, $board_config; static $smilies; if(empty($smilies)) { $sql = "SELECT code, smile_url FROM " . SMILIES_TABLE; if($result = $db->sql_query($sql)) { $smilies = $db->sql_fetchrowset($result); } } usort($smilies, 'smiley_sort'); for($i = 0; $i < count($smilies); $i++) { $orig[] = "'(?<=.\\W|\\W.|^\\W)" . preg_quote($smilies[$i]['code']) . "(?=.\\W|\\W.|\\W$)'i"; $repl[] = '' . $smilies[$i]['smile_url'] . ''; } if($i > 0) { $message = preg_replace($orig, $repl, ' ' . $message . ' '); $message = substr($message, 1, -1); } return($message); } function smiley_sort($a, $b) { if (strlen($a['code']) == strlen($b['code'])) { return 0; } return (strlen($a['code']) > strlen($b['code'])) ? -1 : 1; } // // Obtain list of naughty words and build preg style // replacement arrays for use by the calling script, // note that the vars are passed as references this just makes // it easier to return both sets of arrays // function obtain_word_list(&$orig_word, &$replacement_word) { global $db; // // Define censored word matches // $sql = "SELECT word, replacement FROM " . WORDS_TABLE; if( !$words_result = $db->sql_query($sql) ) { message_die(GENERAL_ERROR, "Couldn't get censored words from database.", "", __LINE__, __FILE__, $sql); } else { $word_list = $db->sql_fetchrowset($words_result); $orig_word = array(); $replacement_word = array(); for($i = 0; $i < count($word_list); $i++) { $word = str_replace("\*", "\w*?", preg_quote($word_list[$i]['word'])); $orig_word[] = "/\b(" . $word . ")\b/i"; $replacement_word[] = $word_list[$i]['replacement']; } } return(TRUE); } ?>