Nasıl gereksiz seçenekleri Drupal şeklinde bir seçim alanı kaldırmak mı?

0 Cevap php

Ben bir görünüm için açık bir filtre kümesi oluşturmak için better_exposed_filters modülünü kullanıyorum. Filtrelerden biri bir seçim alanı olarak görüntülenir ediliyor, ve ben sadece gerçekten veritabanında içeriği ile ilişkili seçeneklerini görüntülemek için alanını istiyorum.

Şu anda, ben hook_form_alter () yöntemini kullanarak yapıyorum. Sadeleştirme için, aşağıdaki örnekte alan 'foo' denir ve bu alanla içerik türü 'bar' denir:

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;
}

Bu harika çalışıyor - Form Ben yalnızca görüntülemek istediğiniz seçenekleri görüntüler. Ne yazık ki, görünümü aslında başlangıçta bir şey göstermek değil ve ben de aşağıdaki hata iletisini alabilirsiniz:

Yasadışı bir seçim tespit edildi. Site yöneticisine başvurun.

After I filter options with the form once, everything seems to work fine. Does anyone know how I can solve this problem? I'm open to an entirely different way of weeding out filter options, if need be, or a way that I can figure out how to address that error.

0 Cevap