Drupal - élément Webform thématisation
-
22-09-2019 - |
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?
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