mirror of
				https://github.com/BookStackApp/BookStack.git
				synced 2025-11-03 02:13:16 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			943 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			943 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?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 BookSortMap();
 | 
						|
        $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;
 | 
						|
    }
 | 
						|
}
 |