선택 목록에 HTML 문자를 추가해야합니다.


9

입력 값 중 하나로서 통화 값 선택 목록이있는 FAPI를 사용하는 양식이 있습니다. 다음과 같은 HTML 문자를 추가 할 수 있어야합니다€ $pound; ¥

문제는 Drupal이 입력을 필터링하고 원하는 기호를 표시하지 않지만 위에 표시된 실제 HTML 코드를 표시한다는 것입니다.

Drupal이 내 목록을 필터링하지 않는 방법이 있습니까?

답변:


4

목록의 기호에 UTF-8 문자를 넣을 수 있어야합니다. HTML 엔티티는 일부 기호가 활성 코드 페이지에 표시되지 않았을 수 있었던 과거의 유물입니다. 따라서 목록에서 €, £ 및 ¥를 사용하십시오.

Drupal은 UTF-8이며, 앞뒤로 사용하십시오.


귀하의 간단한 답변에 감사드립니다. 불행히도 그렇게 간단하지 않았습니다. UTF-8 문자 만 삽입하면 작동하지 않을 수 있습니다. php.ini에서 기본 문자 세트가 ut8-f인지 확인하고 헤더에 <meta http-equiv = "Content-Type"content = "text / html; charset = utf-8"/>이 있는지 확인하십시오. 그리고 가장 중요하게 .. 페이지가 utf-8로 저장되어 있는지 확인하십시오. 필자의 경우 속성 대화 상자를 표시하기 위해 이클립스에서 내 페이지를 마우스 오른쪽 버튼으로 클릭해야했습니다. 여기에서 텍스트 파일 인코딩 속성이 UTF-8로 설정되어 있는지 확인해야했습니다. 예를 들어 모든 페이지에 대해이 작업을 수행해야했습니다. page.tpl 및 기타 포함
Kevin Bradshaw

이것은 Drupal에서 개발할 때 모두 표준이어야합니다. 콘텐츠 유형 메타 태그는 Drupal에 의해 추가됩니다 (적어도 D6에서는 아마도 D7에서는 테마까지 남지만 각 테마마다 utf-8을 문자 세트로 출력합니다). 그리고 이클립스, 이클립스가 기본값으로 utf-8 이외의 것을 제공하는 것은 부끄러운 일입니다. 향후 프로젝트에서 동일한 문제가 발생하지 않도록 작업 영역 표준을 utf-8로 설정하는 것을 잊지 마십시오.
fietserwin

1

솔루션으로 양식 요소에 #after_build 속성을 사용할 수 있습니다.

select 옵션이있는 $ options 변수가 있다고 가정 해 봅시다.

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

그런 다음과 같은 포맷터 기능을 정의해야합니다

function  custom_select_formatter($form_element, $form_state){

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

여기에서도 #theme #prefix #suffix를 추가해도 select 요소를 재정의 할 수 있습니다.

또 다른 해결책은 이미지가있는 링크를 만들 때이 예제의 l () 함수 가 html 옵션을 사용하는 것일 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.