it-swarm-eu.dev

Jak vynutit pole, aby povolilo neomezený počet hodnot pomocí Field API?

Jak mohu vynutit neomezený počet hodnot pomocí kódu pro pole, které jsem vytvořil pomocí Field API v Drupal 7? V tomto případě nemá smysl mít jiné nastavení, takže pokaždé Vytvořím instanci tohoto pole, musím nastavit počet hodnot od 1 do neomezeného.

5
Adam S

Myslíte pro typ pole, který jste sami vytvořili?

Neexistuje žádné skutečné rozhraní API prohlašující, že jediné, co můžete udělat, je změnit formulář pole přidat/upravit.

Už jsem to udělal sám pro modul Vlastnosti; zde je kód ( zdroj) :

function properties_form_field_ui_field_edit_form_alter(&$form, &$form_state) {
  if ($form['#field']['type'] == 'properties') {
    // Hide the cardinality setting on the field settings for properties fields.
    $form['field']['cardinality']['#default_value'] = FIELD_CARDINALITY_UNLIMITED;
    $form['field']['#access'] = FALSE;
  }
}

(Nezapomeňte vyprázdnit mezipaměť po změně háčků form_alter a pokud je nastavení instance, odstraňte a znovu vytvořte instanci, abyste odstranili předchozí výchozí nastavení)

5
Berdir

Odpověď pomocí hook_form_field_ui_field_edit_form_alter () funguje, ale skrývá viditelnost a oprávnění pole i kardinálnost. Raději jen deaktivuji mohutnost:

$form['field']['cardinality']['#default_value'] = FIELD_CARDINALITY_UNLIMITED;
$form['field']['cardinality']['#disabled'] = TRUE;
1
Fonant