aboutsummaryrefslogtreecommitdiff
path: root/app/Models/Category.php
AgeCommit message (Collapse)Author
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-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-04Dynamic OPML (#4407)Gravatar Alexandre Alapetite
* Dynamic OPML draft #fix https://github.com/FreshRSS/FreshRSS/issues/4191 * Export dynamic OPML http://opml.org/spec2.opml#1629043127000 * Restart with simpler approach * Minor revert * Export dynamic OPML also for single feeds * Special category type for importing dynamic OPML * Parameter for excludeMutedFeeds * Details * More draft * i18n * Fix update * Draft manual import working * Working manual refresh * Draft automatic update * Working Web refresh + fixes * Import/export dynamic OPML settings * Annoying numerous lines in SQL logs * Fix minor JavaScript error * Fix auto adding new columns * Add require * Add missing 🗲 * Missing space * Disable adding new feeds to dynamic categories * Link from import * i18n typo * Improve theme icon function * Fix pink-dark
2022-05-12Refactor OPML export categories (#4356)Gravatar Alexandre Alapetite
* Refactor OPML export categories Simplify code to comply with types hints. And renamed a property to plural. * Link to OPML namespace
2022-02-06Fix Fever 32 bit ID issue + more PHP type hints (#4201)Gravatar Alexandre Alapetite
* Fix Fever 32 bit ID issue + more PHP type hints #fix https://github.com/FreshRSS/FreshRSS/issues/4200 Follow up and fix regression from https://github.com/FreshRSS/FreshRSS/pull/4110 * More PHP type hints with PHPStan * Fix pull problem * Avoid more nulls
2021-02-20Fix feed sort order (#3466)Gravatar Alexis Degrugillier
Before, the feeds in the list weren't properly ordered. Uppercase values were before lowercase values. Now, the feed order is forced to ignore the case. See #3228
2020-05-03Fever integer type for numbers (#2946)Gravatar Alexandre Alapetite
* Fever integer type for feed ID #Fix https://github.com/FreshRSS/FreshRSS/issues/2940#issuecomment-623022435 * Fix feed_id * Ensure string for entry ID To be compatible with 32-bit platforms. Before, the type was inconsistent depending on architecture + database * Integer for entry count functions
2019-12-23tec: Fix test suite (#2721)Gravatar Marien Fressinaud
* Rework the travis file to enable PHPUnit I realized that unit tests weren't executed on Travis. While working on this file to enable these tests, I started to think we could simplify it. I separated jobs so: - PHP linter and tests are only performed on PHP 7.3 - Translations are tested separatly so they can fail (it was already the case but it was hard to understand the way it was done) - PHP 5.6 only checks syntax issues - the last job checks css, js, etc. (it didn't change) PHPUnit is not executed on 5.6 because only the version 5 is available while the latest version is the 8 (https://phpunit.de/supported-versions.html). I think it's easier to read (each job is more explicit) but I'm not a Travis expert so maybe there's some room for improvements. * Fix failing tests The category `_name` regression was introduced in commit b323ed084. I wasn't able to understand when and why Search tests was wrong. The rest is about upgrade of PHPUnit.
2019-10-26Add category order (#2592)Gravatar Alexis Degrugillier
* Add category order Each category has a new 'priority' attribute. It is used to sort categories in views. Categories with the same priority are sorted alphabetically. Categories with no priority are displayed after those with one. For example, if we have the following categories: - A (priority: 2) - B (no priority) - C (priority: 1) - D (priority: 2) - E (no priority) - F (priority: 1) They will be displayed in the following order: - C - F - A - D - B - E See #190 * Shorten help text It took too much room and will not be so necessary once we have drag & drop
2019-10-23Feature/new archiving (#2335)Gravatar Alexis Degrugillier
* Change archiving config page layout I've changed some wording and moved actions into a maintenance section. * Update purge action Now we have more control on the purge action. The configuration allows us to choose what to keep and what to discard in a more precise way. At the moment, the configuration applies for all feeds. * Add purge configuration on feed level Now the extend purge configuration is available on feed level. It is stored as attributes and will be used in the purge action. * Update purge action Now the purge action uses the feed configuration if it exists and defaults on user configuration if not. * Add empty option in period list * Fix configuration warnings * Add archiving configuration on categories See #2369 * Add user info back * Add explanations in UI * Fixes for SQLite + error + misc. * Fix invalid feed reference * Short array syntax Only for new code, so far * Fix prefix error * Query performance, default values Work in progress * Fix default values and confirm before leaving Form cancel and confirm changes before leaving were broken. And start taking advantage of the short echo syntax `<?= ?>` as we have moved to PHP 5.4+ * More work * Tuning SQL * Fix MariaDB + performance issue * SQL performance * Fix SQLite bug * Fix some attributes JSON encoding bugs Especially for SQLite export/import * More uniform, fix bugs More uniform between global, category, feed settings * Drop special cases for old articles during refresh Instead will use lastSeen date with the new archiving logic. This was generating problems anyway https://github.com/FreshRSS/FreshRSS/issues/2154 * Draft drop index keep_history Not needed anymore * MySQL typo Now properly tested with MySQL, PostgreSQL, SQLite * More work for legacy values Important to avoid overriding user's preference and risking deleting data erroneously * Fix PHP 7.3 / 7.4 warnings @aledeg "Trying to use values of type null, bool, int, float or resource as an array (such as $null["key"]) will now generate a notice. " https://php.net/migration74.incompatible * Reintroduce min articles and take care of legacy parameters * A few changes forgotten * Draft of migration + DROP of feed.keep_history * Fix several errors And give up using const for SQL to allow multiple database types (and we cannot redefine a const) * Add keep_min to categories + factorise archiving logic * Legacy fix * Fix bug yield from * Minor: Use JSON_UNESCAPED_SLASHE for attributes And make more uniform * Fix sign and missing variable * Fine tune the logic
2019-09-29PDO refactoring for code simplification (#2522)Gravatar Alexandre Alapetite
* PDO refactor * Automatic prefix when using the syntax `_tableName` * Uniformity: MySQL is now PDO::ATTR_EMULATE_PREPARES = false just like SQLite and PostgreSQL, with consequences such as only one statement per query * Use PDO methods exec(), query(), prepare() + execute() in a more efficient way * Remove auto-update SQL code for versions older than FreshRSS 1.5 (3 years old) * The name of the default category is set in PHP instead of in the DB (simplies SQL and allows changing the name according to the FreshRSS language) * Rename `->bd` to `->pdo` (less of a frenshism, and more informative) * Fix some requests, which were not compatible with MySQL prepared statements * Whitespace * Fix syntax for PostgreSQL sequences + MySQL install * Minor formatting * Fix lastInsertId for PostgreSQL * Use PHP 5.6+ const Take advantage of https://github.com/FreshRSS/FreshRSS/pull/2527 https://www.php.net/manual/en/migration56.new-features.php * A bit of forgotten PHP 5.6 simplification for cURL * Forgotten $s * Mini fix custom user config https://github.com/FreshRSS/FreshRSS/pull/2490/files#r326290346 * More work on install.php but not finished * install.php working * More cleaning of PDO in install * Even more simplification Take advantage of PDO->exec() to run multiple statements * Disallow changing the name of the default category https://github.com/FreshRSS/FreshRSS/pull/2522#discussion_r326967724
2019-06-21Change category configuration (#2410)Gravatar Alexis Degrugillier
* Change category configuration Before, we had a drop-down list to interract on categories. It was not working the same way as feeds. Now, categories and feeds behave in a similar manner. At the moment, there is no change in features but it will allow to expand them. See #2369 * Minor whitespace
2018-09-29Custom labels (#2027)Gravatar Alexandre Alapetite
* First draft of custom tags https://github.com/FreshRSS/FreshRSS/issues/928 https://github.com/FreshRSS/FreshRSS/issues/1367 * SMALLINT to BIGINT for id_entry And uppercase SQL types * Fix layout for unreads * Start UI menu * Change menu order * Clean database helpers https://github.com/FreshRSS/FreshRSS/pull/2027#discussion_r217971535 * Travis rules do not understand PostgreSQL constants Grrr * Tag controller + UI * Add column attributes to tags * Use only favicon for now, for label * Fix styling for different themes * Constant for maximum InnoDB index length in Unicode https://github.com/FreshRSS/FreshRSS/pull/2027#discussion_r219052200 (I would have personnally prefered keeping the readability of a real value instead of a constant, in this case of many SQL fields) * Use FreshRSS_Factory::createCategoryDao * Add view of all articles containing any tag * Fix search in tags * Mark as read tags * Partial auto-update unread tags * More auto update tag unreads * Add tag deletion * Do not purge tagged articles * Minor comment * Fix SQLite and UI bug * Google Reader API support for user tags Add SQL check that tag names must be distinct from category names * whitespace * Add missing API for EasyRSS * Compatibility SQLite Problematic parentheses * Add SQL DISTINCT for cases with multiple tags * Fix for PostgreSQL PostgreSQL needs some additional type hint to avoid "could not determine data type of parameter $1" http://www.postgresql-archive.org/Could-not-determine-data-type-of-parameter-1-tp2171092p2171094.html
2018-09-16Improve authors (#2025)Gravatar Alexandre Alapetite
* Links for authors and multiple authors Favour ';' as a separator instead of ',' to better cope with multi-author scientific articles. Follow-up of https://github.com/FreshRSS/FreshRSS/pull/1997 , https://github.com/FreshRSS/FreshRSS/issues/1968, https://github.com/FreshRSS/FreshRSS/pull/2023 * Change i18n authors * Update layout * Unicode-compatible search Example for `author:Loïc` * author <em> styling * Final details * Minor spacing
2018-09-02Use mb_strcut (#1996)Gravatar Alexandre Alapetite
* Use mb_strcut Avoid cutting in the middle of a multi-byte UTF-8 character * Forgotten php5-* * Typo * Whitespace * More mb_strcut
2015-09-12Add a visual alert on categoriesGravatar Alexis Degrugillier
When a category has one or more feeds with errors, a visual warning is displayed before the name of the category.
2014-10-05Coding styleGravatar Marien Fressinaud
Remove spaces before parenthesis bis See https://github.com/marienfressinaud/FreshRSS/issues/655
2014-09-30Move creation of categories in a new ControllerGravatar Marien Fressinaud
Category names are 255 chars max
2014-07-03Preparation #3 for SQLiteGravatar Alexandre Alapetite
https://github.com/marienfressinaud/FreshRSS/issues/100
2014-02-11SQL : Supprime c.colorGravatar Alexandre Alapetite
Implémente décision https://github.com/marienfressinaud/FreshRSS/issues/295 Install.php pourrait peut-être être mis à jour pour supprimer automatiquement la colonne, mais ce n'est pas fait dans ce patch.
2013-12-30Micro-optimisation : évite is_null et quelques if/elseGravatar Alexandre Alapetite
Contribue à https://github.com/marienfressinaud/FreshRSS/issues/303
2013-12-15Problème de casse renommage répertoireGravatar Alexandre Alapetite