
Comment créer des listes TODO dans Drupal ? Présentation du module Checklist API
Une liste de tâches est l'outil principal d'une personne productive. Elle aide dans le travail quotidien et vous permet de mieux exécuter vos obligations. Il s'avère que certains de ses éléments peuvent également être saisis dans le panneau d'administration d'un site Drupal.
Dans cet article, je vais examiner de plus près le module Checklist API, qui offre aux utilisateurs de Drupal une implémentation intéressante d'une liste de tâches (TODO).
Dates
La première version alpha du module a été introduite en 2012 pour Drupal 7. La version stable 1.0 a été publiée quelques mois plus tard. À ce jour, 12 versions stables ont été créées, y compris la plus récente, marquée 2.0, pour Drupal 8 et 9.
Popularité
Bien que le module Checklist API ne soit pas très populaire, il est devenu assez reconnaissable au fil des ans. Actuellement, selon les statistiques officielles, il est utilisé par plus de 30 mille sites basés sur Drupal, dont 63 % relèvent de la branche 7.x-1.x.
Créateurs du module
Le module est maintenu par Travis Carden d'Acquia, un membre très actif de la communauté Drupal. En plus de lui, 11 autres personnes ont participé au projet jusqu'à présent. Environ 170 commits ont été créés au total.
But du module
Le module Checklist API est utilisé pour créer des listes avec des cases à cocher. L'état d'exécution des tâches est enregistré dans la configuration ou dans l'API d'État, et il peut être modifié à l'aide du code. Checklist API peut être utilisé pour construire une liste de tâches, mais ce n'est qu'une manière de l'utiliser.
Dans le cas de la distribution Droopler, le module Checklist API a été utilisé comme mécanisme de soutien au processus de mise à jour. Lorsque les processus automatiques échouent, nous conseillons à l'utilisateur d'effectuer manuellement les opérations qui ne sont pas cochées sur la liste. Des instructions détaillées et des liens sont disponibles pour eux :
Checklist API est utilisé par de nombreux outils pour vérifier les sites web en termes de SEO et de qualité, y compris SEO Checklist et QA Checklist.
Déballage
Le module est disponible sur le site web de Drupal.org. Vous pouvez l'installer à la fois via Composer (en utilisant la commande composer require drupal/linkit) et à partir du fichier .zip disponible sur Drupal.org.
Utilisation du module
Après avoir exécuté le module Checklist API, vous serez probablement surpris par le fait qu'il n'a pas de panneau d'administration. Les nouvelles listes ne peuvent être créées que via l'API. Cela se fait à l'aide d'un hook – hook_checklistapi_checklist_info().
Voici un exemple de hook qui ajoute une simple liste de tâches lors de la publication d'un nouveau site web :
/**
* Implémente hook_checklistapi_checklist_info().
*
* Définit un exemple de liste de déploiement.
* .
*/
function mylist_checklistapi_checklist_info() {
$definitions = [];
$definitions['mylist'] = [
'#title' => t('Liste de vérification du déploiement du site web'),
'#path' => '/admin/config/development/website-checklist',
'#callback' => 'mylist_checklistapi_checklist_items',
'#description' => t('Un exemple de liste de vérification de déploiement pour le site web.'),
'#help' => t('<p>Ceci est un exemple de liste de vérification de déploiement pour votre site web, fourni par le hook_checklistapi_checklist_items().</p>'),
'#storage' => 'state',
];
return $definitions;
}
Ce hook fait référence à la fonction mylist_checklistapi_checklist_items, qui retourne un tableau multidimensionnel. Vous divisez la liste de vérification en onglets avec des tâches. Chaque tâche définie peut avoir une description et une liste de liens pour aider l'utilisateur à l'exécuter :
/**
* Implémente callback_checklistapi_checklist_items() pour mylist.
*/
function mylist_checklistapi_checklist_items() {
return [
'tab1' => [
'#title' => t('Panneau d'administration Drupal'),
'#description' => t('<p>Configurer l'installation de Drupal pour l'environnement PROD.</p>'),
'aggregate_css_js' => [
'#title' => t('Activer l'agrégation JS/CSS'),
'#description' => t('Activer l'optimisation des ressources du site, c'est crucial pour la vitesse de la page.'),
'handbook_page' => [
'#text' => t('Options de performance'),
'#url' => Url::fromUri('base://admin/config/development/performance'),
],
],
'disable_devel' => [
'#title' => t('Désactiver le module "devel"'),
'handbook_page' => [
'#text' => t('Liste des modules'),
'#url' => Url::fromUri('base://admin/modules'),
],
],
],
'tab2' => [
// ...
],
];
}
Après l'appel du code ci-dessus, chaque utilisateur autorisé du site aura accès à la nouvelle liste de vérification. Lorsqu'ils décocheront des éléments successifs, ils obtiendront des informations claires sur le niveau d'achèvement des tâches :
Définir le contenu via le code a un avantage majeur – la capacité de manipuler les tâches, y compris les marquer automatiquement comme complétées. En regardant l'exemple ci-dessus, vous pourriez écrire un module qui vérifiera par lui-même si l'agrégation CSS/JS est activée et si le module "devel" a été désinstallé. De cette façon, l'utilisateur potentiel gagnera beaucoup de temps.
Voici un exemple d'un morceau de code qui charge la liste de vérification et impose son état initial. Si le module "devel" est actif, la case à cocher pertinente sera automatiquement cochée.
$handler = \Drupal::service('module_handler');
$checklist = checklistapi_checklist_load('mylist');
$progress = [
'tab1' => [
'disable_devel' => $handler->moduleExists('devel'),
],
];
$checklist->saveProgress($progress);
Résumé
Checklist API est très utile pour exécuter des tâches répétitives, telles que celles que vous effectuez lors de la publication d'un nouveau site web. Le module peut également être utilisé comme un outil de soutien à la surveillance de la sécurité et à l'optimisation du site web, réalisées dans le cadre du support Drupal.
Avec peu d'effort, Checklist API offre de nombreuses possibilités et une interface pratique pour les utilisateurs non techniques. Je recommande vivement de se familiariser davantage avec ses fonctionnalités.