The basic answer to both questions is hook_form_alter()
. You'd need to check the $form_id
parameter to determine if you are on a node edit form (they get the id [contenttype]_node_form
, see the first line of the example implementation on the API documentation page for a way to trigger for all content types).
For your need 1, you'd check $node->nid
to see if it is your specific node. If so, you'd alter the forms submit button definitions '#access' entry to disable it, if you're not on a preview page (see the node_form()
function from the node module on how Drupal does this - pretty far to the end of the function).
For your need 2, you'd simply change the '#value' entries of the submit and preview button definitions in the $form array.