07
fev
2011

Drupal 6 - Criar, atualizar e deletar nodes com campos CCK usando PHP

Precisei desenvolver um script de importação e resolvi compartilhar essa dica de como criar, atualizar e deletar nodes com campos CCK através do PHP.

Para criar:

// Essas duas linhas são para a execução do bootstrap do Drupal, tenha certeza de que este arquivo está na raiz do mesmo.
require 'includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

// Construindo o objeto node
$node = new stdClass();
$node->type = 'story'; // Especifique aqui o seu tipo de conteúdo
node_object_prepare($node); // Essa função preenche os dados básicos como uid, status, promote, status, date, created e revision properties. Você pode removê-la e preenchê-los manualmente.

// Aqui você fornece dados básicos como título e corpo.
$node->title = "Meu título";
$node->body = "Texto do corpo do node, caso houver";

// Adicionar um campo CCK
$node->field_SEU_CAMPO_CUSTOMIZADO_1[0]['value'] = 'DADOS_1';
$node->field_SEU_CAMPO_CUSTOMIZADO_2[0]['value'] = 'DADOS_2';

// Salva o node
node_save($node);
?>

Para atualizar:


//carrega o bootstrap
require_once('includes/bootstrap.inc');
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

//carrega o node
$node = node_load(18); //note que estamos passando um node id como parâmetro
$node->title = "New title"; //muda o título
$node->field_campo_cck[0]['value'] = 150; //trocando o valor de um campo cck para 150

//Preparando o node para salvar e executando a atualização.
node_submit($node);
node_save($node);
?>

Para deletar basta usar a função node_delete($nid) passando o Node id como parâmetro(não esqueça do bootstrap.

Para campos CCK mais avançados você pode consultar este artigo.

Usuários do Drupal 7, aqui tem um artigo mostrando como fazer nele.

Sintam-se livres para comentar, tirar dúvidas ou sugerir alternativas.