Última parte.
Código PHP:
Ver original//Mediante esta función realizamos la clonación.
function CrearClon($form, $form_state) {
//Mediante esta función obtenemos todos los valores que seleccionamos en el campo curso_select
foreach ( $form['cursos_a_clonar_fieldset']['cursoscontenedor']['curso_select']['#value'] as $valores_cursos_select) {
$node_curso = node_load($valores_cursos_select);
foreach ($form['cursos_a_clonar_fieldset']['materiascontenedor']['materias_select']['#value'] as $valores_materias_select) {
$node_materia = node_load($valores_materias_select);
global $user;
$newNode = new stdClass();
$newNode->type = 'crear_materias';
node_object_prepare($newNode);
$newNode->status = 1;
$newNode->comment = 0;
$newNode->promote = 0;
$newNode->moderate = 0;
$newNode->sticky = 0;
$newNode->language = 'es';
$newNode->uid = $user->uid;
//campos customizados.
$newNode->field_materia_descripcion['und'][0] = $node_materia->field_materia_descripcion['und'][0];
$newNode->field_materia_curso_asignado['und'][0]['nid'] = $node_curso->nid;
$newNode->field_materia_tanda['und'][0]['value'] = $node_curso->field_curso_tanda['und'][0]['value'];
$titulo_del_nodo= $newNode->field_materia_descripcion['und'][0]['value']. ' - ' .$node_curso->title;
$node_title_exist=validate_nodetitle_exist($titulo_del_nodo);
if ($node_title_exist==0) {
node_save($newNode);
}
else{
}
}
drupal_set_message('Ejecucion realizada correctamente.');
}