diff --git a/modules/path/path.admin.inc b/modules/path/path.admin.inc index 28b0618..60e02bb 100644 --- a/modules/path/path.admin.inc +++ b/modules/path/path.admin.inc @@ -11,16 +11,20 @@ * When filter key passed, perform a standard search on the given key, * and return the list of matching URL aliases. */ -function path_admin_overview($keys = NULL) { +function path_admin_overview() { + // Fill vars from GET arguments. + $keys = isset($_GET['input']) ? $_GET['input'] : ''; + $type = isset($_GET['type']) ? $_GET['type'] : 'alias'; + // Add the filter form above the overview table. - $build['path_admin_filter_form'] = drupal_get_form('path_admin_filter_form', $keys); + $build['path_admin_filter_form'] = drupal_get_form('path_admin_filter_form', $keys, $type); // Enable language column if locale is enabled or if we have any alias with language $alias_exists = (bool) db_query_range('SELECT 1 FROM {url_alias} WHERE language <> :language', 0, 1, array(':language' => LANGUAGE_NONE))->fetchField(); $multilanguage = (module_exists('locale') || $alias_exists); $header = array(); $header[] = array('data' => t('Alias'), 'field' => 'alias', 'sort' => 'asc'); - $header[] = array('data' => t('System'), 'field' => 'source'); + $header[] = array('data' => t('System'), 'field' => 'source', 'sort' => 'asc'); if ($multilanguage) { $header[] = array('data' => t('Language'), 'field' => 'language'); } @@ -29,7 +33,7 @@ function path_admin_overview($keys = NULL) { $query = db_select('url_alias')->extend('PagerDefault')->extend('TableSort'); if ($keys) { // Replace wildcards with PDO wildcards. - $query->condition('alias', '%' . preg_replace('!\*+!', '%', $keys) . '%', 'LIKE'); + $query->condition($type, '%' . preg_replace('!\*+!', '%', $keys) . '%', 'LIKE'); } $result = $query ->fields('url_alias') @@ -266,13 +270,27 @@ function path_admin_delete_confirm_submit($form, &$form_state) { * @see path_admin_filter_form_submit_filter() * @see path_admin_filter_form_submit_reset() */ -function path_admin_filter_form($form, &$form_state, $keys = '') { +function path_admin_filter_form($form, &$form_state, $keys, $type) { $form['#attributes'] = array('class' => array('search-form')); - $form['basic'] = array('#type' => 'fieldset', + $form['basic'] = array( + '#type' => 'fieldset', '#title' => t('Filter aliases'), '#attributes' => array('class' => array('container-inline')), ); - $form['basic']['filter'] = array( + $filter_type = array( + 'alias' => t('Alias'), + 'source' => t('Source') + ); + $form['basic']['system']['radio'] = array( + '#type' => 'radios', + '#options' => $filter_type, + '#title' => 'Choose your filter', + '#title_display' => 'invisible', + '#default_value' => $type, + '#maxlength' => 128, + '#size' => 25, + ); + $form['basic']['system']['filter'] = array( '#type' => 'textfield', '#title' => 'Path alias', '#title_display' => 'invisible', @@ -280,13 +298,13 @@ function path_admin_filter_form($form, &$form_state, $keys = '') { '#maxlength' => 128, '#size' => 25, ); - $form['basic']['submit'] = array( + $form['basic']['system']['submit'] = array( '#type' => 'submit', '#value' => t('Filter'), '#submit' => array('path_admin_filter_form_submit_filter'), ); if ($keys) { - $form['basic']['reset'] = array( + $form['basic']['system']['reset'] = array( '#type' => 'submit', '#value' => t('Reset'), '#submit' => array('path_admin_filter_form_submit_reset'), @@ -301,7 +319,15 @@ function path_admin_filter_form($form, &$form_state, $keys = '') { * @see path_admin_filter_form_submit_reset() */ function path_admin_filter_form_submit_filter($form, &$form_state) { - $form_state['redirect'] = 'admin/config/search/path/list/' . trim($form_state['values']['filter']); + $form_state['redirect'] = array( + 'admin/config/search/path/list/', + array( + 'query' => array( + 'type' => $form_state['input']['radio'], + 'input' => $form_state['values']['filter'], + ), + ), + ); } /**