Câu trả lời:
Bạn có thể sử dụng hook_form_alter
để thêm trình xử lý gửi tùy chỉnh nơi bạn có thể đặt đường dẫn chuyển hướng.
Xem FAPI để biết thêm chi tiết về chuyển hướng biểu mẫu.
Bạn có thể tạo quy tắc chuyển hướng người dùng đến bất kỳ trang nào khi họ tạo hoặc chỉnh sửa một loại nội dung cụ thể. Khi bạn thêm quy tắc, chọn "Sau khi tạo nội dung mới", hãy thêm một điều kiện của "Nội dung có loại". Phần You Do sẽ cung cấp cho bạn tùy chọn để chuyển hướng người dùng đến bất kỳ trang nào bạn muốn.
Để chuyển hướng sau khi chỉnh sửa nút, chỉ cần tạo quy tắc mới và chọn "Sau khi cập nhật Nội dung Hiện tại" làm tùy chọn đầu tiên của bạn.
Khi thực hiện việc này, đảm bảo cũng bỏ đặt điểm đến hiện có có thể thường được thêm vào URL khi bạn nhấp vào nút chỉnh sửa để chỉnh sửa nút hiện có.
Thay thế article
vào MYMODULE_form_article_node_form_alter
với tên máy kiểu nội dung của bạn.
/**
* 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
các destination
có nghĩa vụ phải xử lý các trường hợp chỉnh sửa sử dụng, nhưng họ không có hiệu lực trên trang web Drupal 7 của tôi.
Các tài liệu không rõ ràng về nó, nhưng bạn nên sửa đổi $_GET['destination']
biến, không $_REQUEST
hoặc $form_state['redirect']
.
trong Drupal 7, bạn có thể thay đổi biểu mẫu chỉnh sửa nút thành 'đính kèm' chức năng gửi của riêng bạn, trong đó bạn có thể thay đổi form_state của biểu mẫu xác nhận xóa nút để bao gồm tham số 'đích' ... chỉ cần thực hiện điều này trong một chủ đề tùy chỉnh i ' đã được phát triển như là một mô hình con của chủ đề quản trị 'bảy' ...
Tài liệu cho hook_form_FORM_ID_alter
Bạn có thể thêm móc này vào một mẫu / chủ đề, không chỉ cho các mô-đun.
vì vậy trong chủ đề của bạn template.php
, hãy thêm biểu mẫu này thay đổi hook:
function yourtheme_node_delete_form_submit( &$form, &$form_state ) {
$form_state[ 'redirect' ][ 1 ][ 'query' ][ 'destination' ] = "admin/content";
}
và sau đó, thì đấy. không còn được chuyển hướng đến trang chủ sau khi một nút bị xóa.
Giải pháp từ đây http://api.drupal.org/api/drupal/developer%21topics%21forms_api_Vference.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,
);
}
?>