2010-05-11 14 views
4

J'essaie de définir la valeur par défaut d'un champ Content Taxonomy dans un hook_form_alter, mais je ne peux pas définir le format nécessaire. J'ai essayé ceci et beaucoup de variations:Valeurs par défaut pour les champs Content Taxonomy dans le widget Drupal avec sélection hiérarchique

foreach (element_children($form) as $child) { 
// Set $default_value. 

    if ($form[$child]['tids']) { 
// This, for Content Taxonomy fields, isn't working: 
    $form[$child]['tids']['#default_value'] = array('value' => $default_value); 
    dsm($form[$child]['tids']['#default_value']); 
    } 
    else { 
// This, for other fields, is working: 
    $form[$child][0]['#default_value']['value'] = $default_value; 
    } 
} 

Quelqu'un peut-il me dire ce que je manque?

Edit: En réponse à Henrik Opel (merci pour s'impliquer), voici l'impression sur le domaine concerné de la forme avec mes modifications aux champs par défaut en commentaire, montrant le champ « #default_value » J'essaie d'influencer.

Cela montre également que le widget d'option que j'utilise est Hierarchical Select (cela pourrait-il être un facteur?). Dans le dsm() du code ci-dessus, les modifications de la valeur par défaut sont reconnues, mais elles ne sont pas traitées plus tard.

field_name_of_content_taxonomy_field (Array, 3 elements) 
    #tree (Boolean) TRUE 
    #weight (String, 1 characters) 5 
    tids (Array, 7 elements) 
    #title (String, 10 characters) Vocabulary_name 
    #type (String, 19 characters) hierarchical_select 
    #weight (String, 1 characters) 5 
    #config (Array, 15 elements) 
     // 15 elements here 
    #required (String, 1 characters) 0 
    #description (String, 0 characters) 
    #default_value (Array, 0 elements) 

Répondre

3

Transforme la réponse était dans la documentation: http://drupal.org/node/319190

J'ai retitré la question de préciser où était le problème. Cela réduit la question à un cas d'utilisation plutôt spécifique, mais la Taxonomie du contenu et la Sélection hiérarchique sont des modules utiles et recommandés pour traiter les grandes taxonomies.

1

(NOTE: En supposant que Drupal 6 ici)

Vous cherchez un exemple local, mes champs de taxonomie de contenu n'ont une propriété 'tids', mais je n'utiliser que les champs de type 'optionwidgets_buttons', cela peut donc être différent si vous utilisez d'autres types de widget. Pourriez-vous publier un vidage de la structure de champ Content Taxonomy à partir du formulaire que vous essayez de manipuler? Sur une autre note, les champs Content Taxonomy ont une logique d'interaction spéciale concernant leur 'conversion' au format de tableau de taxonomie standard plus tard dans le traitement formulaire/noeud, ce qui pourrait vous affecter. Votre problème est-il que vos modifications aux valeurs par défaut ne s'affichent pas du tout sur l'affichage initial du formulaire, ou sont-elles affichées, mais ne sont pas traitées plus tard?


Edit (après mise à jour de question): Désolé pour la réponse tardive. Je ne suis pas sûr, mais en regardant votre définition de champ, le type montre comme hierarchical_select, ce qui laisserait entendre sur un widget de sélection hiérarchique «autonome». Lorsqu'il est utilisé conjointement avec la taxonomie de contenu, le code du sous-module 'hs_content_taxonomy' me ferait attendre un type de content_taxonomy_hs à la place. Tout ceci n'est qu'une conjecture, et je n'ai pas le temps de tester moi-même cette fonctionnalité localement, mais vous voudrez peut-être vérifier si vous utilisez la bonne combinaison/configuration de module. Une autre chose serait de vérifier les paramètres de poids de vos modules par rapport au module de sélection hiérarchique - aussi juste une supposition, mais peut-être que votre altération doit avoir lieu avant/après sélection hiérarchique fait sa magie, de sorte que vous pourrait vouloir tester avec des poids ajustés sur votre module.

+0

Merci pour le suivi. Il s'avère que la documentation avait anticipé ma confusion, et j'ai ajouté une réponse pour pointer quelqu'un d'autre là-bas. – lazysoundsystem