At first you need to implement hook_node_presave($node)
Act on a node being inserted or updated.
This hook is invoked from node_save() before the node is saved to the
database. Parameters
$node: The node that is being inserted or updated.
So it reacts when a node is going to be saved , then you have to check if the node type is the proper node type . then setting field value , so this is some code snippet :
function mymodule_node_presave($node) {
if($node->type == "Your Node Type") {
//dsm($node);//it will show the structure of node
// as example
$data = $node->title.'-'.drupal_get_path_alias('node/'$node->nid);
$node->field_alternative_titles_title[$node->language][0]['value'] = "data";//check the node structure,this code wont work for sure
}
}
of-course this is just an snippet , to make it work you have to know the structure of your content type , Devel module will help you , install and enable it so dsm function will work.
hook_node_presave()
might be the best place. It gives you access to the whole node before changes get sent to the database, and you can safely manipulate field data before it gets persisted