aboutsummaryrefslogtreecommitdiff
path: root/docs/en/developers
AgeCommit message (Collapse)Author
2021-02-17Add user maintenance hooks (#3440)Gravatar Alexis Degrugillier
The new hook allows to add maintenance extensions at the user level. See #3398
2021-02-06Theme Documentation (#3415)Gravatar Lukas Vacula
* adding self CREDITS.md * add "theme" to link for easier navigation * add documentation about themes and the files that go in them * add admin documentation for themes * fix markdown styling * fix CSSJanus usage
2021-02-02Add comprehensive user configuration in extensions (#3397)Gravatar Alexis Degrugillier
Before, the extension configuration was handled by its author. There was discrepancies between extensions on how the configuration was stored. Now, we could rely on a single way of storing configuration. This won't invalidate how the extensions are storing their configuration but will allow authors to focus on what is important.
2021-01-13Update extension documentation (#3352)Gravatar Alexis Degrugillier
Before the extension documentation was not very clear about the methods in the extension and how to use them. I hope that now it makes more sense.
2021-01-10Update and add to documentation (#3348)Gravatar ldv8434
* remove outdated mailing list information * add information about normal view * add information about global and reader view * fix import section header * reorder documentation to reflect menu's order * clarify setting as default in normal view * add info about reading section for config * fix heading levels, add info about archive + profile sections * unfix heading levels * move section on feed-specific settings to the subscription management page * update information about adding feeds, add information about feed management * fix link to security page in installation * fix broken links * fix broken link to install page * add lighttpd from project readme * add php modules to step 4, add horizontal line to better separate steps from footnotes visually * fix broken link * add index page for easier access of other pages * move first steps document * make dedicated bug reporting page * make index page for linking to other pages * moved fever API to relevant location, linked to index * remove outdated mailing list information * add information about normal view * add information about global and reader view * fix import section header * reorder documentation to reflect menu's order * clarify setting as default in normal view * add info about reading section for config * fix heading levels, add info about archive + profile sections * unfix heading levels * move section on feed-specific settings to the subscription management page * update information about adding feeds, add information about feed management * fix link to security page in installation * fix broken links * fix broken link to install page * add lighttpd from project readme * add php modules to step 4, add horizontal line to better separate steps from footnotes visually * fix broken link * add index page for easier access of other pages * move first steps document * make dedicated bug reporting page * make index page for linking to other pages * moved fever API to relevant location, linked to index * re-fix link * remove mention of defunct mailing list * grammar fix * replace stream with feed * add optional items, replace stream with feed * replace stream with feed * fix word choice Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> * fix word choice better reflect age of project Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> * grammar fixes Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> * remove double headings Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> * change single quote to double quote for consistency * add subreddit link * change php module list to Dockerfile link * fix link to developer index, change html links to md for consistency * update css selector terms Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2021-01-09Add class autoload for extension (#3350)Gravatar Alexis Degrugillier
When an extension defines an `autoload` method, it will be registered automatically before enabling the extension. For the extension creator, it's easier because there is no need to register it manually.
2021-01-07two new hooks (#3342)Gravatar Clemens Neubauer
* add two new hooks I develop a new extension and i need 2 new hooks for it * update EN documentation * Correct typing errors * Update app/views/helpers/javascript_vars.phtml Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-12-29Add a file for each PDO class (#3301)Gravatar Alexis Degrugillier
Before, we had 5 classes in the ModelPdo file. It was bad for 2 reasons. The first reason is that it is considered bad practice to have multiple class in one file. This is especially true when using autoloading. On top of that it is less readable considering the size of the file. The second reason is that so far we were lucky. Everytime we needed to access the database, it was through the ModelPdo class which loads all the other classes. If we want to access directly the connection, it wont be loaded. On top of that, the system is configured to work on a single database, but as we have every connection definition in a single file, all classes were loaded at the same time. Thus using memory and processing time for nothing. Now, we have a file for each class. To work with autoloading, classes were slightly renamed to match autoloading rules.
2020-12-28Revert "Add a file for each PDO class (#3297)"Gravatar Alexandre Alapetite
This reverts commit e1ee58816ba76734e4115fc12898b13de665b220.
2020-12-28Add a file for each PDO class (#3297)Gravatar Alexis Degrugillier
Before, we had 5 classes in the ModelPdo file. It was bad for 2 reasons. The first reason is that it is considered bad practice to have multiple class in one file. This is especially true when using autoloading. On top of that it is less readable considering the size of the file. The second reason is that so far we were lucky. Everytime we needed to access the database, it was through the ModelPdo class which loads all the other classes. If we want to access directly the connection, it wont be loaded. On top of that, the system is configured to work on a single database, but as we have every connection definition in a single file, all classes were loaded at the same time. Thus using memory and processing time for nothing. Now, we have a file for each class. To work with autoloading, classes were slightly renamed to match autoloading rules.
2020-07-08Add a migration system (#2760)Gravatar Marien Fressinaud
* Add a Minz_Migrator class Until now, we updated the database structure somewhere in the code but it wasn't always consistent and somehow complicated to find. Also, this code was always checked for nothing. The Migrator aims to improve and ease the creation of migrations. It should improve the way we apply the updates, making the update server almost useless. References: - example of migration (before Migrator): https://github.com/FreshRSS/FreshRSS/commit/cc0db9af4f980829faa4bf0960617807b32fb4fa#diff-11a53443fa81512b128c66b065df0679R10 - update server: https://github.com/FreshRSS/update.freshrss.org - PR moving the code of the update server to the core: https://github.com/FreshRSS/FreshRSS/pull/1760 * Automatically apply migrations For now, administrators are used to have nothing to do during an update else than getting the new code. I suggest to keep this behaviour and automatically apply migrations if we detect new ones. Another solution would be to create a CLI command and ask admins to call it after getting the new code. It could hide migrations errors to end users, but admin can forget to apply migrations since there are not used to it. * Add documentation for Minz Migrator * Execute migrations even if next ones are applied * Change mechanism to prevent multiple update at once * Use mkdir to create the lock and to test it exists Reference: https://stackoverflow.com/a/731634 * Append .lock to applied_migrations_path There are no needs to define another file to serve as a lock. * Change migrations naming convention * Apply suggestions from code review Co-Authored-By: Alexandre Alapetite <alexandre@alapetite.fr> * Perform a low-cost migration versions comparaison * Clarify version numbers concerning the migration system Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-06-10Add support for extensions in Docker environment (#3042)Gravatar Alexis Degrugillier
By default, the container starts without extensions. But if for some reasons, you need to add them without copying or moving some code, you can embed them while starting the container. The syntax is: ``` make start extensions="/full/path/to/extension/1 /full/path/to/extension/2" ```
2020-05-25tec: Add a make lint command in the Makefile (#2996)Gravatar Marien Fressinaud
2020-05-21Add documentation for i18n (#2978)Gravatar Marien Fressinaud
* doc: Write proper doc for internationalization * Apply suggestions from code review Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> * Update docs/en/internationalization.md Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2020-02-29[i18n] Add documentation for new hooks (#2815)Gravatar Frans de Jonge
See <https://github.com/FreshRSS/FreshRSS/pull/2704#issuecomment-592950971>.
2020-01-06Add guidance for pull requestsGravatar Marien Fressinaud
The main reason for this checklist is to not forget about documentation, and to encourage us to write more tests. I hope it'll help us to improve both!
2019-12-29tec: Add a test target to Makefile (#2725)Gravatar Marien Fressinaud
* tec: Add a test target to Makefile Minor edit put php7-phar on third line I try to keep on the third line the Alpine-specific PHP extensions (i.e. that are not by default in Ubuntu), and in alphabetic order Co-Authored-By: Alexandre Alapetite <alexandre@alapetite.fr> * Allow to run make test without Docker
2019-12-15Make master the rolling release branch (#2705)Gravatar Marien Fressinaud
* Change default TAG in Makefile We are going to drop the `dev` branch. The Docker tag `dev-*` are based on this branch and so there will be no longer be generated. We must use images based on the `master` branch (i.e. `latest`, `alpine` and `arm`). * Remove references to dev branch in documentation * Synchronize French documentation
2019-12-03Translate docs with po4a (#2590)Gravatar Frans de Jonge
* [i18n] Add docs po4a script * Add proof of concept * Add a few more translations * Hush ShellCheck and shfmt * Make that list po4a-friendly * drat, this document could've probably been auto-generated * Definitive proof that it's translated from French ;-) * Add some brand spanking new French translation * More translation * Mostly finish that config page * Fix up FAQ * More contributing * Dev first steps * Let's ignore that admin stuff at the very least for now * Translate release new version, make French the source first and copy all translations Then replace French with English in the source. Much quicker than any alternative route. * And add the English translation * Minor stylistic leftover from French * Most of first steps * Forgot the extensions * Use po4a 0.56 to get rid of way too many newlines * Fix up those newlines * No point linking to Firefox integration anymore from the new user guide * Start on main view * A bunch of main view stuff * More main view * And some subscriptions before going to bed * First steps for devs * More dev first steps * Incomplete French → English dev/GH translation Because I need to ask about that mailing list thing * Fix typo in docs/en/developers/02_Github.md * Translate & complete devs/github to English * Fix up most of extensions * Is that supposed to be a non-breaking space? Let's see * Match up some users/mobile access * More users/mobile access * Add fresh French translation to Fever API * Fix typo * Match frontend todo thingies * Fix a typo * Some extensions strings * Remove Fx subscription service from the docs Cf. https://github.com/FreshRSS/FreshRSS/pull/2606 * Add translation for https://github.com/FreshRSS/FreshRSS/pull/2643 * fix typo as per https://github.com/FreshRSS/FreshRSS/pull/2643#discussion_r345433009 * Add some more French translations * Update French translation as per @aledeg comment https://github.com/FreshRSS/FreshRSS/pull/2590#discussion_r345465909 * Translate some of the meaningless stuff * Translate the rest of contributing.md to French * Fix conflicts * Translate Docker first steps to French * Update with change from #2665 * Add @aledeg corrections * Overlooked a couple @aledeg corrections thanks to GitHub autohide * Latest @aledeg suggestions
2019-10-23Take advantage of PHP 5.4+ short echo (#2585)Gravatar Alexandre Alapetite
* Take advantage of PHP 5.4+ short echo https://php.net/migration54.new-features thanks to https://github.com/FreshRSS/FreshRSS/pull/2495 Use `<?= ?>` instead of `<?php echo; ?>` 10kB of code saved :-) Done with regular expression: ``` <\?php echo (.+?);? *\?> <?= \1 ?> ``` * Try Travis fix https://github.com/squizlabs/PHP_CodeSniffer/issues/2045#issuecomment-395238272
2019-10-01Trim whitespace (#2544)Gravatar Alexandre Alapetite
2019-08-29tec: Add Makefile and Docker conf for development (#2492)Gravatar Marien Fressinaud
Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com> Co-Authored-By: Alexandre Alapetite <alexandre@alapetite.fr>
2019-08-20Require PHP 5.5+ (#2495)Gravatar Alexandre Alapetite
* Require PHP 5.5+ https://github.com/FreshRSS/FreshRSS/issues/2469#issuecomment-522255093 I think it would be reasonable to require PHP 5.5+ for the core of FreshRSS after all. As Frenzie said, WordPress currently requires PHP 5.6.20+, and it is the most popular PHP application. We would loose about 20% of the PHP servers according to https://w3techs.com/technologies/details/pl-php/5/all but I expect this number to drop fast after the release of CentOS 8 (CentOS accounts for 17% of Linux servers https://w3techs.com/technologies/details/os-linux/all/all ). Distributions: * no impact on Ubuntu, Fedora, Alpine, OpenWRT, FreeBSD, OpenSuze, Mageia, as all active versions have PHP > 7 * no impact on OpenSuze, Synology, as all active versions have PHP > 5.5 * we drop Debian 8 Jessie (-2020) - we keep supporting Debian 9 Stretch (2017-06) - current is Debian 10 Buster * we drop Red Hat 7 (-2024) - we keep supporting RHEL 8 (2019-05) * we drop CentOS 7 (-2024) - we will support CentOS 8 (to be released soonish) When dropping older versions, I can better like when it is for a good reason, and there is actually one with PHP 5.5, namely generators (yield) https://php.net/language.generators.overview which I consider using. * Version note for JSON.php * hex2bin * Update .travis.yml Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com>
2019-08-14Add hooks to ExtensionManager (#2482)Gravatar Marien Fressinaud
Hooks allow to: - add items in menus - perform new actions at the end of FreshRSS initialization
2018-06-09New extension event + Tumblr GDPR (#1924)Gravatar Alexandre Alapetite
* New extension event + Tumblr GDPR https://github.com/FreshRSS/FreshRSS/issues/1894 simplepie_before_init event * Refactor extension enabling + Tumblr GDPR enabled by default Add possibility for extensions to be enabled by default, and disabled back by users. * Minor whitespace
2017-12-17[docs] Extensions: fix typo (#1735)Gravatar Frans de Jonge
2017-12-17Minz Controllers directory uppercaseGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/pull/1729
2017-12-15[doc] Extensions: translate various sections from FrenchGravatar Frans de Jonge
See https://github.com/FreshRSS/FreshRSS/pull/1697#discussion_r154290857 * lowercase dir as pointed out by @kevinpapst in https://github.com/FreshRSS/FreshRSS/pull/1704#issuecomment-350458110 * Add French translation with improvements suggested by @aledeg
2017-12-02Documentation updates (#1697)Gravatar Kevin Papst
* added documentation about updating FreshRSS moved Installation to admin directory linked some already existing documentation files
2017-09-26Update some HTTP links (doc, HTTPS) (#1641)Gravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/1605
2017-04-24Provide documentation under ./docsGravatar Marien Fressinaud