如何改变场值drupal 7

时间:2011-04-20 05:25:02

标签: drupal-7

我正在使用drupal 7,并希望在“0.00”时更改“number_float”值的输出。我已经深入了解field.api,但不知道该做什么功能。

用简单的英语说出来:

如果字段类型为“number_float”且值为“0.00”,则打印“空值”。

这也是在视图输出之前考虑的。 任何提示或指导都将非常感激。

由于

更新: 我用了hook_field_attach_view_alter。它按预期运行,但我不知道这是否正确。

function mymodule_field_attach_view_alter(&$output, $context) {
  foreach (element_children($output) as $field_name) {
    $element = &$output[$field_name];
    if ($element['#field_type'] == 'number_float' && $element['#formatter'] == 'number_decimal') {
      foreach ($element['#items'] as $delta => $item) {
        if ($element[$delta]['#markup'] == '0.00' || $element[$delta]['#markup'] == '0,00') {
          $element[$delta]['#markup'] = t('Empty value message');
        }

      }
    }
  }
}

任何建议或改进都将是答案。

感谢

2 个答案:

答案 0 :(得分:2)

更标准的Drupal方法是操作预处理器函数中的值。您可以将hook_preprocess_HOOK用于由另一个模块定义的主题函数或模板。在其中,测试0.00值并替换。

答案 1 :(得分:0)

使用hook_field_attach_view_alter进行更新是可行的,因为没有人提供任何其他建议。