Mysidia Adoptables Support Forum  

Home Community Mys-Script Creative Off-Topic
Go Back   Mysidia Adoptables Support Forum > Mysidia Adoptables > Addons and Modifications > Mys v1.3.x Mods

Notices

Reply
 
Thread Tools Display Modes
  #1  
Old 05-12-2017, 02:59 AM
KatFennec's Avatar
KatFennec KatFennec is offline
Member
 
Join Date: Apr 2017
Posts: 57
Gender: Female
Credits: 9,372
KatFennec is on a distinguished road
Default Public Profile Mod

The following is a mod that extends the functionality of levelup.php to create a profile for each pet, viewable by other users.



This mod is heavily based on code provided by Kyttias

To get started, open levelup.php and change
PHP Code:
if($mysidia->input->action() == "click" or $mysidia->input->action() == "siggy" $this->adopt = new OwnedAdoptable($mysidia->input->get("aid")); 
to
PHP Code:
if($mysidia->input->action() == "click" or $mysidia->input->action() == "siggy" or $mysidia->input->action() == "publicprofile"$this->adopt = new OwnedAdoptable($mysidia->input->get("aid")); 
, t
at the bottom paste the following:
PHP Code:
public function publicprofile(){
#begin profile code
$mysidia Registry::get("mysidia");
$date = new DateTime;
$this->setField("adopt"$this->adopt);
$ip secure($_SERVER['REMOTE_ADDR']); 
Next, open levelupview.php, found in your views folder.
again, scroll down to the bottom and paste:
PHP Code:
public function publicprofile(){
            
$mysidia Registry::get("mysidia");
            
$adopt $this->getField("adopt");            
            
$adoptcurrentlevel $adopt->currentlevel;
            
$document $this->document;
            
$document->setTitle("Viewing {$adopt->getName()}'s profile");
        if(
$adopt->hasNextLevel()){
            
$nextLevel $adopt->getNextLevel();
            
#$requiredClicks = $nextLevel->getRequiredClicks();
$thisisauniqueid = new OwnedAdoptable($adopt->getAdoptID());
$gender_lookup $mysidia->db->select("owned_adoptables", array("gender"), "aid = '{$adopt->getAdoptID()}'")->fetchColumn();
if (
$gender_lookup == "m") { $gender "Male"$pronoun "him"; } else { $gender "Female"$pronoun "her"; } 
$alternates_lookup $mysidia->db->select("owned_adoptables", array("usealternates"), "aid = '{$adopt->getAdoptID()}'")->fetchColumn();
if (
$mysidia->user->username == $adopt->getOwner()){ $manage_btn "<a class='btn btn-sm btn-info' href='../../myadopts/manage/{$adopt->getAdoptID()}'><i class='fa fa-gear'></i> Manage</a>"; } else { $manage_btn ""; }

if(
$adopt->hasNextLevel()){
$level $adopt->getNextLevel();
$levelupClicks $adopt->getLevelupClicks();
$document->add(new Comment("(LVL ".$level->getLevel()." in ".$levelupClicks." more EXP)")); 
}
else { 
$document->add(new Comment("(MAX)")); }

if(
$adopt->getTradeStatus() == "fortrade") { $tradestatus "<b>For Trade</b>"; } 
else { 
$tradestatus "<b>Not For Trade</b>"; }



// If you've already seen the pet today:
if ($adopt->hasVoter($mysidia->user$date)){
$document->add(new Comment("<a class='btn btn-sm btn-info disabled' href='../../levelup/click/{$adopt->getAdoptID()}'><i class='fa fa-paw'></i> Already Fed</a>"));
}
// If you haven't seen the pet today:
else {
$document->add(new Comment("<a class='btn btn-sm btn-info' href='../../levelup/click/{$adopt->getAdoptID()}'><i class='fa fa-paw'></i> Feed</a>"));
};
}
$document->add(new Comment("{$manage_btn}
<br> <br>
<img src='
{$thisisauniqueid->getImage()}'><br>"));
$adoptabletype $mysidia->db->select("adoptables", array(), "type='{$adopt->getType()}'")->fetchObject();
$diet $adoptabletype->Diet;
$level $adopt->getCurrentLevel();
$document->add(new Comment("<ul>
<li>Lives With: <a href='/profile/view/
{$adopt->getOwner()}'>{$adopt->getOwner()}</a></li>
<li>Species: 
{$adopt->getType()}</li>
<li>Gender: 
{$gender}</li>

<li>LVL: 
{$adopt->getCurrentLevel()} {$toNext}</li>
<li>Total EXP: 
{$adopt->getTotalClicks()}</li> 
<li>Trade Status: 
{$tradestatus}</li>

"
));
        } 
This essentially creates a new page under levelup, yoursite.com/levelup/publicprofile/(adoptable ID number), but there isn't anything that links to it yet! We'll fix that next. Open myadoptsview.php and under the line reading
PHP Code:
$document->add(new Link("levelup/click/{$aid}"" LevelUp {$name}"TRUE)); 
,
add
PHP Code:
$document->add(new Link("levelup/publicprofile/{$aid}"" View {$name}'s Profile"TRUE)); 
.

Now you can view your pets' profiles. But what about other people? If you want them to see the pet's info, go back to levelup.php and replace
PHP Code:
$message = ($mysidia->user instanceof Member)?"already_leveled_member":"already_leveled_guest"
with
PHP Code:
$message .= "You already clicked this adoptable today.  Try again tomorrow. <br>
        <a class='btn btn-sm btn-info' href='../../levelup/publicprofile/
{$this->adopt->getAdoptID()}'><i class='fa fa-chevron-left'></i> Back to Profile</a>"
Finally, open class_adoptablehelper.php, in your classes folder, and replace
PHP Code:
public function getLevelupLink(OwnedAdoptable $adopt){    
        return new 
Link("levelup/click/{$adopt->getAdoptID()}"$adopt->getImage("gui")); 
with
PHP Code:
public function getLevelupLink(OwnedAdoptable $adopt){    
        return new 
Link("levelup/publicprofile/{$adopt->getAdoptID()}"$adopt->getImage("gui")); 
And you're done~!
__________________

Last edited by KatFennec; 05-12-2017 at 03:14 AM.
Reply With Quote
  #2  
Old 05-15-2017, 12:24 AM
KatFennec's Avatar
KatFennec KatFennec is offline
Member
 
Join Date: Apr 2017
Posts: 57
Gender: Female
Credits: 9,372
KatFennec is on a distinguished road
Default

Just noticed I forgot something: Go into classes/class_ownedadoptable and change all of the protected variables to public.
__________________
Reply With Quote
  #3  
Old 05-15-2017, 03:47 PM
Hall of Famer's Avatar
Hall of Famer Hall of Famer is offline
Administrator, Lead Coder
 
Join Date: Dec 2008
Location: South Brunswick
Posts: 4,448
Gender: Male
Credits: 484,544
Hall of Famer is on a distinguished road
Default

Oh so this is a pet profile mod? It looks interesting, adoptables profile is among the next few things I will add for Mysidia's next release. Your mod will be especially helpful for those who cannot upgrade to newer script due to heavily customized scripts, I am sure a lot of users will appreciate this. ^^
__________________


Mysidia Adoptables, a free and ever-improving script for aspiring adoptables/pets site.
Reply With Quote
  #4  
Old 05-15-2017, 09:28 PM
KatFennec's Avatar
KatFennec KatFennec is offline
Member
 
Join Date: Apr 2017
Posts: 57
Gender: Female
Credits: 9,372
KatFennec is on a distinguished road
Default

It's especially helpful for sites that want a nonstandard experience/level system, as it doesn't depend on exceptions to operate. Hopefully, folks get some good use out of it.
__________________
Reply With Quote
  #5  
Old 05-16-2017, 11:49 AM
kristhasirah's Avatar
kristhasirah kristhasirah is offline
Member
 
Join Date: Jan 2010
Location: In middle of the nothingness
Posts: 196
Gender: Female
Credits: 32,691
kristhasirah
Default

you can also create a new page well 2 pages, the petprofile.php and the petprofilelview.php, that's how i made the profile for my site =), but i think this can also be added to the profile.php and profileview.php instead of the levelup pages.
Still thanks for sharing how you manage to make it work in the levelup page ^^... i must say that i tried to do that but never manage to make it work, that's why i ended making a new page.
Reply With Quote
  #6  
Old 05-23-2017, 05:48 AM
Fox Fox is offline
Member
 
Join Date: Oct 2016
Location: Australia
Posts: 34
Gender: Female
Credits: 7,243
Fox is on a distinguished road
Default

I'm having an issue with this code I believe. All pets at level 2 (final level at this point) don't show their tradestatus or gender.

Any ideas why?
Reply With Quote
  #7  
Old 05-23-2017, 07:34 PM
KatFennec's Avatar
KatFennec KatFennec is offline
Member
 
Join Date: Apr 2017
Posts: 57
Gender: Female
Credits: 9,372
KatFennec is on a distinguished road
Default

Quote:
Originally Posted by Fox View Post
I'm having an issue with this code I believe. All pets at level 2 (final level at this point) don't show their tradestatus or gender.

Any ideas why?
Can you post a copy of your levelupview.php?
__________________
Reply With Quote
  #8  
Old 05-24-2017, 06:04 AM
Fox Fox is offline
Member
 
Join Date: Oct 2016
Location: Australia
Posts: 34
Gender: Female
Credits: 7,243
Fox is on a distinguished road
Default

PHP Code:
?php

use Resource\Collection\ArrayList;
use 
Resource\Utility\Curl;

class 
LevelupView extends View{
    
    public function 
click(){
        
$mysidia Registry::get("mysidia");
        
$document $this->document;                
        
$adopt $this->getField("adopt");            
        
$reward $this->getField("reward")->getValue();
        
$document->setTitle("{$this->lang->gave} {$adopt->getName()} one {$this->lang->unit}");

        
$image $adopt->getImage("gui");  
        
$image->setLineBreak(TRUE);        
        
$summary = new Division;
        
$summary->setAlign(new Align("center"));
        
$summary->add($image);    
        
$summary->add(new Comment("{$this->lang->gave}{$adopt->getName()} one {$this->lang->unit}."));
        
$summary->add(new Comment($this->lang->encourage));
        
$summary->add(new Comment("<br> 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(){
    
    }
    
    public function 
daycare(){
        
$mysidia Registry::get("mysidia");
        
$document $this->document;    
        
$document->setTitle($this->lang->daycare_title);
        
$document->addLangvar($this->lang->daycareTRUE);
        
        
$daycare $this->getField("daycare");
        
$adopts $daycare->getAdopts();
        
$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]);
                
$cell = new ArrayList;
                
$cell->add(new Link("levelup/click/{$adopt->getAdoptID()}"$adopt->getImage("gui"), TRUE));
                
$cell->add(new Comment($daycare->getStats($adopt)));
                
$daycareCell = new TCell($cell"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());
    }
    public function 
publicprofile(){
            
$mysidia Registry::get("mysidia");
            
$adopt $this->getField("adopt");            
            
$adoptcurrentlevel $adopt->currentlevel;
            
$document $this->document;
            
$document->setTitle("Viewing {$adopt->getName()}'s profile");
        if(
$adopt->hasNextLevel()){
            
$nextLevel $adopt->getNextLevel();
            
#$requiredClicks = $nextLevel->getRequiredClicks();
$gender_lookup $mysidia->db->select("owned_adoptables", array("gender"), "aid = '{$adopt->getAdoptID()}'")->fetchColumn();
if (
$gender_lookup == "m") { $gender "Male"$pronoun "him"; } else { $gender "Female"$pronoun "her"; } 
$alternates_lookup $mysidia->db->select("owned_adoptables", array("usealternates"), "aid = '{$adopt->getAdoptID()}'")->fetchColumn();
if (
$mysidia->user->username == $adopt->getOwner()){ $manage_btn "<a class='btn btn-sm btn-info' href='../../myadopts/manage/{$adopt->getAdoptID()}'><i class='fa fa-gear'></i> Manage</a>"; } else { $manage_btn ""; }

if(
$adopt->hasNextLevel()){
$level $adopt->getNextLevel();
$levelupClicks $adopt->getLevelupClicks();
$document->add(new Comment("(LVL ".$level->getLevel()." in ".$levelupClicks." more EXP)")); 
}
else { 
$document->add(new Comment("(MAX)")); }

if(
$adopt->getTradeStatus() == "fortrade") { $tradestatus "<b>For Trade</b>"; } 
else { 
$tradestatus "<b>Not For Trade</b>"; }



// If you've already seen the pet today:
if ($adopt->hasVoter($mysidia->user$date)){
$document->add(new Comment("<a class='btn btn-sm btn-info disabled' href='../../levelup/click/{$adopt->getAdoptID()}'><i class='fa fa-paw'></i> Already Fed</a>"));
}
// If you haven't seen the pet today:
else {
$document->add(new Comment("<a class='btn btn-sm btn-info' href='../../levelup/click/{$adopt->getAdoptID()}'><i class='fa fa-paw'></i> Feed</a>"));
};
}
$document->add(new Link("myadopts"$adopt->getImage("gui")));
$adoptabletype $mysidia->db->select("adoptables", array(), "type='{$adopt->getType()}'")->fetchObject();
$level $adopt->getCurrentLevel();
$bio $adopt->getPetbio();
$document->add(new Comment("<ul>
<li>Lives With: <a href='/profile/view/
{$adopt->getOwner()}'>{$adopt->getOwner()}</a></li>
<li>Species: 
{$adopt->getType()}</li>
<li>Gender: 
{$gender}</li>
<li>LVL: 
{$adopt->getCurrentLevel()} {$toNext}</li>
<li>Total EXP: 
{$adopt->getTotalClicks()}</li>
<li>Trade Status: 
{$tradestatus}</li>
<li>Bio: 
{$bio}</li>
"
)) ;
}
      
 }

?> 
Here it is. I'm also trying to figure out how to put a button in on the lvl up page (you've fed blah blah and earned this much cash) that links to the public profile as well as it's only available if you've already fed them.
Reply With Quote
  #9  
Old 05-25-2017, 01:48 AM
KatFennec's Avatar
KatFennec KatFennec is offline
Member
 
Join Date: Apr 2017
Posts: 57
Gender: Female
Credits: 9,372
KatFennec is on a distinguished road
Default

Quote:
Originally Posted by Fox View Post

Here it is. I'm also trying to figure out how to put a button in on the lvl up page (you've fed blah blah and earned this much cash) that links to the public profile as well as it's only available if you've already fed them.
OK, I found the problem, and it looks like it was a mistake I made in the original.

Where it says
PHP Code:
if($adopt->hasNextLevel()){ 
            
$nextLevel $adopt->getNextLevel(); 
Add a new line after it, and put };
Then go down to where it says:
PHP Code:
$document->add(new Comment("<a class='btn btn-sm btn-info' href='../../levelup/click/{$adopt->getAdoptID()}'><i class='fa fa-paw'></i> Feed</a>")); 
}; 

And remove the last }
That should fix your problem.
__________________
Reply With Quote
  #10  
Old 05-25-2017, 05:52 AM
Fox Fox is offline
Member
 
Join Date: Oct 2016
Location: Australia
Posts: 34
Gender: Female
Credits: 7,243
Fox is on a distinguished road
Default

awesome, thanks :) That works!

Any ideas on a link back to the public profile when they're clicking the pet rather than if they've clicked? (both would be nice)
Reply With Quote
Reply

Tags
profile


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 10:01 PM.

Currently Active Users: 1056 (0 members and 1056 guests)
Threads: 4,081, Posts: 32,029, Members: 2,016
Welcome to our newest members, jolob.
BETA





What's New?

What's Hot?

What's Popular?


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
vBCommerce I v2.0.0 Gold ©2010, PixelFX Studios
vBCredits I v2.0.0 Gold ©2010, PixelFX Studios
Emoticons by darkmoon3636