Method to partially duplicate a node
I think there are no need of any menu or other submit button.

You can use hook_node_insert for create a different node form partial data of a node  upon creation on node.

The statement is like:

function MODULENAME_node_insert($old_node) {

 if($old_node-&gt;type === 'article'){ // check node type

    $new_node_title =  $old_node-&gt;title; // get partial data from old node

    $node = new stdClass(); // We create a new node object
    $node-&gt;type = "page"; // Or any other content type you want

    $node-&gt;title = $new_node_title; // Assign partial data of old node to new node

    $node-&gt;language = LANGUAGE_NONE; // Or any language code if Locale module is enabled. More on this below *
    $node-&gt;path = array('alias' =&gt; 'your node path'); // Setting a node path
    node_object_prepare($node); // Set some default values.
    $node-&gt;uid = 1; // Or any id you wish
    // Let's add standard body field
    $node-&gt;body[$node-&gt;language][0]['value'] = 'This is a body text';
    $node-&gt;body[$node-&gt;language][0]['summary'] = 'Here goes a summary';
    $node-&gt;body[$node-&gt;language][0]['format'] = 'filtered_html'; // If field has a format, you need to define it. Here we define a default filtered_html format for a body field

    $node = node_submit($node); // Prepare node for a submit
    node_save($node); // After this call we'll get a nid
 }

}


If this not fullfil your requirement then use some other HOOKS provided by Node API