Home Community Mys-Script Creative Off-Topic |
|
|
Thread Tools | Display Modes |
#1
|
||||
|
||||
Shop Listing Display
*This may work in versions earlier than v1.3.4, but I wouldn't know.
What we'll be doing:
Inside view/shopview.php, public function index, starting from where $shopList is defined, down to the end of the while($iterator->hasNext()) loop: PHP Code:
PHP Code:
To re-add the Sales Tax column, simply uncomment this line by removing the # at the start of it: PHP Code:
PHP Code:
On an unrelated note, clever users can still find their way into 'Closed' shops if they know the shop's name or have it bookmarked or whatever. Therefore, I recommend inside of classes/class_itemshop.php and classes/class_adoptshop.php to find inside public function display the statement foreach($this->items as $stockitem){ ... } and wrapping it inside if ($this->status == "open"){ ... } (being sure to close it afterward), and then adding in if ($this->status == "closed"){ $document->add(new Comment("Sorry, this shop is closed.")); } so that your shop items will be hidden from view if the shop is closed but the page is still somehow accessed.
__________________
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-15-2014 at 04:11 AM. |
#2
|
||||
|
||||
This is fantastic. I can't wait to try it. :D
__________________
|
#3
|
||||
|
||||
This actually looks very interesting, good job on it Kyttias. I hope users will find it helpful. ^^
__________________
Mysidia Adoptables, a free and ever-improving script for aspiring adoptables/pets site. |
#4
|
||||
|
||||
This is great ! Thank you
|
#5
|
||||
|
||||
I can't seem to fix it so that people can't enter the shop if its closed. The extra parts at the end of your post fail.
If I add the if > open thing then, no matter what the status, the items are NOT shown. Just the table itself. If I add the closed status part, the entire thing breaks.
__________________
Failing at being normal since 1990. |
#6
|
||||
|
||||
Let me see your file? Something may not be getting closed correctly.
__________________
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. |
#7
|
||||
|
||||
Well I couldn't even understand what I'm really supposed to have done without the example.
I think I managed to get the open status right though. I didn't even bother altering the adopts shop one since I don't have one yet but would like it altered for when I'm ready to add shop only adopts. Code:
<?php use Resource\Collection\LinkedList; class Itemshop extends Model{ public $sid; public $category; public $shopname; public $shoptype; public $description; public $imageurl; public $status; public $restriction; public $salestax; public $items; protected $total = 0; public function __construct($shopname){ // Fetch the database info into object property $mysidia = Registry::get("mysidia"); $row = $mysidia->db->select("shops", array(), "shopname ='{$shopname}'")->fetchObject(); if(!is_object($row)) throw new Exception("Invalid Shopname specified"); // loop through the anonymous object created to assign properties foreach($row as $key => $val){ $this->$key = $val; } $this->items = $this->getitemnames(); $this->total = (is_array($this->items))?count($this->items):0; } public function getcategory(){ $mysidia = Registry::get("mysidia"); $stmt = $mysidia->db->select("shops", array(), "category ='{$this->category}'"); $cate_exist = ($row = $stmt->fetchObject())?TRUE:FALSE; return $cate_exist; } public function getshop(){ $mysidia = Registry::get("mysidia"); if(empty($this->shopname)) $shop_exist = FALSE; else{ $stmt = $mysidia->db->select("shops", array(), "shopname ='{$this->shopname}'"); $shop_exist = ($row = $stmt->fetchObject())?TRUE:FALSE; } return $shop_exist; } public function getitemnames(){ if(!$this->items){ $mysidia = Registry::get("mysidia"); $stmt = $mysidia->db->select("items", array("itemname"), "shop ='{$this->shopname}'"); $items = array(); while($item = $stmt->fetchColumn()){ $items[] = $item; } return $items; } else return $this->items; } public function gettotal(){ return $this->total; } 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; } $itemList = new TableBuilder("shop"); $itemList->setAlign(new Align("center", "middle")); $itemList->buildHeaders("Image", "Category", "Name", "Description", "Price", "Buy"); $itemList->setHelper(new ShopTableHelper); if ($this->status == "open"){ foreach($this->items as $stockitem){ $item = $this->getitem($stockitem); $cells = new LinkedList; $cells->add(new TCell(new Image($item->imageurl))); $cells->add(new TCell($item->category)); $cells->add(new TCell($item->itemname)); $cells->add(new TCell($item->description)); $cells->add(new TCell($item->price)); $cells->add(new TCell($itemList->getHelper()->getItemPurchaseForm($this, $item))); $itemList->buildRow($cells); } $document->add($itemList); } if ($this->status == "closed"){ $document->add(new Comment("Sorry, this shop is closed.")); } public function getitem($itemname){ return new StockItem($itemname); } public function purchase(Item $item){ $mysidia = Registry::get("mysidia"); if($item->owner != $mysidia->user->username) Throw new NoPermissionException('Something is very very wrong, please contact an admin asap.'); else{ $item->quantity = $mysidia->input->post("quantity"); $cost = $item->getcost($this->salestax, $item->quantity); $moneyleft = $mysidia->user->money - $cost; if($moneyleft >= 0 and $item->quantity > 0){ $purchase = $item->append($item->quantity, $item->owner); $mysidia->db->update("users", array("money" => $moneyleft), "username = '{$item->owner}'"); $status = TRUE; } else throw new InvalidActionException($mysidia->lang->money); } return $status; } public function rent($item, $period){ } public function execute($action){ } protected function save($field, $value){ $mysidia = Registry::get("mysidia"); $mysidia->db->update("shops", array($field => $value), "sid='{$this->sid}' and shoptype = 'adoptshop'"); } } ?>
__________________
Failing at being normal since 1990. |
#8
|
||||
|
||||
Ok, since this was exactly similar to a problem you had on instructions in another thread, let me explain clearly what you didn't do, and therefore why it's not working.
This is the foreach loop: PHP Code:
PHP Code:
PHP Code:
Then, the next thing you did was add the second if statement, checking if the shop is closed, outside of the display function, rather than inside of it, as instructed. This is what you have: PHP Code:
PHP Code:
PHP Code:
You might want to take a basic coding course at code Codecademy if you haven't yet - it's totally free and only takes a couple hours.
__________________
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; 04-24-2015 at 04:50 PM. |
#9
|
||||
|
||||
Oh my god! What an idiot! Of course! "double wrapping"
How could I have missed such a simple mistake? Sorry about that. Wasting your time and all. Dx It's working now of course. Is there also a way to disable the dropdown list? So all shops are in the list but each is catergorised a little apart for ease of view?
__________________
Failing at being normal since 1990. Last edited by AndromedaKerova; 04-24-2015 at 05:31 PM. |
#10
|
||||
|
||||
Probably...? I don't have any adopt shops, so it'd be hard for me to test.
I might get to something like that eventually... but not for a while.
__________________
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. |
Tags |
shop image, shops |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Mys v1.3.4 Item Shop Mod(s): NPC + Item Display + Tooltips | Kyttias | Mys v1.3.x Mods | 55 | 06-19-2020 11:21 AM |
Display on Phone? | Glow | Questions and Supports | 1 | 01-05-2015 08:56 AM |
Changing Shop and Item Display? | Abronsyth | Questions and Supports | 2 | 12-16-2014 03:25 PM |
Display AdoptSpotlight anywhere? c: | pachoofoosh | Questions and Supports | 11 | 07-07-2013 02:53 PM |
Display codes for all of your adoptables | kisazeky | Questions and Supports | 9 | 09-03-2010 03:32 PM |
What's New? |
What's Hot? |
What's Popular? |