Posted by siavashg on October 3, 2013 at 9:04am
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
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
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
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);