Question

Une autre question sur Drupal webforms - La forme elle-même est construit par /includes/form.inc s

function theme_form_element($element, $value)

et ajoute un élément de <label> à la sortie de $. Je veux enlever cette étiquette que pour un seul formulaire en ligne, donc je dois remplacer la fonction. Comment puis-je remplacer pour un seul formulaire en ligne, tout en laissant la même chose dans tous les autres? Par exemple.

if ($block == 'contact'):
  // only output <input> form element stored in $value
  function mytheme_html_form_element($element, $value) {
    $t = get_t();
    $output .= " $value\n";
    return $output;
  }
endif;

Est-ce possible, et ce qui se passe dans la condition if?

Était-ce utile?

La solution 2

Je ne dois faire une hook_form_alter, mais l'étiquette elle-même était dans l'élément [ « soumis »]. voici le code

  if($form_id == 'webform_client_form_18') {
    $form['submitted']['#children'] = '
    <input
     type="text" 
     maxlength="128"
     name="submitted[email]"
     id="edit-submitted-email"
     value="' . $form['submitted']['email']['#default_value']. '"
     class="form-text required"
    />
  ';
  }

sous une forme différente, en supprimant le #title a travaillé (+1 pour vous!), Mais ce fut une autre affaire.

Autres conseils

Si vous êtes à la recherche d'enlever l'étiquette, vous pouvez également utiliser hook_form_alter ( ) et vérifiez que form_id $ est égale à la question en formulaire en ligne. L'identifiant sera de la forme:. Webform_client_form_N où N est le numéro de noeud du webform

Une fois que vous travaillez sur la bonne forme, vous pouvez décharger l'étiquette en utilisant, par exemple, le code comme ceci:

 unset($form['submitted']['first_name']['#title']);

Ce qui désinitialiser l'étiquette d'un champ appelé prenom.

Je ne voudrais pas unset titres d'éléments de forme. Vous pouvez obtenir des résultats inattendus lorsque votre formulaire est rendu par le moteur à thème.

Vous pouvez le faire de plusieurs façons:

Motif chaque élément ou forme ensemble avec des '#theme' => 'my_callback'.

Vous pouvez également créer votre propre élément de formulaire à l'aide hook_elements qui utilise un crochet de thème correspondant.

Voir:

http://api.drupal.org/api /drupal/developer--topics--forms_api_reference.html

http://api.drupal.org/api/function/hook_elements/6

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top