Sabit değerlerin değerini 11 olarak nasıl ayarlayabilirim?


14

Birden çok değeri olan bir alan ayarlıyorum. Yapılandırabileceğim maksimum sabit değer sayısı 10'dur.

Daha fazlasını istersem bunu sınırsız olarak ayarlamalıyım.

Bir alandaki sabit değerlerin 11 değerine ayarlanmasının bir yolu var mı?

Yanıtlar:


20

Kardinalite seçenekleri field_ui_field_edit_form()bu kod satırları kullanılarak fonksiyona sabit olarak kodlanmıştır :

$form['field']['cardinality'] = array(
  '#type' => 'select',
  '#title' => t('Number of values'),
  '#options' => array(FIELD_CARDINALITY_UNLIMITED => t('Unlimited')) + drupal_map_assoc(range(1, 10)),
  '#default_value' => $field['cardinality'],
  '#description' => $description,
);

Bu var drupal_map_assoc(range(1, 10))10'a sayısını sınırlıyor hattı.

Maksimum kardinalitenin başka hiçbir yerde doğrulanmadığı (veya daha sınırlı olduğu) görülmemektedir (en azından çekirdek tarafından değil), bu nedenle bir form değiştirme kancası kullanarak bu değer için daha fazla seçenek sunmak oldukça kolay olacaktır:

function MYMODULE_form_field_ui_field_edit_form_alter(&$form, &$form_state, $form_id) {
  // Increase the max cardinality to 20
  $range = drupal_map_assoc(range(1, 20));
  $new_options =  array(FIELD_CARDINALITY_UNLIMITED => t('Unlimited')) + $range;

  // Change the options
  $form['field']['cardinality']['#options'] = $new_options;
}

Sadece denedim ve hiçbir yan etkisi yok gibi görünüyor. Alan sistemi, ayarladığınız 10'dan daha yüksek bir önem düzeyine uyar ve yönetici kullanıcı arayüzünde alanı düzenlediğinizde sorunsuz bir şekilde kaydeder.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.