2015-09-10 2 views
1

У меня возникла проблема со следующим сценарием. Я установил узел с date field с типом «Дата (формат ISO)». Чтобы отобразить эти узлы в RSS-канале, я создал представление из содержимого и формата RSS-ленты. Кроме того, я установил пользовательский формат даты через «r» (RFC 2822) или (D, d M Y H: i: s O) в Drupal и использовал его для этого поля «field_time». Это поле используется как pubDate.Drupal - язык поля даты при использовании для RSS

дата поле создает вместо:

Wed, 01 Jul 2015 00:00:00 +0200 

"немецкий" версия.

Mi, 01 Jul 2015 00:00:00 +0200 

Если я делаю то же самое, например, с «созданной» даты, я получаю правильный выход на английский язык.

Я уже пытался установить «полевой язык» этого вида на английский. Также я попытался программно изменить вывод в строках tpl (подавляя мои знания php).

Его очень похожий случай, как here.

Возможно, кто-то может получить мне подсказку, чтобы изменить это поле, изменить его в шаблоне строк или что-то подобное. Спасибо заранее!

ответ

1

После некоторого следа и ошибки я переписал вывод своего поля «field_time» с помощью шаблонов представлений на уровне поля. Я получаю исходное значение из поля, преобразовывая его «снова» в формате RFC 2822, и он хранится на английском языке.

$rawdate = $row->field_data_field_time_field_time_value; 
$unixdate = strtotime($rawdate); 
print date('r', $unixdate); 

Я изменил его после этого немного, чтобы получить другие узлы также в канале, которые имеют только, например. node_created через «переписать, если пусто» в пользовательском интерфейсе представлений.

if (isset($row->field_data_field_time_field_time_value)) { 
    $rawdate = $row->field_data_field_time_field_time_value; 
    $unixdate = strtotime($rawdate); 
    print date('r', $unixdate); 
} else { 
    print $output; 
} 

Я не уверен, если это очень чисто. Предложения по-прежнему приветствуются.

Смежные вопросы