SHOPVIEW
PHP Code:
<?php
use Resource\Collection\LinkedList;
class ShopView extends View{
public function index(){
$document = $this->document;
$document->setTitle($this->lang->access);
$typeForm = new Form("shoptypes", "shop", "post");
$typeSelection = new DropdownList("shoptype");
$typeSelection->add(new Option("Itemshop", "itemshop"));
$typeSelection->add(new Option("Adoptshop", "adoptshop"));
$typeForm->add($typeSelection);
$typeForm->add(new Button("Go", "submit", "submit"));
$document->add($typeForm);
$shopList = $this->getField("shopList");
$document->addLangvar($this->lang->select);
$shopTable = new TableBuilder("shoplist");
$shopTable->setAlign(new Align("center", "middle"));
$shopTable->buildHeaders("Image", "Category", "Type", "Name", "Description", "Sales Tax", "Enter");
$shopTable->setHelper(new ShopTableHelper);
$iterator = $shopList->iterator();
while($iterator->hasNext()){
$shopList = $this->getField("shopList");
$document->addLangvar($this->lang->select);
$shopTable = new TableBuilder("shoplist");
$shopTable->setAlign(new Align("center", "middle"));
$shopTable->buildHeaders("Enter", "Sells", "Description", "Location");
$shopTable->setHelper(new ShopTableHelper);
$iterator = $shopList->iterator();
while($iterator->hasNext()){
$entry = $iterator->next();
$shop = $shopList->createshop($entry->getKey());
$cells = new LinkedList;
$cells->add(new TCell($shopTable->getHelper()->getShopStatus($shop)));
if($shop->status == "open") {
if ($shop->shoptype == "itemshop"){ $cells->add(new TCell("Items")); }
if ($shop->shoptype == "adoptshop"){ $cells->add(new TCell("Pets")); }
$cells->add(new TCell($shop->description));
$cells->add(new TCell($shop->category));
# $cells->add(new TCell($shopTable->getHelper()->getSalestax($shop->salestax)));
}
if($shop->status == "closed") {
$cells->add(new TCell(""));
$cells->add(new TCell("Not Open."));
$cells->add(new TCell(""));
}
$shopTable->buildRow($cells);
}
$entry = $iterator->next();
$shop = $shopList->createshop($entry->getKey());
$cells = new LinkedList;
$cells->add(new TCell($shopList->getshopimage($shop->imageurl)));
$cells->add(new TCell($shop->category));
$cells->add(new TCell($shop->shoptype));
$cells->add(new TCell($shop->shopname));
$cells->add(new TCell($shop->description));
$cells->add(new TCell($shopTable->getHelper()->getSalestax($shop->salestax)));
$cells->add(new TCell($shopTable->getHelper()->getShopStatus($shop)));
$shopTable->buildRow($cells);
}
$document->add($shopTable);
}
public function browse(){
$document = $this->document;
$document->setTitle($this->lang->welcome);
$shop = $this->getField("shop");
$shop->display();
}
public function purchase(){
$mysidia = Registry::get("mysidia");
$cost = $this->getField("cost");
$document = $this->document;
if($mysidia->input->post("shoptype") == "itemshop"){
$document->setTitle($this->lang->global_transaction_complete);
$document->addLangvar("{$this->lang->purchase_item}{$cost->getValue()} {$mysidia->settings->cost}");
}
elseif($mysidia->input->post("shoptype") == "adoptshop"){
$document->setTitle($this->lang->global_transaction_complete);
$document->addLangvar("{$this->lang->purchase_adopt}{$cost->getValue()} {$mysidia->settings->cost}");
}
else return;
}
}
?>
SHOP
PHP Code:
<?php
use Resource\Native\Integer;
class ShopController extends AppController{
const PARAM = "shop";
public function __construct(){
parent::__construct("member");
$mysidia = Registry::get("mysidia");
$mysidia->user->getstatus();
if($mysidia->user->status->canshop == "no"){
throw new NoPermissionException($mysidia->lang->denied);
}
if($mysidia->input->action() != "index" and !$mysidia->input->get("shop")){
throw new InvalidIDException($mysidia->lang->global_id);
}
}
public function index(){
$mysidia = Registry::get("mysidia");
$shopList = new Shoplist($mysidia->input->post("shoptype"));
if($shopList->gettotal() == 0) throw new InvalidIDException("none");
$this->setField("shopList", $shopList);
}
public function browse(){
$mysidia = Registry::get("mysidia");
$shoptype = $mysidia->db->select("shops", array("shoptype"), "shopname = '{$mysidia->input->get("shop")}'")->fetchColumn();
$shoplist = new Shoplist($shoptype);
$shop = $shoplist->createshop($mysidia->input->get("shop"));
$this->setField("shop", $shop);
}
public function purchase(){
$mysidia = Registry::get("mysidia");
if(!$mysidia->input->post("buy")) throw new InvalidIDException($mysidia->lang->global_id);
if($mysidia->input->post("shoptype") == "itemshop") $this->purchaseItem();
elseif($mysidia->input->post("shoptype") == "adoptshop") $this->purchaseAdopt();
else throw new InvalidActionException($mysidia->lang->global_action);
}
private function purchaseItem(){
$mysidia = Registry::get("mysidia");
$shop = new Itemshop($mysidia->input->get("shop"));
$item = $shop->getitem($mysidia->input->post("itemname"));
$item->assign($mysidia->user->username);
$oldquantity = $item->getoldquantity();
$newquantity = $oldquantity + $mysidia->input->post("quantity");
if(!is_numeric($mysidia->input->post("quantity"))){
throw new InvalidActionException($mysidia->lang->invalid_quantity);
}
elseif($newquantity > $item->cap){
throw new InvalidActionException($mysidia->lang->full_quantity);
}
else{
$shop->purchase($item);
$this->setField("cost", new Integer($item->getcost($shop->salestax)));
}
}
private function purchaseAdopt(){
$mysidia = Registry::get("mysidia");
$shop = new Adoptshop($mysidia->input->get("shop"));
$adopt = $shop->getadopt($mysidia->input->post("adopttype"));
$adopt->assign($mysidia->user->username);
$shop->purchase($adopt);
$this->setField("cost", new Integer($adopt->getcost($shop->salestax)));
}
}
?>