1

我正在使用 Drupal 7

我有一个日期字段。

它显示应按预期选择的日期。

但是,我会在某些 php 验证下将显示更改为“这个日期几乎结束”,或者在不同的验证下显示“这个日期现在已关闭”。

我不能在 reides 上使用字符串,因为它不接受 php。我是否必须使用自定义模块并使用钩子形式 alter 或 node api?

谢谢你的帮助

4

1 回答 1

2

是的,您必须使用模块来调整图像字段的显示方式。您可以使用 hook_field_formatter_info() 和 hook_field_formatter_view() 创建新的显示格式,也可以通过检查 $display['type'] 使用 hook_field_formatter_view() 挂钩现有显示。我会推荐前者。

这是两个钩子如何协同工作的示例:

function modulename_field_formatter_info()
{
    return array(
        'modulename_formatter' => array(
        'label' => t('Custom Date Format'),
        'field types' => array('date'),
        ),
    );
}

function modulename_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display)
{
    if ($display['type'] != 'modulename_formatter')
        return;

    foreach ($items as $delta => item)
    {
        if ($item['date'] < time()) //Or 'datetime' or 'datestamp'
            $element[$delta]['#markup'] = 'this date is now closed.';
    }
    return $element;
}

我可能有一些索引错误,但它们应该非常接近。

http://api.drupal.org/api/drupal/modules!field!field.api.php/function/hook_field_formatter_info/7 http://api.drupal.org/api/drupal/modules!field!field.api .php/function/hook_field_formatter_view/7

于 2012-12-26T18:41:25.023 回答