Alter hook_field_formatter_view?


11

Qual è il modo migliore per modificare l'output sul campo? Ho trovato " hook_field_formatter_view " ma sembra che non esista "hook_field_formatter_view_alter". Nel mio caso ho dei campi indirizzo (modulo Addressfield) che sono stati utilizzati nei riquadri "Spedizione" e "Fatturazione" nella pagina di pagamento di DrupalCommerce . Voglio aggiungere alcuni js a questi campi, preferibilmente usando l'API Form di Drupal "#attached"


Qual è il JS che vorresti aggiungere a questi campi?
Saadlulu,

plugin di completamento automatico jquery
volocuga,

Risposte:


9

Puoi provare a modificarlo con una funzione di preelaborazione:

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

Ho eseguito un test per modificare $ variabili ['elemento'] ['# allegato'] ['js'] ma Drupal non ha riconosciuto le modifiche all'elemento. Non so perché. Quindi, potrebbe essere necessario utilizzare drupal_add_js.


5

Il hook_field_formatter_view()specificata dalla configurazione di visualizzazione viene chiamato field_default_view(), che è essa stessa chiamata (uno strato o due sotto) da field_attach_view().

Puoi vedere dal secondo link che questo chiama hook_field_attach_view_alter()dopo che è finito con i formattatori di campo:

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

quindi dovresti essere in grado di definire quel gancio.

Si noti, tuttavia, che è necessario ritrovare il campo sull'entità, poiché esegue l'hook per l'intero array di rendering, non semplicemente l'array di rendering per un campo. Ma l'hook di esempio collegato sopra mostra un esempio di come farlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.