J'ai créé une liste de sélection pour un compte Profile2 dans Drupal 7. Dans la liste des valeurs autorisées, j'ai ajouté quelques valeurs. Maintenant, ce que je voudrais faire, c'est mettre à jour par programme les valeurs de cette liste (ajouter, supprimer ou mettre à jour). Je ne veux pas utiliser form_alter car je veux que ces mises à jour soient validées dans la base de données. Mon problème est que je n'arrive pas à trouver où ces valeurs sont stockées dans la base de données ou comment extraire ces valeurs à partir de Profile2, mettez-les à jour puis enregistrez-les.
J'ai googlé haut et bas sur ce problème particulier et je ne trouve pas de réponse sur la façon de le faire. J'espère que quelqu'un pourra m'aider.
Merci.
Quelque chose dans le sens de ...
// Get the field info
$info = field_info_field('field_some_field');
// Get a reference to the values
$values = &$info['settings']['allowed_values'];
// Manipulate the values in some way, e.g.
$values['new_value'] = 'New Value';
// Save the field
field_update_field($info);
Vous feriez mieux d'utiliser le allowed_values_function
avec un rappel:
'settings' => array(
'allowed_values' => array(),
'allowed_values_function' => '_my_feature_module_options_list',
),
Voir Création d'options de valeurs autorisées dynamiques pour un champ d'entité .