View Single Post
  #10  
Old 12-14-2014, 09:49 PM
Kyttias's Avatar
Kyttias Kyttias is offline
Premium Member
 
Join Date: Jan 2014
Posts: 857
Gender: Unknown/Other
Credits: 88,703
Kyttias is on a distinguished road
Default

Alright! Over in classes/class_itemshop.php, replace public function display with this one:
PHP Code:
    public function display(){
        
$mysidia Registry::get("mysidia");
        
$document $mysidia->frame->getDocument();              
        
$document->addLangvar($mysidia->lang->select_item);
      
        if(
$this->gettotal() == 0){
            
$document->addLangvar($mysidia->lang->empty);
            return 
FALSE;
        }

        
# Choose the NPC image based on the name of the shop
        
switch ($this->shopname) {
            case 
"Crossed Roads":                     
                
$npc_img "http://fc00.deviantart.net/fs71/f/2014/262/a/2/base_npc_60_by_kyttias-d7zqrnf.png";
                
#Based on the random number, sets a quote for $npc_text
                
$num Rand (1,6);   
                switch (
$num) { 
                        case 
1$npc_text "Time is money."; break; 
                        case 
2$npc_text "Isn't icecream super?"; break; 
                        case 
3$npc_text "Welcome to {$this->shopname}!"; break; 
                        case 
4$npc_text "Off to see the wizard?"; break; 
                        case 
5$npc_text "Tomorrow is another day..."; break; 
                        case 
6$npc_text "PHP is cool!"; }                            
                break;
            case 
"Spectrum"
                
$npc_img "http://fc00.deviantart.net/fs70/f/2014/313/a/c/base_npc_2_60_by_kyttias-d85ww5k.png";
                
#Based on the random number, sets a quote for $npc_text
                
$num Rand (1,6);   
                switch (
$num) { 
                        case 
1$npc_text "Time is money."; break; 
                        case 
2$npc_text "Isn't icecream super?"; break; 
                        case 
3$npc_text "Welcome to {$this->shopname}!"; break; 
                        case 
4$npc_text "Off to see the wizard?"; break; 
                        case 
5$npc_text "Tomorrow is another day..."; break; 
                        case 
6$npc_text "PHP is cool!"; }                   
                break;
            default; 
                
$npc_img "http://placekitten.com/g/200/500";
                
$npc_text "Welcome to {$this->shopname}!";
                break;
        }
        
        
# let's begin rendering the page
        
$document->add(new Comment("
            <style>
                .s_top {
                  overflow:hidden;
                  display: block;
                }
                .sc_npc_text{  
                  width: 40%;
                  float: left;
                  height: 100%;
                  padding: 10px;
                  margin: 10px;
                  font-family: 'Trebuchet MS', Helvetica, sans-serif;
                }
                .sc_npc_img{  
                  width: 40%;
                  float: left;
                }
                .sc_item {
                  display: inline-block;
                  padding: 5px;
                  text-align: center;
                  font-family: 'Trebuchet MS', Helvetica, sans-serif;
                  font-size: 14px;
                  margin-bottom: 3px;
                }
                .s_panel {
                  border-radius: 4px;
                  border: 1px solid #466ec3;
                  background-color: #ccf3f6;  
                }
                .s_input { width: 20px; }
            </style>
            <!-- START Container for Text and NPC -->
                <div class='s_top s_container'>
                    <div class='s_panel sc_npc_text'><p>
{$npc_text}</p></div>
                    <div class='sc_npc_img'><img  src='
{$npc_img}' height='300'></div>    
                </div>
            <!-- END Container for Text and NPC -->
            <!-- START Container for Items -->
                  <div class='s_container'>    
        "
FALSE));    
            
        
# Now render each item the store has
        
foreach($this->items as $stockitem){
              
$item $this->getitem($stockitem);
            
              
#descriptions of the item functions
            
switch ($item->function) {
                case 
"Click1"$usage "<b>use:</b> Feed a pet to give them {$item->value} EXP.";
                    break;
                  case 
"Click2"$usage "<b>use:</b> Feed a pet to set their EXP to {$item->value}.";
                    break;
                  case 
"Click3"$usage "<b>use:</b> Resets today's earned EXP to 0.";
                    break;
                  case 
"Level1"$usage "<b>use:</b> Raises a pet's Level by {$item->value}.";
                    break;
                  case 
"Level2"$usage "<b>use:</b> Sets your pet's Level to {$item->value}.";
                    break;
                case 
"Level3"$usage "<b>use:</b> Makes your pet Level 0 again!";
                    break;
                case 
"Gender"$usage "<b>use:</b> Swaps your pet's gender to its opposite!";
                    break;            
                default;
                    
$usage "";
                    break;
            }                        

            
# Now let's render each item icon, name, price and tooltip
            
$document->add(new Comment("
                <div class='s_panel sc_item'>

                <!-- 
                // This is where I would get the tooltip working, but it's not currently
                <abbr rel='tooltip' title=\"
{$item->description} <em>{$usage}</em>.\"><img src='{$item->imageurl}'></abbr> 
                -->
                
                <img src='
{$item->imageurl}'>
                  <br/>
                  <b>
{$item->itemname}</b>
                  <br/>
                  
{$item->price} Credits<br/>
                "
FALSE));

            
# Building the Buy form
            
$buyForm = new FormBuilder("buyform""../purchase/{$mysidia->input->get("shop")}""post");
            
$buyForm->setLineBreak(FALSE);
            
$buyForm->buildPasswordField("hidden""action""purchase")
                    ->
buildPasswordField("hidden""itemname"$item->itemname)
                    ->
buildPasswordField("hidden""shopname"$shop->shopname)
                    ->
buildPasswordField("hidden""shoptype""itemshop")
                    ->
buildPasswordField("hidden""salestax"$shop->salestax);
            
$quantity = new TextField("quantity");
            
$quantity->setSize(3);
            
$quantity->setMaxLength(3);
            
$quantity->setLineBreak(FALSE);        
            
$buy = new Button("Buy""buy""buy");
            
$buy->setLineBreak(FALSE);
            
$buyForm->add($quantity);
            
$buyForm->add($buy);

            
# Actually adding in the Quantity field Buy button now
             
$document->add($buyForm);

            
# Now we finish off the item by closing its div
            
$document->add(new Comment("</div>"FALSE)); 
        }  

        
# And that's a wrap
        
$document->add(new Comment("</div><!-- END Container for Items -->"FALSE));

    } 
This is my first draft, but does not have tooltips for a description in place functioning yet. But it's definitely 99% done now. Do feel free to move the stylesheet out and join it with your existing template one. I needed it here for testing. ^^;

The usage descriptions have less to do with your item description and everything to do with what item function they have. It detects what category of function the item is stored as in the database and then will display appropriate text based on that. It's basically something I've done in addition to the existing description, but is entirely optional. (And it's not yet apparent, as the tooltips are not implemented yet). It's just something I created for my own site so I wouldn't have to repeat myself in the description of an item, leaving the functionality in a separate variable than the flavor text. ^^
__________________
Please do not contact me directly outside of Mysidia.
I also cannot troubleshoot code more than two years old - I legit don't remember it.

Last edited by Kyttias; 12-14-2014 at 09:54 PM.
Reply With Quote