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.