web-dev-qa-db-fra.com

Comment puis-je modifier en bloc les champs ou la taxonomie des nœuds?

Je travaille sur un site qui a besoin d'un balisage en masse sur les nœuds. Le port D8 Core View Bulk Operations Port est "simple" ( https://www.drupal.org/node/1823572 ) et il n'a pas de "modification des valeurs d'entité" que j'ai utilisé pour cet utilisateur -cas en D7. Il n'y a pas de version taguée D8 de contrib VBO que je puisse trouver.

Mon cas d'utilisation spécifique est que je dois grouper des groupes d'articles de blog avec des termes uniques. J'ai importé en vrac environ 2000 nœuds de wordpress et j'ai besoin de leur appliquer de nouvelles balises. Une fois l'ID du backlog balisé, je n'ai plus vraiment besoin de procéder à une édition en bloc. (Mais je suis sûr que beaucoup les gens ont des cas d'utilisation similaires, comme des champs d'édition en bloc ou des balises qui ne sont pas des tâches ponctuelles)

Les actions font partie de Core, il peut donc être possible d'écrire des actions personnalisées pour mon cas d'utilisation (nœud de tag avec terme de taxonomie X, Y ou Z). Cette documentation semble la plus prometteuse. https://www.drupal.org/node/2020549

Quelqu'un peut-il confirmer que c'est le meilleur moyen de modifier en bloc les nœuds ou existe-t-il une approche différente que je devrais envisager?

8
Aidan Foster

Drupal core ne fournit pas cette fonctionnalité, donc oui, vous devez l'implémenter vous-même.

Oui, vous pouvez implémenter votre propre plugin d'action pour ce faire. Vous pouvez également avoir un formulaire pour sélectionner la balise que vous souhaitez appliquer. Jetez un œil au plugin d'action de suppression de nœud, qui utilise un formulaire de confirmation, mais vous pouvez implémenter toutes les fonctionnalités que vous souhaitez dans ce formulaire.

Gardez à l'esprit que Drupal core manque une autre fonctionnalité importante pour votre cas d'utilisation. La possibilité d'appliquer une action groupée à plusieurs pages. Le mieux que vous puissiez faire jusqu'à ce qu'il y ait un port de la module contrib pour fournir ceci afin d'augmenter le nombre de lignes par page, de sorte que vous devez le répéter moins de fois.

6
Berdir

La réponse de Berdir est exacte, vous devez écrire votre propre action.

J'ai trouvé cet article extrêmement utile pour y parvenir rapidement.

Fondamentalement, lorsque vous créez et enregistrez une nouvelle action, vous pouvez spécifier un "formulaire de confirmation", par exemple "Êtes-vous sûr de vouloir le faire?". Vous pouvez fournir un formulaire pour cette étape qui accepte plus d'informations, puis utilise ces informations pour effectuer une opération par lots sur les nœuds/entités dont les ID ont été transmis.

Notez que, comme l'a indiqué Berdir, l'action d'effectuer une opération en bloc sur plusieurs pages est toujours (à ma connaissance) manquante.

3
autopoietic

affiche les opérations en bloc ( https://www.drupal.org/project/views_bulk_operations ) donne un champ de vues spécial qui vous permettra de modifier en bloc les champs

bulk_update_fields promet également exactement cela. C'est un nouveau module pour drupal 8 et semble fonctionner avec quelques avertissements (dans mon cas)

vous pouvez l'installer seul et aller à content/node et l'utiliser comme action bulk update fields to another value ou si vous avez view bulk operations installé en priorité content/node chemin vous pouvez éditer la vue et une nouvelle action sera disponible (qui devra être activée)

1
GiorgosK