Я использую модуль better_exposed_filters, чтобы создать набор открытых фильтров для представления.Один из фильтров отображается как поле выбора, и мне бы хотелось, чтобы в этом поле отображались только те параметры, которые фактически связаны с содержимым в базе данных.
В настоящее время я делаю это с помощью метода hook_form_alter (),Для упрощения в следующем примере поле называется «foo», а тип содержимого с этим полем называется «bar»:
function my_module_form_alter(&$form, $form_state, $form_id) {
// Get all the values of foo that matter
$resource = db_query('select distinct field_foo_value from {content_type_bar}');
$foo = array();
while($row = db_fetch_object($resource)) {
$foo[$row->field_foo_value] = $row->field_foo_value;
}
$form['foo']['#options'] = $foo;
}
Это прекрасно работает - форма отображает только те опции, которые я хочудисплей.К сожалению, вид фактически ничего не отображает изначально, и я также получаю следующее сообщение об ошибке:
Обнаружен неправильный выбор.Пожалуйста, свяжитесь с администратором сайта.
После того, как я один раз отфильтрую опции формы, кажется, все работает нормально.Кто-нибудь знает, как я могу решить эту проблему?Я открыт для совершенно другого способа отсеивания опций фильтра, если это необходимо, или способа, которым я могу выяснить, как устранить эту ошибку.