2010-07-29 2 views
0

J'ai créé formulaire personnalisé à l'aide REATB pour mon site. Et je place chaque contrôle à une base de localisation spécifique sur le modèle fourni par le concepteur. Par exemple -enfermant élément de formulaire personnalisé avec balise form (6.x drupal)

<div id="myform"> 
    <span>Enter Your Name : </span> <?php print drupal_render($form['name']); ?> 
    <span>Gender : </span><?php print drupal_render($form['gender_radio']); ?> 
    .... 
</div> 
<?php print drupal_render($form['submit']); ?> 

Voici ma question - Comment joindre tous les éléments à l'intérieur de l'étiquette de formulaire? Est-ce que le codage en dur de la balise de forme dans le fichier modèle est le bon moyen de le faire dans drupal? ou est-il préférable de créer dans hook_form? Mais cela exigerait que j'ajoute manuellement la balise fermante à la fin. Toute suggestion serait très appréciée.
Drupal - 6.x

Répondre

1

On dirait peut-être que vous lisez sur building individual fields, mais qui ont sauté sur une basic concepts de REATB. En bref, si vous appelez le formulaire avec drupal_get_form(), vous obtenez le conteneur de formulaire (et de nombreux avantages de l'utilisation de FAPI, par exemple des jetons, la validation, etc.) automatiquement. Pour gérer le balisage qui va autour de vos éléments de formulaire, vous pouvez utiliser #prefix, #suffix et markup éléments.

Vous pouvez assembler toute la forme de l'extérieur comme vous faites, mais il y a peu de cas où cela serait vraiment utile. Si vous voulez vraiment faire cela, vous voulez essentiellement copier ce que fait drupal_get_form() pour obtenir l'ajout du formulaire de façon à ce qu'il fonctionne avec FAPI.

+0

-je l'utiliser en suivant votre suggestion. Merci beaucoup. Mais une autre question cependant. Comme j'utilise le modèle pour mon site (comme opposition à la fonction de thème), j'ai ajouté l'appel drupal_get_form à l'intérieur de la fonction de préprocesseur de modèle. Cela fait l'affaire. Mais j'aime savoir si c'est ce que Drupal suggère. Cuz, normalement, cet appel de fonction est placé à l'intérieur de la fonction de thème pour ceux qui en utilisent un et j'utilise le modèle et je ne sais pas si à l'intérieur du préprocesseur est ce que drupal suggère. Et merci aussi pour les liens. Je l'ai lu forme juste de guide des thèmes Drupal et site ne sont pas venus drupal à mon esprit à ce moment-là – Andrew

+0

Il est difficile de dire où votre appel drupal_get_form devrait être sans savoir exactement ce que vous faites. En général, la logique complexe doit rester en dehors des fichiers modèles, de sorte que les fonctions de prétraitement seraient meilleures. Mais en fonction de ce que vous faites, il peut être plus logique de faire les choses FAPI dans un module plutôt qu'un thème. –

Questions connexes