2022-01-05 01:31:57 +08:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace BookStack\Entities\Tools;
|
|
|
|
|
|
|
|
class BookSortMap
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @var BookSortMapItem[]
|
|
|
|
*/
|
|
|
|
protected $mapData = [];
|
|
|
|
|
|
|
|
public function addItem(BookSortMapItem $mapItem): void
|
|
|
|
{
|
|
|
|
$this->mapData[] = $mapItem;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return BookSortMapItem[]
|
|
|
|
*/
|
|
|
|
public function all(): array
|
|
|
|
{
|
|
|
|
return $this->mapData;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static function fromJson(string $json): self
|
|
|
|
{
|
|
|
|
$map = new static();
|
|
|
|
$mapData = json_decode($json);
|
|
|
|
|
|
|
|
foreach ($mapData as $mapDataItem) {
|
|
|
|
$item = new BookSortMapItem(
|
|
|
|
intval($mapDataItem->id),
|
|
|
|
intval($mapDataItem->sort),
|
|
|
|
$mapDataItem->parentChapter ? intval($mapDataItem->parentChapter) : null,
|
|
|
|
$mapDataItem->type,
|
|
|
|
intval($mapDataItem->book)
|
|
|
|
);
|
|
|
|
|
|
|
|
$map->addItem($item);
|
|
|
|
}
|
|
|
|
|
|
|
|
return $map;
|
|
|
|
}
|
2022-01-06 20:18:11 +08:00
|
|
|
}
|