Precisa adicionar caracteres HTML à lista Selecionar


9

Eu tenho um formulário usando o FAPI que possui uma lista selecionada de valores de moeda como uma de suas entradas. Preciso adicionar caracteres HTML, como€ $pound; ¥

O problema é que o Drupal está filtrando a entrada e não exibindo os símbolos desejados, mas exibindo os códigos html reais, conforme exibido acima.

Existe alguma maneira de Drupal não filtrar minha lista?

Respostas:


4

Você pode e deve colocar os caracteres UTF-8 para os símbolos em sua lista. As entidades HTML são uma relíquia do passado, quando era possível que alguns símbolos não tivessem uma representação na página de códigos ativa. Assim, basta usar €, £ e ¥ nas suas listas.

Drupal é UTF-8 de trás para frente: use-o.


obrigado pela sua resposta simples, infelizmente não foi tão simples assim. inserir apenas caracteres UTF-8 pode não funcionar. Eu tive que: verificar o php.ini para garantir que meu conjunto de caracteres padrão fosse ut8-f, verifique se meus cabeçalhos tinham <meta http-equiv = "Tipo de conteúdo" content = "text / html; charset = utf-8" /> E MAIS IMPORTANTE .. verifique se suas páginas estão salvas como utf-8. no meu caso, tive que clicar com o botão direito do mouse na minha página no eclipse para abrir a caixa de diálogo de propriedades. A partir daqui, tive que garantir que o atributo de codificação do arquivo de texto fosse definido como UTF-8. Eu tive que fazer isso para todas as páginas, por exemplo. page.tpl e qualquer um deles inclui
Kevin Bradshaw /

Tudo isso deve ser padrão no desenvolvimento no Drupal. A metatag do tipo de conteúdo é adicionada pelo Drupal (pelo menos no D6, talvez no D7 seja deixado para o tema, mas mesmo assim todo e qualquer tema gera utf-8 como charset). E Eclipse, bem, sim, é uma pena que o Eclipse seja fornecido com algo além de utf-8 como padrão. Não se esqueça de definir seu padrão de espaço de trabalho como utf-8 para evitar o mesmo problema com projetos futuros.
21712 fietserwin

1

Como solução, você pode usar a propriedade #after_build para seu elemento de formulário.

digamos que você tenha a variável $ options com opções para selecionar

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

então você precisa definir sua função de formatador como

function  custom_select_formatter($form_element, $form_state){

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

aqui você pode redefinir seu elemento de seleção, até mesmo #theme add #prefix #suffix

outra solução provavelmente é talvez que a função l () neste exemplo use a opção html ao criar links com imagens, talvez o elemento select também a use

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.