Drupal 7: cambiare il tipo di contenuto di un nodo
Pubblicato: 23 Giu 2015 | Aggiornato: 03 Ott 2015 | Autore: Mentor
Se dobbiamo cambiare il tipo di contenuto di qualche nodo in Drupal 7 la soluzione più semplice è lavorare direttamente sul database. Drupal 7 memorizza il tipo di contenuto di un nodo nel database nella tabella node sotto il valore type e se il nodo ha dei commenti ci sono riferimenti ad essi nel database nelle tabelle field_data_comment_body e field_revision_comment_body sotto il valore bundle.
Capito come Drupal memorizza queste informazioni è semplice modificare il tipo di contenuto di un nodo con una qwery:
UPDATE node
SET type = 'NEW_NODE_TYPE'
WHERE nid=NODE_ID
e se si cambia il tipo di contenuto di più nodi che hanno qualche commento dobbiamo aggiornare anche le tabelle field_data_comment_body:
UPDATE field_data_comment_body
SET bundle = 'comment_node_NEW_NODE_TYPE'
WHERE entity_id IN (SELECT cid FROM comment WHERE nid IN (SELECT nid FROM node WHERE type = 'NEW_NODE_TYPE' ))
e field_revision_comment_body:
UPDATE field_revision_comment_body
SET bundle = 'comment_node_NEW_NODE_TYPE'
WHERE entity_id IN (SELECT cid FROM comment WHERE nid IN (SELECT nid FROM node WHERE type = 'NEW_NODE_TYPE' ))
Tags: