<?php declare(strict_types=1); /** * This class defines a Paginated OrderedCollection based on CodeIgniter4 Pager to get the pagination metadata * * @copyright 2021 Ad Aures * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 * @link https://castopod.org/ */ namespace Modules\Fediverse\Objects; use CodeIgniter\Pager\Pager; class OrderedCollectionPage extends OrderedCollectionObject { protected string $type = 'OrderedCollectionPage'; protected string $partOf; protected ?string $prev = null; protected ?string $next = null; public function __construct(Pager $pager, ?array $orderedItems = null) { parent::__construct($orderedItems, $pager); $isFirstPage = $pager->getCurrentPage() === $pager->getFirstPage(); $isLastPage = $pager->getCurrentPage() === $pager->getLastPage(); if ($isFirstPage) { $this->first = null; } if ($isLastPage) { $this->last = null; } $this->id = $pager->getPageURI($pager->getCurrentPage()); $this->partOf = $pager->getPageURI(); $this->prev = $pager->getPreviousPageURI(); $this->current = $pager->getPageURI($pager->getCurrentPage()); $this->next = $pager->getNextPageURI(); } }