È necessario aggiungere caratteri HTML all'elenco Seleziona


9

Ho un modulo utilizzando la FAPI che ha un elenco selezionato di valori di valuta come uno dei suoi input. Devo essere in grado di aggiungere caratteri HTML come€ $pound; ¥

Il problema è che Drupal sta filtrando l'input e non sta visualizzando i simboli desiderati, ma sta visualizzando i codici html effettivi come mostrato sopra.

Esiste un modo per fare in modo che Drupal non filtri la mia lista?

Risposte:


4

Puoi e dovresti inserire i caratteri UTF-8 per i simboli nel tuo elenco. Le entità HTML sono una reliquia del passato quando era possibile che alcuni simboli non avessero una rappresentazione nella tabella codici attiva. Quindi usa semplicemente €, £ e ¥ nelle tue liste.

Drupal è UTF-8 da dietro a dietro: usalo.


grazie per la tua semplice risposta, purtroppo non è stato così semplice da fare. l'inserimento di soli caratteri UTF-8 potrebbe non funzionare. Ho dovuto: controllare php.ini per assicurarmi che il mio set di caratteri predefinito fosse ut8-f, assicurarsi che le intestazioni avessero <meta http-equiv = "Content-Type" content = "text / html; charset = utf-8" /> in e, soprattutto, assicurati che le tue pagine siano salvate come utf-8. nel mio caso ho dovuto fare clic con il tasto destro sulla mia pagina in eclissi per visualizzare la finestra di dialogo delle proprietà. Da qui ho dovuto assicurarmi che l'attributo di codifica del file di testo fosse impostato su UTF-8. Ho dovuto farlo per ogni pagina, ad es. page.tpl e qualsiasi include
Kevin Bradshaw l'

Questo dovrebbe essere tutto standard quando si sviluppa in Drupal. Il metatag del tipo di contenuto viene aggiunto da Drupal (almeno in D6, forse che in D7 è lasciato al tema, ma anche allora ogni tema genera utf-8 come set di caratteri). Ed Eclipse, beh sì, è un peccato che Eclipse sia fornito con qualcosa di diverso da utf-8 come impostazione predefinita. Non dimenticare di impostare lo standard dell'area di lavoro su utf-8 per evitare lo stesso problema con progetti futuri.
fietserwin,

1

Come soluzione è possibile utilizzare la proprietà #after_build per l'elemento del modulo.

supponiamo che tu abbia $ opzioni variabili con opzioni per selezionare

$form['myselect']['options'] = $options;
$form['myselect']['#after_build'][] = 'custom_select_formatter';

allora devi definire la tua funzione di formattatore come

function  custom_select_formatter($form_element, $form_state){

$options = $form_element['#options'] //you can use your option values
}

qui puoi ridefinire il tuo elemento select anche se puoi #theme aggiungere #prefix #suffix

un'altra probabilmente soluzione è forse che la funzione l () in questo esempio usa l'opzione html quando si creano collegamenti con immagini, forse l'elemento select lo usa anche

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.