0

我正在尝试使用 drupal_execute 创建 Drupal 节点,它工作正常。唯一的问题是我无法将新节点添加为登录用户以外的其他用户。

好像 $form_state['values']['name'] 没有效果!

这甚至可能吗?

任何帮助将不胜感激!

4

1 回答 1

1

请参阅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()使用您拥有的表单数组运行。

于 2013-10-04T10:08:57.920 回答