views:

62

answers:

1

I want to add a custom button to drupal create form so if the user clicked on it instead of submit button, the workflow state of the created object change to another state(not the default first state) any suggestion?

+4  A: 

To modify the default forms generated by drupal you have to add a form_alter hook to your module. You can do it by defining a function like modulename_form_alter assuming the name of your module is modulename. The drupal system passed the form array and the form_state array which you can use to override the default behavior. In your case, the complete function would look something like this.

function modulename_form_alter(&$form, $form_state, $form_id) {
    if($form_id == 'what you want') {
        $form['buttons']['another_button'] = array(
            '#type'   => 'submit',
            '#value'  => 'Add to another state',
            '#submit' => array('modulename_custom_form_submit')
        );
    }
}

function modulename_custom_form_submit($form, &$form_state) {
    if($form_state['values']['another_button'] == 'Add to another state') {
        //Do your thing
    }
}

After you made the necessary modifications, you can simply submit to the default submit action of the creation form.

Nithesh Chandra