drupal 7 – ¿Cómo establezco la cantidad fija de valores en 11?

Pregunta:

Estoy configurando un campo con varios valores. La cantidad máxima fija de valores que puedo configurar es 10.

Si quiero más, tengo que configurarlo como ilimitado.

¿Hay alguna manera de establecer la cantidad fija de valores en un campo en 11 valores?

Respuesta:

Las opciones de cardinalidad están codificadas en la función field_ui_field_edit_form() usando estas líneas de código:

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

Es la línea drupal_map_assoc(range(1, 10)) que limita el número a 10.

Sin embargo, no parece que la cardinalidad máxima esté validada (o más limitada) en ningún otro lugar (al menos no por núcleo), por lo que sería bastante fácil ofrecer más opciones para ese valor usando un formulario alter hook:

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

Acabo de probar esto y parece que no tiene ningún efecto secundario. El sistema de campo respeta cualquier cardinalidad que establezca que sea superior a 10 y la guarda sin problemas cuando edita el campo en la interfaz de usuario de administración.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım