function custom_form_node_form_alter(&$form, &$form_state, $form_id) {
if ($form['#node']->type == 'custom') {
$form['actions']['submit']['#value'] = t('Add Entry');
$form['field_custom_email']['und'][0]['value']['#element_validate'] = array('_custom_form_validate_email');
$form['#submit'][] = 'custom_node_submit';
}
}
function custom_node_submit($form, &$form_state) {
$form_state['redirect'] = 'choose/your/path';
}
कोड फॉर्म को सबमिट करने के लिए क्लिक किए गए बटन से स्वतंत्र रूप से पुनर्निर्देशित करता है। यदि आप किसी फॉर्म को केवल तब सबमिट करना चाहते हैं जब एक विशिष्ट सबमिशन बटन पर क्लिक किया जाता है, तो आपको निम्नलिखित कोड का उपयोग करना चाहिए।
function custom_form_node_form_alter(&$form, &$form_state, $form_id) {
if ($form['#node']->type == 'custom') {
$form['actions']['submit']['#value'] = t('Add Entry');
$form['field_custom_email']['und'][0]['value']['#element_validate'] = array('_custom_form_validate_email');
$form['actions']['submit']['#submit'][] = 'custom_node_submit';
}
}
function custom_node_submit($form, &$form_state) {
$form_state['redirect'] = 'choose/your/path';
}
- फॉर्म आईडी में हाइफ़न नहीं है। फॉर्म आईडी PHP फ़ंक्शन का नाम है जो फॉर्म (उर्फ फॉर्म बिल्डर) उत्पन्न करता है, और PHP फ़ंक्शन में इसके नाम में हाइफ़न नहीं हो सकते हैं।
- आईडी ID हुक_फॉर्म_लेटर () , हुक_फॉर्म_बीने_फ्रेम_आईडी_लेटर () , और हुक_फॉर्म_फॉर्म_एडलेटर () के कार्यान्वयन के लिए पारित किया गया है ।
hook_form_FORM_ID_alter()
वास्तव में इसकी आवश्यकता नहीं है, क्योंकि इसे एक विशिष्ट रूप के लिए कहा जाता है, जबकि अन्य दो हुक एक से अधिक रूपों के लिए लगाए जाते हैं।
- पहला कार्य हुक_फॉर्म_नए_से_फोर्म_आईडी_अल्टर () का कार्यान्वयन है ; इस स्थिति में, बेस फॉर्म आईडी "नोड_फॉर्म" है जो नोड एडिट फॉर्म के लिए आधार फॉर्म है।
- नोड एडिट फॉर्म में सम्मिलित है
$form['#node']
, जो कि एडिट की जा रही वस्तु के लिए नोड ऑब्जेक्ट है; "कस्टम" उस सामग्री प्रकार के लिए संक्षिप्त आईडी है जिसे आप नोड संपादित करने के बाद उपयोगकर्ताओं को पुनर्निर्देशित करना चाहते हैं।
- फेरबदल
$form_state['redirect']
से hook_form_alter()
कोई असर नहीं करता है; इसे सबमिशन हैंडलर से सेट करना होगा।