Drupal > Un nouveau module pour supprimer les divs entourant vos champs à la demande
Module contribué par IOSAN — disponible sur drupal.org/project/scheduler_field
Le problème que ce module résout
Planifier la publication ou la dépublication d'un contenu est un besoin récurrent dans tout projet Drupal. Les solutions existantes répondent partiellement à ce besoin, mais elles reposent presque toutes sur des entités personnalisées, se limitent aux nœuds (nodes), ou ne sont pas extensibles sans modifications profondes.
Scheduler Field propose une approche différente : stocker les informations de planification directement dans la table de champ (field table), au plus près de l'entité concernée. Le résultat est un module léger, universel, et conçu pour être étendu.
Principe de fonctionnement
Le module introduit un nouveau type de champ — le champ Schedule — que l'on peut attacher à n'importe quelle entité fieldable de Drupal. Ce champ contient :
- le type d'action planifiée (défini sous forme de plugin),
- une date de début pour l'exécution de l'action,
- une date de fin optionnelle.
L'exécution des actions planifiées est déclenchée par le cron Drupal. À chaque passage, le système vérifie les champs dont les conditions sont remplies et exécute les actions correspondantes.
Une architecture orientée plugins
Le point fort de Scheduler Field est son extensibilité. Les actions disponibles sont définies comme des plugins, ce qui permet à n'importe quelle équipe de développement d'en créer de nouvelles sans modifier le module lui-même.
Deux plugins sont fournis par défaut :
scheduler_field_type_disabled Plugin par défaut. Il n'effectue aucune action planifiée. Il est utilisé lorsque l'on souhaite désactiver la fonctionnalité pour un champ donné.
scheduler_field_type_publication Ce plugin gère la publication et la dépublication d'une entité en modifiant sa propriété status. C'est le cas d'usage le plus courant : publier un article à une date précise, le dépublier automatiquement après une période donnée.
Grâce au système de plugins, il est possible d'implémenter des actions sur mesure, par exemple :
- changer un état de workflow ou de modération (Content Moderation, Workflows),
- modifier la valeur d'un champ,
- envoyer un e-mail ou déclencher une notification,
- appeler un service externe.
Avantages par rapport aux alternatives
Les modules alternatifs existants — scheduler, scheduled_publish, scheduled_updates, scheduled_transitions, advanced_scheduler — partagent plusieurs limites :
- Ils créent des entités personnalisées pour stocker les informations de planification, ce qui complexifie les imports, exports, migrations et requêtes Views.
- Ils se limitent souvent aux nœuds.
- Ils sont rarement extensibles sans développement spécifique.
Scheduler Field stocke toutes les données dans la table de champ standard de Drupal. Cela signifie que les informations de planification sont directement accessibles via Views, intégrables dans des processus de migration, et exportables sans outillage supplémentaire.
Compatibilité
Le module est compatible avec Drupal 8, 9, 10 et 11.
Le plugin de publication fourni par défaut (scheduler_field_type_publication) n'est pas compatible avec le module content_moderation. Il ne gère pas les transitions de révisions. Pour les sites utilisant un workflow de modération, il est recommandé de créer un plugin dédié. Un fil de discussion sur drupal.org (issue #3313975) documente cette démarche.
Ce module a été développé par les équipes tech de IOSAN
N'hésitez pas à nous contacter pour toute question ou si vous avez un projet et souhaitez en savoir plus sur les possibilités du module ou nos services.