'fieldset', '#title' => t('Search by title'), '#access' => TRUE, ); $form['admin']['search']['search_term'] = array( '#type' => 'textfield', '#title' => t(''), '#size' => 60, '#default_value' => $searched_for, ); $form['admin']['search']['submit'] = array( '#type' => 'submit', '#value' => t('Search'), ); $form['admin']['search']['clear'] = array( '#type' => 'submit', '#value' => t('Clear'), ); $form['#submit'][] = '_find_content_submit'; if (!empty($results_array) && isset($form['admin']['nodes']['#options'])) { foreach ($form['admin']['nodes']['#options'] as $key => $value) { if (!in_array($key, $results_array)) { unset($form['admin']['nodes']['#options'][$key]); } } } } } /** * Submit function for search form. */ function _find_content_submit($form, &$form_state) { switch ($form_state['clicked_button']['#value']) { case 'Clear': unset($_SESSION['node_overview_search']); unset($_SESSION['node_overview_search_term']); $nodes_to_show = array(); $_SESSION['node_overview_search'] = $nodes_to_show; break; default: unset($_SESSION['node_overview_search']); $search_term = $form['admin']['search']['search_term']['#value']; $_SESSION['node_overview_search_term'] = $search_term; break; } } /** * Implementation of hook_query_TAG_alter (node_access) */ function find_content_query_node_access_alter(QueryAlterableInterface $query) { if ($_GET['q'] == 'admin/content' && isset($_SESSION['node_overview_search_term'])) { $tables =& $query->getTables(); if (isset($tables['n']['table']) && $tables['n']['table'] == 'node') { $query->condition('n.title', '%' . $_SESSION['node_overview_search_term'] . '%', 'LIKE'); } } }