Thread: Mys 1.3.4 Pet Sorting
View Single Post
Old 06-13-2017, 10:28 AM
Dinocanid's Avatar
Dinocanid Dinocanid is offline
Join Date: Aug 2016
Location: Maryland, USA
Posts: 503
Gender: Unknown/Other
Credits: 20,200
Dinocanid is on a distinguished road
Default Pet Sorting

Pet Sorting mod (Mys 1.3.4)
Description: A non-invasive and minimal mod that allows users to sort their pets according to total clicks, gender, level, and name; without the use of javascript or ajax. This can easily be extended on to allow more sorting options as well (like species).
  Spoiler: Screenshot 

-Step 1-
Go into phpMyAdmin and add a new column in users_options:

-Step 2-
Open up myadopts.php and replace the entire public function index with this:
PHP Code:
    public function index(){
$mysidia Registry::get("mysidia");
$total $mysidia->db->select("owned_adoptables", array("aid"), "owner = '{$mysidia->user->username}'")->rowCount();
$pagination = new Pagination($total10"myadopts");
//Attempting to sort!
$sort $mysidia->db->select("users_options", array("petsort"), "username = '{$mysidia->user->username}'")->fetchColumn();
            switch (
$stmt $mysidia->db->select("owned_adoptables", array("aid"), "owner = '{$mysidia->user->username}' ORDER BY totalclicks LIMIT {$pagination->getLimit()},{$pagination->getRowsperPage()}");
$stmt $mysidia->db->select("owned_adoptables", array("aid"), "owner = '{$mysidia->user->username}' ORDER BY gender LIMIT {$pagination->getLimit()},{$pagination->getRowsperPage()}"); 
$stmt $mysidia->db->select("owned_adoptables", array("aid"), "owner = '{$mysidia->user->username}' ORDER BY currentlevel LIMIT {$pagination->getLimit()},{$pagination->getRowsperPage()}");
$stmt $mysidia->db->select("owned_adoptables", array("aid"), "owner = '{$mysidia->user->username}' ORDER BY name LIMIT {$pagination->getLimit()},{$pagination->getRowsperPage()}");
//Sorting ends here!
$this->setField("stmt", new DatabaseStatement($stmt));
-Step 3-
Finally, open myadoptsview.php and place this wherever you want the dropdown to be (I placed it above the table for adopts)
PHP Code:
//This is for sorting!
$choice $mysidia->input->post("sortlist");
$mysidia->db->update("users_options", array("petsort" => $choice), "username = '{$mysidia->user->username}'");
$document->add(new Comment("<meta http-equiv='refresh' content='0;url=/myadopts' />")); 
$sortForm = new Form("sortform""""post");
$sort_list = new DropdownList("sortlist");
$sort_list->add(new Option("Clicks""clicks"));
$sort_list->add(new Option("Gender""gender"));
$sort_list->add(new Option("Level""level"));
$sort_list->add(new Option("Name""name"));
$sortForm->add(new Comment("<b>Sort by:</b>"FALSE));
$sortForm->add(new Button("Sort Pets""sortpets""submit"));
//Sorting ends here!!! 
  Spoiler: Different codes for refreshing 

It is also possible to refresh the page with:
PHP Code:
header("Location: $root/myadopts");
PHP Code:
header("Location: /myadopts");
But this might not work for everyone

(Also if anyone knows how to safely place the button next to the dropdown box that would be great!)

Last edited by Dinocanid; 06-13-2017 at 10:31 AM.
Reply With Quote