Hwona |
05-04-2014 09:35 AM |
Showing stats on click page
Hello! Sorry for yet another nuisance, but I've been trying to find a way to display an adoptable's stats on its levelup page after someone has viewed it more than once. I was thinking about having the stats displayed on the second view and adding a link after the first click, but I can't seem to get anything to work. I'm currently using version 1.3.3. Would anyone mind helping me?
PHP Code:
<?php
class LevelupController extends AppController{
const PARAM = "aid"; private $view; private $subController; private $adopt;
public function __construct(){ parent::__construct(); $mysidia = Registry::get("mysidia"); if($mysidia->input->action() == "click" or $mysidia->input->action() == "siggy") $this->adopt = new OwnedAdoptable($mysidia->input->get("aid")); if($mysidia->user instanceof Member){ $status = $mysidia->user->getstatus(); if($status->canlevel == "no") throw new InvalidActionException($mysidia->lang->banned); } } public function index(){ $mysidia = Registry::get("mysidia"); throw new InvalidActionException($mysidia->lang->global_action); } public function click(){ $mysidia = Registry::get("mysidia"); $document = $mysidia->frame->getDocument(); $date = new DateTime; $ip = secure($_SERVER['REMOTE_ADDR']); $gender = $mysidia -> db -> select ("owned_adoptables", array("gender"), "aid='{$adopt->aid}'") -> fetchColumn(); $adoptablename = $mysidia -> db -> select ("owned_adoptables", array("name"), "aid='{$adopt->aid}'") -> fetchColumn(); $species = $mysidia -> db -> select ("owned_adoptables", array("type"), "aid='{$adopt->aid}'") -> fetchColumn(); $totalclicks = $mysidia -> db -> select ("owned_adoptables", array("name"), "aid='{$adopt->aid}'") -> fetchColumn(); $tradestatus = $mysidia -> db -> select ("owned_adoptables", array("tradestatus"), "aid='{$adopt->aid}'") -> fetchColumn(); if($this->adopt->hasVoter($mysidia->user, $date)){ // The user has leveled up this adoptable today, show error message $message = 'Name:' . $adoptablename . 'Species:' . $species . 'Gender:' . $gender . 'Total Clicks:' . $totalclicks . 'Trade Status:' . $tradestatus; $message = ($mysidia->user instanceof Member)?$mysidia->lang->already_leveled_member:$mysidia->lang->already_leveled_guest; $document->setTitle($mysidia->lang->already_leveled_title); $document->addLangvar($message); } elseif($this->adopt->isFrozen() == "yes"){ $document->setTitle($mysidia->lang->frozen_title); $document->addLangvar($mysidia->lang->frozen); } else{ $newClicks = $this->adopt->getTotalClicks() + 1; $this->adopt->setTotalClicks($newClicks, "update"); $mysidia->db->insert("vote_voters", array("void" => NULL, "date" => $date->format('Y-m-d'), "username" => $mysidia->user->username, "ip" => $ip, "adoptableid" => $mysidia->input->get("aid"))); if($this->adopt->hasNextLevel()){ // A higher level does exist, so we see if it is time to level up $nextLevel = $this->adopt->getNextLevel(); $requiredClicks = $nextLevel->getRequiredClicks(); if($requiredClicks and $newClicks >= $requiredClicks) $this->adopt->setCurrentLevel($nextLevel->getLevel(), "update"); } $document->setTitle("{$mysidia->lang->gave} {$this->adopt->getName()} one {$mysidia->lang->unit}"); $reward = $mysidia->user->clickreward($mysidia->settings->rewardmoney); $mysidia->user->changecash($reward); $image = $this->adopt->getImage("gui"); $image->setLineBreak(TRUE); $summary = new Division; $summary->setAlign(new Align("center")); $summary->add($image); $summary->add(new Comment("{$mysidia->lang->gave}{$this->adopt->getName()} one {$mysidia->lang->unit}.")); $summary->add(new Comment($mysidia->lang->encourage)); $summary->add(new Comment("<br>")); $summary->add(new Comment(" You have earned {$reward} {$mysidia->settings->cost} for leveling up this adoptable. ")); $summary->add(new Comment("You now have {$mysidia->user->getcash()} {$mysidia->settings->cost}")); $document->add($summary); } }
public function siggy(){ $mysidia = Registry::get("mysidia"); // The adoptable is available, let's collect its info $usingimage = "no"; $image = $this->adopt->getImage(); $usegd = $mysidia->settings->gdimages; $imageinfo = @getimagesize($image); $imagemime = $imageinfo["mime"]; // Mime type of the image file, should be a .gif file...
if(function_exists('imagegif') and $usegd == "yes" and $imagemime == "image/gif"){ $usingimage = "yes"; //Turn the template system off $type = $this->adopt->getType(); list($width, $height, $type, $attr) = getimagesize($image); // The size of the original adoptable image
// Lets create the new target image, with a size big enough for the text for the adoptable $newheight = $height + 72; $newwidth = ($newwidth < 250)?250:$width; $img_temp = imagecreatetruecolor($newwidth, $newheight); $alphablending = true; // Lets create the image and save its transparency $img_old = @imagecreatefromgif($image); imagealphablending($img_old, true); imagesavealpha($img_old, true); // Lets copy the old image into the new image with ImageCopyResampled($img_temp, $img_old, 0, 0, 0, 0, $width, $height, $width, $height); $textheight = $width + 2; $image = $img_temp; $bgi = imagecreatetruecolor($newwidth, $newheight); $color = imagecolorallocate($bgi, 51, 51, 51); // Build text for siggy $str1 = "Name: ".$this->adopt->getName(); $str2 = "Owner: ".$this->adopt->getOwner(); $str3 = "Click Here to Feed Me!"; $str4 = "More Adopts at:"; $str5 = "www.".constant("DOMAIN");
// Renger Image imagestring ($image, 12, 0, $textheight, $str1, $color); imagestring ($image, 12, 0, $textheight + 13, $str2, $color); imagestring ($image, 12, 0, $textheight + 26, $str3, $color); imagestring ($image, 12, 0, $textheight + 42, $str4, $color); imagestring ($image, 12, 0, $textheight + 55, $str5, $color); $background = imagecolorallocate($image, 0, 0, 0); ImageColorTransparent($image, $background); // At the very last, let's clean up temporary files header("Content-Type: image/GIF"); ImageGif ($image); imagedestroy($image); imagedestroy($img_temp); imagedestroy($img_old); imagedestroy($bgi);
} else{ // We are going to try and get this image the old fashioned way... $extList = array(); $extList['gif'] = 'image/gif'; $extList['jpg'] = 'image/jpeg'; $extList['jpeg'] = 'image/jpeg'; $extList['png'] = 'image/png';
//Define the output file type $contentType = 'Content-type: '.$extList[ $imageinfo['extension'] ];
if($imageinfo['extension'] =! "image/gif" and $imageinfo['extension'] =! "image/jpeg" and $imageinfo['extension'] =! "image/png"){ throw new InvalidIDException("The file Extension is not allowed!"); } else{ // File type is allowed, so proceed $status = ""; header($contentType); $curl = new Curl($image); $curl->setHeader(); $curl->exec(); $curl->close(); } } } public function daycare(){ $mysidia = Registry::get("mysidia"); $document = $mysidia->frame->getDocument(); $document->setTitle($mysidia->lang->daycare_title); $document->addLangvar($mysidia->lang->daycare, TRUE); try{ $daycare = new Daycare; $adopts = $daycare->getAdopts(); } catch(DaycareException $dae){ $message = $dae->getmessage(); $document->addLangvar($mysidia->lang->{$message}); return; } $daycareTable = new Table("daycare", "", FALSE); $daycareTable->setBordered(FALSE); $total = $daycare->getTotalAdopts(); $index = 0;
for($row = 0; $row < $daycare->getTotalRows(); $row++){ $daycareRow = new TRow("row{$row}"); for($column = 0; $column < $daycare->getTotalColumns(); $column++){ $adopt = new OwnedAdoptable($adopts[$index]); $image = new Link("levelup/click/{$adopt->getAdoptID()}", $adopt->getImage("gui"), TRUE); $stats = new Comment($daycare->getStats($adopt)); $daycareCell = new TCell(new ArrayObject(array($image, $stats)), "cell{$index}"); $daycareCell->setAlign(new Align("center", "center")); $daycareRow->add($daycareCell); $index++; if($index == $total) break; } $daycareTable->add($daycareRow); } $document->add($daycareTable); if($pagination = $daycare->getPagination()) $document->addLangvar($pagination->showPage()); } }
?>
All edits have been to the click function section of the script, but I don't think I'm getting or displaying the data correctly? I added a few extra variables and then a message to display them right under "the user has already leveled this adoptable today...".
Thank you so much!
|