Como faço para Form tema API botões em Drupal?
-
06-07-2019 - |
Pergunta
A saída padrão de formulário API do Drupal é:
<input id="edit-submit" class="form-submit" type="submit" value="Save" name="op"/>
Como eu tema que assim que eu conseguir:
<button id="edit-submit" class="form-submit" type="submit">
<span>Save</span>
</button>
Eu preciso do espaço-tag interior para que eu possa usar a técnica de portas CSS deslizante.
Eu acho que preciso para substituir theme_button ($ elemento) de form.inc mas minhas tentativas até agora têm sido infrutíferos.
Solução
A idéia básica para themeing um form_foo se você estiver usando um tema PHP simples (como Chameleon), é escrever uma função chamada theme_form_foo ().
Você também pode elemento tema um (como este botão) especificamente, declarando uma função tema apenas para ele. Consulte https://api.drupal.org/api/drupal /developer%21topics%21forms_api_reference.html/7
Note que, com D6, em ambos os casos você precisa declarar a função no registro tema, caso contrário, Drupal não vai notar essa substituição. Isso não é necessário em D5. Se você estiver usando phptemplate, você vai precisar dele também, embora PHPtemplate cuida do registro fora do gabinete formas: http://drupal.org/node/132442#theme-registry
A documentação para isso está disponível em a.d.o. : http://api.drupal.org/api/file/developer/topics/forms_api.html
Outras dicas
Agora tenho uma função ao longo das linhas
function mytheme_button($element) {
return "<button><span></span></button>"; # lots of code missing here for clarity
}
A fim de fazê-lo funcionar eu simplesmente limpar o cache e Drupal notado e usou-o automaticamente.