4
0

View.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  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. // Search
  34. /** @var array<int,FreshRSS_Tag> where the key is the label ID */
  35. public array $labels;
  36. // Subscriptions
  37. public string $cfrom = '';
  38. public bool $displaySlider = false;
  39. public bool $load_ok;
  40. public bool $onlyFeedsWithError;
  41. public bool $signalError;
  42. // Manage users
  43. /** @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} */
  44. public array $details;
  45. public bool $disable_aside;
  46. public bool $show_email_field;
  47. public string $username;
  48. /** @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}> */
  49. public array $users;
  50. // Updates
  51. public string $last_update_time;
  52. /** @var array<string,'ok'|'ko'|'warn'> */
  53. public array $status_files;
  54. /** @var array<string,'ok'|'ko'|'warn'> */
  55. public array $status_php;
  56. public bool $update_to_apply;
  57. /** @var array<string,array<string, bool>|bool> */
  58. public array $status_database;
  59. public bool $is_release_channel_stable;
  60. // Archiving
  61. public int $nb_total;
  62. public int $size_total;
  63. public int $size_user;
  64. // Display
  65. /** @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}}> */
  66. public array $themes;
  67. // Shortcuts
  68. /** @var array<int, string> */
  69. public array $list_keys;
  70. // User queries
  71. /** @var array<int,FreshRSS_UserQuery> where the key is the query ID */
  72. public array $queries;
  73. /** @var FreshRSS_UserQuery|null */
  74. public ?FreshRSS_UserQuery $query = null;
  75. // Export / Import
  76. public string $content;
  77. /** @var array<string,array<string>> */
  78. public array $entryIdsTagNames = [];
  79. public string $list_title;
  80. public int $queryId;
  81. public string $type;
  82. /** @var null|array<array{name:string,size:int,mtime:int}> */
  83. public ?array $sqliteArchives = null;
  84. public string $sqlitePath;
  85. public string $sqliteName;
  86. // Form login
  87. public int $cookie_days;
  88. // Registration
  89. public bool $can_register;
  90. public string $preferred_language;
  91. public bool $show_tos_checkbox;
  92. public string $terms_of_service;
  93. public string $site_title;
  94. public string $validation_url;
  95. // Logs
  96. public int $currentPage;
  97. public Minz_Paginator $logsPaginator;
  98. public int $nbPage;
  99. // RSS view
  100. public FreshRSS_UserQuery $userQuery;
  101. public string $html_url = '';
  102. public string $rss_title = '';
  103. public string $rss_url = '';
  104. public string $rss_base = '';
  105. public bool $internal_rendering = false;
  106. public string $description = '';
  107. public string $image_url = '';
  108. public bool $publishLabelsInsteadOfTags = false;
  109. // Content preview
  110. public string $fatalError;
  111. public string $htmlContent;
  112. public bool $selectorSuccess;
  113. // Extensions
  114. /** @var list<ExtensionFullMetadata> */
  115. public array $available_extensions;
  116. public ?Minz_Extension $ext_details = null;
  117. /** @var array{system:array<Minz_Extension>,user:array<Minz_Extension>} */
  118. public array $extension_list;
  119. public ?Minz_Extension $extension = null;
  120. /** @var array<string,string> */
  121. public array $extensions_installed;
  122. // Errors
  123. public string $code;
  124. public string $errorMessage;
  125. /** @var array<string,string> */
  126. public array $message;
  127. // View modes
  128. /** @var array<FreshRSS_ViewMode> */
  129. public array $viewModes;
  130. }