diff --git a/classes/Battles/Shop.php b/classes/Battles/Shop.php new file mode 100644 index 0000000..95a100a --- /dev/null +++ b/classes/Battles/Shop.php @@ -0,0 +1,80 @@ +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]); + } 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); + } + + $iteminfo = []; + foreach ($stmt as $item) { + $iteminfo[] = new ShopItem($item, 'buyshop'); + } + 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(); + } +} \ No newline at end of file diff --git a/css/shop.css b/css/shop.css new file mode 100644 index 0000000..bd42efb --- /dev/null +++ b/css/shop.css @@ -0,0 +1,87 @@ +a.waretype { + margin: 2px 16px; + padding: 6px; + border: 1px silver solid; + border-radius: 4px; + background-color: #ccc; + display: block; +} + +a.sell { + background-color: #cdc; +} + +a.alltypes { + background-color: #ccd; +} + +.status { + color: darkgreen; + background: #afa; +} + +h3 + div { + text-align: center; +} + +div.shop strong span:last-child { + color: darkgreen; +} + +hr + div { + text-align: center; + font-weight: bold; +} +/* === */ +.row { + cursor: default; +} +.column { + padding: 10px; +} + +.left { + float: left; +} + +.shop > .left { + width: 75%; +} + +.shop > .right { + float: right; + width: 300px; +} + +.item > .right { + float: left; +} + +.item > .left { + width: 150px; + text-align: center; +} +.item > .right { + width: 75%; + vertical-align: top; +} + +.row:after { + content: ""; + display: table; + clear: both; +} + +div.item:nth-of-type(2) { + border: 1px solid #aaa; +} +div.item:nth-child(even) { + background-color: #bbb; +} +div.item:nth-child(odd) { + background-color: #ccc; +} +div.item { + border: 1px solid #aaa; + border-top: 0; +} diff --git a/shop.php b/shop.php index 2815fbd..319fbc1 100644 --- a/shop.php +++ b/shop.php @@ -32,44 +32,45 @@ Template::header('Магазин');

Государственный магазин

← выйти на Центральную площадь
- - -
-

getCategoryName() ?>

+
+
+

getCategoryName() ?>

+
categoryType === -1): ?> -
Вы можете продать ваши предметы за сущие копейки.
+ Вы можете продать ваши предметы за сущие копейки. - - - getItemsList() ?> -
-
-
- - Масса всех вещей:
- Деньги: getMoney() ?>. -
-
-
-
Отделы магазина
- Оружие - Шлемы - Броня - Поножи - Сапоги - Перчатки - Щиты - Пояса - Кольца - Амулеты - Расходники - Разное - Все товары - Продать вещи -
-
- Если у вас не хватит денег на покупку, деньги будут автоматически сняты с вашего банковского - счёта - с вычетом банковской комиссии за услуги. -
-
\ No newline at end of file + + + getItemsList() ?> + +
+
+ + Масса всех вещей:
+ Деньги: getMoney() ?>. +
+
+
+
Отделы магазина
+ Оружие + Шлемы + Броня + Поножи + Сапоги + Перчатки + Щиты + Пояса + Кольца + Амулеты + Расходники + Разное + Все товары + Продать вещи +
+
+ Если у вас не хватит денег на покупку, деньги будут автоматически сняты с вашего банковского + счёта + с вычетом банковской комиссии за услуги. +
+
+ \ No newline at end of file