C'est le code que j'ai réellement:
$instance = array(
'field_name' => FIELD_PROJECT_TAGS,
'entity_type' => 'node',
'label' => $vocabulary->name,
'bundle' => 'portfolio_project',
'required' => true,
'widget' => array(
'type' => 'taxonomy_autocomplete',
'behaviors' => array(
'multiple values' => FIELD_CARDINALITY_UNLIMITED,
),
),
'display' => array(
'default' => array(
'type' => 'taxonomy_term_reference_link',
'weight' => 10,
),
'teaser' => array(
'type' => 'taxonomy_term_reference_link',
'weight' => 10,
),
)
);
field_create_instance($instance);
Quel est le problème avec ça? Pourquoi le module de portefeuille installe-t-il toujours ce champ avec une seule valeur?
J'espère que quelqu'un peut aider. Je suis un peu frustré.
Comme indiqué dans API sur le terrain , les index de tableau utilisés pour le tableau widget
sont les suivants:
C'est hook_field_widget_info()
qui définit les comportements des widgets de terrain.
function hook_field_widget_info() {
return array(
'text_textfield' => array(
'label' => t('Text field'),
'field types' => array('text'),
'settings' => array('size' => 60),
'behaviors' => array(
'multiple values' => FIELD_BEHAVIOR_DEFAULT,
'default value' => FIELD_BEHAVIOR_DEFAULT,
),
),
'text_textarea' => array(
'label' => t('Text area (multiple rows)'),
'field types' => array('text_long'),
'settings' => array('rows' => 5),
'behaviors' => array(
'multiple values' => FIELD_BEHAVIOR_DEFAULT,
'default value' => FIELD_BEHAVIOR_DEFAULT,
),
),
'text_textarea_with_summary' => array(
'label' => t('Text area with a summary'),
'field types' => array('text_with_summary'),
'settings' => array(
'rows' => 20,
'summary_rows' => 5,
),
'behaviors' => array(
'multiple values' => FIELD_BEHAVIOR_DEFAULT,
'default value' => FIELD_BEHAVIOR_DEFAULT,
),
),
);
}
Le module que vous écrivez doit mettre en œuvre ce crochet afin de permettre au champ d'utiliser plusieurs valeurs.
Le widget de taxonomie permet de saisir plusieurs valeurs en les entrant séparées par une virgule; Si vous attendez que le widget apparaisse plus d'une fois sur la page, ce n'est pas comment fonctionne ce widget. D'autres widgets peuvent probablement utiliser plus de champs de formulaire pour contenir plusieurs valeurs.