'fieldset',
'#title' => t('Results per page'),
'#weight' => 0,
'#collapsible' => FALSE,
);
$form['bean_usage_results']['bean_usage_results_per_page'] = array(
'#title' => t('Results per page'),
'#description' => t('How many results display per page on the bean usage page'),
'#type' => 'select',
'#options' => array(
'5' => 5,
'10' => 10,
'15' => 15,
'20' => 20,
'25' => 25,
'30' => 30,
'35' => 35,
'40' => 40,
'45' => 45,
'50' => 50,
),
'#default_value' => variable_get('bean_usage_results_per_page', 30),
);
return system_settings_form($form);
}
/**
* Filter form for bean usage view
*
* @return array
*/
function bean_usage_filters() {
$filters = drupal_get_query_parameters();
$filters['type'] = empty($filters['type']) ? '' : explode(',', $filters['type']);
$form = array();
$form['bean_usage_filter'] = array(
'#type' => 'fieldset',
'#title' => t('Filter by bean type'),
'#weight' => 0,
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$bean_types = bean_get_types();
$options = array();
foreach ($bean_types as $bean) {
$options[$bean->type] = $bean->type;
}
asort($options);
$multiple = TRUE;
$form['bean_usage_filter']['bean_usage_filter_type'] = array(
'#type' => 'select',
'#prefix' => '
',
'#suffix' => '
',
'#multiple' => $multiple,
'#size' => $multiple ? min(4, count($options)) : 0,
'#title' => t('Filter type'),
'#description' => t('Choose the bean types to filter the list of results.'),
'#options' => $options,
'#default_value' => $filters['type'],
);
$form['bean_usage_filter']['bean_usage_filter_title'] = array(
'#type' => 'textfield',
'#title' => t('Title'),
'#prefix' => '',
'#suffix' => '
',
'#default_value' => $filters['title'],
);
$form['bean_usage_filter']['bean_usage_filter_label'] = array(
'#type' => 'textfield',
'#title' => t('Label'),
'#prefix' => '',
'#suffix' => '
',
'#default_value' => $filters['label'],
);
$form['bean_usage_filter']['actions'] = array(
'#type' => 'actions',
'#prefix' => '',
'#suffix' => '
',
);
$form['bean_usage_filter']['actions']['apply'] = array(
'#type' => 'submit',
'#value' => t('Apply'),
);
$form['bean_usage_filter']['actions']['reset'] = array(
'#type' => 'submit',
'#value' => t('Reset'),
);
return $form;
}
/**
* Submit function for bean_usage_filters()
*
* Applies the filter via a redirect back to the bean usage view page with the added filter query param.
*
* @param $form
* @param $form_state
*/
function bean_usage_filters_submit(&$form, &$form_state) {
// Get the query string parameters minus the drupal url and filter param
$params = drupal_get_query_parameters($_GET, array('q', 'filter'));
// add the filters to the query string
$filters = array(
'type' => join(',', $form_state['values']['bean_usage_filter_type']),
'title' => $form_state['values']['bean_usage_filter_title'],
'label' => $form_state['values']['bean_usage_filter_label'],
);
switch (strtolower($form_state['values']['op'])) {
case 'apply':
foreach ($filters as $filter_name => $filter_value) {
if (!empty($filter_value)) {
$params[$filter_name] = $filter_value;
}
}
break;
case 'reset':
$params = array();
break;
}
// Redirect back to bean usage view with added filter query string param
drupal_goto($_GET['q'], array('query' => $params));
}