aboutsummaryrefslogtreecommitdiff
path: root/docs/fr/developers
diff options
context:
space:
mode:
Diffstat (limited to 'docs/fr/developers')
-rw-r--r--docs/fr/developers/01_First_steps.md80
-rw-r--r--docs/fr/developers/02_Github.md63
-rw-r--r--docs/fr/developers/03_Backend/02_Minz.md30
-rw-r--r--docs/fr/developers/03_Backend/04_Changing_source_code.md18
-rw-r--r--docs/fr/developers/03_Backend/05_Extensions.md172
-rw-r--r--docs/fr/developers/04_Frontend/01_View_files.md18
-rw-r--r--docs/fr/developers/04_Frontend/02_Design.md14
-rw-r--r--docs/fr/developers/05_Release_new_version.md40
8 files changed, 220 insertions, 215 deletions
diff --git a/docs/fr/developers/01_First_steps.md b/docs/fr/developers/01_First_steps.md
index 8c2bf4505..59b475ffa 100644
--- a/docs/fr/developers/01_First_steps.md
+++ b/docs/fr/developers/01_First_steps.md
@@ -1,4 +1,6 @@
-# Configurer son environnement (Docker)
+# Premier pas
+
+## Configurer son environnement (Docker)
FreshRSS est construit en PHP et utilise le framework Minz. Les
dépendancessont directement incluses dans le code source, donc vous n'avez
@@ -27,9 +29,9 @@ Tout d'abord, vous devez installer
Une fois que c'est fait, clonez le dépôt de code de la manière suivante :
-```console
-$ git clone https://github.com/FreshRSS/FreshRSS.git
-$ cd FreshRSS
+```sh
+git clone https://github.com/FreshRSS/FreshRSS.git
+cd FreshRSS
```
Notez que, pour contribuer, vous devrez d'abord « forker » ce dépôt de code
@@ -38,8 +40,8 @@ dépôt. Adaptez les commandes en conséquence.
Ensuite, la seule commande que vous devez connaître est la suivante :
-```console
-$ make start
+```sh
+make start
```
Cela peut prendre un certain temps pour que Docker télécharge l'image
@@ -51,8 +53,8 @@ commande en la préfixant par `sudo`.
Vous pouvez arrêter les conteneurs en tapant <kbd>Control</kbd> + <kbd>c</kbd> ou avec la commande suivante, dans un autre terminal:
-```console
-$ make stop
+```sh
+make stop
```
Si la configuration vous intéresse, les commandes `make' sont définies dans
@@ -63,8 +65,8 @@ différent (par défaut `alpine`), vous pouvez surcharger de la manière
suivante la variable d'environnement `TAG` au moment de l'exécution de la
commande :
-```console
-$ TAG=arm make start
+```sh
+TAG=arm make start
```
Vous pouvez trouver la liste complète des tags disponibles [sur le hub
@@ -73,26 +75,26 @@ Docker](https://hub.docker.com/r/freshrss/freshrss/tags).
Si vous voulez construire l'image Docker, vous pouvez lancer la commande
suivante :
-```console
-$ make build
-$ # ou
-$ TAG=arm make build
+```sh
+make build
+# ou
+TAG=arm make build
```
La valeur de la variable `TAG` peut contenir n'importe quelle valeur (par
exemple `local`). Vous pouvez cibler une architecture spécifique en ajoutant
`-alpine` ou `-arm` à la fin du tag (par exemple `local-arm`).
-# Architecture du projet
+## Architecture du projet
-**À FAIRE**
+> **À FAIRE**
-# Extensions
+## Extensions
Si vous souhaitez créer votre propre extension FreshRSS, consultez la
[documentation de l'extension](03_Backend/05_Extensions.md).
-# Style de codage
+## Style de codage
Si vous désirez contribuer au code, il est important de respecter le style
de codage suivant. Le code actuel ne le respecte pas entièrement mais il est
@@ -101,12 +103,13 @@ de notre devoir à tous de le changer dès que l'occasion se présente.
Aucune nouvelle contribution ne respectant pas ces règles ne sera acceptée
tant que les corrections nécessaires ne sont pas appliquées.
-## Espaces, tabulations et autres caractères blancs
+### Espaces, tabulations et autres caractères blancs
+
+#### Indentation
-### Indentation
L'indentation du code doit être faite impérativement avec des tabulations.
-### Alignement
+#### Alignement
Une fois l'indentation faite, il peut être nécessaire de faire un alignement
pour simplifier la lecture. Dans ce cas, il faut utiliser les espaces.
@@ -116,7 +119,7 @@ $resultat = une_fonction_avec_un_nom_long($param1, $param2,
$param3, $param4);
```
-### Fin de ligne
+#### Fin de ligne
Le caractère de fin de ligne doit être un saut de ligne (LF) qui est le
caractère de fin de ligne des systèmes *NIX. Ce caractère ne doit pas être
@@ -132,15 +135,15 @@ git diff --check
git diff --check --cached
```
-### Fin de fichier
+#### Fin de fichier
Chaque fichier doit se terminer par une ligne vide.
-### Le cas de la virgule, du point et du point-virgule
+#### Le cas de la virgule, du point et du point-virgule
Il n'y a pas d'espace avant ces caractères, il y en a un après.
-### Le cas des opérateurs
+#### Le cas des opérateurs
Chaque opérateur est entouré d'espaces.
@@ -152,7 +155,7 @@ if ($a == 10) {
echo $a ? 1 : 0;
```
-### Le cas des parenthèses
+#### Le cas des parenthèses
Il n'y a pas d'espaces entre des parenthèses. Il n'y a pas d'espaces avant
une parenthèse ouvrante sauf si elle est précédée d'un mot-clé. Il n'y a pas
@@ -169,7 +172,7 @@ if ((int)$a == 10) {
}
```
-### Le cas des fonctions chainées
+#### Le cas des fonctions chainées
Ce cas se présente le plus souvent en Javascript. Quand on a des fonctions
chainées, des fonctions anonymes ainsi que des fonctions de rappels, il est
@@ -192,7 +195,7 @@ shortcut.add("shift+" + shortcuts.mark_read, function () {
});
```
-## Longueur des lignes
+### Longueur des lignes
Les lignes ne doivent pas dépasser 80 caractères. Il est cependant autorisé
exceptionnellement de dépasser cette limite s'il n'est pas possible de la
@@ -209,12 +212,12 @@ function ma_fonction($param_1, $param_2,
}
```
-## Nommage
+### Nommage
L'ensemble des éléments du code (fonctions, classes, méthodes et variables)
doivent être nommés de manière à décrire leur usage de façon concise.
-### Fonctions et variables
+#### Fonctions et variables
Les fonctions et les variables doivent suivre la convention "snake case".
@@ -227,7 +230,7 @@ function nom_de_la_fontion() {
$nom_de_la_variable;
```
-### Méthodes
+#### Méthodes
Les méthodes doivent suivre la convention "lower camel case".
@@ -237,7 +240,7 @@ private function nomDeLaMethode() {
}
```
-### Classes
+#### Classes
Les classes doivent suivre la convention "upper camel case".
@@ -245,18 +248,19 @@ Les classes doivent suivre la convention "upper camel case".
abstract class NomDeLaClasse {}
```
-## Encodage
+### Encodage
Les fichiers doivent être encodés en UTF-8.
-## Compatibilité PHP
+### Compatibilité PHP
Assurez-vous que votre code fonctionne avec une version de PHP aussi
ancienne que celle que FreshRSS supporte officiellement.
-## Divers
+### Divers
+
+#### Le cas des opérateurs sur plusieurs lignes
-### Le cas des opérateurs
Les opérateurs doivent être en fin de ligne dans le cas de conditions sur
plusieurs lignes.
@@ -267,12 +271,12 @@ if ($a == 10 ||
}
```
-### Fin de fichier
+#### Fin de fichier PHP
Si le fichier ne contient que du PHP, il ne doit pas comporter de balise
fermante.
-### Tableaux
+#### Tableaux
Lors de l'écriture de tableaux sur plusieurs lignes, tous les éléments
doivent être suivis d'une virgule (même le dernier).
diff --git a/docs/fr/developers/02_Github.md b/docs/fr/developers/02_Github.md
index d850dee09..569f1760f 100644
--- a/docs/fr/developers/02_Github.md
+++ b/docs/fr/developers/02_Github.md
@@ -18,18 +18,18 @@ nous permet de pouvoir discuter à plusieurs sur un problème ou une
suggestion et de faire émerger, souvent, des idées nouvelles. Ne négligeons
pas cet aspect "social" !
- 1. [Rendez-vous sur le gestionnaire de tickets de
- bugs](https://github.com/FreshRSS/FreshRSS/issues)
- 2. Commencez par rechercher si une demande similaire n'a pas déjà été
- faite. Si oui, n'hésitez pas à ajouter votre voix à la demande.
- 3. Si votre demande est nouvelle, [ouvrez un nouveau ticket de
- bug](https://github.com/FreshRSS/FreshRSS/issues/new)
- 4. Rédigez enfin votre demande. Si vous maitrisez l'anglais, c'est la
- langue à privilégier car cela permet d'ouvrir la discussion à un plus
- grand nombre de personnes. Sinon, ce n'est pas grave, continuez en
- français :)
- 5. Merci de bien vouloir suivre les quelques conseils donnés plus bas pour
- faciliter la prise en compte de votre ticket.
+1. [Rendez-vous sur le gestionnaire de tickets de
+ bugs](https://github.com/FreshRSS/FreshRSS/issues)
+2. Commencez par rechercher si une demande similaire n'a pas déjà été
+ faite. Si oui, n'hésitez pas à ajouter votre voix à la demande.
+3. Si votre demande est nouvelle, [ouvrez un nouveau ticket de
+ bug](https://github.com/FreshRSS/FreshRSS/issues/new)
+4. Rédigez enfin votre demande. Si vous maitrisez l'anglais, c'est la
+ langue à privilégier car cela permet d'ouvrir la discussion à un plus
+ grand nombre de personnes. Sinon, ce n'est pas grave, continuez en
+ français :)
+5. Merci de bien vouloir suivre les quelques conseils donnés plus bas pour
+ faciliter la prise en compte de votre ticket.
## De façon informelle
@@ -38,9 +38,9 @@ diverses que légitimes. C'est pourquoi vous pouvez aussi nous contacter de
façon plus informelle.
* Sur [notre chat
- Mattermost](https://framateam.org/signup_user_complete/?id=e2680d3e3128b9fac8fdb3003b0024ee)
+ Mattermost](https://framateam.org/signup_user_complete/?id=e2680d3e3128b9fac8fdb3003b0024ee)
* Sur [les listes de
- diffusion](https://freshrss.org/announce-of-the-mailing-lists.html)
+ diffusion](https://freshrss.org/announce-of-the-mailing-lists.html)
* À des évènements / rencontres autour du Logiciel Libre
* Autour d'une bière dans un bar
* Etc.
@@ -52,24 +52,24 @@ suggestion :
* **Faites attention à l'orthographe.** même si ce n'est pas toujours
- facile, faites votre maximum. ;)
+ facile, faites votre maximum. ;)
* **Donnez un titre explicite à votre demande**, quitte à ce qu'il soit un
- peu long. Cela nous aide non seulement à comprendre votre demande, mais
- aussi à retrouver votre ticket plus tard.
+ peu long. Cela nous aide non seulement à comprendre votre demande, mais
+ aussi à retrouver votre ticket plus tard.
* **Une demande = un ticket.** Vous pouvez avoir des tas d'idées mais vous
- avez peur de spammer le gestionnaire de bugs : ça ne fait rien. Il vaut
- mieux avoir un peu trop de tickets que trop de demandes dans un seul. On
- s'occupera de fermer et regrouper les demandes qui le peuvent.
+ avez peur de spammer le gestionnaire de bugs : ça ne fait rien. Il vaut
+ mieux avoir un peu trop de tickets que trop de demandes dans un seul. On
+ s'occupera de fermer et regrouper les demandes qui le peuvent.
* Si vous remontez un bug, pensez à nous **fournir les logs de FreshRSS**
- (accessibles dans les dossier ''data/log/'' de FreshRSS) **et PHP**
- (l'emplacement peut varier selon les distributions, mais pensez à chercher
- dans ''/var/log/httpd'' ou ''/var/log/apache'').
+ (accessibles dans les dossier ''data/log/'' de FreshRSS) **et PHP**
+ (l'emplacement peut varier selon les distributions, mais pensez à chercher
+ dans ''/var/log/httpd'' ou ''/var/log/apache'').
* Si vous ne trouvez pas les fichiers de logs, précisez-le dans votre ticket
- afin que nous sachions que vous avez déjà cherché.
+ afin que nous sachions que vous avez déjà cherché.
* Tous les bugs ne nécessitent pas les logs, mais si vous doutez, mieux vaut
- nous les fournir. Les logs sont importants et très utiles pour débugguer !
+ nous les fournir. Les logs sont importants et très utiles pour débugguer !
* Il se peut que les logs puissent révéler des informations plus ou moins
- confidentielles, **faites attention à ne rien divulguer de sensible.**
+ confidentielles, **faites attention à ne rien divulguer de sensible.**
De plus, face à un bug, je ne peux que vous encourager à suivre le format de
message suivant (tiré du [site de Sam &
@@ -97,12 +97,11 @@ Afin que nous comprenions bien où est le problème... au moins selon vous :p
Pensez à donner les informations suivantes si vous les connaissez :
- 1. Quel navigateur ? Quelle version ?
- 2. Quel serveur : Apache, Nginx ? Quelle version ?
- 3. Quelle version de PHP ?
- 4. Quelle base de données : SQLite, MySQL, MariaDB, PostgreSQL ? Quelle
- version ?
- 5. Quelle distribution sur le serveur ? Et… quelle version ?
+1. Quel navigateur ? Quelle version ?
+2. Quel serveur : Apache, Nginx ? Quelle version ?
+3. Quelle version de PHP ?
+4. Quelle base de données : SQLite, MySQL, MariaDB, PostgreSQL ? Quelle version ?
+5. Quelle distribution sur le serveur ? Et… quelle version ?
## Système de branches
diff --git a/docs/fr/developers/03_Backend/02_Minz.md b/docs/fr/developers/03_Backend/02_Minz.md
index 754e23ea9..5daf684f0 100644
--- a/docs/fr/developers/03_Backend/02_Minz.md
+++ b/docs/fr/developers/03_Backend/02_Minz.md
@@ -1,27 +1,29 @@
-# Modèles
+# Minz
-**À FAIRE**
+## Modèles
-# Contrôleurs et actions
+> **À FAIRE**
-**À FAIRE**
+## Contrôleurs et actions
-# Vues
+> **À FAIRE**
-**À FAIRE**
+## Vues
-# Routage
+> **À FAIRE**
-**À FAIRE**
+## Routage
-# Écriture des URL
+> **À FAIRE**
-**À FAIRE**
+## Écriture des URL
-# Internationalisation
+> **À FAIRE**
-**À FAIRE**
+## Internationalisation
-# Comprendres les mécanismes internes
+> **À FAIRE**
-**À FAIRE**
+## Comprendres les mécanismes internes
+
+> **À FAIRE**
diff --git a/docs/fr/developers/03_Backend/04_Changing_source_code.md b/docs/fr/developers/03_Backend/04_Changing_source_code.md
index fd4a354d1..734d40569 100644
--- a/docs/fr/developers/03_Backend/04_Changing_source_code.md
+++ b/docs/fr/developers/03_Backend/04_Changing_source_code.md
@@ -1,15 +1,17 @@
-# Accès à la base de données
+# Éditer le code source
-**À FAIRE**
+## Accès à la base de données
-# Écrire une action et sa vue associée
+> **À FAIRE**
-**À FAIRE**
+## Écrire une action et sa vue associée
-# Gestion de l'authentification
+> **À FAIRE**
-**À FAIRE**
+## Gestion de l'authentification
-# Gestion des logs
+> **À FAIRE**
-**À FAIRE**
+## Gestion des logs
+
+> **À FAIRE**
diff --git a/docs/fr/developers/03_Backend/05_Extensions.md b/docs/fr/developers/03_Backend/05_Extensions.md
index 95cccfe7f..41571d7bb 100644
--- a/docs/fr/developers/03_Backend/05_Extensions.md
+++ b/docs/fr/developers/03_Backend/05_Extensions.md
@@ -14,8 +14,7 @@ FreshRSS est limité dans ses possibilités techniques par différents facteurs
* La disponibilité des développeurs principaux ;
* La volonté d'intégrer certains changements ;
-* Le niveau de « hack » nécessaire pour intégrer des fonctionnalités à la
- marge.
+* Le niveau de « hack » nécessaire pour intégrer des fonctionnalités à la marge.
Si la première limitation peut, en théorie, être levée par la participation
de nouveaux contributeurs au projet, elle est en réalité conditionnée par la
@@ -27,11 +26,10 @@ Une autre solution consiste à passer par un système d'extensions. En
permettant à des utilisateurs d'écrire leur propre extension sans avoir à
s'intéresser au cœur même du logiciel de base, on permet :
-1. De réduire la quantité de code source à assimiler pour un nouveau
- contributeur ;
+1. De réduire la quantité de code source à assimiler pour un nouveau contributeur ;
2. De permettre d'intégrer des nouveautés de façon non-officielles ;
3. De se passer des développeurs principaux pour d'éventuelles améliorations
- sans passer par la case « fork ».
+ sans passer par la case « fork ».
Note : il est tout à fait imaginable que les fonctionnalités d'une extension
puissent par la suite être intégrées dans le code initial de FreshRSS de
@@ -57,26 +55,26 @@ Minz repose et impose une architecture MVC pour les projets l'utilisant. On
distingue dans cette architecture trois composants principaux :
* Le Modèle : c'est l'objet de base que l'on va manipuler. Dans FreshRSS,
- les catégories, les flux et les articles sont des modèles. La partie du
- code qui permet de les manipuler en base de données fait aussi partie du
- modèle mais est séparée du modèle de base : on parle de DAO (pour « Data
- Access Object »). Les modèles sont stockés dans un répertoire `Models`.
+ les catégories, les flux et les articles sont des modèles. La partie du
+ code qui permet de les manipuler en base de données fait aussi partie du
+ modèle mais est séparée du modèle de base : on parle de DAO (pour « Data
+ Access Object »). Les modèles sont stockés dans un répertoire `Models`.
* La Vue : c'est ce qui représente ce que verra l'utilisateur. La vue est
- donc simplement du code HTML que l'on mixe avec du PHP pour afficher les
- informations dynamiques. Les vues sont stockées dans un répertoire
- `views`.
+ donc simplement du code HTML que l'on mixe avec du PHP pour afficher les
+ informations dynamiques. Les vues sont stockées dans un répertoire
+ `views`.
* Le Contrôleur : c'est ce qui permet de lier modèles et vues entre
- eux. Typiquement, un contrôleur va charger des modèles à partir de la base
- de données (une liste d'articles par exemple) pour les « passer » à une
- vue afin qu'elle les affiche. Les contrôleurs sont stockés dans un
- répertoire `Controllers`.
+ eux. Typiquement, un contrôleur va charger des modèles à partir de la base
+ de données (une liste d'articles par exemple) pour les « passer » à une
+ vue afin qu'elle les affiche. Les contrôleurs sont stockés dans un
+ répertoire `Controllers`.
### Routage
Afin de lier une URL à un contrôleur, on doit passer par une phase dite de «
routage ». Dans FreshRSS, cela est particulièrement simple car il suffit
-d'indiquer le nom du contrôleur à charger dans l'URL à l'aide d'un paramètre
-`c`. Par exemple, l'adresse http://exemple.com?c=hello va exécuter le code
+d'indiquer le nom du contrôleur à charger dans l'URL à l'aide d'un paramètre `c`.
+Par exemple, l'adresse <http://exemple.com?c=hello> va exécuter le code
contenu dans le contrôleur `hello`.
Une notion qui n'a pas encore été évoquée est le système d'« actions ». Une
@@ -102,11 +100,11 @@ class FreshRSS_hello_Controller extends Minz_ActionController {
?>
```
-Si l'on charge l'adresse http://exemple.com?c=hello&a=world, l'action
+Si l'on charge l'adresse <http://exemple.com?c=hello&a=world>, l'action
`world` va donc être exécutée sur le contrôleur `hello`.
Note : si `c` ou `a` n'est pas précisée, la valeur par défaut de chacune de
-ces variables est `index`. Ainsi l'adresse http://exemple.com?c=hello va
+ces variables est `index`. Ainsi l'adresse <http://exemple.com?c=hello> va
exécuter l'action `index` du contrôleur `hello`.
Plus loin, sera utilisée la convention `hello/world` pour évoquer un couple
@@ -183,7 +181,7 @@ suivante doit être évitée :
```
Si un jour il est décidé d'utiliser un système d'« url rewriting » pour
-avoir des adresses au format http://exemple.com/controller/action, toutes
+avoir des adresses au format <http://exemple.com/controller/action>, toutes
les adresses précédentes deviendraient ineffectives !
Préférez donc l'utilisation de la classe `Minz_Url` et de sa méthode
@@ -300,12 +298,9 @@ Français sont situés dans `i18n/fr/`. Il existe sept fichiers différents :
* `conf.php` pour l'aspect configuration ;
* `feedback.php` contient les traductions des messages de feedback ;
* `gen.php` stocke ce qui est global à FreshRSS (gen pour « general ») ;
-* `index.php` pour la page principale qui liste les flux et la page « À
- propos » ;
-* `install.php` contient les phrases relatives à l'installation de FreshRSS
- ;
-* `sub.php` pour l'aspect gestion des abonnements (sub pour « subscription
- »).
+* `index.php` pour la page principale qui liste les flux et la page « À propos » ;
+* `install.php` contient les phrases relatives à l'installation de FreshRSS ;
+* `sub.php` pour l'aspect gestion des abonnements (sub pour « subscription »).
Cette organisation permet de ne pas avoir un unique énorme fichier de
traduction.
@@ -377,7 +372,7 @@ FreshRSS sans avoir à toucher au cœur du projet directement.
### Travailler dans Docker
Quand on travaille sur une extension, c'est toujours plus facile de la travailler directement dans son environnement. Avec Docker, on peut exploiter l'option ```volume``` quand on démarre le conteneur. Heureusement, on peut l'utiliser sans avoir de connaissances particulières de Docker en utilisant la règle du Makefile :
-```
+```sh
make start extensions="/chemin/complet/de/l/extension/1 /chemin/complet/de/l/extension/2"
```
@@ -394,7 +389,7 @@ Le répertoire principal d'une extension doit comporter au moins deux
fichiers **obligatoire** :
* Un fichier `metadata.json` qui contient une description de l'extension. Ce
- fichier est écrit en JSON ;
+ fichier est écrit en JSON ;
* Un fichier `extension.php` contenant le point d'entrée de l'extension.
Please note that there is a not a required link between the directory name
@@ -419,17 +414,17 @@ You may also need additional files or subdirectories depending on your
needs:
* `configure.phtml` est le fichier contenant le formulaire pour paramétrer
- votre extension
+ votre extension
* A `static/` directory containing CSS and JavaScript files that you will
- need for your extension (note that if you need to write a lot of CSS it
- may be more interesting to write a complete theme)
+ need for your extension (note that if you need to write a lot of CSS it
+ may be more interesting to write a complete theme)
* A `Controllers` directory containing additional controllers
* An `i18n` directory containing additional translations
-* `layout` and` views` directories to define new views or to overwrite the
- current views
+* `layout` and `views` directories to define new views or to overwrite the
+ current views
In addition, it is good to have a `LICENSE` file indicating the license
-under which your extension is distributed and a` README` file giving a
+under which your extension is distributed and a `README` file giving a
detailed description of it.
### The metadata.json file
@@ -440,15 +435,15 @@ following entries:
* `name` : le nom de votre extension ;
* `author` : votre nom, éventuellement votre adresse mail mais il n'y a pas
- de format spécifique à adopter ;
+ de format spécifique à adopter ;
* `description` : une description de votre extension ;
* `version` : le numéro de version actuel de l'extension ;
* `entrypoint` : indique le point d'entrée de votre extension. Il doit
- correspondre au nom de la classe contenue dans le fichier `extension.php`
- sans le suffixe `Extension` (donc si le point d'entrée est `HelloWorld`,
- votre classe s'appellera `HelloWorldExtension`) ;
+ correspondre au nom de la classe contenue dans le fichier `extension.php`
+ sans le suffixe `Extension` (donc si le point d'entrée est `HelloWorld`,
+ votre classe s'appellera `HelloWorldExtension`) ;
* `type` : définit le type de votre extension. Il existe deux types :
- `system` et `user`. Nous étudierons cette différence juste après.
+ `system` et `user`. Nous étudierons cette différence juste après.
Seuls les champs `name` et `entrypoint` sont requis.
@@ -463,46 +458,45 @@ A __system__ extension in comparison is enabled for every account.
This file is the entry point of your extension. It must contain a specific
class to function. As mentioned above, the name of the class must be your
-`entrypoint` suffixed by` Extension` (`HelloWorldExtension` for example).
+`entrypoint` suffixed by `Extension` (`HelloWorldExtension` for example).
In addition, this class must be inherited from the `Minz_Extension` class to
benefit from extensions-specific methods.
Your class will benefit from four methods to redefine:
* `install()` is called when a user clicks the button to activate your
- extension. It allows, for example, to update the database of a user in
- order to make it compatible with the extension. It returns `true` if
- everything went well or, if not, a string explaining the problem.
+ extension. It allows, for example, to update the database of a user in
+ order to make it compatible with the extension. It returns `true` if
+ everything went well or, if not, a string explaining the problem.
* `uninstall()` is called when a user clicks the button to disable your
- extension. This will allow you to undo the database changes you
- potentially made in `install ()`. It returns `true` if everything went
- well or, if not, a string explaining the problem.
+ extension. This will allow you to undo the database changes you
+ potentially made in `install ()`. It returns `true` if everything went
+ well or, if not, a string explaining the problem.
* `init()` is called for every page load *if the extension is enabled*. It
- will therefore initialize the behavior of the extension. This is the most
- important method.
+ will therefore initialize the behavior of the extension. This is the most
+ important method.
* `handleConfigureAction()` is called when a user loads the extension
- management panel. Specifically, it is called when the
- `?c=extension&a=configured&e=name-of-your-extension` URL is loaded. You
- should also write here the behavior you want when validating the form in
- your `configure.phtml` file.
+ management panel. Specifically, it is called when the
+ `?c=extension&a=configured&e=name-of-your-extension` URL is loaded. You
+ should also write here the behavior you want when validating the form in
+ your `configure.phtml` file.
-In addition, you will have a number of methods directly inherited from
-`Minz_Extension` that you should not redefine:
+ In addition, you will have a number of methods directly inherited from
+ `Minz_Extension` that you should not redefine:
* The "getters" first: most are explicit enough not to detail them here -
- `getName()`, `getEntrypoint()`, `getPath()` (allows you to retrieve the
- path to your extension), `getAuthor()`, `getDescription()`,
- `getVersion()`, `getType()`.
+ `getName()`, `getEntrypoint()`, `getPath()` (allows you to retrieve the
+ path to your extension), `getAuthor()`, `getDescription()`,
+ `getVersion()`, `getType()`.
* `getFileUrl($filename, $type)` will return the URL to a file in the
- `static` directory. The first parameter is the name of the file (without
- `static /`), the second is the type of file to be used (`css` or` js`).
+ `static` directory. The first parameter is the name of the file (without
+ `static /`), the second is the type of file to be used (`css` or `js`).
* `registerController($base_name)` will tell Minz to take into account the
- given controller in the routing system. The controller must be located in
- your `Controllers` directory, the name of the file must be`
- <base_name>Controller.php` and the name of the
- `FreshExtension_<base_name>_Controller` class.
+ given controller in the routing system. The controller must be located in
+ your `Controllers` directory, the name of the file must be `<base_name>Controller.php` and the name of the
+ `FreshExtension_<base_name>_Controller` class.
-**À FAIRE**
+> **À FAIRE**
* `registerViews()`
* `registerTranslates()`
@@ -529,44 +523,44 @@ class HelloWorldExtension extends Minz_Extension
The following events are available:
* `check_url_before_add` (`function($url) -> Url | null`): will be executed
- every time a URL is added. The URL itself will be passed as
- parameter. This way a website known to have feeds which doesn't advertise
- it in the header can still be automatically supported.
+ every time a URL is added. The URL itself will be passed as
+ parameter. This way a website known to have feeds which doesn't advertise
+ it in the header can still be automatically supported.
* `entry_before_display` (`function($entry) -> Entry | null`): will be
- executed every time an entry is rendered. The entry itself (instance of
- FreshRSS\_Entry) will be passed as parameter.
+ executed every time an entry is rendered. The entry itself (instance of
+ FreshRSS\_Entry) will be passed as parameter.
* `entry_before_insert` (`function($entry) -> Entry | null`): will be
- executed when a feed is refreshed and new entries will be imported into
- the database. The new entry (instance of FreshRSS\_Entry) will be passed
- as parameter.
+ executed when a feed is refreshed and new entries will be imported into
+ the database. The new entry (instance of FreshRSS\_Entry) will be passed
+ as parameter.
* `feed_before_actualize` (`function($feed) -> Feed | null`): will be
- executed when a feed is updated. The feed (instance of FreshRSS\_Feed)
- will be passed as parameter.
+ executed when a feed is updated. The feed (instance of FreshRSS\_Feed)
+ will be passed as parameter.
* `feed_before_insert` (`function($feed) -> Feed | null`): will be executed
- when a new feed is imported into the database. The new feed (instance of
- FreshRSS\_Feed) will be passed as parameter.
+ when a new feed is imported into the database. The new feed (instance of
+ FreshRSS\_Feed) will be passed as parameter.
* `freshrss_init` (`function() -> none`): will be executed at the end of the
- initialization of FreshRSS, useful to initialize components or to do
- additional access checks
+ initialization of FreshRSS, useful to initialize components or to do
+ additional access checks
* `menu_admin_entry` (`function() -> string`): add an entry at the end of
- the "Administration" menu, the returned string must be valid HTML
- (e.g. `<li class="item active"><a href="url">New entry</a></li>`)
+ the "Administration" menu, the returned string must be valid HTML
+ (e.g. `<li class="item active"><a href="url">New entry</a></li>`)
* `menu_configuration_entry` (`function() -> string`): add an entry at the
- end of the "Configuration" menu, the returned string must be valid HTML
- (e.g. `<li class="item active"><a href="url">New entry</a></li>`)
+ end of the "Configuration" menu, the returned string must be valid HTML
+ (e.g. `<li class="item active"><a href="url">New entry</a></li>`)
* `menu_other_entry` (`function() -> string`): add an entry at the end of
- the header dropdown menu (i.e. after the "About" entry), the returned
- string must be valid HTML (e.g. `<li class="item active"><a href="url">New
- entry</a></li>`)
+ the header dropdown menu (i.e. after the "About" entry), the returned
+ string must be valid HTML (e.g. `<li class="item active"><a href="url">New
+ entry</a></li>`)
* `nav_reading_modes` (`function($reading_modes) -> array | null`): **TODO**
- add documentation
+ add documentation
* `post_update` (`function(none) -> none`): **TODO** add documentation
* `simplepie_before_init` (`function($simplePie, $feed) -> none`): **TODO**
- add documentation
+ add documentation
### Writing your own configure.phtml
When you want to support user configurations for your extension or simply
display some information, you have to create the `configure.phtml` file.
-**À FAIRE**
+> **À FAIRE**
diff --git a/docs/fr/developers/04_Frontend/01_View_files.md b/docs/fr/developers/04_Frontend/01_View_files.md
index e35b48809..debfadee0 100644
--- a/docs/fr/developers/04_Frontend/01_View_files.md
+++ b/docs/fr/developers/04_Frontend/01_View_files.md
@@ -1,15 +1,17 @@
-# Les fichiers .phtml
+# Les vues
-**À FAIRE**
+## Les fichiers .phtml
-# Écrire une URL
+> **À FAIRE**
-**À FAIRE**
+## Écrire une URL
-# Afficher une icône
+> **À FAIRE**
-**À FAIRE**
+## Afficher une icône
-# Internationalisation
+> **À FAIRE**
-**À FAIRE**
+## Internationalisation
+
+> **À FAIRE**
diff --git a/docs/fr/developers/04_Frontend/02_Design.md b/docs/fr/developers/04_Frontend/02_Design.md
index 03d7ea862..d1432f069 100644
--- a/docs/fr/developers/04_Frontend/02_Design.md
+++ b/docs/fr/developers/04_Frontend/02_Design.md
@@ -1,11 +1,13 @@
-# Fichier modèle
+# Design
-**À FAIRE**
+## Fichier modèle
-# Écrire un nouveau thème
+> **À FAIRE**
-**À FAIRE**
+## Écrire un nouveau thème
-# Surcharger les icônes
+> **À FAIRE**
-**À FAIRE**
+## Surcharger les icônes
+
+> **À FAIRE**
diff --git a/docs/fr/developers/05_Release_new_version.md b/docs/fr/developers/05_Release_new_version.md
index 116d50ca6..0bdad8b4e 100644
--- a/docs/fr/developers/05_Release_new_version.md
+++ b/docs/fr/developers/05_Release_new_version.md
@@ -19,7 +19,7 @@ mises à jour de la version à sortir.
## Processus Git
-```sh
+```console
$ git checkout edge
$ git pull
$ vim constants.php
@@ -57,21 +57,21 @@ package FreshRSS (`PACKAGE_URL`). L'URL est de la forme
Il existe ensuite 5 fonctions à remplir :
* `apply_update()` qui se charge de sauvegarder le répertoire contenant les
- données, de vérifier sa structure, de télécharger le package FreshRSS, de
- le déployer et de tout nettoyer. Cette fonction est pré-remplie mais des
- ajustements peuvent être faits si besoin est (ex. réorganisation de la
- structure de `./data`). Elle retourne `true` si aucun problème n'est
- survenu ou une chaîne de caractères indiquant un soucis ;
+ données, de vérifier sa structure, de télécharger le package FreshRSS, de
+ le déployer et de tout nettoyer. Cette fonction est pré-remplie mais des
+ ajustements peuvent être faits si besoin est (ex. réorganisation de la
+ structure de `./data`). Elle retourne `true` si aucun problème n'est
+ survenu ou une chaîne de caractères indiquant un soucis ;
* `need_info_update()` retourne `true` si l'utilisateur doit intervenir
- durant la mise à jour ou `false` sinon ;
+ durant la mise à jour ou `false` sinon ;
* `ask_info_update()` affiche un formulaire à l'utilisateur si
- `need_info_update()` a retourné `true` ;
+ `need_info_update()` a retourné `true` ;
* `save_info_update()` est chargée de sauvegarder les informations
- renseignées par l'utilisateur (issues du formulaire de
- `ask_info_update()`) ;
+ renseignées par l'utilisateur (issues du formulaire de
+ `ask_info_update()`) ;
* `do_post_update()` est exécutée à la fin de la mise à jour et prend en
- compte le code de la nouvelle version (ex. si la nouvelle version modifie
- l'objet `Minz_Configuration`, vous bénéficierez de ces améliorations).
+ compte le code de la nouvelle version (ex. si la nouvelle version modifie
+ l'objet `Minz_Configuration`, vous bénéficierez de ces améliorations).
## Mise à jour du fichier de versions
@@ -101,11 +101,11 @@ Et voici comment fonctionne cette table :
* les versions `x.y.z-dev` sont **toutes** mises à jour vers `edge` ;
* les versions stables sont mises à jour vers des versions stables ;
* il est possible de sauter plusieurs versions d'un coup à condition que les
- scripts de mise à jour le prennent en charge ;
+ scripts de mise à jour le prennent en charge ;
* il est conseillé d'indiquer la correspondance de la version courante vers
- sa potentielle future version en précisant que cette version n'existe pas
- encore. Tant que le script correspondant n'existera pas, rien ne se
- passera.
+ sa potentielle future version en précisant que cette version n'existe pas
+ encore. Tant que le script correspondant n'existera pas, rien ne se
+ passera.
Il est **très fortement** indiqué de garder ce fichier rangé selon les
numéros de versions en séparant les versions stables et de dev.
@@ -134,16 +134,16 @@ update.freshrss.org :
Lorsque tout fonctionne, il est temps d'annoncer la sortie au monde entier !
* sur GitHub en créant [une nouvelle
- release](https://github.com/FreshRSS/FreshRSS/releases/new) ;
+ release](https://github.com/FreshRSS/FreshRSS/releases/new) ;
* sur le blog de freshrss.org au minimum pour les versions stables (écrire
- l'article sur
- [FreshRSS/freshrss.org](https://github.com/FreshRSS/freshrss.org)).
+ l'article sur
+ [FreshRSS/freshrss.org](https://github.com/FreshRSS/freshrss.org)).
* sur Twitter (compte [@FreshRSS](https://twitter.com/FreshRSS)) ;
* et sur mailing@freshrss.org ;
## Lancer la prochaine version de développement
-```sh
+```console
$ git checkout edge
$ vim constants.php
# Mettre à jour le numéro de version de FRESHRSS_VERSION