Доброго времени суток всем
Есть сайт, на котором, есть тип материала с полем "дата". Поле дата имеет начальную и конечную дату с временем.
Так же есть поле в котором планируется выводить разницу между начальной и конечной датой с временем.
Поискав ответ, нашел 2 подходящих решения в виде готовых модулей, первый Computed Field и второй Math Field.
У первого модуля - Computed Field - есть готовое решения, для конкретного вопроса, которое описано здесь - https://www.drupal.org/node/149234.
Так как я с PHP знаком плохо, прощу помочь с тем, что и куда нужно вставить, чтобы все заработало.
У меня:
Поле с датой, имеет машинное имя: field_date
Поле с разницей, имеет машинное имя: field_summ
Ниже сам код, со страницы с примером решения - https://www.drupal.org/node/149234
Computed field settings
Computed Code:
<?php
$field_info = array_pop(field_get_items($entity_type, $entity, 'field_date'));
$start = $field_info['value'];
$end = $field_info['value2'];
$timezone = $field_info['timezone'];
$date_start = new DateTime($start, $timezone);
$date_end = new DateTime($end, $timezone);
$interval = $date_start->diff($date_end);
$entity_field[0]['value'] = $interval->format('%h');
?>
Display Code:
<?php
$display_output = $entity_field_item['value'] . " hours";
?>
Заранее спасибо за помощь.
Комментарии
Модуль cf будет рассчитывать при каждом сохранении, скорей всего Вам не подходи, для вывода разницы всего навсего можно например https://api.drupal.org/api/drupal/modules%21field%21field.api.php/functi... или https://api.drupal.org/api/drupal/modules%21node%21node.api.php/function...
Есть еще дополнительный модуль Computed Field Tools, который как я понял, может запускать перерасчет вычисляемых полей
Это конечно я понимаю, что решение наверно хорошее, но там нужно же как я понял модули создавать свои, но я как и писал выше, с PHP на "Вы", и поэтому я и ищу решение с помощью готовых модулей
Есть конечно еще модуль Views Calc, там тоже можно как то это реализовать, так как полностью решение реализовано в модуле Time Tracker, который использует Views Calc
Если я правильно понимаю, я должен поменять значения только в этой строке, а именно:
1. $entity_type -> на какие то мои значения?
2. $entity - на какие то мои значения?
3. 'field_date' - это машинное имя поле с датой, оно совпадет с мои заданным машинным именем
Вариант решения вычисления разницы двух дат с помощью модуля Computed Field находится тут