Index: feeds.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/feeds/feeds.module,v retrieving revision 1.54 diff -u -p -r1.54 feeds.module --- feeds.module 10 Sep 2010 14:42:07 -0000 1.54 +++ feeds.module 14 Sep 2010 06:13:36 -0000 @@ -313,7 +313,12 @@ function feeds_nodeapi(&$node, $op, $for case 'delete': // Remove feed from scheduler and delete source. feeds_scheduler()->remove($importer_id, 'import', $node->nid); - feeds_source($importer_id, $node->nid)->delete(); + $source = feeds_source($importer_id, $node->nid); + + if (feeds_importer($importer_id)->config['processor']['config']['delete_nodes']) { + $source->clear(); + } + $source->delete(); break; } } Index: plugins/FeedsNodeProcessor.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/feeds/plugins/FeedsNodeProcessor.inc,v retrieving revision 1.50 diff -u -p -r1.50 FeedsNodeProcessor.inc --- plugins/FeedsNodeProcessor.inc 7 Sep 2010 17:29:36 -0000 1.50 +++ plugins/FeedsNodeProcessor.inc 14 Sep 2010 06:13:36 -0000 @@ -150,6 +150,7 @@ class FeedsNodeProcessor extends FeedsPr 'expire' => FEEDS_EXPIRE_NEVER, 'mappings' => array(), 'author' => 0, + 'delete_nodes' => FALSE, ); } @@ -205,6 +206,18 @@ class FeedsNodeProcessor extends FeedsPr ), '#default_value' => $this->config['update_existing'], ); + $form['delete_nodes'] = array( + '#type' => 'checkbox', + '#title' => t('Delete nodes when deleting feed node'), + '#description' => t('Select whether or not to delete all of the feed items belonging to the feed subscription when the subscription is deleted.'), + '#default_value' => $this->config['delete_nodes'], + ); + + if (feeds_importer($this->id)->config['content_type'] == '') { + $form['delete_nodes']['#disabled'] = TRUE; + $form['delete_nodes']['#default_value'] = FALSE; + } + return $form; }