Question

La sortie par défaut de l'API formulaire Drupal est:

<input id="edit-submit" class="form-submit" type="submit" value="Save" name="op"/>

Comment thématiser cela pour que je reçoive:

<button id="edit-submit" class="form-submit" type="submit">
  <span>Save</span>
</button>

J'ai besoin de la balise span interne pour pouvoir utiliser la technique CSS des portes coulissantes.

Je suppose que je dois substituer theme_button ($ element) à partir de form.inc, mais mes tentatives jusqu'à présent ont été infructueuses.

Était-ce utile?

La solution

L’idée de base pour thématiser un form_foo si vous utilisez un thème PHP simple (comme Chameleon) est d’écrire une fonction appelée theme_form_foo ().

Vous pouvez également thème un élément (comme ce bouton) spécifiquement, en déclarant une fonction de thème juste pour elle. Voir https://api.drupal.org/api/drupal /developer%21topics%21forms_api_reference.html/7

Notez que, avec D6, dans les deux cas, vous devrez déclarer la fonction dans le registre de thèmes, sinon Drupal ne remarquera pas ce remplacement. Ce n'est pas nécessaire dans D5. Si vous utilisez phptemplate, vous en aurez également besoin, bien que PHPtemplate s’occupe du registre en dehors du cas des formulaires: http://drupal.org/node/132442#theme-registry

La documentation à ce sujet est disponible sur a.d.o. : http://api.drupal.org/api/file/developer/topics/forms_api.html

Autres conseils

J'ai maintenant une fonction dans le sens de

function mytheme_button($element) {
  return "<button><span></span></button>"; # lots of code missing here for clarity
}

Pour que cela fonctionne, j'ai simplement vidé le cache et Drupal a remarqué et utilisé automatiquement.

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