Domanda

L'output predefinito dall'API Form di Drupal è:

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

Come lo tema, così ottengo:

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

Ho bisogno del tag span interno per poter usare la tecnica CSS delle porte scorrevoli.

Suppongo di dover sovrascrivere theme_button ($ element) da form.inc ma i miei tentativi finora non hanno avuto successo.

È stato utile?

Soluzione

L'idea di base del tema di un form_foo se stai usando un semplice tema PHP (come Chameleon), è scrivere una funzione chiamata theme_form_foo ().

Puoi anche temi un elemento (come questo pulsante) specificamente, dichiarando una funzione tema solo per questo. Vedi https://api.drupal.org/api/drupal /developer%21topics%21forms_api_reference.html/7

Nota che, con D6, in entrambi i casi dovrai dichiarare la funzione nel registro dei temi, altrimenti Drupal non noterà questa sostituzione. Questo non è necessario in D5. Se stai usando phptemplate, ne avrai bisogno anche se PHPtemplate si occupa del registro al di fuori del caso dei moduli: http://drupal.org/node/132442#theme-registry

La documentazione per questo è disponibile su a.d.o. : http://api.drupal.org/api/file/developer/topics/forms_api.html

Altri suggerimenti

Ora ho una funzione in linea con

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

Per farlo funzionare ho semplicemente cancellato la cache e Drupal l'ha notato e l'ho usato automaticamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top