hook_field_formatter_view를 변경 하시겠습니까?


11

필드 출력을 변경하는 가장 좋은 방법은 무엇입니까? " hook_field_formatter_view "를 찾았 지만 "hook_field_formatter_view_alter"와 같은 것은 없습니다. 필자의 경우 DrupalCommerce 의 결제 페이지의 "배송"및 "청구"창에 사용 된 주소 필드 (주소 필드 모듈)가 있습니다. Drupal의 Form API "#attached"를 사용하여이 필드에 js를 추가하고 싶습니다.


이 필드에 추가하려는 JS는 무엇입니까?
saadlulu

jquery 자동 완성 플러그인
volocuga

답변:


9

전처리 기능을 사용하여 변경하려고 할 수 있습니다.

function example_preprocess_field(&$variables) {  
  $field_name = $variables['element']['#field_name'];  
  if ($field_name == 'field_example_field') {
    // Your code here.
  }
}

$ variables [ 'element'] [ '# attached'] [ 'js'] 를 수정하는 테스트를 실행 했지만 Drupal이 요소의 변경 사항을 인식하지 못했습니다. 이유가 확실하지 않습니다. 따라서 drupal_add_js를 사용해야 할 수도 있습니다.


5

hook_field_formatter_view()호출 된 디스플레이 구성에 의해 지정된 field_default_view()자체에 의해 (그 아래의 층 또는 두 개의)이라고하다 field_attach_view().

두 번째 링크 hook_field_attach_view_alter()에서 필드 포맷터로 완료 한 후 호출하는 것을 볼 수 있습니다 .

drupal_alter('field_attach_view', $output, $context);

후크를 정의 할 수 있어야합니다.

그러나 엔터티에서 필드를 다시 찾아야합니다. 하나의 필드에 대한 렌더링 배열이 아니라 전체 렌더 배열에 대한 후크를 실행하기 때문입니다. 그러나 위의 예제 후크는 그 방법을 보여줍니다.

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