Placing descriptions on the My Adopts page

Forum
Last Post
Threads / Messages

Vaporman87

Member
Member
Joined
Feb 14, 2014
Messages
32
Points
0
Mysidian Dollar
3,037
I would like for the user to see not just the image of the adoptable, but also the description included during it's creation in the ACP (when viewing the adoptable in My Adopts)

Any suggestions on how to go about doing this?
 
Directly on the stats page? Or when you click on it?

If you look at the database you will see that the description is associated with an Adoptable and not an OwnedAdoptable. So we have to get the species to get the description. Basically, through the OwnedAdoptable's type, we get the Adoptable and then we return the description.

In code-words, in the file class_ownedadoptable.php we add a protected $type; to the list at the top then we add this function:

public function getDescription(){
$adopt = new Adoptable($this->type);
return $adopt->getDescription();
}

So if you want it in the stats page, you just needed to add a comment on the getStats() function in the class_ownedadoptable.php file like:

$stats->add(new Comment("<br>Description: ",FALSE));
$stats->add(new Comment($this->getDescription()));

So you class_ownedadoptable.php should look like this:

PHP:
<?php

class OwnedAdoptable extends Adoptable{

    protected $aid;
	protected $name;
	protected $owner;
	protected $currentlevel;
	protected $totalclicks;
	protected $code;
	protected $imageurl;
	protected $usealternates;
	protected $tradestatus;
	protected $isfrozen;  
    protected $gender;
	protected $offsprings;
    protected $lastbred;
	protected $nextlevel;
	protected $voters;
	protected $motherID;
	protected $fatherID;
	protected $type;//add this
  
    public function __construct($aid, $owner = ""){	  
	   (... rest of function)
    }
	
        //add this function
	public function getDescription(){
		$adopt = new Adoptable($this->type);
		return $adopt->getDescription();
	}

(rest of code here)...
	
	public function getStats(){
		$mysidia = Registry::get("mysidia");
		$document = $mysidia->frame->getDocument();	
	    $stats = new Division("adoptstats");
		$stats->add(new Comment("<br><br><b>Total Clicks: {$this->totalclicks}"));
		$stats->add(new Comment("Gender: ", FALSE));
        $stats->add(new Image("picuploads/{$this->gender}.png"));

                //add this
		$stats->add(new Comment("<br>Description: ",FALSE));
		$stats->add(new	Comment($this->getDescription()));

		if($this->hasNextLevel()){
		    $level = $this->getNextLevel();
			$levelupClicks = $this->getLevelupClicks();
			$nextLevel = $level->getLevel().$mysidia->lang->clicks.$levelupClicks; 
		}
		else $nextLevel = $mysidia->lang->maximum;
		
		$adoptStats = "<br>Trade Status: {$this->tradestatus}<br>
				       Current Level: {$this->currentlevel}<br>Next Level: {$nextLevel}</b>";
		$stats->add(new Comment($adoptStats));
		if($this->getMotherID() != NULL){
			$stats->add(new Comment("<br><b>Mother:</b> <a href='../../levelup/click/{$this->getMotherID()}'>{$this->getMother()->getName()}</a><br><b>Father:</b> <a href='../../levelup/click/{$this->getFatherID()}'>{$this->getFather()->getName()}</a>"));
		}
        return $stats;		
	}
}
?>
 
Last edited:
Into Rain: That was exactly what I was looking for.

This brings me to another question though. There is a limit on the characters that can be entered into the description of an adoptable. This is fine with me as it pertains to its use in the Adoptshop, but when it is sent over to the stats page, I want there to be a much larger limit on the character value.

So, this would involve cutting short the description in the Adoptshop, but still maintaining the extra characters in the database for when the description shows up on the stats page.

Again, my sincere thanks for your assistance.
 
If there isn't a simple code for this, a work around I've found is to create a page with all the adoptables and their descriptions. You could also create separate pages for each, and a promocode is given to unlock each page.
 
Directly on the stats page? Or when you click on it?

If you look at the database you will see that the description is associated with an Adoptable and not an OwnedAdoptable. So we have to get the species to get the description. Basically, through the OwnedAdoptable's type, we get the Adoptable and then we return the description.

In code-words, in the file class_ownedadoptable.php we add a protected $type; to the list at the top then we add this function:

public function getDescription(){
$adopt = new Adoptable($this->type);
return $adopt->getDescription();
}

So if you want it in the stats page, you just needed to add a comment on the getStats() function in the class_ownedadoptable.php file like:

$stats->add(new Comment("<br>Description: ",FALSE));
$stats->add(new Comment($this->getDescription()));

So you class_ownedadoptable.php should look like this:

PHP:
<?php

class OwnedAdoptable extends Adoptable{

    protected $aid;
    protected $name;
    protected $owner;
    protected $currentlevel;
    protected $totalclicks;
    protected $code;
    protected $imageurl;
    protected $usealternates;
    protected $tradestatus;
    protected $isfrozen;  
    protected $gender;
    protected $offsprings;
    protected $lastbred;
    protected $nextlevel;
    protected $voters;
    protected $motherID;
    protected $fatherID;
    protected $type;//add this
  
    public function __construct($aid, $owner = ""){      
       (... rest of function)
    }
    
        //add this function
    public function getDescription(){
        $adopt = new Adoptable($this->type);
        return $adopt->getDescription();
    }

(rest of code here)...
    
    public function getStats(){
        $mysidia = Registry::get("mysidia");
        $document = $mysidia->frame->getDocument();    
        $stats = new Division("adoptstats");
        $stats->add(new Comment("<br><br><b>Total Clicks: {$this->totalclicks}"));
        $stats->add(new Comment("Gender: ", FALSE));
        $stats->add(new Image("picuploads/{$this->gender}.png"));

                //add this
        $stats->add(new Comment("<br>Description: ",FALSE));
        $stats->add(new    Comment($this->getDescription()));

        if($this->hasNextLevel()){
            $level = $this->getNextLevel();
            $levelupClicks = $this->getLevelupClicks();
            $nextLevel = $level->getLevel().$mysidia->lang->clicks.$levelupClicks; 
        }
        else $nextLevel = $mysidia->lang->maximum;
        
        $adoptStats = "<br>Trade Status: {$this->tradestatus}<br>
                       Current Level: {$this->currentlevel}<br>Next Level: {$nextLevel}</b>";
        $stats->add(new Comment($adoptStats));
        if($this->getMotherID() != NULL){
            $stats->add(new Comment("<br><b>Mother:</b> <a href='../../levelup/click/{$this->getMotherID()}'>{$this->getMother()->getName()}</a><br><b>Father:</b> <a href='../../levelup/click/{$this->getFatherID()}'>{$this->getFather()->getName()}</a>"));
        }
        return $stats;        
    }
}
?>

Actually there is no need to add a type field and getDescription() method in class OwnedAdpptable, since this class extends from the parent Adoptable class so all properties/methods are inherited. You can just access the type field and getDescription() method directly inside or outside the class.
 
All that being said, are there any suggestions for this in terms of code changes?:

"There is a limit on the characters that can be entered into the description of an adoptable. This is fine with me as it pertains to its use in the Adoptshop, but when it is sent over to the stats page, I want there to be a much larger limit on the character value.

So, this would involve cutting short the description in the Adoptshop, but still maintaining the extra characters in the database for when the description shows up on the stats page."
 
Oops, didn't notice the inheritance! My bad! Thank you, HoF!

All that being said, are there any suggestions for this in terms of code changes?:

"There is a limit on the characters that can be entered into the description of an adoptable. This is fine with me as it pertains to its use in the Adoptshop, but when it is sent over to the stats page, I want there to be a much larger limit on the character value.

So, this would involve cutting short the description in the Adoptshop, but still maintaining the extra characters in the database for when the description shows up on the stats page."

Instead of cutting the description, maybe you could add another column to the adoptable table for a second description with more space? And then you'd call it based on which page you were
 
How would I go about adding a function to get the new table?

EDIT: Actually scratch that... I just added the following...

Code:
public function getDescription2(){
	    return $this->description2;
}

[COLOR="Orange"][I]and...[/I][/COLOR]


$stats->add(new Comment("<br>Backstory: ",FALSE));
        $stats->add(new Comment($this->getDescription2()));

And that did the trick!

Thanks again!
 
Last edited:

Similar threads

Users who are viewing this thread

  • Forum Contains New Posts
  • Forum Contains No New Posts

Forum statistics

Threads
4,280
Messages
33,132
Members
1,603
Latest member
Monako
BETA

Latest Threads

Top