我正在尝试使用drupal_execute创建Drupal节点,它工作正常。 唯一的问题是我无法将新节点添加为除登录用户之外的其他用户。
好像$ form_state ['values'] ['name']无效!
这甚至可能吗?
任何帮助将不胜感激!
答案 0 :(得分:1)
参见https://drupal.org/node/178506#comment-726479 - 虽然它最初提到了Drupal 5.7,但它也适用于Drupal 6。它的要点是,你必须(safely) impersonate another user。通过这样做,您可以访问用户可以访问的任何功能。
冒充用户就像
一样简单global $user;
$original_user = $user;
$old_state = session_save_session();
session_save_session(FALSE);
$user = user_load(array('uid' => 1));
// Take your action here where you pretend to be the user with UID = 1 (typically the admin user on a site)
// If your code fails, it's not a problem because the session will not be saved
$user = $original_user;
session_save_session($old_state);
// From here on the $user is back to normal so it's OK for the session to be saved
然后您必须采取的操作是使用您拥有的表单数组运行drupal_execute()
。