Drupal dodawanie węzła w module
Poniżej przykładowy hook w którym dodajemy węzeł określonego typu oraz jego tłumaczenie (jeśli chcemy obsługiwać wersje językowe). Funkcja nazwamodulu_user_insert jest hookiem wykonywanym przy tworzeniu konta użytkownika. Przykładowy kod po dodaniu użytkownika dodaje węzeł określonego typu oraz jego tłumaczenie.
function nazwamodulu_user_insert(&$edit, $account, $category) { $created_user_id = $edit['uid']; $created_user_name = $edit['name']; $created_user_firstname_lastname = $edit['field_imi_i_nazwisko']['und'][0]['value']; $node = new stdClass(); // Tworzymy nowy obiekt $node->type = "profil"; // określamy typ węzła node_object_prepare($node); // ustawiamy domyślne wartości $node->title = $created_user_firstname_lastname;//pole tytułu $node->language = 'pl';//język $node->status = 1;//status (czy opublikowany) $node->promote = 0; $node->sticky = 0; $node->uid = $edit['uid'];//autor (id usera) $node->field_user['und'][0]['uid'] = $edit['uid'];//referencja do pola użytkownika $node->field_czy_wy_wietla_w_grafiku_['und'][0]['value'] = 1;//pole typu boolean $node->field_rodzaj_pracownika['und'][0]['tid'] = 5;//pole typu select $node->workbench_moderation_state_new = 'published';//status (przy dodatkowym module workbench) if($node = node_submit($node)) { // przygotowanie do zapisu node_save($node); //zapis $node->tnid = $tnid = $node->nid; node_save($node); // Aktualizacja węzła - nid już istnieje w bazie danych // Tłumaczenie (en) $node = new stdClass(); $node->type = 'profil'; node_object_prepare($node); $node->uid = $edit['uid']; $node->language = 'en'; $node->title = $created_user_firstname_lastname; $node->status = 1; $node->promote = 0; $node->sticky = 0; $node->uid = $edit['uid']; $node->field_user['und'][0]['uid'] = $edit['uid'];//referencja do pola użytkownika $node->field_czy_wy_wietla_w_grafiku_['und'][0]['value'] = 1;//pole typu boolean $node->field_rodzaj_pracownika['und'][0]['tid'] = 5;//pole typu select $node->workbench_moderation_state_new = 'published'; $node->tnid = $tnid; node_save($node); } }