shopId = $shop_id; } private function showGoods(): string { if ($this->categoryType) { $stmt = DBPDO::$db->ofetchAll('select * from items inner join trade_offers on id = shop_item_id where shop_id = ? and shop_item_quantity !=0 and item_type = ?', [$this->shopId, $this->categoryType]); $stmt2 = DBPDO::$db->ofetchAll('select * from inventory where on_sale != 0 and present is null and item_type = ?', $this->categoryType); } else { $stmt = DBPDO::$db->ofetchAll('select * from items inner join trade_offers on id = shop_item_id where shop_id = ? and shop_item_quantity !=0', $this->shopId); $stmt2 = DBPDO::$db->ofetchAll('select * from inventory where on_sale != 0 and present is null'); } $iteminfo = []; foreach ($stmt as $item) { $iteminfo[] = new ShopItem($item, 'buyshop'); } foreach ($stmt2 as $item) { $iteminfo[] = new ShopItem($item, 'buymarket'); } return $this->strFromArr($iteminfo); } private function showUserSellItems(): string { $stmt = DBPDO::$db->ofetchall('select * from inventory where on_sale = 0 and dressed_slot = 0 and durability > 0 and owner_id = ?', User::$current->getId()); $iteminfo = []; foreach ($stmt as $item) { $iteminfo[] = new ShopItem($item, 'sellshop'); } return $this->strFromArr($iteminfo); } private function strFromArr(array $array): string { $str = ''; $format = '
%s%s
%s
'; foreach ($array as $a) { $str .= sprintf($format, $a->printImage(), $a->printControls(), $a->printInfo()); } return $str; } public function getCategoryName(): string { $names = [ Item::ITEM_TYPE_HELMET => 'Шлемы', Item::ITEM_TYPE_ARMOR => 'Броня', Item::ITEM_TYPE_LEGS => 'Поножи', Item::ITEM_TYPE_BOOTS => 'Сапоги', Item::ITEM_TYPE_GLOVES => 'Перчатки', Item::ITEM_TYPE_WEAPON => 'Оружие', Item::ITEM_TYPE_SHIELD => 'Щиты', Item::ITEM_TYPE_BELT => 'Пояса', Item::ITEM_TYPE_RING => 'Кольца', Item::ITEM_TYPE_AMULET => 'Амулеты', Item::ITEM_TYPE_CONSUMABLE => 'Расходники', Item::ITEM_TYPE_OTHER => 'Разное', self::CATEGORY_SALE_ITEMS => 'Предметы в инвентаре', 0 => 'Все товары', ]; return $names[$this->categoryType]; } public function getItemsList(): string { return $this->categoryType !== self::CATEGORY_SALE_ITEMS ? $this->showGoods() : $this->showUserSellItems(); } }