/** * Convert an item block from array json to our models * @param array $json * @param Block $block * @return ItemBlock|null null if empty */ private function parseItem(array $json, Block $block) { $itemBlock = new ItemBlock(); $itemBlock->setBlock($block); //Item concerned if (isset($json['id'])) { $item = $this->itemList->getItem(@(int) $json['id']); if ($item != null) { $itemBlock->setItem($item); } else { return null; } } else { return null; } //Count if (isset($json['count'])) { $itemBlock->setCount(new \SplInt(@(int) $json['count'])); } return $itemBlock; }
/** * Return the items of an given Block * @param Block $block * * @return ItemBlock[] */ public static function findAllByBlock(Block $block) { $id = $block->getId(); $pdo = DatabaseManager::getConnection(); $stmt = $pdo->prepare("SELECT * FROM itemblock WHERE id_block = :id"); $stmt->bindParam(':id', $id, \PDO::PARAM_INT); $stmt->execute(); $array = $stmt->fetchAll(); if ($array == false) { return []; } $items = []; $api = ApiManager::getAPI(); foreach ($array as $data) { $item = new ItemBlock(); $item->setId($data['id']); $item->setItem($api->staticData()->getItem($data['item'], 'all')); $item->setCount(new \SplInt((int) $data['count'])); $item->setBlock($block); $items[] = $item; } return $items; }
/** * Convert an item block from array to our models * @param array $data * @param Block $block * @return ItemBlock[] */ private function parseItems(array $data, Block $block) { $items = []; $last = -1; foreach ($data as $id) { if ($id != $last) { $itemBlock = new ItemBlock(); $itemBlock->setBlock($block); $item = $this->itemList->getItem($id); if ($item != null) { $itemBlock->setItem($item); $itemBlock->setCount(new \SplInt(1)); $items[] = $itemBlock; $last = $id; } } else { $add = end($items); $add->setCount(new \SplInt((int) $add->getCount() + 1)); } } return $items; }
/** * Return the list of Blocks of a given itemset * @param ItemSet $itemSet * * @return Block[] */ public static function findAllByItemSet(ItemSet $itemSet) { $id = $itemSet->getId(); $pdo = DatabaseManager::getConnection(); $stmt = $pdo->prepare("SELECT * FROM block WHERE id_itemset = :id"); $stmt->bindParam(':id', $id, \PDO::PARAM_INT); $stmt->execute(); $array = $stmt->fetchAll(); if ($array == false) { return []; } $blocks = []; foreach ($array as $data) { $block = new Block(); $block->setId($data['id']); $block->setType($data['type']); $block->setRecMath(new \SplBool($data['recMath'] == 1 ? true : false)); $block->setMinSummonerLevel(new \SplInt((int) $data['minSummonerLevel'])); $block->setMaxSummonerLevel(new \SplInt((int) $data['maxSummonerLevel'])); $api = ApiManager::getAPI(); if ($data['showIfSummonerSpell'] != 0) { $block->setShowIfSummonerSpell($api->staticData()->getSummonerSpell($data['showIfSummonerSpell'], 'all')); } if ($data['hideIfSummonerSpell'] != 0) { $block->setHideIfSummonerSpell($api->staticData()->getSummonerSpell($data['hideIfSummonerSpell'], 'all')); } $block->setComment($data['comment']); $block->setItemSet($itemSet); $block->setItems(ItemBlock::findAllByBlock($block)); $blocks[] = $block; } return $blocks; }