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 に答える