我正在尝试使用 drupal_execute 创建 Drupal 节点,它工作正常。唯一的问题是我无法将新节点添加为登录用户以外的其他用户。
好像 $form_state['values']['name'] 没有效果!
这甚至可能吗?
任何帮助将不胜感激!
请参阅https://drupal.org/node/178506#comment-726479 - 虽然它一开始提到 Drupal 5.7,但它也适用于 Drupal 6。它的要点是,您必须(安全地)冒充另一个用户。通过这样做,您可以访问用户可以访问的任何功能。
模拟用户很简单
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()
使用您拥有的表单数组运行。