MyShaarli/plugins/readitlater/ReadItLaterController.php

47 lines
1.5 KiB
PHP
Raw Permalink Normal View History

2023-05-24 11:35:15 +02:00
<?php
declare(strict_types=1);
namespace Shaarli\Plugin\ReadItLater;
use Shaarli\Front\Controller\Admin\ShaarliAdminController;
use Slim\Http\Request;
use Slim\Http\Response;
class ReadItLaterController extends ShaarliAdminController
{
/**
* GET /plugin/readitlater/bookmarks
*/
public function toggleFilterBookmarkList(Request $request, Response $response): Response
{
$this->container->sessionManager->setSessionParameter(
'readitlater-only',
!$this->container->sessionManager->getSessionParameter('readitlater-only', false)
);
return $this->redirectFromReferer($request, $response, ['readitlater']);
}
/**
* GET /plugin/readitlater/toggle/:id
*/
public function toggleBookmark(Request $request, Response $response, array $args): Response
{
if (!array_key_exists('id', $args) || !$this->container->bookmarkService->exists((int) $args['id'])) {
$this->saveErrorMessage('Invalid ID provided.');
return $this->redirectFromReferer($request, $response, ['readitlater']);
}
$bookmark = $this->container->bookmarkService->get((int) $args['id']);
$bookmark->setAdditionalContentEntry(
'readitlater',
!$bookmark->getAdditionalContentEntry('readitlater', false)
);
$this->container->bookmarkService->save();
return $this->redirectFromReferer($request, $response, ['readitlater']);
}
}