Это должно быть довольно просто, используя hook_form_FORM_ID_alter
, как вы предлагаете.Сначала проверьте элемент <form>
формы фильтра (используя Firebug или аналогичный) и получите его атрибут ID.Идентификатор формы в Drupal будет этой строкой, но со всеми символами «-», замененными на «_» (поэтому «form -posed-filter-form» станет «form_exposed_filter_form»).
Следует помнить, что обработчик отправки для формы, вероятно, будет ожидать, что элементы, которые вы пытаетесь удалить, будут там, поэтому вы, вероятно, получите неожиданные результаты, если просто вытяните их оттуда.,
Обходной вариант - вместо этого изменить тип элементов на value
(чтобы они были доступны для функции отправки в $form_state['values']
) и выбрать для каждого значение по умолчанию.Как то так:
// Replace 'FILTER_FORM_ID' with the form's ID
function mymodule_form_FILTER_FORM_ID_alter(&$form, &$form_state, $form_id) {
$form['some_existing_element'] = array(
'#type' => 'value',
'#value' => $default_value_for_filter
);
}