Enabling a custom module after uninstalling it
I found out that you have 2 issues with your hook_install code.


You're adding body field first then saving the node type. It should be the opposite. 
There's no such function called node_add_date_field in Drupal package, unless you've created it yourself in your custom module.


Your hook_install should be as the following code:

function bachecanews_install() {
  $t = get_t();
  $node_bachecanews = array(
    'type' =&gt; 'node_bachecanews',
    'name' =&gt; $t('Bacheca News'),
    'base' =&gt; 'node_content',
    'description' =&gt; $t('Usa Bacheca News per inserire le notizio sul sito.'),
    'body_label' =&gt; $t('Contenuto della News')
  );
  $content_type = node_type_set_defaults($node_bachecanews);
  $status = node_type_save($content_type);
  node_add_body_field($content_type);
  $t_args = array('%name' =&gt; $content_type-&gt;name);
  if ($status == SAVED_UPDATED) { // in caso di modifica
    drupal_set_message($t('Il nuovo tipo di contenuto %name è stato modificato.', $t_args));
  } 
  elseif ($status == SAVED_NEW) { // in caso di creazione
    drupal_set_message($t('Il nuovo tipo di contenuto %name è stato creato.', $t_args));
    watchdog('node', 'Creato il nuovo tipo di contenuto %name.', $t_args, WATCHDOG_NOTICE, l($t('view'), 'admin/structure/types')); 
  }
}


If you want to add additional field to your custom content type and this field is not body field, you use field_create_field() 

As an example, you can look at standard_install().