<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/app/views/helpers/category, branch edge</title>
<subtitle>Customized version of FreshRSS, a self-hosted RSS feed aggregator</subtitle>
<id>https://git.rdnlsmith.com/fresh-rss-custom/atom?h=edge</id>
<link rel='self' href='https://git.rdnlsmith.com/fresh-rss-custom/atom?h=edge'/>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/'/>
<updated>2026-02-01T12:12:47+00:00</updated>
<entry>
<title>Implement sort order per feed (#8234)</title>
<updated>2026-02-01T12:12:47+00:00</updated>
<author>
<name>PeterVavercak</name>
<email>168563044+PeterVavercak@users.noreply.github.com</email>
</author>
<published>2026-02-01T12:12:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=ee7eb67f3c2e7795c51da95e770eb2d34e93a546'/>
<id>urn:sha1:ee7eb67f3c2e7795c51da95e770eb2d34e93a546</id>
<content type='text'>
* added local feed sorting

Addresses https://github.com/FreshRSS/FreshRSS/issues/4761

- Added number of sorted feeds and associative array for feed sorting option in Context.
- Number of sorted feeds and local sorting option by its index saved into Minz Request Parameters.
- Number of sorted feeds and local sorting options deleted when choosing another Option Of Global Sorting.
- Added option of allowing sorting by feed in configuration.
- Added variable for allowing local sorting in userConf.
- Added function to get feeds by current get in context.
- Added menu button for all individual feed sorting.
- New database options for individual feed sorting in EntryDAO.
- Considered choosing new entries based on chosen load limit.
- Local sorting parameter saved into continuation value in Index Controller.

How to test the feature manually:

1. At the bottom of Reading Configuration menu turn on individual sorting option menu 
2. Choose Sorting by feed option
3. Choose feed at next sorting menu and choose sorting option for that feed

* added feed sorting option

* added sort feeds display

* added template for sort feed name

* added title to feed sorting button

* added comments

* added local sorting option

* Added Docs

* css reset

* added getter and seter for local sort

* added getter and seter for local sort

* allowed sorting per feed

* allowed sorting per feed

* added sorting option for category

* deleted changes from NetryDAO

* add setting up sorting for category

* docs reset

* i18 reset

* updated i18 for category

* added i18 for categories

* added i18 for category

* added setting sorting for feeds and category

* removing userConf.allow-local-sort

* removing userConf.allow-local-sort

* removing white space

* added credits

* removed feeds_by_get

* removed whitespace

* changed escaping for values

* added escaping to user set values

* added in_array

* added secondary sort and order

* added secondary sort and order

* fixed readme

* removed whitespace change

* reseted i18n

* added translations

* added feed setting translations

* fixed i18n

* fixed i18n

* changes in sort order per feed

* changes in sort order per feed

* added secondary sort order

* primary sort

* changed to preferred sort order

* i18n

* Revert wrong whitespace changes

* Re-order new options

* added blank option

* fixed escaping

* fixed default sort in feed

* fixed default sort recovery

* siplyfied option

* added rand option

* Revert unrelated change

* Minor plaintext

* Whitespace and formatting fixes

* Avoid unneeded SQL requests and processing

* Improve syntax

* Improve logic

* Reuse existing translations as much as possible

* i18n

* Remove some options that make little sense

* Separators

* Fix old transation key

* Add help messages

* Progress on secondary sort

* raw name

* Pass parameters. Add TODO

* Progress

* Minor ordering

* Fix parenthesis

---------

Co-authored-by: root &lt;root@LAPTOP-C8TCHHPN.localdomain&gt;
Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
<entry>
<title>Fix unwanted expansion of user queries in some cases (#8395)</title>
<updated>2026-01-03T15:52:33+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2026-01-03T15:52:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=252703305758e2ed0e6257ae94fdb3b4b90f7184'/>
<id>urn:sha1:252703305758e2ed0e6257ae94fdb3b4b90f7184</id>
<content type='text'>
fix https://github.com/FreshRSS/FreshRSS/issues/8378</content>
</entry>
<entry>
<title>Allow negative category sort numbers (#8330)</title>
<updated>2025-12-17T22:46:03+00:00</updated>
<author>
<name>stag</name>
<email>x@stag.lol</email>
</author>
<published>2025-12-17T22:46:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=43a8e1e2d9a52bef0cd3e249d28ebeaab4c03e12'/>
<id>urn:sha1:43a8e1e2d9a52bef0cd3e249d28ebeaab4c03e12</id>
<content type='text'>
Closes https://github.com/FreshRSS/FreshRSS/issues/8304
Remove the min=1 attribute so negative numbers can be used to force categories to the bottom
</content>
</entry>
<entry>
<title>Rework encoding of search filters (#8324)</title>
<updated>2025-12-17T09:07:52+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-17T09:07:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=4bd503591469f47e710f1afbf0b5883f7770065d'/>
<id>urn:sha1:4bd503591469f47e710f1afbf0b5883f7770065d</id>
<content type='text'>
Rework:
* https://github.com/FreshRSS/FreshRSS/pull/8222

now that we have:
* https://github.com/FreshRSS/FreshRSS/pull/8293

Follow-up of:
* https://github.com/FreshRSS/FreshRSS/pull/8311

* More simplification

* Deprecate getRawInput
</content>
</entry>
<entry>
<title>Add option to apply filter actions to existing articles (#7959)</title>
<updated>2025-10-22T19:28:33+00:00</updated>
<author>
<name>Tommaso Ferrari</name>
<email>raspaccio@gmail.com</email>
</author>
<published>2025-10-22T19:28:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=581b81006af157d0fa12b8d1e2604c637234f778'/>
<id>urn:sha1:581b81006af157d0fa12b8d1e2604c637234f778</id>
<content type='text'>
* Add option to apply filter actions to existing articles

* make fix-all

* Fixes

* Another approach with preview
New approach: https://github.com/FreshRSS/FreshRSS/pull/7959/commits/20479475c90ac954b991b3703c3cc76c16aa2d5c

&lt;img width="666" height="202" alt="image" src="https://github.com/user-attachments/assets/bb68ede4-60c8-4e0c-9317-c5ed7a6ad7df" /&gt;

Additional improvements:
* Also implemented at category level, and at global level
* Also implemented for favourites at global level

Shortcomings:
* Does not always work reliably with advanced regex, since the DB's flavour is not necessarily the same than PHP's

Related: https://github.com/FreshRSS/FreshRSS/pull/8141

* make fix-all

---------

Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
<entry>
<title>Minor update syntax echo (#7941)</title>
<updated>2025-09-11T19:19:31+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-09-11T19:19:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=8bd9bd95d8cc0fd5fe24386db7182329612579da'/>
<id>urn:sha1:8bd9bd95d8cc0fd5fe24386db7182329612579da</id>
<content type='text'>
* Minor update syntax echo
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/7939

* Fix layout
Whitespace optimisation needed to avoid style glitch</content>
</entry>
<entry>
<title>Fix fetching OPML url with special characters (#7843)</title>
<updated>2025-08-25T08:37:23+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-08-25T08:37:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=1481cf51f74330f2e76ed10de11bc2d80a6c95d4'/>
<id>urn:sha1:1481cf51f74330f2e76ed10de11bc2d80a6c95d4</id>
<content type='text'>
* Decode dynamic OPML url during fetch

* add ENT_QUOTES

* Store as plaintext instead of decoding</content>
</entry>
<entry>
<title>New JS attribute: `data-auto-leave-validation` (#7785)</title>
<updated>2025-08-08T15:39:38+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-08-08T15:39:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=d9197d7e32a97f29829ffd4cf4371b1853e51fa2'/>
<id>urn:sha1:d9197d7e32a97f29829ffd4cf4371b1853e51fa2</id>
<content type='text'>
Instead of a repeating pattern like: `&lt;input type="text" value="something" data-leave-validation="something"&gt;`, you can now put a `data-auto-leave-validation="1"` attribute on a `&lt;form&gt;` for example, and it will automatically set the `data-leave-validation` attributes inside the form elements.

`data_auto_leave_validation(parent)`  from `extra.js` is called on slider open and page load.

---------

Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;
Co-authored-by: Frans de Jonge &lt;fransdejonge@gmail.com&gt;</content>
</entry>
<entry>
<title>PHPStan 2.0 (#7131)</title>
<updated>2024-12-27T11:12:49+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2024-12-27T11:12:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=b1d24fbdb7d1cc948c946295035dad6df550fb7e'/>
<id>urn:sha1:b1d24fbdb7d1cc948c946295035dad6df550fb7e</id>
<content type='text'>
* PHPStan 2.0
fix https://github.com/FreshRSS/FreshRSS/issues/6989
https://github.com/phpstan/phpstan/releases/tag/2.0.0
https://github.com/phpstan/phpstan/blob/2.0.x/UPGRADING.md

* More

* More

* Done

* fix i18n CLI

* Restore a PHPStan Next test
For work towards PHPStan Level 10

* 4 more on Level 10

* fix getTagsForEntry

* API at Level 10

* More Level 10

* Finish Minz at Level 10

* Finish CLI at Level 10

* Finish Controllers at Level 10

* More Level 10

* More

* Pass bleedingEdge

* Clean PHPStan options and add TODOs

* Level 10 for main config

* More

* Consitency array vs. list

* Sanitize themes get_infos

* Simplify TagDAO-&gt;getTagsForEntries()

* Finish reportAnyTypeWideningInVarTag

* Prepare checkBenevolentUnionTypes and checkImplicitMixed

* Fixes

* Refix

* Another fix

* Casing of __METHOD__ constant</content>
</entry>
<entry>
<title>New button to delete errored feeds from a category (#7030)</title>
<updated>2024-12-03T11:59:45+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2024-12-03T11:59:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=2c7e5b829fb60e2b62771e918b91c1f86aedb2f0'/>
<id>urn:sha1:2c7e5b829fb60e2b62771e918b91c1f86aedb2f0</id>
<content type='text'>
* New button to delete errored feeds from a category
fix https://github.com/FreshRSS/FreshRSS/issues/7025
fix https://github.com/FreshRSS/FreshRSS/issues/7026

* Remove English TODO

* in error state

* Feeds with errors</content>
</entry>
</feed>
