actions_actions_map |
Actions : Actions de cartographie |
---|---|
PHP | Drupal |
Syntaxe
function actions_actions_map($actions) |
Paramètres
Nom | Description |
---|---|
$actions | Ce paramètre permet d'indiquer un tableau associatif avec les noms de fonctions ou les clefs d'identificateur d'action et des tableaux associatifs avec les clefs «label», «type»,... |
Retour
Valeur | Description |
---|---|
tableau associatif | Ces valeurs permettent d'indiquer les composantes. |
Description
Cette fonction permet de créer un tableau haché de clefs associatives de noms ou d'identificateurs de fonction.
Remarques
- Fonction spécifique au module Actions : La fonction actions_actions_map() fait partie du module Actions de Drupal. Son rôle principal est de fournir une cartographie des actions disponibles, c'est-à-dire une liste d'actions qui peuvent être exécutées sur des entités ou des événements du système.
- Utilisation dans Drupal 7 : Dans Drupal 7, cette fonction retourne un tableau associatif reliant les actions à des catégories ou types d'événements. Ce tableau est utilisé pour déterminer quelles actions sont disponibles pour une configuration donnée, comme les règles de déclenchement (Triggers).
- Exemple de sortie de la fonction : Une sortie typique de actions_actions_map() dans Drupal 7 pourrait ressembler à ceci :
- Interaction avec les déclencheurs et Règles (Rules) : Cette fonction permet d'enregistrer les actions dans le système des déclencheurs (Triggers), une fonctionnalité étant utilisée dans Drupal 7 pour automatiser certaines tâches. Toutefois, Drupal 8 et 9 ont remplacé ce système par le module Rules, utilisant une approche plus flexible et orientée objet.
- Évolution et disparition dans Drupal 8+ : Avec l'arrivée de Drupal 8, actions_actions_map() a été supprimée, car le système d'actions a été repensé autour des Plugiciels d'actions (ActionBase). Désormais, chaque action est définie comme un plugiciel avec des métadonnées spécifiques, permettant plus de modularité.
- Alternative en Drupal 8 et 9 : Plugiciels d'actions : À la place de actions_actions_map(), les actions sont désormais définies dans des classes PHP comme ceci :
- namespace Drupal\custom_module\Plugin\Action;
- use Drupal\Core\Action\ActionBase;
- use Drupal\Core\Session\AccountInterface;
- /**
- * Publier un noeud.
- *
- * @Action(
- * id = "node_publish",
- * label = @Translation("Publish content"),
- * type = "node"
- * )
- */
- class NodePublishAction extends ActionBase {
- public function execute($entity = NULL) {
- if ($entity) {
- $entity->setPublished(TRUE)->save();
- }
- }
- }
- Impact sur les modules personnalisés : Les modules personnalisés utilisant actions_actions_map() en Drupal 7 doivent être complètement refondus lors d'une migration vers Drupal 8+. Il faut réécrire toutes les actions sous forme de plugins et adapter leur utilisation en fonction de l'API moderne.
- Amélioration de la gestion des permissions : Dans Drupal 7, actions_actions_map() ne permettait pas de gérer précisément les permissions pour chaque action. Avec Drupal 8+, chaque action plugiciel peut définir des conditions spécifiques d'exécution et de permission, améliorant ainsi la sécurité et la gestion des rôles utilisateurs.
Cela signifie que certaines actions (exemple publier un contenu, bloquer un utilisateur) sont associées à des types d'entités spécifiques (exemple node, user).
Cela offre une meilleure intégration avec les services de Drupal et le système d'automatisation des tâches.
Dernière mise à jour : Mardi, le 2 décembre 2014