1

drupal7を使用しています

日付フィールドがあります。

選択した日付が表示されます。

ただし、特定のphp検証では「この日付はほぼ終了しました」、別の検証では「この日付は現在閉じています」と表示を変更します。

I cant use string over reides as it doesnt accept php. Would I have to use a custom module and use hook form alter or node api?

thanks for any help

4

1 に答える 1

2

はい、画像フィールドの表示方法を調整するには、モジュールを使用する必要があります。hook_field_formatter_info()とhook_field_formatter_view()を使用して新しい表示形式を作成するか、$ display ['type']をチェックしてhook_field_formatter_view()を使用して既存の表示をフックすることができます。前者をお勧めします。

2つのフックがどのように連携するかの例を次に示します。

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 に答える