新しいユーザーが作成されたときに、プログラムで新しいノード(定義されたタイプのノード)を作成して、そのノードの所有者にしたいと考えています。
Drupal 7でこれを行うにはどうすればよいですか?
hook_user_insert() を実装する必要があるのは正しいことです。実装する必要があるコードは、Drupal 6で実装するコードとは異なります。ノード本体はフィールドであるため、Drupal 7で- フィールドAPI )。
hook_user_insert()
の実装は次のようになります。
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);
}
[1]
でマークされた行は、パーソナライズする必要のある部分です。
これは、Drupal 6.とほぼ同じように実行されます。6。必要な値を持つオブジェクトを作成し、_node_save
_を使用します。これはすべて_hook_user
_ op insert
で発生するはずです:
_module_user_insert(&$edit, $account, $category) {
$node = new stdClass();
$node->title = 'title'
$node->uid = $account->uid;
node_save($node);
}
_
hook_user_insert の実装内に新しいノードを作成する必要があります。