Fatal Error...
Probably my fault for playing with creating new pages.
Here's my problem:
PHP Code:
Fatal error: Cannot redeclare runquery() in /home/enddayne/public_html/crystalhollow.com/inc/functions.php on line 107
Now I haven't made that many modifications to my functions file, but here it is in whole:
PHP Code:
<?php
// File ID: functions.php
// Purpose: Provides basic sitewide functions
include("config.php");
$GLOBALS['dbhost'] = $dbhost; //DB Hostname
$GLOBALS['dbuser'] = $dbuser; //DB User
$GLOBALS['dbpass'] = $dbpass; //DB Password
$GLOBALS['dbname'] = $dbname; //Your database name
$GLOBALS['domain'] = $domain; //Your domain name (No http, www or . )
$GLOBALS['scriptpath'] = $scriptpath; //The folder you installed this script in
$GLOBALS['prefix'] = $prefix;
include("lang/lang.php");
//Connect to the database first
connect();
startup();
session_start();
// clean all our data
$_POST = array_map('secure',$_POST);
$_GET = array_map('secure',$_GET);
$session = session_id();
$time = time();
$time_check = $time - 300; // Time check, delete after 300 seconds (5 minutes)
$result = runquery("SELECT * FROM {$GLOBALS['prefix']}online WHERE `session` = '{$session}'");
$count = mysql_num_rows($result);
$result2 = runquery("SELECT * FROM {$GLOBALS['prefix']}online WHERE `username` = '{$loggedinname}'");
$count2 = mysql_num_rows($result2);
if($isloggedin != "yes")
{
$loggedinname = "Visitor";
}
if($count == 0 and $count2 == 0)
{
runquery("INSERT INTO {$GLOBALS['prefix']}online VALUES('$loggedinname', '$session', '$time')");
}
else
{
runquery("UPDATE ".$GLOBALS['prefix']."online SET time=".$time.", session ='".$session."', username='".$loggedinname."' WHERE session = '".$session."'");
}
// if over 5 minute, delete session
$sql4="DELETE FROM ".$GLOBALS['prefix']."online WHERE time < ".$time_check;
$result4=runquery($sql4);
// Begin functions definition:
function runquery($query) {
// next three lines may be commented out if debugging is unnessecary
// $arr = debug_backtrace();
// $GLOBALS['queries'] .= "<br /><strong>{$query}</strong> on line {$arr[0]["line"]} of {$arr[0]["file"]}.";
// $GLOBALS['numberofqueries']++;
$result = mysql_query($query);
return $result;
}
function changecash($amount, $user, $startamount) {
$newamount = $startamount + $amount;
if ($newamount >= 0) {
$GLOBALS['money'] = $newamount;
runquery("UPDATE {$GLOBALS['prefix']}users SET `money` = '{$newamount}' WHERE `username` = '{$user}'");
return true;
}
return false;
}
function clickreward($amount, $user, $startamount) {
$addamount = explode(",",$amount);
$randamount = rand($addamount[0], $addamount[1]);
return $randamount;
}
function connect() {
//This function simply connects us to the database
$conn = mysql_connect($GLOBALS['dbhost'], $GLOBALS['dbuser'], $GLOBALS['dbpass']) or die ('Error connecting to MySQL');
mysql_select_db($GLOBALS['dbname']);
}
function secure($data) {
//This function performs security checks on all incoming form data
if(is_array($data)) {
die("Hacking Attempt!");
}
$data = htmlentities($data);
$data = mysql_real_escape_string($data);
$data = strip_tags($data, '');
return $data;
}
function getsitecontent($page) {
$query = "SELECT * FROM ".$GLOBALS['prefix']."content WHERE page = '$page'";
$result = @runquery($query);
$num = @mysql_num_rows($result);
$title=@mysql_result($result,0,"title");
$content=@mysql_result($result,0,"content");
$title = stripslashes($title);
$content = stripslashes($content);
$value[content] = $content;
$value[title] = $title;
return $value;
}
function replace($old, $new, $template) {
//This function replaces template values
$template = str_replace($old, $new, $template);
return $template;
}
function uidtousername ($id) {
$query = "SELECT * FROM ".$GLOBALS['prefix']."users WHERE uid='$id'";
$result = mysql_query($query);
$username=@mysql_result($result,0,"username");
return $username;
}
function usernametouid ($name) {
$query = "SELECT * FROM ".$GLOBALS['prefix']."users WHERE username='$name'";
$result = mysql_query($query);
$uid=@mysql_result($result,0,"uid");
return $uid;
}
// NOTE - make sure this is only run once in a whole page load - not multiple times!
function logincheck() {
//Set up our login info...
$uid = "";
$password = "";
//Check for cookie
if (isset($_COOKIE['auid']) and isset($_COOKIE['apass'])) {
$uid = $_COOKIE['auid'];
$password = $_COOKIE['apass'];
$uid = secure($uid);
$password = secure($password);
//Run login operation
$query = "SELECT * FROM ".$GLOBALS['prefix']."users, ".$GLOBALS['prefix']."groups WHERE uid = '$uid' LIMIT 1";
$result = runquery($query);
$GLOBALS['usersettings'] = mysql_fetch_array($result);
$luid=@mysql_result($result, 0, $GLOBALS['prefix']."users.uid");
$lpass=@mysql_result($result, 0, $GLOBALS['prefix']."users.password");
$usergroup=@mysql_result($result, 0, $GLOBALS['prefix']."users.usergroup");
if($uid == $luid and $password == $lpass) {
$isloggedin = "yes";
}
else{
if (isset($_COOKIE['auser'])) {
$past = time() - 10;
setcookie("auid", $uid, $past);
}
if (isset($_COOKIE['apass'])) {
$past = time() - 10;
setcookie("apass", $password, $past);
}
$isloggedin = "no";
}
}
else {
$isloggedin = "no";
}
// return our user data
$username = uidtousername($uid);
$GLOBALS['isloggedin'] = $isloggedin;
$GLOBALS['username'] = $username;
$GLOBALS['loggedinname'] = $username; // MESSY - I'm unsure of which {username/loggedinname} is the correct one to use.
$GLOBALS['money'] = $GLOBALS['usersettings']['money'];
$GLOBALS['group'] = $usergroup;
}
function passencr($username, $password){
$pepper = '2/Fd4o42mMj*4P60s8N7';
$salt = grabanysetting("saltcode");
$password = md5($password);
$newpassword = sha1($username.$password);
$finalpassword = hash('sha512', $pepper.$newpassword.$salt);
return $finalpassword;
}
function updatepass($username, $password){
$pepper = '2/Fd4o42mMj*4P60s8N7';
$salt = grabanysetting("saltcode");
$newpassword = sha1($username.$password);
$finalpassword = hash('sha512', $pepper.$newpassword.$salt);
return $finalpassword;
}
function getcash($loggedinname){
//First we see if we are logged in or not
$isloggedin = $GLOBALS['isloggedin'];
$loggedinname = $GLOBALS['username'];
$query = "SELECT * FROM ".$GLOBALS['prefix']."users WHERE username = '$loggedinname'";
$result = runquery($query);
$num = mysql_num_rows($result);
$mycash=@mysql_result($result,0,"money");
return $mycash;
}
function grabanysetting($where) {
$value = stripslashes($GLOBALS['settings'][$where]);
return $value;
}
function getlinks() {
$links = "";
$query = "SELECT * FROM ".$GLOBALS['prefix']."links ORDER BY id ASC";
$result = runquery($query);
$num = mysql_num_rows($result);
//Loop out code
$i=0;
while ($i < $num) {
$linktext=@mysql_result($result, $i,"linktext");
$linkurl=@mysql_result($result, $i,"linkurl");
$linktext = stripslashes($linktext);
$links .= "<li><a href='".$linkurl."'>".$linktext."</a></li>";
$i++;
}
return $links;
}
function getsidebar() {
//This function determines what shows in the side bar of the template
$isloggedin = $GLOBALS['isloggedin'];
$loggedinname = $GLOBALS['loggedinname'];
if($isloggedin == "yes") {
$msgctr = "<a href='messages.php'>Archive</a>";
$query = "SELECT * FROM ".$GLOBALS['prefix']."messages WHERE touser='".$loggedinname."' and status='unread'";
$result = runquery($query);
$num = mysql_num_rows($result);
if($num > 0) {
$msgctr = "<a href='messages.php'>Scrolls <b>(".$num.")</b></a>";
}
$sidebar = "You have {$GLOBALS['money']}<img src='http://i42.tinypic.com/1zwp1mf.jpg'>.<br />
<a href='donate.php'>Donate money to friends</a><br />
<br /><strong>Your links:</strong><br />
<ul><li><a href='adopt.php'>Gather Eggs</a></li>
<li><a href='myadopts.php'>My Familiars</a></li>
<li><a href='account.php'>My Account</a></li>
<li>".$msgctr."
<li><a href='starterpack.php'>Get Starter Pack</a></li>
<li><a href='profile.php'>Make Friends</a></li>
<li><a href='logout.php'>Log Out</a></li>";
$query = "SELECT * FROM ".$GLOBALS['prefix']."users WHERE username='".$loggedinname."' and usergroup='1'";
$result = runquery($query);
$usercancp = mysql_num_rows($result);
if($usercancp != 0) {
$sidebar .= "<li><a href='admin.php'>Admin Center</a></li><br />";
}
$query1 = runquery("SELECT * FROM ".$GLOBALS['prefix']."online WHERE username != 'Visitor'");
$total1 = mysql_num_rows($query1);
$query2 = runquery("SELECT * FROM ".$GLOBALS['prefix']."online WHERE username = 'Visitor'");
$total2 = mysql_num_rows($query2);
$sidebar .= "</ul>";
}
else {
$sidebar = "<b><u>Member Login:</u></b><br />
<form name='form1' method='post' action='login.php'>
<p>Username:
<input name='username' type='text' id='username'>
</p>
<p>Password:
<input name='password' type='password' id='password'>
</p>
<p>
<input type='submit' name='Submit' value='Log In'>
</p>
</form>Don't have an account?<br /><a href='register.php'>Register Free</a><br /><a href='forgotpass.php'>Forgot Password?</a>";
$query1 = runquery("SELECT * FROM ".$GLOBALS['prefix']."online WHERE username != 'Visitor'");
$total1 = mysql_num_rows($query1);
$query2 = runquery("SELECT * FROM ".$GLOBALS['prefix']."online WHERE username = 'Visitor'");
$total2 = mysql_num_rows($query2);
$sidebar .= "<br />This site currently has ".$total1." members and ".$total2." guests.";
}
return $sidebar;
}
function dologin($username, $password) {
$query = "SELECT * FROM ".$GLOBALS['prefix']."users WHERE username = '$username'";
$result = @runquery($query);
$num = @mysql_num_rows($result);
$luser=@mysql_result($result, 0,"username");
$lpass=@mysql_result($result, 0,"password");
$uid = usernametouid ($username);
if($username == $luser and $password == $lpass) {
$status = "success";
//If the cookie already exists for some reason, delete it
if (isset($_COOKIE['auid']) and isset($_COOKIE['apass'])) {
$past = time() - 10;
setcookie("auid", $uid, $past);
setcookie("apass", $password, $past);
}
// Set the cookie
$Month = 2592000 + time();
setcookie("auid", $uid, $Month);
setcookie("apass", $password, $Month);
}
else{
$status = "error";
}
return $status;
}
function getgroup() {
$isloggedin = $GLOBALS['isloggedin'];
$loggedinname = $GLOBALS['username'];
if($isloggedin == "yes") {
$query = "SELECT * FROM ".$GLOBALS['prefix']."users WHERE username = '$loggedinname'";
$result = @mysql_query($query);
$num = @mysql_num_rows($result);
$group=@mysql_result($result,0,"usergroup");
return $group;
}
else {
return 0;
}
}
function cancp($usergroup) {
//This function determines if a usergroup is allowed to access the Admin CP
$query = "SELECT * FROM ".$GLOBALS['prefix']."groups WHERE gid = '$usergroup'";
$result = @mysql_query($query);
$num = @mysql_num_rows($result);
$cancp=@mysql_result($result,0,"cancp");
if($cancp == "" or $usergroup == 0) {
$cancp = "no";
}
return $cancp;
}
function getadmlinks() {
//This function shows special links to the site admin
$links = "<li><a href='index.php'>Home</a></li>
<li><a href='admin.php?set=adopts'>Change Adoptables</a></li>
<li><a href='admin.php?set=content'>Change Content</a></li>
<li><a href='admin.php?set=users'>Change Users</a></li>
<li><a href='admin.php?set=settings'>Site Settings</a></li>
<li><a href='admin.php?set=ads'>Manage Ads</a></li>";
return $links;
}
function cando($usergroup, $do) {
//This function determines if a usergroup is allowed to do a specific task
$cando = $GLOBALS['usersettings'][$do];
if($cando == "" or $usergroup == 0) {
$cando = "no";
}
return $cando;
}
// QUERYPROBLEM
function canadopt($aid, $cond, $promocode, $row) {
// This function determines if a user can adopt a specific adoptable...
$isloggedin = $GLOBALS['isloggedin'];
$loggedinname = $GLOBALS['username'];
if($isloggedin != "yes" and $cond != "showing") {
return "no";
}
// Now we check if our usergroup has permission to adopt the adoptable...
$group = getgroup();
$dbcanadpt = cando($group, "canadopt");
if($dbcanadpt != "yes" and $cond != "showing") {
return "no";
}
// Now we check if the adoptable requires a promo code and if the promo code submitted is correct...
if($row['whenisavail'] == "promo" and $promocode != $row['promocode']) {
return "no";
}
// Now we check those three conditions we have in the Admin CP
if($row['whenisavail'] == "conditions") {
// If we have a restriction on the number of times this can be adopted...
if($row['freqcond'] == "enabled") {
// Select from the database and determine how many times this adoptable type has been adopted
$num = 0;
$query = "SELECT * FROM ".$GLOBALS['prefix']."owned_adoptables WHERE type='$type'"; // QUERYPROBLEM
$result = runquery($query);
$num = mysql_num_rows($result);
if($num > $number) {
return "no";
}
}
// Begin the date restriction check
$today = date('Y-m-d');
if($row['datecond'] == "enabled" and $row['date'] != $today) {
return "no";
}
// We are checking to see how many of this adoptable a user owns
// If they own more than the specifed number, they cannot adopt...
if($row['moreless'] == "enabled") {
$num = 0;
$query = "SELECT * FROM ".$GLOBALS['prefix']."owned_adoptables WHERE owner='$loggedinname' and type='$type'";
$result = runquery($query);
$num = mysql_num_rows($result);
if($num > $row['morelessnum']) {
return "no";
}
}
// Check if the user is of a specified usergroup...
if($row['levelgrle'] == "enabled") {
$ourgid = getgroup();
// If the two numbers do not match, do not allow the adoption...
if($ourgid != $row['grlelevel']) {
return "no";
}
}
} // end conditions
return "yes";
}
// MESSY
function getaltstatus($parentid, $childid, $childlevel) {
// This function determines if we will use alternate images...
$altstatus = "no";
$run = "no";
// First we need to see if this adoptable type has alternate images enabled...
$query = "SELECT * FROM ".$GLOBALS['prefix']."adoptables WHERE id='$parentid'";
$result = runquery($query);
$num = mysql_num_rows($result);
$alternates=@mysql_result($result, 0,"alternates");
$altoutlevel=@mysql_result($result, 0,"altoutlevel");
$altchance=@mysql_result($result, 0,"altchance");
// Let's see if the level we are on is the level that requires alternates
if($alternates == "enabled") {
if($childlevel == $altoutlevel) {
$run = "yes";
}
}
if($run == "yes") {
$randnum = rand(1, $altchance);
if( $randnum == 1) {
$altstatus = "yes"; // If we pull a 1 as the random number, we use the alternate images :)
}
}
return $altstatus;
}
// MESSY / QUERYPROBLEM
function getcurrentimage($id) {
// This function determines which image we should use for a given adoptable...
$image = "";
// First we select the adoptable from the database and get some basic information...
$query = "SELECT * FROM ".$GLOBALS['prefix']."owned_adoptables WHERE aid='$id'";
$result = runquery($query);
$num = mysql_num_rows($result);
$type=@mysql_result($result, 0,"type");
$currentlevel=@mysql_result($result, 0,"currentlevel");
$imageurl=@mysql_result($result, 0,"imageurl");
$usealternates=@mysql_result($result, 0,"usealternates");
if($imageurl != "") {
// If we are using a custom image for this adoptable, use that
$image = $imageurl;
}
else {
// There is no custom image, so we must see if we are using an egg or a level image.
if($currentlevel == 0 or $currentlevel == "0") {
// Let's see what the egg image is...
$query = "SELECT * FROM ".$GLOBALS['prefix']."adoptables WHERE type='$type'";
$result = runquery($query);
$num = mysql_num_rows($result);
$eggimage=@mysql_result($result, 0, "eggimage");
$image = $eggimage; // Set the image URL equal to the egg image...
}
else {
// We don't know the level or the image - we must find both.
$query = "SELECT * FROM ".$GLOBALS['prefix']."levels WHERE adoptiename='$type' and thisislevel='$currentlevel'";
$result = runquery($query);
$num = mysql_num_rows($result);
$primaryimage=@mysql_result($result, 0,"primaryimage");
$alternateimage=@mysql_result($result, 0,"alternateimage");
// If alternate images are enabled and an alternate image exists, use it
if($usealternates == "yes" and $alternateimage != "") {
$image = $alternateimage; // Use the alternate image
}
else{
$image = $primaryimage; // Set the image equal to the primary image for the level
}
}
}
if($type == "" or $image == "") {
// We did not settle on an image, so we show an error image...
$image = "http://www.".$GLOBALS['domain']."".$GLOBALS['scriptpath']."/templates/icons/delete.gif";
}
return $image;
}
// QUERYPROBLEM - when is getcurrentlevel() actually used?
function getcurrentlevel($id) {
// This function gets the current level of an adoptable...
$query = "SELECT * FROM ".$GLOBALS['prefix']."owned_adoptables WHERE aid='$id'";
$result = runquery($query);
$num = mysql_num_rows($result);
$currentlevel=@mysql_result($result, 0,"currentlevel");
if($currentlevel == "") {
$currentlevel = "error"; // If the adoptable does not have a current level or does not exist, we return an error...
}
// Return the level
return $currentlevel;
}
function getnextlevelexists($type, $currentlevel) {
// This function determines if a higher level exists for an adopt, or if it is at max level.
$query = "SELECT * FROM ".$GLOBALS['prefix']."levels WHERE adoptiename='$type' and thisislevel > '$currentlevel'";
$result = runquery($query);
$num = mysql_num_rows($result);
if($num > 0) {
return "true";
}
return "false";
}
function convertidtotype($id) {
// This function takes in an adoptable's ID and returns the type of adoptable it is...
$query = "SELECT * FROM ".$GLOBALS['prefix']."owned_adoptables WHERE aid='$id'";
$result = runquery($query);
$num = mysql_num_rows($result);
$type=@mysql_result($result, 0,"type");
if($type == "") {
return "error";
}
return $type;
}
// MESSY - I have no idea what this function is supposed to do.
function converttypetoparentid($type) {
// This function takes in an adoptable type and returns the ID of the parent
$query = "SELECT * FROM ".$GLOBALS['prefix']."adoptables WHERE type='$type'";
$result = runquery($query);
$num = mysql_num_rows($result);
$id=@mysql_result($result, 0, "id");
if($id == "") {
$id = "error";
}
return $id;
}
// QUERYPROBLEM - this is being called (I believe) on every click page, and uses many too many queries.
function reward($id, $type, $currentlevel, $owner) {
// This function determines if we are giving the user a reward or not...
$query = "SELECT * FROM ".$GLOBALS['prefix']."levels WHERE adoptiename='$type' and thisislevel='$currentlevel'";
$result = runquery($query);
$num = mysql_num_rows($result);
$rewarduser=@mysql_result($result, 0,"rewarduser");
$promocode=@mysql_result($result, 0,"promocode");
if($rewarduser == "yes" and $promocode != "") {
// We are sending out a reward...
$mtitle = "You have received a reward!";
$mtext = "Congratulations! You have received a reward because one of your adoptables leveled up and the site admin has chosen to reward you for this.<br /><br />
<b><u>Your reward is the following promo code:</u></b> ".$promocode."<br /><br />
You may use this promo code on the <a href='promo.php?promocode=".$promocode."'>Promo Code Page</a> to receive a special exclusive or limited edition adoptable!<br /><br />
Congratulations on your reward!";
$mtext = mysql_real_escape_string($mtext);
$date = date('Y-m-d');
$query = "INSERT INTO ".$GLOBALS['prefix']."messages VALUES ('', 'SYSTEM', '$owner','unread','$date','$mtitle', '$mtext')";
runquery($query);
// Now we check if we are sending out an email to the user alerting them of the message...
$query = "SELECT * FROM ".$GLOBALS['prefix']."users WHERE username='".$owner."'";
$result = runquery($query);
$num = mysql_num_rows($result);
$newmessagenotify=@mysql_result($result, 0,"newmessagenotify");
$email=@mysql_result($result, 0,"email");
if($newmessagenotify == 1) {
// We are sending this user an email about the new message...
$systememail = grabanysetting("systememail"); // QUERYPROBLEM - we should get the settings at the beginning so we never need to call for them after that.
$headers = "From: ".$systememail."";
$site_name = grabanysetting("sitename"); // QUERYPROBLEM - see, two queries for this message alone.
$message = "Hello ".$owner.";\n\nYou have received a new Private Message from SYSTEM at ".$site_name." with the title ".$mtitle.".\n
You can read this message at: http://www.".$GLOBALS['domain']."".$GLOBALS['scriptpath']."/messages.php\n
Thank You. The ".$site_name." team.";
mail($email, $site_name." - You Have Received a Reward", $message, $headers);
}
}
return $rewardstatus; // MESSY - where is the variable $rewardstatus used before this?
}
// MESSY - what is this function for?
function getadmimages() {
$formcontent = "";
$query = "SELECT * FROM ".$GLOBALS['prefix']."filesmap";
$result = runquery($query);
$num = mysql_num_rows($result);
$i=0;
while ($i < $num) {
$wwwpath=@mysql_result($result, $i,"wwwpath");
$friendlyname=@mysql_result($result, $i,"friendlyname");
$formcontent = $formcontent."<option value='".$wwwpath."'>".$friendlyname."</option>";
$i++;
}
return $formcontent;
}
function deleteuser($user) {
//This function deletes a user from the system...
$user = secure($user);
$query = "DELETE FROM ".$GLOBALS['prefix']."users WHERE username = '".$user."'";
$result = runquery($query);
$query = "DELETE FROM ".$GLOBALS['prefix']."owned_adoptables WHERE owner = '".$user."'";
$result = runquery($query);
}
// MESSY - I believe this still runs if there are no ads. There should be an option to turn it off.
function getads($page) {
// Function to display site advertisements
if($page == "any") {
$page = "";
}
$query = "SELECT * FROM ".$GLOBALS['prefix']."ads WHERE page = '".$page."' and status = 'active' ORDER BY RAND() LIMIT 1";
$result = @runquery($query);
$num = @mysql_num_rows($result);
if($num > 0) {
$value=@mysql_result($result, 0,"text");
$value = stripslashes($value);
$aid=@mysql_result($result, 0,"id");
$actualimpressions=@mysql_result($result, 0,"actualimpressions");
$impressions=@mysql_result($result, 0,"impressions");
if($impressions == "") {
$impressions = 0;
}
$actualimpressions = $actualimpressions + 1;
//Update the impressions count
$query = "UPDATE ".$GLOBALS['prefix']."ads SET actualimpressions='".$actualimpressions."' WHERE id='".$aid."'";
runquery($query);
//Check that ad is not over max impressions...
if ($actualimpressions >= $impressions and $impressions != 0) {
$query = "UPDATE ".$GLOBALS['prefix']."ads SET status='inactive' WHERE id='".$aid."'";
runquery($query);
}
}
else{
$value = "";
}
return $value;
}
// NEW - mainly by Hall of Famer
function getabandonedimage($id) {
// This function determines which image we should use for a given adoptable (which has been abandoned).
$image = "";
// First we select the adoptable from the database and get some basic information...
$query = "SELECT * FROM ".$GLOBALS['prefix']."abandoned WHERE aid='$id'";
$result = runquery($query);
$num = mysql_num_rows($result);
$type=@mysql_result($result, 0,"type");
$currentlevel=@mysql_result($result, 0,"currentlevel");
$imageurl=@mysql_result($result, 0,"imageurl");
$usealternates=@mysql_result($result, 0,"usealternates");
if($imageurl != "") {
// If we are using a custom image for this adoptable, use that
$image = $imageurl;
}
else {
// There is no custom image, so we must see if we are using an egg or a level image.
if($currentlevel == 0 or $currentlevel == "0") {
// Let's see what the egg image is...
$query = "SELECT * FROM ".$GLOBALS['prefix']."adoptables WHERE type='$type'";
$result = runquery($query);
$num = mysql_num_rows($result);
$eggimage=@mysql_result($result, 0, "eggimage");
$image = $eggimage; // Set the image URL equal to the egg image...
}
else {
// We don't know the level or the image - we must find both.
$query = "SELECT * FROM ".$GLOBALS['prefix']."levels WHERE adoptiename='$type' and thisislevel='$currentlevel'";
$result = runquery($query);
$num = mysql_num_rows($result);
$primaryimage=@mysql_result($result, 0,"primaryimage");
$alternateimage=@mysql_result($result, 0,"alternateimage");
// If alternate images are enabled and an alternate image exists, use it
if($usealternates == "yes" and $alternateimage != "") {
$image = $alternateimage; // Use the alternate image
}
else{
$image = $primaryimage; // Set the image equal to the primary image for the level
}
}
}
if($type == "" or $image == "") {
// We did not settle on an image, so we show an error image...
$image = "http://www.".$GLOBALS['domain']."".$GLOBALS['scriptpath']."/templates/icons/delete.gif";
}
return $image;
}
// NEW - again, I think by Hall of Famer
function canadoptab($aid, $cond, $promocode){
$canadopt = "yes"; // The default status is that we CAN adopt, unless proven false...
$isloggedin = $GLOBALS['isloggedin'];
$loggedinname = $GLOBALS['username'];
if($isloggedin != "yes" and $cond != "showing"){
$canadopt = "no";
}
// Now we check if our usergroup has permission to adopt the adoptable...
$group = getgroup();
$dbcanadopt = cando($group, "canadopt");
if($dbcanadopt != "yes" and $cond != "showing"){
$canadopt = "no";
}
return $canadopt;
}
// NEW - a function to set everything up on start so we don't need to keep using queries to get stuff
function startup() {
// get all of our default settings, like title and stuff
$result = runquery("SELECT * FROM ".$GLOBALS['prefix']."settings");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$GLOBALS['settings'][$row['name']] = $row['value'];
}
// set up our log in stuff so we always have it
logincheck();
}
// NEW - a function to get a page from the database
function getpage($name) {
$query = "SELECT * FROM ".$GLOBALS['prefix']."content WHERE page='{$name}' LIMIT 1";
$result = runquery($query);
$row = mysql_fetch_array($result);
$GLOBALS['article_content'] = $row['content'];
$GLOBALS['article_title'] = $row['title'];
$GLOBALS['date'] = $row['date'];
return;
}
// NEW - a function to show the page
function showpage($title, $content, $date) {
$theme = $GLOBALS['usersettings']['theme'];
if ($theme == '') {
$theme = grabanysetting("theme");
}
$acpthemeurl = "templates/acp/template.html";
$themeurl = "templates/{$theme}/template.html";
$patterns = array("/:ARTICLETITLE:/","/:ARTICLECONTENT:/", "/:ARTICLEDATE:/", "/:BROWSERTITLE:/", "/:SITENAME:/", "/:SLOGAN:/", "/:LINKSBAR:/", "/:SIDEFEED:/", "/:ADS:/");
// if we have said we are in an admin area, don't show ads and show admin links
if ($GLOBALS['admin']==true) {
$replacements = array($title, $content, $date, grabanysetting("browsertitle")." ".$title, grabanysetting("sitename"), grabanysetting("slogan"), getadmlinks(), getsidebar(), "");
$template = file_get_contents($acpthemeurl);
}
else {
$replacements = array($title, $content, $date, grabanysetting("browsertitle")." ".$title, grabanysetting("sitename"), grabanysetting("slogan"), getlinks(), getsidebar(), getads("any"));
$template = file_get_contents($themeurl);
}
// now that we have our stuff, let's start making it all into a webpage
$template = preg_replace($patterns, $replacements, $template);
$template .= "<div style='position: fixed; bottom: 0; left: 0; color: white; font-size: 10px; width: 380px; '>A total of {$GLOBALS['numberofqueries']} queries were used in this page. They were: {$GLOBALS['queries']}</div>";
return $template;
}
function getpostbar ($name) {
$query = "SELECT * FROM ".$GLOBALS['prefix']."users WHERE username='$name'";
$result = runquery($query);
$num = mysql_num_rows($result);
$membersince=@mysql_result($result, 0,"membersince");
$dollar=@mysql_result($result, 0,"money");
$avatar=@mysql_result($result, 0,"avatar");
$bio=@mysql_result($result, 0,"profile");
$gender=@mysql_result($result, 0,"gender");
$nickname=@mysql_result($result, 0,"nickname");
$postbar = "
<table>
<span class='smalltext'>
<tr>
<td>
<img src='{$avatar}'>
</td>
<td>
<b>Member Since: </b><br>{$membersince}<br>
<b>Bio:</b><br>{$bio}<br>
</td>
<td>
<b>Nickname:</b> {$nickname}<br>
<b>Gender:</b> {$gender}<br>
<b>Cash:</b> <a href='forum.php?do=donate&from={$uid}&am={$dollar}'>{$dollar}</a><br>
</td>
</span>
</table>
";
return $postbar;
}
function getonlinestatus($name) {
$query = "SELECT * FROM ".$GLOBALS['prefix']."online WHERE username='$name'";
$result = mysql_query($query);
$num = mysql_num_rows($result);
if($num == 0){
$onlinestatus = "<img src='templates/icons/user_offline.gif'>";
}
else{
$onlinestatus = "<img src='templates/icons/user_online.gif'>";
}
return $onlinestatus;
}
function getfriendgender($name) {
$query = "SELECT * FROM ".$GLOBALS['prefix']."users WHERE username='$name'";
$result = mysql_query($query);
$gender=@mysql_result($result,0,"gender");
if($gender == "Male"){
$friendgender = "<img src='picuploads/m.png'>";
}
else if($gender == "Female"){
$friendgender = "<img src='picuploads/f.png'>";
}
else{
$friendgender = "";
}
return $friendgender;
}
function getfriendid ($name) {
$query = "SELECT * FROM ".$GLOBALS['prefix']."users WHERE username='$name'";
$result = mysql_query($query);
$friendid=@mysql_result($result,0,"friends"); //friendlist
$friendidlist = explode(",",$friendid);
return $friendidlist;
}
function getfriendnum ($name) {
$friendidlist = getfriendid ($name);
$query = "SELECT * FROM ".$GLOBALS['prefix']."users WHERE username='$name'";
$result = mysql_query($query);
$friendid=@mysql_result($result,0,"friends"); //friendlist
if($friendid == ""){
$friendnum = "0";
}
else{
$friendnum = count($friendidlist);
}
return $friendnum;
}
function deletefriend($id){
$friendidlist = getfriendid ($loggedinname);
foreach($friendidlist as $friend){
if($friend != $id){
$newfriendidlist[] = $friend;
}
}
$newfriendid = implode(",", $newfriendidlist);
return $newfriendid;
}
?>
And here's my new page:
PHP Code:
<?php
include("inc/functions.php");
include("inc/bbcode.php");
//***************//
// START SCRIPT //
//***************//
// Card Page MOD by tequila
if (isset($_GET['id'])) {
if (strpos($_GET['id'], "/")) {
$dir = substr(str_replace('..', '', $_GET['id']), 0, strpos($_GET['id'], "/")) . "/";
$file = substr(strrchr($_GET['id'], "/"), 1);
if (file_exists($dir.$file.".html")) {
include($dir.$file.".html");
} else {
include("nope.php");
}
} else {
if (file_exists(basename($_GET['id']).".html")) {
include(basename($_GET['id']).".html");
} else {
include("nope.php");
}
}
} else {
include("nope.php");
}
//***************//
// OUTPUT PAGE //
//***************//
echo showpage($article_title, $article_content, $date);
?>
Any ideas? Or should I look into a different way to force decks to display all cards at once (without coding them one by one)?
|