Я написал небольшое полевое форматирование для представлений, чтобы преобразовать количество сырых секунд в красивое время, что-то вроде 90 секунд до 01:30, а полученный вывод просто меня заводит псих.Drupal Views добавление 1 в начале поля
дело в том, что 1:30 превращается в 11:30, и 00:45 Turnes до 10:45 и так далее ...
моя функция что-то вроде:
function custom_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, &$items, $display) {
$element = array();
$settings = $display['settings'];
switch ($display['type']) {
case 'sectomin':
foreach ($items as $delta => $item) {
$time = intval($item['value']);
$element[$delta] = gmdate('i:s', $time);
// dsm($element);
}
break;
}
return $element;
}
вывод dsm ($ element) верен: 00:45, 01:30 и т. д., но в рендерированном выпуске становится 10:45, 11:30 и т. д.
любые идеи, в чем может быть проблема?
EDIT: нормально, нашел проблему:
...
foreach ($items as $delta => $item) {
$time = intval($item['value']);
$element[$delta] = gmdate('i:s', $time);
}
...
на самом деле должен быть:
...
foreach ($items as $delta => $item) {
$time = intval($item['value']);
$element[$delta] = array('#markup' => gmdate('i:s', $time));
}
...
приятный. как вы узнали, что это ключ разметки? –
Я не могу вспомнить ... но я думаю, что это было, когда я сравнивал выходы dsm ($ element) с некоторыми другими настраиваемыми форматировщиками. – alechko
спасибо, будем помнить об этом –