View.php 4.3 KB

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