View.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4. * @phpstan-import-type ExtensionFullMetadata from FreshRSS_extension_Controller
  5. */
  6. class FreshRSS_View extends Minz_View {
  7. // Main views
  8. /** @var callable */
  9. public $callbackBeforeEntries;
  10. /** @var callable|null */
  11. public $callbackBeforeFeeds;
  12. /** @var callable */
  13. public $callbackBeforePagination;
  14. /** @var array<int,FreshRSS_Category> where the key is the category ID */
  15. public array $categories;
  16. public ?FreshRSS_Category $category = null;
  17. public ?FreshRSS_Tag $tag = null;
  18. public string $current_user;
  19. /** @var iterable<FreshRSS_Entry> */
  20. public $entries;
  21. public ?FreshRSS_Entry $entry = null;
  22. public ?FreshRSS_Feed $feed = null;
  23. /** @var array<int,FreshRSS_Feed> where the key is the feed ID */
  24. public array $feeds;
  25. public int $nbUnreadTags;
  26. /** @var array<int,FreshRSS_Tag> where the key is the label ID */
  27. public array $tags;
  28. /** @var list<array{id:int,name:string,checked:bool}> */
  29. public array $tagsForEntry;
  30. /** @var array<string,array<string>> */
  31. public array $tagsForEntries;
  32. public bool $excludeMutedFeeds;
  33. public bool $includeSensitiveCurlParams = false;
  34. // Search
  35. /** @var array<int,FreshRSS_Tag> where the key is the label ID */
  36. public array $labels;
  37. // Subscriptions
  38. public string $cfrom = '';
  39. public bool $displaySlider = false;
  40. public bool $load_ok;
  41. public bool $onlyFeedsWithError;
  42. public bool $signalError;
  43. // Manage users
  44. /** @var array{feed_count:?int,article_count:?int,database_size:?int,language:string,mail_login:string,enabled:bool,is_admin:bool,last_user_activity:string,is_default:bool} */
  45. public array $details;
  46. public bool $disable_aside;
  47. public bool $show_email_field;
  48. public string $username;
  49. /** @var array<array{language:string,enabled:bool,is_admin:bool,enabled:bool,article_count:?int,database_size:?int,last_user_activity:string,mail_login:string,feed_count:?int,is_default:bool}> */
  50. public array $users;
  51. // Updates
  52. public string $last_update_time;
  53. /** @var array<string,'ok'|'ko'|'warn'> */
  54. public array $status_files;
  55. /** @var array<string,'ok'|'ko'|'warn'> */
  56. public array $status_php;
  57. public bool $update_to_apply;
  58. /** @var array<string,array<string, bool>|bool> */
  59. public array $status_database;
  60. public bool $is_release_channel_stable;
  61. // Archiving
  62. public int $nb_total;
  63. public int $size_total;
  64. public int $size_user;
  65. // Display
  66. /** @var array<string,array{id:string,name:string,author:string,description:string,version:float|string,files:array<string>,theme-color?:string|array{dark?:string,light?:string,default?:string}}> */
  67. public array $themes;
  68. // Shortcuts
  69. /** @var array<int, string> */
  70. public array $list_keys;
  71. // User queries
  72. /** @var array<int,FreshRSS_UserQuery> where the key is the query ID */
  73. public array $queries;
  74. /** @var FreshRSS_UserQuery|null */
  75. public ?FreshRSS_UserQuery $query = null;
  76. // Export / Import
  77. public string $content;
  78. /** @var array<string,array<string>> */
  79. public array $entryIdsTagNames = [];
  80. public string $list_title;
  81. public int $queryId;
  82. public string $type;
  83. /** @var null|array<array{name:string,size:int,mtime:int}> */
  84. public ?array $sqliteArchives = null;
  85. public string $sqlitePath;
  86. public string $sqliteName;
  87. // Form login
  88. public int $cookie_days;
  89. // Registration
  90. public bool $can_register;
  91. public string $preferred_language;
  92. public bool $show_tos_checkbox;
  93. public string $terms_of_service;
  94. public string $site_title;
  95. public string $validation_url;
  96. // Logs
  97. public int $currentPage;
  98. public Minz_Paginator $logsPaginator;
  99. public int $nbPage;
  100. public string $logSearch = '';
  101. // RSS view
  102. public FreshRSS_UserQuery $userQuery;
  103. public string $html_url = '';
  104. public string $rss_title = '';
  105. public string $rss_url = '';
  106. public string $rss_base = '';
  107. public bool $internal_rendering = false;
  108. public string $description = '';
  109. public string $image_url = '';
  110. public bool $publishLabelsInsteadOfTags = false;
  111. // Content preview
  112. public string $fatalError;
  113. public string $htmlContent;
  114. public bool $selectorSuccess;
  115. // Extensions
  116. /** @var list<ExtensionFullMetadata> */
  117. public array $available_extensions;
  118. public ?Minz_Extension $ext_details = null;
  119. /** @var array{system:array<Minz_Extension>,user:array<Minz_Extension>} */
  120. public array $extension_list;
  121. public ?Minz_Extension $extension = null;
  122. /** @var array<string,string> */
  123. public array $extensions_installed;
  124. // Errors
  125. public string $code;
  126. public string $errorMessage;
  127. /** @var array<string,string> */
  128. public array $message;
  129. // View modes
  130. /** @var array<FreshRSS_ViewMode> */
  131. public array $viewModes;
  132. }