"smile1.gif", ":smile:" => "smile2.gif", ":-D" => "grin.gif", ":lol:" => "laugh.gif", ":w00t:" => "w00t.gif", ":-P" => "tongue.gif", ";-)" => "wink.gif", ":-|" => "noexpression.gif", ":-/" => "confused.gif", ":-(" => "sad.gif", ":'-(" => "cry.gif", ":weep:" => "weep.gif", ":-O" => "ohmy.gif", ":o)" => "clown.gif", "8-)" => "cool1.gif", "|-)" => "sleeping.gif", ":innocent:" => "innocent.gif", ":whistle:" => "whistle.gif", ":unsure:" => "unsure.gif", ":closedeyes:" => "closedeyes.gif", ":cool:" => "cool2.gif", ":fun:" => "fun.gif", ":thumbsup:" => "thumbsup.gif", ":thumbsdown:" => "thumbsdown.gif", ":blush:" => "blush.gif", ":unsure:" => "unsure.gif", ":yes:" => "yes.gif", ":no:" => "no.gif", ":love:" => "love.gif", ":?:" => "question.gif", ":!:" => "excl.gif", ":idea:" => "idea.gif", ":arrow:" => "arrow.gif", ":arrow2:" => "arrow2.gif", ":hmm:" => "hmm.gif", ":hmmm:" => "hmmm.gif", ":huh:" => "huh.gif", ":geek:" => "geek.gif", ":look:" => "look.gif", ":rolleyes:" => "rolleyes.gif", ":kiss:" => "kiss.gif", ":shifty:" => "shifty.gif", ":blink:" => "blink.gif", ":smartass:" => "smartass.gif", ":sick:" => "sick.gif", ":crazy:" => "crazy.gif", ":wacko:" => "wacko.gif", ":alien:" => "alien.gif", ":wizard:" => "wizard.gif", ":wave:" => "wave.gif", ":wavecry:" => "wavecry.gif", ":baby:" => "baby.gif", ":angry:" => "angry.gif", ":ras:" => "ras.gif", ":sly:" => "sly.gif", ":devil:" => "devil.gif", ":evil:" => "evil.gif", ":evilmad:" => "evilmad.gif", ":sneaky:" => "sneaky.gif", ":axe:" => "axe.gif", ":slap:" => "slap.gif", ":wall:" => "wall.gif", ":rant:" => "rant.gif", ":jump:" => "jump.gif", ":yucky:" => "yucky.gif", ":nugget:" => "nugget.gif", ":smart:" => "smart.gif", ":shutup:" => "shutup.gif", ":shutup2:" => "shutup2.gif", ":crockett:" => "crockett.gif", ":zorro:" => "zorro.gif", ":snap:" => "snap.gif", ":beer:" => "beer.gif", ":beer2:" => "beer2.gif", ":drunk:" => "drunk.gif", ":strongbench:" => "strongbench.gif", ":weakbench:" => "weakbench.gif", ":dumbells:" => "dumbells.gif", ":music:" => "music.gif", ":stupid:" => "stupid.gif", ":dots:" => "dots.gif", ":offtopic:" => "offtopic.gif", ":spam:" => "spam.gif", ":oops:" => "oops.gif", ":lttd:" => "lttd.gif", ":please:" => "please.gif", ":sorry:" => "sorry.gif", ":hi:" => "hi.gif", ":yay:" => "yay.gif", ":cake:" => "cake.gif", ":hbd:" => "hbd.gif", ":band:" => "band.gif", ":punk:" => "punk.gif", ":rofl:" => "rofl.gif", ":bounce:" => "bounce.gif", ":mbounce:" => "mbounce.gif", ":thankyou:" => "thankyou.gif", ":gathering:" => "gathering.gif", ":hang:" => "hang.gif", ":chop:" => "chop.gif", ":rip:" => "rip.gif", ":whip:" => "whip.gif", ":judge:" => "judge.gif", ":chair:" => "chair.gif", ":tease:" => "tease.gif", ":box:" => "box.gif", ":boxing:" => "boxing.gif", ":guns:" => "guns.gif", ":shoot:" => "shoot.gif", ":shoot2:" => "shoot2.gif", ":flowers:" => "flowers.gif", ":wub:" => "wub.gif", ":lovers:" => "lovers.gif", ":kissing:" => "kissing.gif", ":kissing2:" => "kissing2.gif", ":console:" => "console.gif", ":group:" => "group.gif", ":hump:" => "hump.gif", ":hooray:" => "hooray.gif", ":happy2:" => "happy2.gif", ":clap:" => "clap.gif", ":clap2:" => "clap2.gif", ":weirdo:" => "weirdo.gif", ":yawn:" => "yawn.gif", ":bow:" => "bow.gif", ":dawgie:" => "dawgie.gif", ":cylon:" => "cylon.gif", ":book:" => "book.gif", ":fish:" => "fish.gif", ":mama:" => "mama.gif", ":pepsi:" => "pepsi.gif", ":medieval:" => "medieval.gif", ":rambo:" => "rambo.gif", ":ninja:" => "ninja.gif", ":hannibal:" => "hannibal.gif", ":party:" => "party.gif", ":snorkle:" => "snorkle.gif", ":evo:" => "evo.gif", ":king:" => "king.gif", ":chef:" => "chef.gif", ":mario:" => "mario.gif", ":pope:" => "pope.gif", ":fez:" => "fez.gif", ":cap:" => "cap.gif", ":cowboy:" => "cowboy.gif", ":pirate:" => "pirate.gif", ":pirate2:" => "pirate2.gif", ":rock:" => "rock.gif", ":cigar:" => "cigar.gif", ":icecream:" => "icecream.gif", ":oldtimer:" => "oldtimer.gif", ":trampoline:" => "trampoline.gif", ":banana:" => "bananadance.gif", ":smurf:" => "smurf.gif", ":yikes:" => "yikes.gif", ":osama:" => "osama.gif", ":saddam:" => "saddam.gif", ":santa:" => "santa.gif", ":indian:" => "indian.gif", ":pimp:" => "pimp.gif", ":nuke:" => "nuke.gif", ":jacko:" => "jacko.gif", ":ike:" => "ike.gif", ":greedy:" => "greedy.gif", ":super:" => "super.gif", ":wolverine:" => "wolverine.gif", ":spidey:" => "spidey.gif", ":spider:" => "spider.gif", ":bandana:" => "bandana.gif", ":construction:" => "construction.gif", ":sheep:" => "sheep.gif", ":police:" => "police.gif", ":detective:" => "detective.gif", ":bike:" => "bike.gif", ":fishing:" => "fishing.gif", ":clover:" => "clover.gif", ":horse:" => "horse.gif", ":shit:" => "shit.gif", ":soldiers:" => "soldiers.gif", ); $privatesmilies = array( ":)" => "smile1.gif", // ";)" => "wink.gif", ":wink:" => "wink.gif", ":D" => "grin.gif", ":P" => "tongue.gif", ":(" => "sad.gif", ":'(" => "cry.gif", ":|" => "noexpression.gif", // "8)" => "cool1.gif", we don't want this as a smilie... ":Boozer:" => "alcoholic.gif", ":deadhorse:" => "deadhorse.gif", ":spank:" => "spank.gif", ":yoji:" => "yoji.gif", ":locked:" => "locked.gif", ":grrr:" => "angry.gif", // legacy "O:-" => "innocent.gif", // legacy ":sleeping:" => "sleeping.gif", // legacy "-_-" => "unsure.gif", // legacy ":clown:" => "clown.gif", ":mml:" => "mml.gif", ":rtf:" => "rtf.gif", ":morepics:" => "morepics.gif", ":rb:" => "rb.gif", ":rblocked:" => "rblocked.gif", ":maxlocked:" => "maxlocked.gif", ":hslocked:" => "hslocked.gif", ); // Set this to the line break character sequence of your system $linebreak = "\r\n"; function get_row_count($table, $suffix = "") { if ($suffix) $suffix = ' '.$suffix; ($r = do_mysql_query("SELECT COUNT(*) FROM $table$suffix")) or die(mysql_error()); ($a = mysql_fetch_row($r)) or die(mysql_error()); return $a[0]; } function stdmsg($heading, $text) { print("
\n"); if ($heading) print("

$heading

\n"); print("
\n"); print($text . "
\n"); } function stderr($heading, $text) { stdhead(); stdmsg($heading, $text); stdfoot(); die; } function sqlerr($file = '', $line = '') { print("" . "

SQL Error

\n" . "" . mysql_error() . ($file != '' && $line != '' ? "

in $file, line $line

" : "") . "
"); die; } // Returns the current time in GMT in MySQL compatible format. function get_date_time($timestamp = 0) { if ($timestamp > 0) return date("Y-m-d H:i:s", $timestamp); else return gmdate("Y-m-d H:i:s"); } function encodehtml($s, $linebreaks = true) { $s = htmlentities($s); if ($linebreaks) $s = nl2br($s); return $s; } function get_dt_num() { return gmdate("YmdHis"); } function format_urls($s) { return preg_replace( "/(\A|[^=\]'\"a-zA-Z0-9])((http|ftp|https|ftps|irc):\/\/brokenstones[^()<>\s]+)/i", "\\1\\2", $s); } /* // Removed this fn, I've decided we should drop the redir script... // it's pretty useless since ppl can still link to pics... // -Rb function format_local_urls($s) { return preg_replace( "/(\s]*))>([^<]+)<\/a>/i", "\\8", $s); } */ //Finds last occurrence of needle in haystack //in PHP5 use strripos() instead of this function _strlastpos ($haystack, $needle, $offset = 0) { $addLen = strlen ($needle); $endPos = $offset - $addLen; while (true) { if (($newPos = strpos ($haystack, $needle, $endPos + $addLen)) === false) break; $endPos = $newPos; } return ($endPos >= 0) ? $endPos : false; } function format_quotes($s) { while ($old_s != $s) { $old_s = $s; //find first occurrence of [/quote] $close = strpos($s, "[/quote]"); if ($close === false) return $s; //find last [quote] before first [/quote] //note that there is no check for correct syntax $open = _strlastpos(substr($s,0,$close), "[quote"); if ($open === false) return $s; $quote = substr($s,$open,$close - $open + 8); //[quote]Text[/quote] $quote = preg_replace( "/\[quote\]\s*((\s|.)+?)\s*\[\/quote\]\s*/i", "

Quote:

\\1

", $quote); //[quote=Author]Text[/quote] $quote = preg_replace( "/\[quote=(.+?)\]\s*((\s|.)+?)\s*\[\/quote\]\s*/i", "

\\1 wrote:

\\2

", $quote); $s = substr($s,0,$open) . $quote . substr($s,$close + 8); } return $s; } function format_comment($text, $strip_html = true) { global $smilies, $privatesmilies, $CURUSER; $s = $text; // This fixes the extraneous ;) smilies problem. When there was an html escaped // char before a closing bracket - like >), "), ... - this would be encoded // to &xxx;), hence all the extra smilies. I created a new :wink: label, removed // the ;) one, and replace all genuine ;) by :wink: before escaping the body. // (What took us so long? :blush:)- wyz $s = str_replace(";)", ":wink:", $s); if ($strip_html) $s = htmlspecialchars($s); // [*] //$s = preg_replace("/\[\*\]/", "
  • ", $s); // [b]Bold[/b] $s = preg_replace("/\[b\]((\s|.)+?)\[\/b\]/", "\\1", $s); // [i]Italic[/i] $s = preg_replace("/\[i\]((\s|.)+?)\[\/i\]/", "\\1", $s); // [u]Underline[/u] $s = preg_replace("/\[u\]((\s|.)+?)\[\/u\]/", "\\1", $s); // [u]Underline[/u] $s = preg_replace("/\[u\]((\s|.)+?)\[\/u\]/i", "\\1", $s); // [s]Strike Thru[/s] $s = preg_replace("/\[s\]((\s|.)+?)\[\/s\]/s", "\\1", $s); // [img]http://www/image.gif[/img] $s = preg_replace("/\[img\](http:\/\/[^\s'\"<>]+(\.(jpg|gif|png)))\[\/img\]/i","", $s); // [img=http://www/image.gif] $s = preg_replace("/\[img=(http:\/\/[^\s'\"<>]+(\.(jpg|gif|png)))\]/i","", $s); // [color=blue]Text[/color] $s = preg_replace( "/\[color=([a-zA-Z]+)\]((\s|.)+?)\[\/color\]/i", "\\2", $s); // [color=#ffcc99]Text[/color] $s = preg_replace( "/\[color=(#[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9])\]((\s|.)+?)\[\/color\]/i", "\\2", $s); // [url=http://www.example.com]Text[/url] $s = preg_replace( "/\[url=([^()<>\s]+?)\]((\s|.)+?)\[\/url\]/i", "\\2", $s); // [url]http://www.example.com[/url] $s = preg_replace( "/\[url\]([^()<>\s]+?)\[\/url\]/i", "\\1", $s); // [size=4]Text[/size] $s = preg_replace( "/\[size=([1-7])\]((\s|.)+?)\[\/size\]/i", "\\2", $s); // [font=Arial]Text[/font] $s = preg_replace( "/\[font=([a-zA-Z ,]+)\]((\s|.)+?)\[\/font\]/i", "\\2", $s); // //[quote]Text[/quote] // $s = preg_replace( // "/\[quote\]\s*((\s|.)+?)\s*\[\/quote\]\s*/i", // "

    Quote:

    \\1

    ", $s); // //[quote=Author]Text[/quote] // $s = preg_replace( // "/\[quote=(.+?)\]\s*((\s|.)+?)\s*\[\/quote\]\s*/i", // "

    \\1 wrote:

    \\2

    ", $s); // Quotes $s = format_quotes($s); // URLs $s = format_urls($s); // $s = format_local_urls($s); // Linebreaks $s = nl2br($s); // [pre]Preformatted[/pre] $s = preg_replace("/\[pre\]((\s|.)+?)\[\/pre\]/i", "\\1", $s); // [nfo]NFO-preformatted[/nfo] $s = preg_replace("/\[nfo\]((\s|.)+?)\[\/nfo\]/i", "\\1", $s); // Maintain spacing $s = str_replace(" ", "  ", $s); // the [you] tag $s = str_replace ("[you]", $CURUSER['username'], $s); reset($smilies); while (list($code, $url) = each($smilies)) $s = str_replace($code, "\""", $s); //$s = str_replace( array_keys($smilies), array_values($smilies), $s); reset($privatesmilies); while (list($code, $url) = each($privatesmilies)) $s = str_replace($code, "", $s); return $s; } function get_user_class() { global $CURUSER; return $CURUSER["class"]; } function get_user_class_name($class) { switch ($class) { case UC_PEASANT: return "Peasant"; case UC_USER: return "User"; case UC_POWER_USER: return "Power User"; case UC_VIP: return "VIP"; case UC_UPLOADER: return "Uploader"; case UC_MODERATOR: return "Moderator"; case UC_ADMINISTRATOR: return "Administrator"; case UC_SYSOP: return "Sysop"; } return ""; } function is_valid_user_class($class) { return floor($class) == $class && $class >= UC_PEASANT && $class <= UC_SYSOP; } function is_valid_id($id) { return ((int) $id > 0); } function textbbcode($form,$name,$content="") { ?>
     
    "); print("\n"); $count++; if ($count % 4==0) print(""); } ?>
    " . "\n"); } //-------- Ends a main frame function end_main_frame() { print("\n"); } function begin_frame($caption = "", $center = false, $padding = 10) { $tdextra = ''; if ($caption) print("

    $caption

    \n"); if ($center) $tdextra .= " align=center"; print("\n"); } function attach_frame($padding = 10) { print("
    \n"); } function end_frame() { print("
    \n"); } function begin_table($fullwidth = false, $padding = 5) { $width = ''; if ($fullwidth) $width = " width=100%"; print("\n"); } function end_table() { print("
    \n"); } //-------- Inserts a smilies frame // (move to globals) function insert_smilies_frame() { global $smilies, $BASEURL; begin_frame("Smilies", true); begin_table(false, 5); print("Type...To make a...\n"); while (list($code, $url) = each($smilies)) print("$code\n"); end_table(); end_frame(); } function sql_timestamp_to_unix_timestamp($s) { return strtotime($s); //return mktime(substr($s, 11, 2), substr($s, 14, 2), substr($s, 17, 2), substr($s, 5, 2), substr($s, 8, 2), substr($s, 0, 4)); } function get_ratio_color($ratio) { if($ratio == '---') return '#000'; if ($ratio < 0.1) return "#ff0000"; if ($ratio < 0.2) return "#ee0000"; if ($ratio < 0.3) return "#dd0000"; if ($ratio < 0.4) return "#cc0000"; if ($ratio < 0.5) return "#bb0000"; if ($ratio < 0.6) return "#aa0000"; if ($ratio < 0.7) return "#990000"; if ($ratio < 0.8) return "#880000"; if ($ratio < 0.9) return "#770000"; if ($ratio < 1) return "#660000"; return "#000000"; } function get_slr_color($ratio) { if ($ratio < 0.025) return "#ff0000"; if ($ratio < 0.05) return "#ee0000"; if ($ratio < 0.075) return "#dd0000"; if ($ratio < 0.1) return "#cc0000"; if ($ratio < 0.125) return "#bb0000"; if ($ratio < 0.15) return "#aa0000"; if ($ratio < 0.175) return "#990000"; if ($ratio < 0.2) return "#880000"; if ($ratio < 0.225) return "#770000"; if ($ratio < 0.25) return "#660000"; if ($ratio < 0.275) return "#550000"; if ($ratio < 0.3) return "#440000"; if ($ratio < 0.325) return "#330000"; if ($ratio < 0.35) return "#220000"; if ($ratio < 0.375) return "#110000"; return "#000000"; } function write_log($text) { $text = sqlesc($text); do_mysql_query("INSERT INTO sitelog (added, txt, inverted_timestamp) VALUES(NOW(), $text, (4294967295 - UNIX_TIMESTAMP(added)) )") or sqlerr(__FILE__, __LINE__); } function get_elapsed_time($ts) { $mins = floor((time() - $ts) / 60); $hours = floor($mins / 60); $mins -= $hours * 60; $days = floor($hours / 24); $hours -= $days * 24; $weeks = floor($days / 7); $days -= $weeks * 7; $t = ""; if ($weeks > 0) return "$weeks week" . ($weeks > 1 ? "s" : ""); if ($days > 0) return "$days day" . ($days > 1 ? "s" : ""); if ($hours > 0) return "$hours hour" . ($hours > 1 ? "s" : ""); if ($mins > 0) return "$mins min" . ($mins > 1 ? "s" : ""); return "< 1 min"; } /* Custom functions */ function auto_post($subject = "Error - Subject Missing",$body = "Error - No Body") // Function to use the special system message forum { $forumid = $GLOBALS['settings']['autopost_forum']; mysql_query( "INSERT INTO topics (userid, forumid, subject) VALUES(0, $forumid, $subject)") or sqlerr(__FILE__, __LINE__); $topicid = @mysql_insert_id(); // $added = "'" . get_date_time() . "'"; mysql_query( "INSERT INTO posts (topicid, userid, added, body_parsed) " . "VALUES($topicid, 0, NOW(), $body)") or sqlerr(__FILE__, __LINE__); $postid = @mysql_insert_id(); $lastpost = "".get_date_time()."
    " . "by System
    " . "in ".$subject."
    "; // Update forum lastpost string (saves quite some queries instead of saving the id) do_mysql_query("UPDATE LOW_PRIORITY forums SET postcount=postcount+1, lastpost_txt='".mysql_escape_string($lastpost)."' WHERE id=".$forumid); //------ Update topic last post $lastpost_txt = ''.get_date_time().'
    by System Last post'; do_mysql_query("UPDATE topics SET replies=replies+1, lastpost=$postid, lastpost_txt='$lastpost_txt' WHERE id=$topicid") or sqlerr(__FILE__, __LINE__); } ?>