Alterar hook_field_formatter_view?

11

Qual é a melhor maneira de alterar a saída do campo? Eu encontrei " hook_field_formatter_view ", mas parece que não existe nada como "hook_field_formatter_view_alter". No meu caso, tenho campos de endereço (módulo Addressfield) usados ​​nos painéis "Remessa" e "Faturamento" na página de checkout do DrupalCommerce . Quero adicionar alguns js a esses campos, de preferência usando a API de formulário do Drupal "#attached"

volocuga
fonte
Qual é o JS que você deseja adicionar a esses campos?
Saadlulu
jquery plugin de preenchimento automático
volocuga 17/09/12

Respostas:

9

Você pode tentar alterá-lo com uma função de pré-processo:

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

Fiz um teste para modificar $ variable ['elemento'] ['# anexado'] ['js'], mas Drupal não reconheceu as alterações no elemento. Não sei por que. Portanto, você pode precisar usar o drupal_add_js.

um poder
fonte
5

O hook_field_formatter_view()especificado pela configuração de exibição é chamado field_default_view(), que é chamado (uma ou duas camadas abaixo) por field_attach_view().

Você pode ver no segundo link que isso chama hook_field_attach_view_alter()depois de terminar com os formatadores de campo:

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

então você deve poder definir esse gancho.

Observe, porém, que você terá que encontrar novamente o campo na entidade, pois ele executa o gancho para toda a matriz de renderização, não apenas a matriz de renderização para um campo. Mas o exemplo de gancho vinculado acima fornece um exemplo de como fazer isso.

JP
fonte