NobodysHero |
04-05-2016 04:37 PM |
Okay, lemme put it all back together and post it here again. >.> I was going to give up, but I really like this and want to use it. x.x
Hope you're up for a slight challenge. T_T I starting testing some things out on my own and it didn't go well.
PHP Code:
<?php
/** * The Sidebar Class, defines a standard HTML Sidebar component. * It extends from the Widget class, while adding its own implementation. * @category Resource * @package Widget * @author Hall of Famer * @copyright Mysidia Adoptables Script * @link http://www.mysidiaadoptables.com * @since 1.3.3 * @todo Not much at this point. * */
class Sidebar extends Widget{
/** * The moneyBar property, specifies the money/donation bar for members. * @access protected * @var Paragraph */ protected $moneyBar; /** * The linksBar property, stores all useful links for members. * @access protected * @var Paragraph */ protected $linksBar; /** * The wolBar property, determines the who's online url in the sidebar. * @access protected * @var Link */ protected $wolBar; /** * The loginBar property, specifies the loginBar for guests. * @access protected * @var FormBuilder */ protected $loginBar;
/** * Constructor of Sidebar Class, it initializes basic sidebar properties * @access public * @return Void */ public function __construct(){ parent::__construct(4, "sidebar"); } /** * The setDivision method, setter method for property $division. * It is set internally upon object instantiation, cannot be accessed in client code. * @param GUIComponent $module * @access protected * @return Void */ protected function setDivision(GUIComponent $module){ if(!$this->division){ $this->division = new Division; $this->division->setClass("sidebar"); } $this->division->add($module); }
# # # /**** BEGIN: FOR THE FAVPET WIDGET ****/ public function getFavPetSB(){ return $this->FavPetSB; }
public function setFavPetSB(){ $mysidia = Registry::get("mysidia"); $profile = $mysidia->user->getprofile(); /* IF THE USER DOES *NOT* HAVE A FAVPET: */ if ($profile->getFavpetID() == "0"){ $this->FavPetSB = new Paragraph; $this->FavPetSB->add(new Comment("<b>No Favorite Pet Set</b>")); }
/* IF THE USER *DOES* HAVE A FAVPET: */ if ($profile->getFavpetID() != "0"){
$favpet = new OwnedAdoptable($profile->getFavpetID()); # # # /**** BEGIN: CREATE RANDOM MESSAGES ****/ $message = "<div class='speechbubble'>";
$status_chance = mt_rand(1, 100); if ($status_chance <= 1){ # One percent chance the pet will obtain a status effect.
/* We would apply a status effect here...*/ $message .= "<center>WHOOHOO! {$favpet->getImage()} is having a great day!</center>"; #### We'll do this later!!!
} else { # Ninety-nine percent chance the pet will not get a status effect. Will something else happen? $something_chance = mt_rand(1, 100); if ($something_chance <= 25){ # Twenty-five percent chance something will happen. $gift_chance = mt_rand(1, 100); if ($gift_chance <= 5){ # Five percent chance the user will receive a gift from their pet. $item_chance = mt_rand(1, 100); if ($item_chance <= 50){ # Fifty percent chance the gift from their pet will be an item.
/* The pet has found an item for you! */ $num = mt_rand(1,5); # Chooses a number between 1 and 4. See how there are four cases below? Increase this number if you add more!! switch ($num){ case 1: $item = "Juicy Carrot"; break; case 2: $item = "Spice Spoon"; break; case 3: $item = "Red Rose"; break; case 4: $item = "Obsidian Arrowhead"; break; case 5: $item = "Misshapen Zulk Plushie"; break; } $message .= "I found a {$item} for you!"; $newitem = new StockItem($item); $newitem->append(1, $mysidia->user->username);
} else { # Fifty percent chance the gift from their pet will be money.
/* The pet has found some money for you! */ $currency = $mysidia->settings->cost; $amount = mt_rand(100, 1000); # Between 100 and 1000 $message .= "Found {$amount} {$tyleans}!"; $mysidia->user->changecash($amount);
} } else { # Twenty percent chance the pet will talk but have no gift. /* No gift will be given but a neat species-specific phrase can still be said! */
$species = trim($favpet->type);
switch ($species){ case "Wind Raptor": # If the species name is "Cat" it will choose one these: $num = mt_rand(1,7); # Chooses a number between 1 and 4. See how there are four cases below? Increase this number if you add more!! switch ($num){ case 1: $message .= "Who, who!"; break; case 2: $message .= "I like to soar through the sky."; break; case 3: $message .= "Wanna share a berry?"; break; case 4: $message .= "Don't worry! Anything shiny and I'll get it!"; break; case 5: $message .= "Do you feel that breeze?"; break; case 6: $message .= "Nocturnal? Nah, I'm awake when you're awake!"; break; case 7: $message .= "Look what I can do!"; break; } break; case "Terrahound": # If the species name is "Cat" it will choose one these: $num = mt_rand(1,7); # Chooses a number between 1 and 4. See how there are four cases below? Increase this number if you add more!! switch ($num){ case 1: $message .= "Woof!"; break; case 2: $message .= "Bark bark!!!"; break; case 3: $message .= "Let's play fetch!"; break; case 4: $message .= "I will protect you!"; break; case 5: $message .= "Where do ya wanna to explore today?"; break; case 6: $message .= "Terrahounds are the best totem pet!"; break; case 7: $message .= "Today is a great day to be a Terrahound"; break; } break; case "Water Selkie": # If the species name is "Cat" it will choose one these: $num = mt_rand(1,7); # Chooses a number between 1 and 4. See how there are four cases below? Increase this number if you add more!! switch ($num){ case 1: $message .= "Ort, ort, ort!"; break; case 2: $message .= "Let's go swimming!"; break; case 3: $message .= "My favorite place is the Ice Flows."; break; case 4: $message .= "OH! Something shiny! Awww, it melted."; break; case 5: $message .= "Know what my favorite food is? Fish!"; break; case 6: $message .= "The water is my natural element, but I'll go anywhere you go."; break; case 7: $message .= "Cool as a cucumber, slick as a ice patch!"; break; } break; case "Flame Bison": # If the species name is "Cat" it will choose one these: $num = mt_rand(1,7); # Chooses a number between 1 and 4. See how there are four cases below? Increase this number if you add more!! switch ($num){ case 1: $message .= "Chaaaaaaaarrrrrge!"; break; case 2: $message .= "Don't mind me, I'm just grazing."; break; case 3: $message .= "I'm blazing fast!"; break; case 4: $message .= "Do you have any carrots?"; break; case 5: $message .= "My favorite place is the Hills."; break; case 6: $message .= "No need to fear when I'm around!"; break; case 7: $message .= "Yeah, I'm pretty hot stuff."; break; } break;
default: # If the species isn't defined above, it'll choose one of these default phrases instead. $num = mt_rand(1,6); switch ($num){ case 1: $message .= "It's a beautiful day! I love to explore!"; break; case 2: $message .= "I always knew I was favorite material!"; break; case 3: $message .= "I'm a little hungry. Think we could get a bite to eat?"; break; case 4: $message .= "You're the only friend I'll ever need."; break; case 5: $message .= "I found something! I foun- Oh, no. False alarm."; break; case 6: $message .= "Don't worry! I'm on the look out for anything shine"; break; } break; }
} } else { # Seventy-five percent chance nothing will happen whatsoever. /* Nothing will happen with the pet at all. */ $message = ""; } }
if ($message == "") { $message = ""; } else { $message .= "</div>"; } /**** END: CREATE RANDOM MESSAGES ****/ # # #
$this->FavPetSB = new Paragraph; $this->FavPetSB->add(new Comment("<b><center>{$favpet->getName()}</center></b>")); $this->FavPetSB->add(new Comment("{$message}")); $this->FavPetSB->add(new Comment("<a href='/myadopts/manage/{$profile->getFavpetID()}'><img src='{$favpet->getImage()}'></a>"));
} $this->setDivision($this->FavPetSB); } /**** END: FOR THE FAVPET WIDGET ****/ # # #
/** * The getMoneyBar method, getter method for property $moneyBar. * @access public * @return Paragraph */ public function getMoneyBar(){ return $this->moneyBar; } /** * The setMoneyBar method, setter method for property $moneyBar. * It is set internally upon object instantiation, cannot be accessed in client code. * @access protected * @return Void */ protected function setMoneyBar(){ $mysidia = Registry::get("mysidia"); $this->moneyBar = new Paragraph; $this->moneyBar->add(new Comment("You have <span id='cashonhand'>{$mysidia->user->money}</span> {$mysidia->settings->cost}.")); $donate = new Link("donate"); $donate->setText("Donate Money to Friends"); $this->moneyBar->add($donate); $this->setDivision($this->moneyBar); }
/** * The getLinksBar method, getter method for property $linksBar. * @access public * @return Paragraph */ public function getLinksBar(){ return $this->linksBar; } /** * The setLinksBar method, setter method for property $linksBar. * It is set internally upon object instantiation, cannot be accessed in client code. * @access protected * @return Void */ protected function setLinksBar(){ $mysidia = Registry::get("mysidia"); $this->linksBar = new Paragraph; $linkTitle = new Comment("{$mysidia->user->username}'s Links:"); $linkTitle->setBold(); $this->linksBar->add($linkTitle); $linksList = new LinksList("ul"); $this->setLinks($linksList); $this->linksBar->add($linksList); $this->setDivision($this->linksBar); }
/** * The setLinks method, append all links to the LinksBar. * It is set internally upon object instantiation, cannot be accessed in client code. * @access protected * @return Void */ protected function setLinks(LinksList $linksList){ $mysidia = Registry::get("mysidia"); $stmt = $mysidia->db->select("links", array("id", "linktext", "linkurl"), "linktype = 'sidelink' ORDER BY linkorder"); if($stmt->rowCount() == 0) Throw new Exception("There is an error with sidebar links, please contact the admin immediately for help."); while($sideLink = $stmt->fetchObject()){ $link = new Link($sideLink->linkurl); $link->setText($sideLink->linktext); if($sideLink->linkurl == "messages"){ $num = $mysidia->db->select("messages", array("touser"), "touser='{$mysidia->user->username}' and status='unread'")->rowCount(); if($num > 0) $link->setText("<b>{$link->getText()} ({$num})</b>"); } $link->setListed(TRUE); $linksList->add($link); } if($mysidia->user instanceof Admin){ $adminCP = new Link("admincp/", FALSE, FALSE); $adminCP->setText("Admin Control Panel"); $adminCP->setListed(TRUE); $linksList->add($adminCP); } } /** * The getWolBar method, getter method for property $wolBar. * @access public * @return LinksList */ public function getWolBar(){ return $this->wolBar; } /** * The setWolBar method, setter method for property $wolBar. * It is set internally upon object instantiation, cannot be accessed in client code. * @access protected * @return Void */ protected function setWolBar(){ $mysidia = Registry::get("mysidia"); $this->wolBar = new Link("online"); $online = $mysidia->db->select("online", array(), "username != 'Visitor'")->rowCount(); $offline = $mysidia->db->select("online", array(), "username = 'Visitor'")->rowCount(); $this->wolBar->setText("This site has {$online} members and {$offline} guests online."); $this->setDivision($this->wolBar); } /** * The getLoginBar method, getter method for property $loginBar. * @access public * @return FormBuilder */ public function getLoginBar(){ return $this->loginBar; } /** * The setLoginBar method, setter method for property $loginBar. * It is set internally upon object instantiation, cannot be accessed in client code. * @access protected * @return Void */ protected function setLoginBar(){ $this->loginBar = new FormBuilder("login", "login", "post"); $loginTitle = new Comment("Member Login:"); $loginTitle->setBold(); $loginTitle->setUnderlined(); $this->loginBar->add($loginTitle);
$this->loginBar->buildComment("username: ", FALSE) ->buildTextField("username") ->buildComment("password: ", FALSE) ->buildPasswordField("password", "password", "", TRUE) ->buildButton("Log In", "submit", "submit") ->buildComment("Don't have an account?"); $register = new Link("register"); $register->setText("Register New Account"); $register->setLineBreak(TRUE); $forgot = new Link("forgotpass"); $forgot->setText("Forgot Password?"); $this->loginBar->add($register); $this->loginBar->add($forgot); $this->setDivision($this->loginBar); } } ?>
Thanks for all the help! I'm excited to be able to offer this to my members!
I left it up on my site, in case you want to see it.
http://i.imgur.com/Amwjl14.png?1
|