जवाबों:
आप 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 में आप नोड सबमिट फॉर्म को अपने स्वयं के सबमिट फ़ंक्शन को 'अटैच' करने के लिए बदल सकते हैं, जिसमें आप 'गंतव्य' पैरामीटर को शामिल करने के लिए नोड डिलीट कन्फर्मेशन फॉर्म के फॉर्म_स्टैट को बदल सकते हैं ... बस मैंने कस्टम थीम में ऐसा किया था ' ve 'सात' व्यवस्थापक विषय के उप-प्रकार के रूप में विकसित हो रहा है ...
Hook_form_FORM_ID_alter के लिए प्रलेखन
आप इस हुक को केवल मॉड्यूल के लिए नहीं, टेम्पलेट / थीम में जोड़ सकते हैं।
तो अपने विषय में template.php
, इस फ़ॉर्म को जोड़ने के हुक जोड़ें:
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,
);
}
?>