--- excerpt.module 2005-12-30 17:31:10 +++ excerpt.module 2006-07-22 02:15:20 @@ -10,7 +10,20 @@ } } +function excerpt_menu($may_cache) { + global $user; + $items = array(); + + if ($may_cache) { + $items[] = array('path' => 'admin/settings/excerpt', 'callback' => 'excerpt_admin_settings', + 'title' => 'excerpt', 'type' => MENU_NORMAL_ITEM, 'access' => user_access('access administration pages')); + } + + return $items; +} + function excerpt_nodeapi(&$node, $op, $arg) { + if (!_excerpt_is_visible($node)) return; switch ($op) { case 'validate': if (trim($node->teaser) == '') { @@ -26,6 +39,7 @@ 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')); @@ -51,4 +65,21 @@ } } +} + +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(), + '#description' => t('Show excerpt for the selected node types.'), + ); + + return system_settings_form('excerpt_admin_settings', $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]; } \ No newline at end of file