diff options
Diffstat (limited to 'docs/fr/developers')
| -rw-r--r-- | docs/fr/developers/01_First_steps.md | 80 | ||||
| -rw-r--r-- | docs/fr/developers/02_Github.md | 63 | ||||
| -rw-r--r-- | docs/fr/developers/03_Backend/02_Minz.md | 30 | ||||
| -rw-r--r-- | docs/fr/developers/03_Backend/04_Changing_source_code.md | 18 | ||||
| -rw-r--r-- | docs/fr/developers/03_Backend/05_Extensions.md | 172 | ||||
| -rw-r--r-- | docs/fr/developers/04_Frontend/01_View_files.md | 18 | ||||
| -rw-r--r-- | docs/fr/developers/04_Frontend/02_Design.md | 14 | ||||
| -rw-r--r-- | docs/fr/developers/05_Release_new_version.md | 40 |
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 |
