# Proposition d’homogénéisation des plugins WordPress de l’EPFL -- Work In Progress -- ---- ## À propos Au fil du temps la plateforme WordPress de l’EPFL s’est étoffée et chaque site est agrémenté de différents plugins, dont la majorité sont développés en interne. Il y a actuellement une multitude de façon de faire, le résultat semble disparate pour les utilisateurs. Ce document regroupe des propositions pour «bien faire» avec des exemples. Le but final est d’avoir une homogénéité / standard pour les plugins EPFL. ## Proposition de standardisation 1. **Règles de nommage** : * lors que l’acronyme EPFL apparaît, dans le nom d’un fichier ou d’un dossier, il doit être en majuscules ; * les plugins EPFL commencent par EPFL ; * le dépôt GitHub du plugin est préfixé par `wp-plugin-` et est en minuscules ; * la séparation des mots dans le nom du dossier du plugin se fait par des tirets ; * ... 3. **Contact / Auteur** : * Author: EPFL IDEV-FSD <wp-dev@groupes.epfl.ch> * Author URI: https://go.epfl.ch/idevfsd → ??? * https://groups.epfl.ch/cgi-bin/groups/viewgroup?groupid=S21316 5. **Version** : * dans l’en-tête du plugin: les numéros de version suivent les règles de [versionnage sémantique](https://semver.org/) et ne sont pas préfixés de `v`. * pour les relases GitHub: préfixe de v (checker si obligatoire) 7. **Traductions** : les functions d’[internationalisation](https://codex.wordpress.org/I18n_for_WordPress_Developers) sont utilisées sur toutes les textes du plugin. Idéalement, les plugins sont traduits au moins en français et en anglais. 8. **License** : les plugins sont accessibles librement et distribués sous la même licence que WordPress, soit [GPL-2.0+](https://developer.wordpress.org/themes/getting-started/wordpress-licensing-the-gpl/). 9. **Coding Standard** : les [normes syntaxiques](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/php/) de WordPress sont respectées. 10. **Organisation dans le menu d’administration** : les plugins qui ont une entrées dans le menu paramètre de l'administration des sites sont regroupés. Les entrées de menus commencent par EPFL et ont la priorité 42. 11. ... ## Exemple d’en-tête de fichier ``` /** * Plugin Name: WPForms EPFL Payonline * Plugin URI: https://github.com/epfl-si/wpforms-epfl-payonline * Description: EPFL Payonline integration with WPForms. * Author: Nicolas Borboën * Author URI: https://go.epfl.ch/nbo * Version: 1.0.9 * Text Domain: wpforms-epfl-payonline * Domain Path: languages * License: GPL-2.0+ * License URI: http://www.gnu.org/licenses/gpl-2.0.txt * * WPForms EPFL Payonline is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * any later version. * * WPForms EPFL Payonline is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with WPForms EPFL Payonline. * If not, see <http://www.gnu.org/licenses/>. * * @package WPFormsEPFLPayonline * @license GPL-2.0+ * @copyright Copyright (c) 2019, EPFL */ ``` ## Exemple de validation des normes syntaxiques La commande suivante permet d’installer, via [composer](https://getcomposer.org/), les librairies nécessaires à la validation des règles de codage de WordPress : ```shell= $ composer require squizlabs/php_codesniffer friendsofphp/php-cs-fixer wp-coding-standards/wpcs --dev ``` La commande suivante permet de lister les erreurs / alertes du linter : ```shell= $ ./vendor/bin/phpcs --standard=WordPress-Core --extensions=php --ignore="vendor/*,lib" . ``` La commande suivante permet de lister les erreurs / alertes du linter : ```shell= $ ./vendor/bin/phpcbf -pv --standard=WordPress-Core --extensions=php --ignore="vendor/*,lib" . ``` Note: une explication sur les différences entre `phpcs`, `phpcbf` et `php-cs-fixer` : [FriendsOfPHP/PHP-CS-Fixer/issues/3459](https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/3459) ## Checklist * [ ] a ## Liens https://deluxeblogtips.com/installing-wordpress-coding-standards-windows/ https://developer.wordpress.org/coding-standards/wordpress-coding-standards/php/ https://github.com/WordPress/WordPress-Coding-Standards