it-swarm-es.com

¿Cómo crear un nuevo nodo mediante programación, cuando se crea un nuevo usuario, en Drupal 7?

En el momento en que se crea un nuevo usuario, quiero crear mediante programación un nuevo nodo (de algún tipo definido) y convertirlo en el propietario de ese nodo.

¿Cómo puedo hacer esto en Drupal 7?

2
Ek Kosmos

Es correcto que necesita implementar hook_user_insert () . El código que debe implementarse es diferente del código que implementaría en Drupal 6 porque el cuerpo del nodo es un campo, en Drupal 7 (ver - API de campo ).

La implementación de hook_user_insert() debería ser similar a la siguiente.

function mymodule_user_insert(&$edit, $account, $category) {
  $body_text = 'This is the text contained in the node body.'; // [1]
  $node = new stdClass();
  $node->type = 'article';  // [1]
  node_object_prepare($node);

  $node->language = LANGUAGE_NONE;

  $node->body[$node->language][0]['value']   = $body_text;
  $node->body[$node->language][0]['summary'] = text_summary($body_text);
  $node->body[$node->language][0]['format']  = 'filtered_html';

  $node->title    = 'Node Created Programmatically on ' . date('c'); // [1]
  $node->uid      = $account->uid;

  $path = 'content/programmatically_created_node_' . date('YmdHis'); // [1]
  $node->path = array('alias' => $path);

  node_save($node);
}

Las líneas marcadas con [1] son las piezas que necesita personalizar.

5
kiamlaluno

Esto se hace básicamente como Drupal 6. Cree un objeto con los valores requeridos y use node_save. Todo esto debería suceder en hook_user op insert:

module_user_insert(&$edit, $account, $category) {
  $node = new stdClass();
  $node->title = 'title'
  $node->uid = $account->uid;
  node_save($node);
}
2
googletorp

Deberá crear un nuevo nodo dentro de una implementación de hook_user_insert .

1
tim.plunkett