Hwona
05-04-2014, 09:35 AM
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
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!
<?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!