Come posso impostare la quantità fissa di valori su 11?


14

Sto impostando un campo con più valori. Il numero massimo fisso di valori che posso configurare è 10.

Se voglio di più, devo impostarlo su illimitato.

C'è un modo per impostare la quantità fissa di valori su un campo su 11 valori?

Risposte:


20

Le opzioni di cardinalità sono codificate nella field_ui_field_edit_form()funzione usando queste righe di codice:

$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,
);

È la drupal_map_assoc(range(1, 10))linea che limita il numero a 10.

Non sembra che la massima cardinalità sia convalidata (o ulteriormente limitata) altrove, sebbene (almeno non per core), quindi sarebbe abbastanza facile offrire più opzioni per quel valore usando un hook di modifica del modulo:

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

L'ho appena provato e sembra che non abbia effetti collaterali. Il sistema di campo rispetta qualsiasi cardinalità impostata superiore a 10 e la salva senza problemi quando si modifica il campo nell'interfaccia utente dell'amministratore.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.