即時通訊使用drupal 7改變字段輸出的最佳方式是什麼?
我有一個日期字段。
它顯示所選的日期,因爲它應該。
但是我想在不同的驗證下改變顯示以說明'這個日期已經快結束了',或者'這個日期現在已經關閉'了。
我不能使用字符串reides,因爲它不接受php。我是否必須使用自定義模塊並使用hook形式alter或node api?
感謝您的幫助
即時通訊使用drupal 7改變字段輸出的最佳方式是什麼?
我有一個日期字段。
它顯示所選的日期,因爲它應該。
但是我想在不同的驗證下改變顯示以說明'這個日期已經快結束了',或者'這個日期現在已經關閉'了。
我不能使用字符串reides,因爲它不接受php。我是否必須使用自定義模塊並使用hook形式alter或node api?
感謝您的幫助
是的,你將不得不使用一個模塊來調整圖像領域的顯示方式。您可以使用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