2010-01-27 5 views
2

question rapide ... Je penseDrupal - mise à jour le type de contenu avec de nouveaux champs ne met pas à jour le contenu existant

J'ai fait un site qui a des drupal types de contenu personnalisé. J'ai créé une charge d'enregistrements avec ceux-ci, puis j'ai dû modifier le type de contenu personnalisé pour modifier l'un des champs et lui donner une nouvelle valeur par défaut.

Le problème est que les enregistrements existants ne sont pas mis à jour avec cette valeur par défaut. Apparemment je dois aller et ré-éditer tout pour ajouter la valeur par défaut.

Les nouveaux enregistrements ont la valeur par défaut. Pas de problème là-bas.

Est-ce juste une chose Drupal ou est-ce que je manque un truc?

Merci, Hugh

Répondre

2

Je suis sûr que ce soit un « Drupal chose » (plus précisément, une chose CCK;)

Je suis tombé sur ce problème une fois pour autant que je me souviens , n'a trouvé aucune logique dans CCK pour appliquer des modifications rétroactivement aux nœuds existants. Vous devrez donc assurer un cycle de chargement/enregistrement pour chaque nœud affecté d'une manière ou d'une autre. Pour de petites quantités, cela peut être fait via l'une ou l'autre opération en bloc sur 'admin/content/node/overview'. Pour de plus grandes quantités de nœuds, cela peut nécessiter un petit script appelant node_load(), node_save() sur tous les nœuds affectés.

+0

Salut Henrik, ouais je craignais que ce serait le cas! Merci pour le conseil, je vais jeter un coup d'oeil dans tout le script. – MrFidge

0

utilisant SQL, étant donné que les noeuds avec la valeur de champ non établies sont

SELECT nid,vid 
from node where type='procedure' and nid not in (select entity_id from field_data_field_pr_choix_du_document) 

field_data_field_pr_choix_du_document étant la table correspondant à mon champ et contenant une valeur nominale d'entrée d'ensemble de l'ID d'entité referinng le noeud

i a fait en utilisant SQL insert ... select syntaxe

https://dev.mysql.com/doc/refman/5.5/en/insert-select.html

INSERT INTO `field_data_field_pr_choix_du_document` (`entity_type`, `bundle`, `deleted`, `entity_id`, `revision_id`, `language`, `delta`, `field_pr_choix_du_document_value`) 
SELECT 'node','procedure',0,nid,vid,'und',0,'Importer un document' 
from node where type='procedure' and nid not in (select entity_id from field_data_field_pr_choix_du_document) 
0

affichage pour tous ceux qui à l'avenir: https://www.drupal.org/project/field_defaults

Permet de mettre à jour le contenu existant lors de la création d'un défaut sur le terrain ou la modification sur un champ existant

+0

Bienvenue dans Stack Overflow! Bien que cela puisse répondre à la question, [il serait préférable] (http://meta.stackoverflow.com/q/8259) d'inclure les parties essentielles de la réponse ici, et de fournir le lien pour référence. – IKavanagh

Questions connexes