2012-12-26 98 views
1

即時通訊使用drupal 7改變字段輸出的最佳方式是什麼?

我有一個日期字段。

它顯示所選的日期,因爲它應該。

但是我想在不同的驗證下改變顯示以說明'這個日期已經快結束了',或者'這個日期現在已經關閉'了。

我不能使用字符串reides,因爲它不接受php。我是否必須使用自定義模塊並使用hook形式alter或node api?

感謝您的幫助

回答

2

是的,你將不得不使用一個模塊來調整圖像領域的顯示方式。您可以使用hook_field_formatter_info()以及hook_field_formatter_view()創建新的顯示格式,也可以使用hook_field_formatter_view()檢查$ display ['type']來掛鉤現有顯示。我會推薦前者。

這裏的兩個掛鉤可以如何合作的例子:

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

相關問題