aboutsummaryrefslogtreecommitdiff
path: root/app/Controllers
AgeCommit message (Collapse)Author
2023-04-05PHPStan level 6 for more files (#5264)Gravatar Alexandre Alapetite
7 more files passing (see phpstan-next.txt)
2023-04-04Fix extensions in actualize_script (#5243)Gravatar Alexandre Alapetite
* Fix extension freshrss_user_maintenance in actualize_script Follow-up of https://github.com/FreshRSS/FreshRSS/pull/3440 The hook was called before registering all the extensions for the current user * PHPStan Level 6 for extensions And remove 5-year old legacy format of enabled extensions < FreshRSS 1.11.1 * Fix multiple bugs in extensions * Minor typing * Don't change signature of methods supposed to be overridden * PHPStan Level 9 and compatibility Intelliphense * Set as final the methods not supposed to be overriden
2023-04-03Fix addFeed (#5253)Gravatar Alexandre Alapetite
Fix https://github.com/FreshRSS/FreshRSS/issues/5252 Regression from https://github.com/FreshRSS/FreshRSS/pull/5239
2023-03-31PHPStan level 6 for all PDO and Exception classes (#5239)Gravatar Alexandre Alapetite
* PHPStan level 6 for all PDO and Exception classes Contributes to https://github.com/FreshRSS/FreshRSS/issues/4112 * Fix type * Now also our remaining own librairies * Motivation for a few more files * A few more DAO classes * Last interface
2023-03-27Cleaning code and typehinting (#5064)Gravatar Luc SANCHEZ
* Cleaning code and typehinting * Fix remarque alphabetic order * Cleaning * rollback self:: * Update Context.php * Fix remarques * Fix remarques * Fix remarques * Remarque's from Alkarex * Remarque's from Alkarex * Cast higher up * Fix Level 5 * Claiming Level 6 Cf. https://github.com/FreshRSS/FreshRSS/pull/5230 * Address my comments * indexController as Level 6 as well * Fixed some wrong types --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-03-26Fix repartitionAction (#5228)Gravatar Alexandre Alapetite
* Fix repartitionAction Fix https://github.com/FreshRSS/FreshRSS/issues/5227 * Better types * PHPStan level 6
2023-03-26Modernize Constants and use new constant for string 'currentUser' (#5089)Gravatar Luc SANCHEZ
* Modernize Constants and use new constant 'currentUser' * Add FreshRSS_Context::currentUser() function and use * Add FreshRSS_Context::currentUser() function and use * Add FreshRSS_Context::currentUser() function and use * Add FreshRSS_Context::currentUser() function and use * Add FreshRSS_Context::currentUser() function and use * Update app/Controllers/userController.php * Update app/Controllers/userController.php * Update app/Controllers/userController.php * Update app/Models/Auth.php * Update p/api/greader.php * Update p/api/greader.php * Update p/api/greader.php * Update app/Models/Context.php * Update app/Models/LogDAO.php * Update lib/Minz/Log.php * Update p/api/greader.php * Update app/layout/header.phtml * Update app/views/helpers/export/articles.phtml * Update cli/do-install.php * Remarque's from Alkarex * Remarque's from Alkarex * Refactor using new Minz_User class * Consistent naming of public constants --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-03-22Consistent entry ID type (32-bit compatibility) (#5213)Gravatar Alexandre Alapetite
* Remove FreshRSS_Searchable for better types The interface was not used, and it was preventing more precise types for the different `searchById()` methods, as they each have different input and output types. * Consistent entry ID Entry IDs (which are 64-bit integers) must be processed as string to be compatible with 32-bit platforms * Fix type * A few more related types * PHPStan level 6 * Some more casts needed * String cast for htmlspecialchars
2023-03-21Typehint some Controllers (#5106)Gravatar Luc SANCHEZ
* Typehint to Controllers * Remarque's from Alkarex * Remarque's from Alkarex * Remarque's from Alkarex * Remarque's from Alkarex * Remarque's from Alkarex * Remarque's from Alkarex --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
2023-03-21Improved: show Terms of Service in config menu (#5215)Gravatar maTh
* Use constants for path to TOS * improve comments * TOS title moved to template * TOS available via config menu * CSS: improve handling of content of TOS/about * give info about set/unset TOS in system config * fix target * i18n FR * i18n DE
2023-03-08Feedback when tag with same name as new category exists (#5181)Gravatar obrenckle
2023-03-08Type hinting for Factory.php up to PHPStan 9 (#5090)Gravatar Luc SANCHEZ
* Type hinting for Factory.php up to PHPStan 8 * Fix phpstan collateral * revert test * remarrk from Alkarex * remark from Alkarex * Update app/Controllers/entryController.php Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * Remarque's from Alkarex * Remarque's from Alkarex * Remarque's from Alkarex --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-03-04feat: create config to display website icon only / name only / icon and name ↵Gravatar Sadetdin EYILI
/ none on feeds (#4969) * feat: create config to display website icon only / name only / icon and name / none on feeds * fix title hovering * reverted: column in .phtml * Update app/i18n/fr/conf.php --------- Co-authored-by: mathContao <math-home@web.de> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-02-09XML+XPath (#5076)Gravatar Alexandre Alapetite
* XML+XPath #fix https://github.com/FreshRSS/FreshRSS/issues/5075 Implementation allowing to take an XML document as input using an XML parser (instead of an HTML parser for HTML+XPath) * Remove noise from another PR * Better MIME for XML * And add glob *.xml for cache cleaning * Minor syntax * Add glob json for clean cache
2023-02-08Fix disabling proxy (#5082)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/5081 Allow disabling curl proxy for specific feed, when proxy is defined globally
2023-02-06More robust application of access permissions (#5062)Gravatar Alexandre Alapetite
* More robust application of access permissions We were in particular missing directory traversal `+X` in our current recommendations. Extracted to own shell script so it can easily be invoked. Update access permissions in Docker to account to be more robust. #fix https://github.com/FreshRSS/FreshRSS/discussions/5037 * Minor simplification * Restrict mkdir permissions Default mkdir permissions are 0777, which is not good for security, so downgrade to 0770.
2023-02-03Remove -x on some files not needing it (#5065)Gravatar Alexandre Alapetite
2023-01-26Fix error handling when updating URL (#5039)Gravatar Alexandre Alapetite
Fix 3 related error handling when updating the feed URL with an invalid URL. Previously leading to unclear 500 page with additional PHP errors.
2023-01-21statsController at phpStan level 9 (#5028)Gravatar Alexandre Alapetite
Follow up of https://github.com/FreshRSS/FreshRSS/pull/5024 ``` vendor/bin/phpstan analyse --level 9 app/Controllers/statsController.php ``` Contributes to https://github.com/FreshRSS/FreshRSS/issues/4112
2023-01-21type hinting javascriptController (#5032)Gravatar Luc SANCHEZ
2023-01-20Type hinting statsController.php (#5024)Gravatar Luc SANCHEZ
2023-01-20Use paramBoolean consistently (#5025)Gravatar Alexandre Alapetite
* Use paramBoolean consistently So that we have cleaner values (true booleans) everywhere in user's config.php
2023-01-18tec: Update the lib_opml (#4403)Gravatar berumuron
* fix: Fix undefined GLOB_BRACE on Alpine The manual states that: > Note: The GLOB_BRACE flag is not available on some non GNU systems, > like Solaris or Alpine Linux. This generated an error on Alpine. Reference: https://www.php.net/manual/function.glob.php * fix: List details of feeds for OPML exportation The details are necessary to export the XPath information, the CSS full content path and read actions filters. * Update LibOpml to 0.4.0 * Refactor OPML importation to be more robust First, it fixes two regressions introduced by the update of lib_opml: - title attribute is used when text attribute is missing; - the OPML category attribute is used as a fallback for feeds categories. In a related way, if also fixes a problem when a feed had both a parent category outline and a category attribute. Before, it only considered the attribute as its category, but now it considers the parent outline. Then, it counts category limit correctly by not increasing `$nb_categories` if the category already exists. * Exclude lib_opml from the CodeSniffer * Fix variable names when logging some errors * Fix catch of LibOpml Exception * Make sure to declare the category * Exclude lib_opml from PHPStan analyze * Disable markdownlint for lib_opml * Fix typos * Use auto-loading and allow updates via Composer * Fix broken links to lib_opml * Bring back the ability to import the OPML frss:opmlUrl attribute * Refactor the logs of OPML errors * Update lib_opml to the version 0.5.0 Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-01-09Update dev dependencies (#4993)Gravatar Alexandre Alapetite
Related to https://github.com/FreshRSS/FreshRSS/pull/4991 Required a few changes in code to pass the tests
2023-01-09Added: Dark mode for Origine +Origine compact themes (#4843)Gravatar maTh
* first draft * fix: theme slider: properties box * improved colors * option to enable/disable dark mode * fixes * Update app/i18n/fr/conf.php Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * i18n english improved * fix dark background color for favorites + hover colors * select list: no, auto Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-01-06Better enclosures (#4944)Gravatar Alexandre Alapetite
* Better enclosures #fix https://github.com/FreshRSS/FreshRSS/issues/4702 Improvement of https://github.com/FreshRSS/FreshRSS/pull/2898 * A few fixes * Better enclosure titles * Improve thumbnails * Implement thumbnail for HTML+XPath * Avoid duplicate enclosures #fix https://github.com/FreshRSS/FreshRSS/issues/1668 * Fix regex * Add basic support for media:credit And use <figure> for enclosures * Fix link encoding + simplify code * Fix some SimplePie bugs Encoding errors in enclosure links * Remove debugging syslog * Remove debugging syslog * SimplePie fix multiple RSS2 enclosures #fix https://github.com/FreshRSS/FreshRSS/issues/4974 * Improve thumbnails * Performance with yield Avoid generating all enclosures if not used * API keep providing enclosures inside content Clients are typically not showing the enclosures to the users (tested with News+, FeedMe, Readrops, Fluent Reader Lite) * Lint * Fix API output enclosure * Fix API content strcut * API tolerate enclosures without a type
2022-12-31fix: favicon after editing feed url (#4975)Gravatar Sadetdin EYILI
refactor: replace `$cat` variable by the `$values['category']` values
2022-11-29User-defined time zone (#4906)Gravatar Alexandre Alapetite
* User-defined time zone #fix https://github.com/FreshRSS/FreshRSS/issues/2754 * Update app/i18n/nl/conf.php Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> * Timezone when creating a new user Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2022-11-15Fix type hints regressions (#4855)Gravatar Alexandre Alapetite
Fix regressions from https://github.com/FreshRSS/FreshRSS/pull/4561 Example: ``` PHP Fatal error: Uncaught TypeError: Argument 1 passed to checkToken() must be an instance of FreshRSS_UserConfiguration, instance of Minz_Configuration given, called in /var/www/FreshRSS/p/api/greader.php on line 1091 and defined in /var/www/FreshRSS/p/api/greader.php:223 Stack trace: #0 /var/www/FreshRSS/p/api/greader.php(1091): checkToken() #1 {main} thrown in /var/www/FreshRSS/p/api/greader.php on line 223 ``` Improvement of https://github.com/FreshRSS/FreshRSS/pull/4110
2022-11-14NFS-friendly is_writable() checks (#4780)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/4779
2022-11-07Fix path_entries encoding (#4823)Gravatar Alexandre Alapetite
* Fix path_entries encoding #fix https://github.com/FreshRSS/FreshRSS/issues/4815 * Fix preview
2022-10-26Add default redirect when authenticating (#4778)Gravatar Alexis Degrugillier
2022-10-11Fix encoding CSS filter (#4707)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/4705
2022-10-09Add support for custom XPath date/time format (#4703)Gravatar Alexandre Alapetite
* Add support for custom XPath date/time format #fix https://github.com/FreshRSS/FreshRSS/issues/4701 Improvement of https://github.com/FreshRSS/FreshRSS/pull/4220 * Format is not XPath * Remove TODOs in en-GB
2022-10-03Allow redirection after login (#4654)Gravatar Alexis Degrugillier
Before, if you've tried to reach a page without being logged, you'll be automatically redirected to the index page after login. Now, the original page is used after login. Fix #3663
2022-10-03Improved: Subscription Management: Show the position number (#4679)Gravatar maTh
* the code * improvement * fix doubled parameter
2022-09-20Fix show settings page after adding new feed (#4612) (#4631)Gravatar Chris Francy
2022-09-20Fix opcache bug during Web update (#4629)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/4624 #fix https://github.com/FreshRSS/FreshRSS/issues/4605
2022-09-18Fix login page when user does not exist (#4621)Gravatar Alexis Degrugillier
2022-09-18Force default user before rendering login page (#4620)Gravatar Alexis Degrugillier
2022-08-31Update extensionController.php (#4571)Gravatar maTh
2022-08-20Implemented advanced feed settings to allow cookies and HTTP redirects. (#4470)Gravatar Roman D
* Implemented advanced feed settings to allow cookies and HTTP redirects. * i18n fr Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2022-08-18XPath ability to define the UID manually (#4507)Gravatar Alexandre Alapetite
* XPath ability to define the UID manually * Fix error in i18n
2022-08-15Article css filtering (#4501)Gravatar papaschloss
* Update feedController.php * Update subscriptionController.php * Update DatabaseDAO.php * Update Entry.php * Update Feed.php * Update FeedDAO.php * Update install.sql.mysql.php * Update install.sql.pgsql.php * Update install.sql.sqlite.php * Update sub.php * Update opml.phtml * Update ImportService.php * Update update.phtml * Update feed.js * Update install.sql.mysql.php * Update install.sql.pgsql.php * Update install.sql.sqlite.php * Update sub.php * Update sub.php * Update sub.php * Update sub.php * Update sub.php * Update sub.php * Update sub.php * Update sub.php * Update sub.php * Update sub.php * Update sub.php * Update sub.php * Update sub.php * Update sub.php * Update sub.php * Update sub.php * Update sub.php * Update FeedDAO.php * Update feedController.php * Update subscriptionController.php * Update Entry.php * Update Feed.php * Update feedController.php * Update subscriptionController.php * Update ImportService.php * Update opml.phtml * Update update.phtml * Update update.phtml * Update update.phtml * Update DatabaseDAO.php * Update app/Models/Entry.php Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * Update app/i18n/fr/sub.php Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * Update p/scripts/feed.js Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * Update app/Controllers/feedController.php * make fix-all * Update documentation * css_path_filter help message * i18n en-us ignore Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2022-08-10Refactor updateContext into its own FreshRSS_Context class (#4496)Gravatar Alexandre Alapetite
So that it is both cleaner and easier to call from other controllers and extensions
2022-08-08Refactor entry-to-GReader API format (#4490)Gravatar Alexandre Alapetite
* Refactor entry to GReader API format Some code was copied in two locations and not completely uniform. Cleaning of related variables and functions (e.g. better types for entries and categories as objects vs. as IDs). Usecase: I need to call the same GReader-compatible serialization from an extension * Fixed some edge cases * Keep summary instead of content `summary` and `content` seems to be used interchangeably in the Google Reader API. We have been using `summary` for our client API and `content` in our export/import, so stick to that.
2022-07-28Fix rare read call bug (#4456)Gravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/pull/4052#issuecomment-992341442 Bug from https://github.com/FreshRSS/FreshRSS/pull/1995
2022-07-27Fix: logs page=0 error (#4460)Gravatar maTh
* add docs of function param() * page < 0 is impossible now * show prev/next only, when there is a prev/next page * set always page params * Revert "page < 0 is impossible now" This reverts commit fdb920ee50efe2c5cf64ca2dec936ec28ab2ee6c. * Update logs_pagination.phtml
2022-07-19Add database field attributes for entries (#4444)Gravatar Alexandre Alapetite
* Add database field attributes for entries Just like we already have for categories, feeds, etc. No core use yet, but allows in particular extensions to save per-entry data * Fix PHPStand * Fix wrong variable
2022-07-17Improved: Article header (#4101)Gravatar maTh
* First draft for normal view * Revert changes on the entry header * Update normal.phtml * Update normal.phtml * RTL CSS * CSS fixes * Better tags style * fix * Update swage.scss * fix * Update swage.scss * fixed .content header * font-size in rem * improved template * dropdown menu if more than 7 tags * configuration: show tags in topline * Simplify loop logic * Minor space * config tags via reading (i18n still missed) * fixed the whitespaces * optimizations * optimize header+footer * Update normal.phtml * fix css * new config: show author+date in footer * config feed name display * improve HTML * fix whitespaces * i18n * i18n: German translations * fix i18n German * fixed: uncouple from bottomline config * reverted: tobline_tags * equalities * fixed: author in footer * fixed data-leave-validation * improved max numbers i18n label * Config works now also in the reader view * fix: footer border * reader view: style article-header-topline * fixed whitespace * i18n fr * Minor i18n fr * Fix mistake i18n fr * i18n fr more precise expression * Fix JavaScript * removed the link icon in the title * clean CSS Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>