我正在使用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');
}
}
}
}
}
任何建议或改进都将是答案。
感谢
答案 0 :(得分:2)
更标准的Drupal方法是操作预处理器函数中的值。您可以将hook_preprocess_HOOK
用于由另一个模块定义的主题函数或模板。在其中,测试0.00值并替换。
答案 1 :(得分:0)
使用hook_field_attach_view_alter进行更新是可行的,因为没有人提供任何其他建议。