. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Http\RequestHandlers; use Fisharebest\Webtrees\Auth; use Fisharebest\Webtrees\Http\ViewResponseTrait; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Registry; use Fisharebest\Webtrees\Validator; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; /** * Reorder the media files of a media object. */ class ReorderMediaFilesPage implements RequestHandlerInterface { use ViewResponseTrait; /** * @param ServerRequestInterface $request * * @return ResponseInterface */ public function handle(ServerRequestInterface $request): ResponseInterface { $tree = Validator::attributes($request)->tree(); $xref = Validator::attributes($request)->isXref()->string('xref'); $media = Registry::mediaFactory()->make($xref, $tree); $media = Auth::checkMediaAccess($media, true); $title = $media->fullName() . ' — ' . I18N::translate('Re-order media'); if ($media->mediaFiles()->count() < 2) { return Registry::responseFactory()->redirect(MediaPage::class, [ 'tree' => $tree->name(), 'xref' => $media->xref(), ]); } return $this->viewResponse('edit/reorder-media-files', [ 'media' => $media, 'title' => $title, 'tree' => $tree, ]); } }