how to catch when node is being promoted? I would like to take some action when node is being promoted. I tried using node_validate or node_presave but none of them is working.

What is the quickest way to do this?

thanks
You can do it using hook_node_presave ...

Below is the code which works for me... Trick is here you need to make sure if node is new and promoted take action.. If node already promoted that means you are editing a node... You need to check whether original was unpromoted and after edit it is promoted then take action...

function YOURMODULENAME_node_presave($node) {
  if ($node-&gt;is_new &amp;&amp; $node-&gt;promote == 1) {
    drupal_set_message("NODE PROMOTED");
    // Take Some Action
  }
  else if ($node-&gt;promote == 1 &amp;&amp; $node-&gt;original-&gt;promote == 0){
    drupal_set_message("NODE PROMOTED");
    // Take some action
  }
}