Adding extra button on node edit form with save functionality enabled I want to add an extra button on the node/edit drupal 7 form.
That can be done by hooking into the form_alter:

$form['actions']['push'] = array(
 '#type' =&gt; 'submit',
 '#value' =&gt; t('Save &amp;&amp; Push'),
 '#callback' =&gt; 'my_callback',
);


In my callback I want to run my custom Push function and save the node. 

Any ideas how to achieve this? 

function my_callback_action(&amp;$form, &amp;$form_state) {
  dpm('my_callback_action');
  return '';
}
You need to add your own extra submit function to your form. The big question is - where is default one?

If default function is attached to form itself, all you need to do is:

$form['#submit'][] = 'my_callback';


Then in callback test if it was your button that triggered it.

If it's attached to button, you need to copy original button's submit array to your button, and attach your callback:

$form['yourbutton']['#submit'] =  $form['originalbutton']['#submit'];
$form['yourbutton']['#submit'][] ='my_callback';


If it's attached to form, but you want yours attached to button, the way is of course:

$form['yourbutton']['#submit'] = $form['#submit'];
$form['yourbutton']['#submit'][] = 'my_callback';