2009-07-29 4 views
0

J'essaie d'implémenter #field_prefix dans un champ de texte afin que je puisse ajouter une interface utilisateur supplémentaire à mon formulaire.Drupal Form-API: #field_prefix ne fonctionne pas sur le champ de texte

J'ai un module où je fais d'autres remplacements comme celui-ci, avec une fonction qui ressemble fondamentalement ceci:

function modulename_form_alter(&$form, $form_state, $form_id){ 
    if ($form_id == "contenttype_node_form"){ 
     $form['field_contenttype_fieldname'][0]['#prefix'] = 'prefix'; //this line works   
     $form['field_contenttype_fieldname'][0]['#field_prefix'] = 'field_prefix'; //this line doesn't work 
    } 

est ici les docs, semble assez simple: http://api.drupal.org/api/file/developer/topics/forms_api_reference.html/6#field_prefix

I J'ai renommé mon thème pour le désactiver de manière efficace. Je devrais prouver que je n'ai pas d'autres priorités qui pourraient être en conflit.

Qu'est-ce qui me manque?

Mise à jour: Nous avons fini d'insérer theme_form_element remplaçant mon préfixe manuellement lorsque le #field_name répond à la bonne condition. On se sent hacky, mais text_textfield ne supporte tout simplement pas #field_prefix.

+0

Rien de tout cela ne devrait fonctionner, car il devrait être 'modulename_form_alter' au lieu de' modulename_formalter' ... – ceejayoz

+0

mon erreur en tapant dedans. La ligne de préfixe fonctionne comme prévu. – ack

+0

OK, juste vérifier. Ça arrive! – ceejayoz

Répondre

1

Je pense que comme un champ CCK field_contenttype_fieldname est pas vraiment un champ de texte, mais un champ FormAPI personnalisé CCK offre c'est comme un champ de texte, et en tant que tel, il ne consomme pas l'attribut field_prefix.

Essayez print_r() en saisissant ce champ sur $form et de voir ce que c'est #type.

+0

oui, c'est exactement ça. c'est un 'text_textfield'. Je peux remplacer #type et le forcer à un 'textfield' et mon #field_prefix fonctionne maintenant. des dangers en faisant cela? En quoi 'text_textfield' est-il différent? – ack

+0

Il peut interférer avec la gestion à valeurs multiples de CCK, mais sinon, si cela fonctionne, cela fonctionne. – ceejayoz

Questions connexes