$b) { $template = str_replace("{{{$a}}}", $b, $template); } return $template; } function getmicrotime() { // Used for timing script operations. list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } function prettydate($uglydate) { // Change the MySQL date format (YYYY-MM-DD) into something friendlier. return date("F j, Y", mktime(0,0,0,substr($uglydate, 5, 2),substr($uglydate, 8, 2),substr($uglydate, 0, 4))); } function prettyforumdate($uglydate) { // Change the MySQL date format (YYYY-MM-DD) into something friendlier. return date("F j, Y", mktime(0,0,0,substr($uglydate, 5, 2),substr($uglydate, 8, 2),substr($uglydate, 0, 4))); } function is_email($email) { // Thanks to "mail(at)philipp-louis.de" from php.net! return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email)); } function my_htmlspecialchars($text) { // Thanks to "etymxris at yahoo dot com" from php.net! $ALLOWABLE_TAGS = array("b", "i", "u", "p", "blockquote", "ol", "ul", "li"); static $PATTERNS = array(); static $REPLACEMENTS = array(); if (count($PATTERNS) == 0) { foreach ($ALLOWABLE_TAGS as $tag) { $PATTERNS[] = "/<$tag>/i"; $PATTERNS[] = "/<\/$tag>/i"; $REPLACEMENTS[] = "<$tag>"; $REPLACEMENTS[] = ""; } } $result = str_replace(array(">", "<", "\"", "'"), array(">", "<", """, "'"), $text); $result = preg_replace($PATTERNS, $REPLACEMENTS, $result); return $result; } function display($content, $title, $topnav=true, $leftnav=true, $rightnav=true, $badstart=false) { // Finalize page and output to browser. global $app_path; include($app_path . 'config.php'); global $numqueries, $userrow, $controlrow; if (!isset($controlrow)) { $controlquery = doquery("SELECT * FROM {{table}} WHERE id='1' LIMIT 1", "control"); $controlrow = mysql_fetch_array($controlquery); } if ($badstart == false) { global $starttime; } else { $starttime = $badstart; } // Make page tags for XHTML validation. $xml = "\n" . "\n" . "\n"; $template = gettemplate("primary"); if ($rightnav == true) { $rightnav = gettemplate("rightnav"); } else { $rightnav = ""; } if ($leftnav == true) { $leftnav = gettemplate("leftnav"); } else { $leftnav = ""; } if ($topnav == true) { $topnav = "\"Log \"Help\""; } else { $topnav = "\"Log \"Register\" \"Help\""; } if (isset($userrow)) { // Get userrow again, in case something has been updated. $userquery = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["id"]."' LIMIT 1", "users"); unset($userrow); $userrow = mysql_fetch_array($userquery); // Current town name. if ($userrow["currentaction"] == "In Town") { $townquery = doquery("SELECT * FROM {{table}} WHERE latitude='".$userrow["latitude"]."' AND longitude='".$userrow["longitude"]."' LIMIT 1", "towns"); $townrow = mysql_fetch_array($townquery); $userrow["currenttown"] = "Welcome to ".$townrow["name"].".

"; } else { $userrow["currenttown"] = ""; } if ($controlrow["forumtype"] == 0) { $userrow["forumslink"] = ""; } elseif ($controlrow["forumtype"] == 1) { $userrow["forumslink"] = "Forum
"; } elseif ($controlrow["forumtype"] == 2) { $userrow["forumslink"] = "Forum
"; } // Format various userrow stuffs... if ($userrow["latitude"] < 0) { $userrow["latitude"] = $userrow["latitude"] * -1 . "S"; } else { $userrow["latitude"] .= "N"; } if ($userrow["longitude"] < 0) { $userrow["longitude"] = $userrow["longitude"] * -1 . "W"; } else { $userrow["longitude"] .= "E"; } $userrow["experience"] = number_format($userrow["experience"]); $userrow["gold"] = number_format($userrow["gold"]); if ($userrow["authlevel"] == 1) { $userrow["adminlink"] = "Admin
"; } else { $userrow["adminlink"] = ""; } // HP/MP/TP bars. $stathp = ceil($userrow["currenthp"] / $userrow["maxhp"] * 100); if ($userrow["maxmp"] != 0) { $statmp = ceil($userrow["currentmp"] / $userrow["maxmp"] * 100); } else { $statmp = 0; } $stattp = ceil($userrow["currenttp"] / $userrow["maxtp"] * 100); $stattable = "\n"; $stattable .= "
\n"; $stattable .= "
\n"; if ($stathp >= 66) { $stattable .= "
\"\"
"; } if ($stathp < 66 && $stathp >= 33) { $stattable .= "
\"\"
"; } if ($stathp < 33) { $stattable .= "
\"\"
"; } $stattable .= "
\n"; $stattable .= "
\n"; if ($statmp >= 66) { $stattable .= "
\"\"
"; } if ($statmp < 66 && $statmp >= 33) { $stattable .= "
\"\"
"; } if ($statmp < 33) { $stattable .= "
\"\"
"; } $stattable .= "
\n"; $stattable .= "
\n"; if ($stattp >= 66) { $stattable .= "
\"\"
"; } if ($stattp < 66 && $stattp >= 33) { $stattable .= "
\"\"
"; } if ($stattp < 33) { $stattable .= "
\"\"
"; } $stattable .= "
HPMPTP
\n"; $userrow["statbars"] = $stattable; // Now make numbers stand out if they're low. if ($userrow["currenthp"] <= ($userrow["maxhp"]/5)) { $userrow["currenthp"] = "*".$userrow["currenthp"]."*"; } if ($userrow["currentmp"] <= ($userrow["maxmp"]/5)) { $userrow["currentmp"] = "*".$userrow["currentmp"]."*"; } $spellquery = doquery("SELECT id,name,type FROM {{table}}","spells"); $userspells = explode(",",$userrow["spells"]); $userrow["magiclist"] = ""; while ($spellrow = mysql_fetch_array($spellquery)) { if ($userspells[$spellrow["id"]] == 1 && $spellrow["type"] == 1) { $userrow["magiclist"] .= "".$spellrow["name"]."
"; } } if ($userrow["magiclist"] == "") { $userrow["magiclist"] = "None"; } // Travel To list. $townslist = explode(",",$userrow["towns"]); $townquery2 = doquery("SELECT * FROM {{table}} ORDER BY id", "towns"); $userrow["townslist"] = ""; while ($townrow2 = mysql_fetch_array($townquery2)) { if ($townslist[$townrow2["id"]] == 1) { $userrow["townslist"] .= "".$townrow2["name"]."
\n"; } } } else { $userrow = array(); } $finalarray = array( "dkgamename"=>$controlrow["gamename"], "title"=>$title, "content"=>$content, "rightnav"=>parsetemplate($rightnav,$userrow), "leftnav"=>parsetemplate($leftnav,$userrow), "topnav"=>$topnav, "totaltime"=>round(getmicrotime() - $starttime, 4), "numqueries"=>$numqueries, "version"=>$version, "build"=>$build); $page = parsetemplate($template, $finalarray); $page = $xml . $page; if ($controlrow["compression"] == 1) { ob_start("ob_gzhandler"); } echo $page; die(); } ?>