回答:
を使用hook_form_alter
して、リダイレクトパスを設定できるカスタム送信ハンドラを追加できます。
フォームのリダイレクトの詳細については、FAPIを参照してください。
ユーザーが特定のコンテンツタイプを作成または編集するときに、ユーザーを任意のページにリダイレクトするルールを作成できます。ルールを追加する場合、「新しいコンテンツの作成後」を選択し、「コンテンツがタイプ」の条件も追加します。あなたが行うセクションは、あなたが望む任意のページにユーザーをリダイレクトするオプションを提供します。
ノードの編集後のリダイレクトについては、新しいルールを作成し、最初のオプションとして「既存のコンテンツの更新後」を選択するだけです。
これを行う場合は、編集ボタンをクリックして既存のノードを編集するときに通常URLに追加される既存の宛先も設定解除してください。
置き換えarticle
でMYMODULE_form_article_node_form_alter
コンテンツタイプのマシン名で。
/**
* Implements hook_form_BASE_FORM_ID_alter().
*/
function MYMODULE_form_article_node_form_alter(&$form, &$form_state, $form_id) {
$form['actions']['submit']['#submit'][] = '_MYMODULE_node_form_redirect';
}
/**
* Submit callback.
*/
function _MYMODULE_node_form_redirect($form, &$form_state) {
// Unset destination first.
unset($_GET['destination']);
unset($_REQUEST['edit']['destination']);
$form_state['redirect'] = 'FOO/BAR';
}
unset
destination
ドキュメントはそれに非常に明確ではありませんが、あなたは変更する必要があり$_GET['destination']
、変数、ではない$_REQUEST
かと$form_state['redirect']
。
Drupal 7では、ノード編集フォームを変更して独自の送信関数を「アタッチ」できます。この場合、ノード削除確認フォームのform_stateを変更して「destination」パラメーターを含めることができます...これはカスタムテーマiで行いました「7」の管理テーマのサブテーマとして開発されてきました...
hook_form_FORM_ID_alterのドキュメント
このフックは、モジュールだけでなく、テンプレート/テーマに追加できます。
テーマのに、template.php
このフォームのalterフックを追加します。
function yourtheme_node_delete_form_submit( &$form, &$form_state ) {
$form_state[ 'redirect' ][ 1 ][ 'query' ][ 'destination' ] = "admin/content";
}
そして、出来上がり。ノードが削除された後にホームページにリダイレクトされなくなりました。
ここからの解決策http://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7#comment-18139
<?php
function FORM_NAME_form_submit($form, &$form_state) {
$form_state['redirect'] = array(
// $path
'path/to/redirect/to',
// $options
array('query' => array('key' => 'value')),
// $http_response_code
302,
);
}
?>