drupal_execute node_form

Events happening in the community are now at Drupal community events on www.drupal.org.
siavashg's picture

Hej,
Jag försöker skapa nya noder med hjälp av drupal_execute, men lyckas inte göra det som annan användare än inloggade användaren.

Känns som att $form_state['values']['name'] inte har någon effekt alls.

Alla tips uppskattas!

Comments

Du skulle kunna använda

pontus_nilsson's picture

Du skulle kunna använda node_save() istället:

$node = new stdClass();
$node->type = 'news'; // Eller den maskinnamnet på den innehållstyp du vill skapa
$node->title = 'Min titel';    
$node->uid = 1;
node_save($node);

//Pontus Nilsson, Digitalist

nodetypen som skapas är

siavashg's picture

nodetypen som skapas är kopplade till vissa moduler som ska gå igång när noden skapas, vilket de inte gör när jag skapar noden med hjälp av node_save.

men är det så att man inte kan välja användare om man skapar en node med drupal_execute? då undrar jag varför $form_state['values']['name'] finns med i alla exemplar jag hittar på nätet om den nu inte gör någon skillnad.

lösningen

siavashg's picture

svaret på denna gåta är att $form_state['values']['name'] inte har någon påverkan på skaparen av noden.
det man behöver göra är att tillfälligt skriva över session variable för inloggade användare, skapa noden och sen återställa gamla sessionen för att fel användare inte blir kvar inloggad.

lösningen:

global $user;
$original_user = $user;
$old_state = session_save_session();
session_save_session(FALSE);
$user = user_load(array('uid' => 1));

// lägg till noden här via drupal_execute

$user = $original_user;
session_save_session($old_state);

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week