46 lines
1.5 KiB
PHP
46 lines
1.5 KiB
PHP
<?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']);
|
|
}
|
|
}
|