| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- declare(strict_types=1);
- /**
- * Manage the reading modes in FreshRSS.
- */
- class FreshRSS_ReadingMode {
- protected string $id;
- protected string $name;
- protected string $title;
- /** @var array{c:string,a:string,params:array<string,mixed>} */
- protected array $urlParams;
- protected bool $isActive = false;
- /**
- * ReadingMode constructor.
- * @param array{c:string,a:string,params:array<string,mixed>} $urlParams
- */
- public function __construct(string $id, string $title, array $urlParams, bool $active) {
- $this->id = $id;
- $this->name = _i($id);
- $this->title = $title;
- $this->urlParams = $urlParams;
- $this->isActive = $active;
- }
- public function getId(): string {
- return $this->id;
- }
- public function getName(): string {
- return $this->name;
- }
- public function setName(string $name): FreshRSS_ReadingMode {
- $this->name = $name;
- return $this;
- }
- public function getTitle(): string {
- return $this->title;
- }
- public function setTitle(string $title): FreshRSS_ReadingMode {
- $this->title = $title;
- return $this;
- }
- /** @return array{c:string,a:string,params:array<string,mixed>} */
- public function getUrlParams(): array {
- return $this->urlParams;
- }
- /** @param array{c:string,a:string,params:array<string,mixed>} $urlParams */
- public function setUrlParams(array $urlParams): FreshRSS_ReadingMode {
- $this->urlParams = $urlParams;
- return $this;
- }
- public function isActive(): bool {
- return $this->isActive;
- }
- public function setIsActive(bool $isActive): FreshRSS_ReadingMode {
- $this->isActive = $isActive;
- return $this;
- }
- /**
- * @return array<FreshRSS_ReadingMode> the built-in reading modes
- */
- public static function getReadingModes(): array {
- $actualView = Minz_Request::actionName();
- $defaultCtrl = Minz_Request::defaultControllerName();
- $isDefaultCtrl = Minz_Request::controllerName() === $defaultCtrl;
- $urlOutput = Minz_Request::currentRequest();
- $readingModes = [
- new FreshRSS_ReadingMode(
- "view-normal",
- _t('index.menu.normal_view'),
- array_merge($urlOutput, ['c' => $defaultCtrl, 'a' => 'normal']),
- ($isDefaultCtrl && $actualView === 'normal')
- ),
- new FreshRSS_ReadingMode(
- "view-global",
- _t('index.menu.global_view'),
- array_merge($urlOutput, ['c' => $defaultCtrl, 'a' => 'global']),
- ($isDefaultCtrl && $actualView === 'global')
- ),
- new FreshRSS_ReadingMode(
- "view-reader",
- _t('index.menu.reader_view'),
- array_merge($urlOutput, ['c' => $defaultCtrl, 'a' => 'reader']),
- ($isDefaultCtrl && $actualView === 'reader')
- )
- ];
- return $readingModes;
- }
- }
|