drupal alter node edit form

sisko picture sisko · Nov 23, 2012 · Viewed 21.9k times · Source

How can I add a custom configuration area to a node edit form just beneath the Authoring Information & Publishing Options section?

Answer

awm picture awm · Nov 25, 2012

You can use hook_form_FORM_ID_alter(). Example below:

function my_module_form_node_form_alter(&$form, $form_state) {
  // if you are targeting a specific content type then 
  // you can access the type:
  $type = $form['#node']->type;
  // Then
  if ($type == 'my_content_type') {
  //  use a contact settings for the sake of this example
   $form['contact'] = array(
    '#type' => 'fieldset', 
    '#title' => t('Contact settings'), 
    '#weight' => 100, 
    '#collapsible' => TRUE, 
    '#collapsed' => FALSE,
   );
   // add simple checkbox to the field set
   $form['contact']['approve'] = array(
     '#type' =>'checkbox', 
     '#title' => t('Contact me'),
   );
  } 
}

Now For storing the data I encourage you to see the examples project; it has many code examples with lots of documentation. Also, Check the Form API for more information on different types of form elements. Hope this helps.