更改hook_field_formatter_view吗?


11

改变现场输出的最佳方法是什么?我发现“ hook_field_formatter_view ”,但似乎没有类似“ hook_field_formatter_view_alter”的东西存在。就我而言,我有一个地址字段(Addressfield模块),该地址字段在DrupalCommerce的结帐页面上的“发货”和“结算”窗格中使用。我想向这些字段添加一些js,最好使用Drupal的Form API“ #attached”


您要添加到这些字段的JS是什么?
saadlulu 2012年

jQuery自动完成插件
volocuga 2012年

Answers:


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);

因此您应该能够定义该钩子。

但是请注意,您必须在实体上重新定义字段,因为它会为整个渲染数组运行钩子,而不仅仅是为一个字段渲染数组。但是上面链接的示例钩子提供了如何执行此操作的示例。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.