node_form_search_form_alter

  1. drupal
    1. 8
    2. 7
Versions
7 – 8 node_form_search_form_alter(&$form, $form_state)

Implements hook_form_FORM_ID_alter().

Code

modules/node/node.module, line 2654

<?php
function node_form_search_form_alter(&$form, $form_state) {
  if (isset($form['module']) && $form['module']['#value'] == 'node' && user_access('use advanced search')) {
    // Keyword boxes:
    $form['advanced'] = array(
      '#type' => 'fieldset', 
      '#title' => t('Advanced search'), 
      '#collapsible' => TRUE, 
      '#collapsed' => TRUE, 
      '#attributes' => array('class' => array('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,
    );

    // Node types:
    $types = array_map('check_plain', node_type_get_names());
    $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>', 
      '#weight' => 100,
    );

    // Languages:
    $language_options = array();
    foreach (language_list('language') as $key => $entity) {
      if ($entity->enabled) {
        $language_options[$key] = $entity->name;
      }
    }
    if (count($language_options) > 1) {
      $form['advanced']['language'] = array(
        '#type' => 'checkboxes', 
        '#title' => t('Languages'), 
        '#prefix' => '<div class="criterion">', 
        '#suffix' => '</div>', 
        '#options' => $language_options,
      );
    }

    $form['#validate'][] = 'node_search_validate';
  }
}
?>