node_form_alter

5 node.module node_form_alter($form_id, &$form)
6 node.module node_form_alter(&$form, $form_state, $form_id)

Implementation of hook_form_alter().

File

modules/node.module, line 2203
The core that allows content to be submitted to the site.

Code

function node_form_alter($form_id, &$form) {
  // Node publishing options
  if (isset($form['type']) && $form['type']['#value'] . '_node_settings' == $form_id) {
    $form['workflow']['node_options_' . $form['type']['#value']] = array(
      '#type' => 'checkboxes', 
      '#title' => t('Default options'), 
      '#default_value' => variable_get('node_options_' . $form['type']['#value'], array('status', 'promote')), 
      '#options' => array(
        'status' => t('Published'), 
        'moderate' => t('In moderation queue'), 
        'promote' => t('Promoted to front page'), 
        'sticky' => t('Sticky at top of lists'), 
        'revision' => t('Create new revision'),
      ), 
      '#description' => t('Users with the <em>administer nodes</em> permission will be able to override these options.'),
    );
  }

  // Advanced node search form
  elseif ($form_id == 'search_form' && arg(1) == 'node') {
    // Keyword boxes:
    $form['advanced'] = array(
      '#type' => 'fieldset', 
      '#title' => t('Advanced search'), 
      '#collapsible' => TRUE, 
      '#collapsed' => TRUE, 
      '#attributes' => array('class' => 'search-advanced'),
    );
    $form['advanced']['keywords'] = array(
      '#prefix' => '<div class="criterion">', 
      '#suffix' => '</div>',
    );
    $form['advanced']['keywords']['or'] = array(
      '#type' => 'textfield', 
      '#title' => t('Containing any of the words'), 
      '#size' => 30, 
      '#maxlength' => 255,
    );
    $form['advanced']['keywords']['phrase'] = array(
      '#type' => 'textfield', 
      '#title' => t('Containing the phrase'), 
      '#size' => 30, 
      '#maxlength' => 255,
    );
    $form['advanced']['keywords']['negative'] = array(
      '#type' => 'textfield', 
      '#title' => t('Containing none of the words'), 
      '#size' => 30, 
      '#maxlength' => 255,
    );

    // Taxonomy box:
    if ($taxonomy = module_invoke('taxonomy', 'form_all', 1)) {
      $form['advanced']['category'] = array(
        '#type' => 'select', 
        '#title' => t('Only in the category(s)'), 
        '#prefix' => '<div class="criterion">', 
        '#size' => 10, 
        '#suffix' => '</div>', 
        '#options' => $taxonomy, 
        '#multiple' => TRUE,
      );
    }

    // Node types:
    $types = node_get_types();
    $form['advanced']['type'] = array(
      '#type' => 'checkboxes', 
      '#title' => t('Only of the type(s)'), 
      '#prefix' => '<div class="criterion">', 
      '#suffix' => '</div>', 
      '#options' => $types,
    );
    $form['advanced']['submit'] = array(
      '#type' => 'submit', 
      '#value' => t('Advanced search'), 
      '#prefix' => '<div class="action">', 
      '#suffix' => '</div><br class="clear" />',
    );

    $form['#validate']['node_search_validate'] = array();
  }
}
Login or register to post comments