Necesita agregar caracteres HTML a la lista Seleccionar

9

Tengo un formulario que usa el FAPI que tiene una lista selecta de valores de moneda como una de sus entradas. Necesito poder agregar caracteres HTML como€ $pound; ¥

El problema es que Drupal está filtrando la entrada y no muestra los símbolos deseados, sino que muestra los códigos html reales como se muestra arriba.

¿Hay alguna forma de que Drupal no filtre mi lista?

Kevin Bradshaw
fuente

Respuestas:

4

Puede y debe poner los caracteres UTF-8 para los símbolos en su lista. Las entidades HTML son una reliquia del pasado cuando era posible que algunos símbolos no tuvieran una representación en la página de códigos activa. Por lo tanto, simplemente use €, £ y ¥ en sus listas.

Drupal es UTF-8 de atrás hacia adelante: úsalo.

fietserwin
fuente
gracias por su simple respuesta, desafortunadamente no fue tan simple como eso. insertar solo los caracteres UTF-8 podría no funcionar. Tenía que: verificar php.ini para asegurarme de que mi juego de caracteres predeterminado era ut8-f, asegurarme de que mis encabezados tenían <meta http-equiv = "Content-Type" content = "text / html; charset = utf-8" /> en Y MÁS IMPORTANTE ... asegúrese de que sus páginas estén guardadas como utf-8. en mi caso tuve que hacer clic derecho en mi página en eclipse para que aparezca el cuadro de diálogo de propiedades. Desde aquí tuve que asegurarme de que el atributo de codificación del archivo de texto estuviera configurado en UTF-8. Tenía que hacer esto para cada página, por ejemplo. page.tpl y cualquiera incluye
Kevin Bradshaw
Todo esto debería ser estándar cuando se desarrolle en Drupal. Drupal agrega la metaetiqueta de tipo de contenido (al menos en D6, tal vez en D7 se deja al tema, pero aun así cada tema genera utf-8 como charset). Y Eclipse, bueno, sí, es una pena que Eclipse se envíe con algo más que utf-8 por defecto. No olvide establecer el estándar de su espacio de trabajo en utf-8 para evitar el mismo problema con proyectos futuros.
fietserwin
1

Como solución, puede usar la propiedad #after_build para su elemento de formulario.

digamos que tiene $ options variable con opciones para seleccionar

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

entonces tienes que definir tu función de formateador como

function  custom_select_formatter($form_element, $form_state){

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

aquí puede redefinir su elemento seleccionado incluso puede #el tema agregar #prefijo #suffix

Otra solución probable es que tal vez la función l () en este ejemplo usa la opción html cuando crea enlaces con imágenes, tal vez select element también lo usa

werqious
fuente