StarGirl |
05-05-2012 03:45 AM |
Group sort
This is a group sort mod. Create groups at myadopts.php, move pets in from their management page, navigate through groups through the drop down.
Screenshots: [NOTE: The way that the pets are shown in the screenshots is not how it will look on your site. It is just the way I want them to be displayed on my site.]
Screenshot1
Screenshot2
For a preview, check out my site at http://myxiplanet.x10.mx/stable.php.
1. Create a 'adopts_pet_groups' table
Since I have no idea how to do it with a query, go to PhpMyAdmin then go to your database, select the 'Operations' tab then create a table called adopts_pet_groups with 3 columns, replacing 'adopts_' with your prefix. Then fill in the details like this:
http://i45.tinypic.com/35iqbev.png
2. Create the group row
Go to the {$prefix}owned_adoptables table.. then select the 'structure' tab. Find this and press go:
http://i48.tinypic.com/25qxh5x.png
Then in 'column', put "group", change "type" to "VARCHAR", set "length/values" to 15, set "Default" to "As defined:", "0", and leave all else.
3. Edits
You can close PhpMyAdmin now. Now it's time to edit the files;
In doadopt.php:
At line 60, find:
PHP Code:
"imageurl" => NULL, "usealternates" => $alts, "tradestatus" => 'fortrade', "isfrozen" => 'no', "gender" => $genders[$rand], "lastbred" => 0));
And replace it with
PHP Code:
"imageurl" => NULL, "usealternates" => $alts, "tradestatus" => 'fortrade', "isfrozen" => 'no', "gender" => $genders[$rand], "lastbred" => 0, "group" => 0));
In myadopts.php:
Replace everything with:
PHP Code:
<?php
include("functions/functions.php"); include("functions/functions_users.php"); include("functions/functions_adopts.php"); include("css/pagination.css"); include("inc/lang.php");
//***************// // START SCRIPT // //***************//
$id = $_GET["id"]; $act = $_GET["act"]; $more = $_GET["more"]; $page = $_GET["page"]; $group = $_GET["group"]; $submit = $_GET["submit"]; $groupname = $_POST["groupname"];
if($isloggedin == "yes"){ if($act == "" and $groupname == ""){ $article_title = "Your Adoptables"; if(!$group == ""){ if(!is_numeric($group)){ $article_title = "No group"; $article_content = "Group does not exist."; } else{ $row = $adopts->select("pet_groups", array(), "user='{$loggedinname}' and id='{$group}'")->fetchObject(); if($row->id == $group and $row->user == $loggedinname){ $groupquery = "AND ".constant("PREFIX")."owned_adoptables.group = {$group}"; } else{ // Invalid group $article_title = "No group"; $article_content = "Group does not exist."; }
} } else{ $groupquery = "AND ".constant("PREFIX")."owned_adoptables.group = 0"; $selected = "selected"; }
// We need to get all of the user's adoptables from the database and display them... $query = "SELECT * FROM ".constant("PREFIX")."owned_adoptables, ".constant("PREFIX")."adoptables, ".constant("PREFIX")."levels WHERE ".constant("PREFIX")."owned_adoptables.owner = '{$loggedinname}' AND ".constant("PREFIX")."adoptables.type = ".constant("PREFIX")."owned_adoptables.type AND ".constant("PREFIX")."levels.thisislevel = ".constant("PREFIX")."owned_adoptables.currentlevel AND ".constant("PREFIX")."levels.adoptiename = ".constant("PREFIX")."adoptables.type AND ".constant("PREFIX")."levels.adoptiename = ".constant("PREFIX")."adoptables.type {$groupquery}
ORDER BY ".constant("PREFIX")."owned_adoptables.totalclicks"; $rowsperpage = 10; $pagination = new Pagination($adopts, $query, $rowsperpage, "http://".constant("DOMAIN").constant("SCRIPTPATH")."/stable.php?group={$group}"); $pagination->setPage($_GET[page]); $query = "SELECT * FROM ".constant("PREFIX")."owned_adoptables, ".constant("PREFIX")."adoptables, ".constant("PREFIX")."levels WHERE ".constant("PREFIX")."owned_adoptables.owner = '{$loggedinname}' AND ".constant("PREFIX")."adoptables.type = ".constant("PREFIX")."owned_adoptables.type AND ".constant("PREFIX")."levels.thisislevel = ".constant("PREFIX")."owned_adoptables.currentlevel AND ".constant("PREFIX")."levels.adoptiename = ".constant("PREFIX")."adoptables.type {$groupquery} ORDER BY ".constant("PREFIX")."owned_adoptables.totalclicks LIMIT {$pagination->getLimit()},{$rowsperpage}"; $stmt = $adopts->query($query); $groups = ""; // Get groups $stmt2 = $adopts->select("pet_groups", array(), "user='{$loggedinname}'"); while($row = $stmt2->fetchObject()) { $id=$row->id; $name=$row->name; if($id == $group){ $groups .= "<option value='{$id}' selected>{$name}</option>"; $selected = ""; } else{ $groups .= "<option value='{$id}'>{$name}</option>"; } } $article_content = " <b>Group:</b><br> <form method='get' action='myadopts.php'> <select name='group' id='group'> <option value='0' {$selected}>Ungrouped</option> {$groups} </select><br><input type='submit' value='Go'></form> <a href='stable.php?act=creategroup'>Create a new group</a> <br><br><table> <tr> <th></th><th>Name and Type</th><th>Image</th><th>Clicks</th> </tr>"; while($row = $stmt->fetchObject()){ if($row->usealternates == 'yes') $image = $row->alternateimage; else $image = $row->primaryimage; if($row->currentlevel == 0) $image = $row->eggimage; if($image=='') $image = $row->primaryimage; $article_content .= "<tr> <td><center><img src='picuploads/{$row->gender}.png'></center></td> <td><center><em>{$row->name}</em> the {$row->type}</center></td> <td><center><a href='myadopts.php?act=manage&id={$row->aid}'><img src='{$image}'></a></center></td> <td><center>{$row->totalclicks}</center></td> </tr>"; } $article_content .= "</table><br /><br />{$pagination->showPage()}"; } elseif($act == "manage"){ // We are managing a specific adoptable if(!is_numeric($id)){ $article_title = $err_idnoexist; $article_content = $err_idnoexist_text; } else{ // See if the adoptable actually exists...
$row = $adopts->select("owned_adoptables", array(), "owner='{$loggedinname}' and aid='{$id}'")->fetchObject();
// Check that the adoptable exists for real, or show an error... if($row->aid == $id){ // The adoptable does exist, so we show the image and junk to the user... $image = getcurrentimage($id); $article_title = "Managing {$row->name}"; $article_content = "<img src='{$image}'><br /><br />This page allows you to manage {$row->name}. Click on an option below to change settings.<br /><br /> <b><a href='levelup.php?id={$id}'><img src='templates/icons/add.gif' border=0> Level Up {$row->name}</a><br /> <a href='myadopts.php?act=stats&id={$id}'><img src='templates/icons/stats.gif' border=0> Get Stats for {$row->name}</a><br /> <a href='myadopts.php?act=bbcode&id={$id}'><img src='templates/icons/bbcodes.gif' border=0> Get BBCodes / HTML Codes for {$row->name}</a><br /> <a href='myadopts.php?act=rename&id={$id}'><img src='templates/icons/title.gif' border=0> Rename {$row->name}</a><br /> <a href='myadopts.php?act=trade&id={$id}'><img src='templates/icons/trade.gif' border=0> Change Trade Status {$row->name}</a><br /> <a href='myadopts.php?act=freeze&id={$id}'><img src='templates/icons/freeze.gif' border=0> Freeze or Unfreeze {$row->name}</a><br /> <a href='myadopts.php?act=group&id={$id}'> Group {$row->name}</a><br /> <a href='myadopts.php?act=pound&id={$id}'><img src='templates/icons/delete.gif' border=0> Pound {$row->name}</a></b>"; } else{ $article_title = $err_idnoexist; $article_content = $err_idnoexist_text; } } } // End the MANAGE action code elseif($act == "stats"){ // We are getting the stats for the adoptable // Check that an ID was submitted... if(is_numeric($id)){ // Now we see if the adoptable actually exists...
$row = $adopts->select("owned_adoptables", array(), "owner='{$loggedinname}' and aid='{$id}'")->fetchObject(); if($row->aid == $id){ // The adoptable exists, so we show the stats for it...
$image = getcurrentimage($id); $nextlevelexists = getnextlevelexists($row->type, $row->currentlevel);
// If a higher level exists, get that level's information...
if($nextlevelexists == TRUE){ $nextlevel = $row->currentlevel + 1;
$levels = $adopts->select("levels", array(), "adoptiename='{$row->type}' and thisislevel='{$nextlevel}'")->fetchObject(); $requiredclicks= $levels->requiredclicks; //The adoptable's ID
} // End grab next level info...
// Determine what to show for next level:
if($nextlevelexists == TRUE and $nextlevel != ""){ // See how many more clicks to go $ctg = $requiredclicks - $row->totalclicks; $nloutput = "{$nextlevel}<br />Clicks Required for Level Increase: {$ctg}"; } else $nloutput = "This adoptable is at its maximum level";
$article_title = "{$row->name}'s Statistics:"; $article_content = "<img src='{$image}'><br /><br /> <b>Total Clicks: {$row->totalclicks}<br /> Gender: <img src='picuploads/{$row->gender}.png'><br /> Trade Status: {$row->tradestatus}<br /> Current Level: {$row->currentlevel}<br /> Next Level: {$nloutput}<br /></b>";
// Voters Information...
$article_content .= "<h2>{$row->name}'s Voters:</h2><br /> {$lang_voters_explain}<br /><br /> <table width='450' border='1'> <tr> <td width='129'><strong>Username:</strong></td> <td width='156'><strong>Date Voted: </strong></td> <td width='82'><strong>Profile:</strong></td> <td width='55'><strong>PM:</strong></td> </tr>";
// Select the voters from the DB
$stmt = $adopts->select("vote_voters", array(), "adoptableid='{$id}' ORDER BY date DESC LIMIT 10"); while($row = $stmt->fetchObject()) { if($row->username == "") $row->username = "Guest"; if($row->username == "Guest"){ $article_content .= "<tr> <td><div align='left'>Guest</div></td> <td><div align='left'>{$row->date}</div></td> <td><div align='center'></div></td> <td><div align='center'></div></td> </tr>"; } else{ $article_content .= "<tr> <td><div align='left'>{$row->username}</div></td> <td><div align='left'>{$row->date}</div></td> <td><div align='center'><a href='profile.php?user={$row->username}' target='_blank'><img src='templates/buttons/profile.gif' border=0></a></div></td> <td><div align='center'><a href='messages.php?act=newpm&user={$row->username}' target='_blank'><img src='templates/buttons/pm.gif' border=0></a></div></td> </tr>"; } } $article_content .= "</table><br />"; } else{ $article_title = $err_idnoexist; $article_content = $err_idnoexist_text; } } else { $article_title = $err_idnoexist; $article_content = $err_idnoexist_text; } } // End the STATS code elseif($act == "bbcode"){ if(is_numeric($id)){ // Now we see if the adoptable actually exists...
$row = $adopts->select("owned_adoptables", array(), "owner='{$loggedinname}' and aid='{$id}'")->fetchObject(); if($row->aid == $id){ $altbb = grabanysetting("usealtbbcode");
// Adoptable exists, so show the BBCode: $article_title = "Codes for {$row->name}"; $article_content = "{$lang_bbcode_explain}<br /> <p><u>Forum Codes / BBCode: </u></p> <p> <textarea name='textarea' cols='50' rows='4'> [url=http://www.".constant("DOMAIN").constant("SCRIPTPATH")."/levelup.php?id={$row->aid}][img]http://www.".constant("DOMAIN").constant("SCRIPTPATH")."/siggy.php?id={$row->aid}[/img][/url] </textarea> </p>";
if($altbb == "yes"){ // Use the seo friendly alternate bbcodes... $article_content .= " <p><u>Alternate BBCodes (Use if the above do not work on a forum): </u></p> <p> <textarea name='textarea' cols='50' rows='4'> [url=http://www.".constant("DOMAIN").constant("SCRIPTPATH")."/levelup.php?id={$row->aid}][img]http://www.".constant("DOMAIN").constant("SCRIPTPATH")."/get/{$row->aid}.gif\"[/img][/url] </textarea> </p>"; } $article_content .= "<p><u>HTML Code</u>:</p> <p> <textarea name='textarea' cols='50' rows='4'> <a href=\"http://www.".constant("DOMAIN").constant("SCRIPTPATH")."/levelup.php?id={$row->aid}\" target=\"_blank\"> <img src=\"http://www.".constant("DOMAIN").constant("SCRIPTPATH")."/siggy.php?id={$row->aid}\" border=0> </a> </textarea> </p>"; } else{ $article_title = $err_idnoexist; $article_content = $err_idnoexist_text; } } else{ $article_title = $err_idnoexist; $article_content = $err_idnoexist_text; } } // End the BBCODE generation for the adoptable... elseif($act == "rename"){ // We are renaming an adoptable
if(is_numeric($id)){ // Now we see if the adoptable actually exists... $row = $adopts->select("owned_adoptables", array(), "owner='{$loggedinname}' and aid='{$id}'")->fetchObject();
if($row->aid == $id){ $image = getcurrentimage($id); if($row->isfrozen != "yes"){ if($more == ""){ $article_title = "Rename {$row->name}"; $article_content = "<img src='{$image}'><br />{$lang_rename}{$row->name}{$lang_rename2}<br /> <form name='form1' method='get' action='stable.php'> <p>Adoptable Name: <input name='more' type='text' id='more'> <input name='id' type='hidden' id='id' value='{$id}'> <input name='act' type='hidden' id='act' value='rename'> </p> <p> <input type='submit' name='Submit' value='Rename Adoptable'> </p> </form>"; } else{ // We are renaming the adoptable, lets first check if the user is its original owner. $row = $adopts->select("pounds", array(), "aid='{$id}'")->fetchObject(); if(!empty($row->firstowner) and $loggedinname != $row->firstowner){ $article_title = "Cannot rename"; $article_content = "The site admin has specified that only original owners can rename their adoptables."; } else{ $adopts->update("owned_adoptables", array("name" => $more), "aid='{$id}' and owner='{$loggedinname}'"); $article_title = $lang_rename_success_title; $article_content = "<img src='{$image}'><br />{$lang_rename_success}{$more}. You can now manage {$more} in your <a href='myadopts.php?act=manage&id={$id}'>My Adopts</a> page"; } } } else{ // We cannot rename a frozen adoptable...
$article_title = $lang_frozen_title; $article_content = "{$lang_frozen}<a href='myadopts.php?act=freeze&id={$id}&more=unfreeze'>unfreeze</a> {$lang_frozen2}"; } } else{ $article_title = $err_idnoexist; $article_content = $err_idnoexist_text; } } else{ $article_title = $err_idnoexist; $article_content = $err_idnoexist_text; } } elseif($act == "trade"){ // We are setting the trade status for an adoptable...
if(is_numeric($id)){ // Now we see if the adoptable actually exists...
$row = $adopts->select("owned_adoptables", array(), "owner='{$loggedinname}' and aid='{$id}'")->fetchObject(); if($row->aid == $id){ $image = getcurrentimage($id); // Get the image for the adopt...
if($more == ""){ $article_title = "Setting trade status for {$row->name}"; $article_content = "Are you sure you wish to change the trade status of this adoptable? <center><b><a href='stable.php?act=trade&id={$id}&more=confirm'>Yes I'd like to change its trade status</a></b><br /><br /> <b><a href='stable.php'>Nope I change my mind! Go back to the previous page.</a></b></center><br />"; } elseif($more == "confirm"){ $article_title = "Change trade status successfully"; if($row->tradestatus == "fortrade"){ $adopts->update("owned_adoptables", array("tradestatus" => 'notfortrade'), "aid='{$id}' and owner='{$loggedinname}'"); $article_content = "The adoptable's trade status is now Not for Trade"; } elseif($row->tradestatus == "notfortrade"){ $adopts->update("owned_adoptables", array("tradestatus" => 'fortrade'), "aid='{$id}' and owner='{$loggedinname}'"); $article_content = "The adoptable's trade status is now For Trade"; } else{ $article_title = "Something is very very wrong"; $article_content = "Please check phpmyadmin to see if the settings are correct, or report your issue to Mysidia Adoptables support forum"; } } else{ $article_title = "Invalid Action"; $article_content = "Invalid Action Specified"; } } else{ $article_title = $err_idnoexist; $article_content = $err_idnoexist; } } else{ $article_title = $err_idnoexist; $article_content = $err_idnoexist_text; } } elseif($act == "freeze"){ // We are freezing an adoptable here...
if(is_numeric($id)){ // Now we see if the adoptable actually exists...
$row = $adopts->select("owned_adoptables", array(), "owner='{$loggedinname}' and aid='{$id}'")->fetchObject(); if($row->aid == $id){ $image = getcurrentimage($id); // Get the image for the adopt... if($more == ""){ if($row->isfrozen == "yes"){ $status = "<img src='templates/icons/freeze.gif'> Frozen<br />"; $go = "<a href='stable.php?act=freeze&id={$id}&more=unfreeze'><img src='templates/icons/unfreeze.gif' border=0> Unfreeze This Adoptable</a>"; } else{ $status = "<img src='templates/icons/unfreeze.gif'> Not Frozen<br />"; $go = "<a href='stable.php?act=freeze&id={$id}&more=freeze'><img src='templates/icons/freeze.gif' border=0> Freeze This Adoptable</a>"; }
$article_title = $lang_freeze_title; $article_content = "<img src='{$image}'><br /><b>{$row->name}'s Current Status: {$status}</b><br /> {$lang_freeze}<br /><br /><b>{$go}</b><br /><br /> {$lang_freeze_warning}"; } else{ // We are actually freezing or unfreezing the adopt...
if($more == "freeze"){ $frz = "yes"; $article_title = "{$row->name} Frozen Successfully"; } elseif($more == "unfreeze"){ $frz = "no"; $article_title = "{$row->name} Unfrozen Successfully"; }
$adopts->update("owned_adoptables", array("isfrozen" => $frz), "aid='{$id}' and owner='{$loggedinname}'"); $article_content = "Action Complete. You may now manage {$row->name} on the <a href='myadopts.php?act=manage&id={$id}'>My Adopts</a> page"; } } else{ $article_title = $err_idnoexist; $article_content = $err_idnoexist_text; } } else { $article_title = $err_idnoexist; $article_content = $err_idnoexist_text; } } elseif($act == "pound"){ if(is_numeric($id)){ // Now we see if the adoptable actually exists... $row = $adopts->select("owned_adoptables", array(), "owner='{$loggedinname}' and aid='{$id}'")->fetchObject(); if($row->aid == $id){ $image = getcurrentimage($id); // Get the image for the adopt... if($more == ""){ $article_title = "Pound {$row->name}"; $article_content = "<img src='{$image}'><br />{$lang_pound}<br /><br />{$lang_pound_warning}<br /><br /> <center><b><a href='stable.php?act=pound&id={$id}&more=confirm'> <img src='templates/icons/delete.gif' border=0> Pound {$row->name} - I dont want it anymore! <img src='templates/icons/delete.gif' border=0></a></b><br /><br /> <b><a href='myadopts.php'><img src='templates/icons/yes.gif' border=0> DO NOT Pound {$row->name}! <img src='templates/icons/yes.gif' border=0></a></b></center><br />"; } elseif($more == "confirm"){ // Validate the pet can be pounded $adopt = new Pound($row->aid, "pound"); if($adopt->settings->system->active == "no"){ $article_title = "Invalid Action"; $article_content = "The admin has turned off pound feature, please contact him/her for further explanation."; } elseif($adopt->validate() == TRUE){ $adopt->dopound(); $article_title = $lang_pound_title_complete; $article_content = $adopt->message; } else{ $article_title = "An error has occurred"; $article_content = $adopt->message; } } else{ $article_title = "Invalid Action"; $article_content = "Invalid Action Specified"; } } else{ $article_title = $err_idnoexist; $article_content = $err_idnoexist_text; } } else{ $article_title = $err_idnoexist; $article_content = $err_idnoexist_text; } } elseif($act == "group"){ if(is_numeric($id)){ $row = $adopts->select("owned_adoptables", array(), "owner='{$loggedinname}' and aid='{$id}'")->fetchObject(); $petname = $row->name; if($row->aid == $id){ $row = $adopts->select("owned_adoptables", array(), "owner='{$loggedinname}' and aid='{$id}'")->fetchObject(); $article_title = "Group {$row->name}"; if($row->group == 0){ $article_content = "{$row->name} is not in a group. "; } else{ $groupname = $row->group; $row = $adopts->select("pet_groups", array(), "user='{$loggedinname}' and id='{$groupname}'")->fetchObject(); $groupname = $row->name; $article_content = "{$petname} is in the group '{$groupname}'."; } $article_content .= "Select a group to move {$petname} into:<br><br>"; $stmt = $adopts->select("pet_groups", array(), "user='{$loggedinname}'"); while($row = $stmt->fetchObject()) { $groupid=$row->id; $name=$row->name; $groups .= "<option value='{$groupid}'>{$name}</option>"; }
$article_content .= " <form name='form' method='get' action='myadopts.php?'> <input name='id' type='hidden' id='id' value='{$id}'> <input name='act' type='hidden' id='act' value='changegroup'> <select name='group' id='group'> <option value='none' selected> </option> {$groups} </select><br> <input type='submit' name='submit' value='Move'> </form>"; } } } elseif($act == "changegroup"){ if($submit == "Move"){ $row = $adopts->select("pet_groups", array(), "user='{$loggedinname}' and id='{$group}'")->fetchObject(); if($row->id == $group and $row->user == $loggedinname){ $row = $adopts->select("owned_adoptables", array(), "owner='{$loggedinname}' and aid='{$id}'")->fetchObject(); if($row->aid == $id){ $adopts->update("owned_adoptables", array("group" => $group), "aid='{$id}' and owner='{$loggedinname}'"); $article_title = "Moved {$row->name}"; $article_content = "{$row->name} was moved to a new group.<br><br> <a href='myadopts.php?group={$group}'>Check out the new group</a>"; } else{ $article_title = "No pet"; $article_content = "This pet doesn't exist."; } } else{ $article_title = "No group"; $article_content = "This group doesn't exist."; } } else{ $article_title = ""; $article_content = ""; } } elseif($act == "creategroup"){ if($groupname == ""){ $count = $GLOBALS['adopts']->select("pet_groups", array(), "user='{$loggedinname}'")->fetchAll(); if(count($count) > 4) { $article_title = "Sorry"; $article_content = "You can only have 5 groups. <br><br> <a href='myadopts.php'>Go back</a>"; } else{ $article_title = "Create a new group"; $article_content = " <form name='form1' method='post' action='myadopts.php?act=creategroup'> <b>Group Name:</b> <br> Max length is 15.<br> <input name='groupname' type='text' id='groupname' maxlength='15' /><br> <input type='submit' name='submit' value='Create'> </form>"; } } else{ $count = $GLOBALS['adopts']->select("pet_groups", array(), "user='{$loggedinname}'")->fetchAll(); if(count($count) > 4) { $article_title = "Sorry"; $article_content = "You can only have 5 groups. <br><br> <a href='stable.php'>Go back to your stable</a>"; } else{ $adopts->insert("pet_groups", array("id" => NULL, "user" => $loggedinname, "name" => $groupname)); $group = $adopts->select("pet_groups", array(), "name='{$groupname}' and user='{$loggedinname}'")->fetchObject(); $id = $group->id; $article_title = "Created group '{$groupname}'"; $article_content = "You created a new group called '{$groupname}'.<br><br> <a href='myadopts.php?group={$id}'>Visit it now</a><br><br> <a href='myadopts.php'>Go back</a>"; } } } else{ // No valid action specified :: show an error
$article_title = $lang_invalid_action_title; $article_content = $lang_invalid_action; } } else {
$article_title = $accden; $article_content = $reqlogin;
} // End is logged in check else
//***************// // OUTPUT PAGE // //***************//
echo showpage($article_title, $article_content, $date);
?>
4. Done
That is it! :) I hope it works for you.
|