--- excerpt.module.ori	Fri Dec 30 12:31:10 2005
+++ excerpt.module	Mon Apr 30 13:47:30 2007
@@ -5,12 +5,30 @@ function excerpt_help($section) {
   switch ($section) {
     case 'admin/modules#description':
       return t('Allows users to enter a separate excerpt for nodes.');
-    case 'admin/node/configure/defaults':
+    case 'admin/settings/excerpt':
       return t('<p>If you want users to be able to enter separate excerpts for nodes, check the <em>excerpt</em> box in the appropriate column.</p>');
   }
 }
 
+function excerpt_menu($may_cache) {
+  $items = array();
+
+  if ($may_cache) {
+    $items[] = array(
+      'path' => 'admin/settings/excerpt',
+      'callback' => 'drupal_get_form',
+      'callback arguments' => array('excerpt_admin_settings'),
+      'title' => t('Excerpt'),
+      'type' => MENU_NORMAL_ITEM,
+      'access' => user_access('administer site configuration'),
+      'description' => t('Select the node types in which to show an excerpt textarea.'),
+    );
+  }
+  return $items;
+}
+
 function excerpt_nodeapi(&$node, $op, $arg) {
+  if (!_excerpt_is_visible($node)) return;
   switch ($op) {
     case 'validate':
       if (trim($node->teaser) == '') {
@@ -26,7 +44,8 @@ function excerpt_nodeapi(&$node, $op, $a
 function excerpt_form_alter($form_id, &$form) {
   if (isset($form['type'])) {
     $node = $form['#node'];
-    
+    if (!_excerpt_is_visible($node)) return;
+
     if ($form['type']['#value'] .'_node_settings' == $form_id) {
       $form['excerpt'] = array('#type' => 'fieldset', '#title' => t('Excerpt'));
       $form['excerpt']['excerpt_options_'. $form['type']['#value']] = array(
@@ -51,4 +70,23 @@ function excerpt_form_alter($form_id, &$
     }
   
   }
-}
\ No newline at end of file
+}
+
+function excerpt_admin_settings() {
+
+  $form['excerpt_node_types'] = array(
+    '#type' => 'checkboxes',
+    '#title' => t('Node type visibility'),
+    '#default_value' => variable_get('excerpt_node_types', ''),
+    '#options' => node_get_types('names'),
+    '#description' => t('Show excerpt for the selected node types.'),
+  );
+
+  return system_settings_form($form);
+}
+
+function _excerpt_is_visible($node) {
+    // check the excerpt visibility for current node type
+    $vis_types = variable_get('excerpt_node_types', '');
+    return $vis_types[$node->type];
+}
