Использование Fivestar во Views приводит к смене даты обновления ноды

Главные вкладки

Аватар пользователя Alex1989_drupal Alex1989_drupal 3 февраля 2023 в 19:13

Здравствуйте! Если звезды рейтинга модуля Fivestar выведены во Views, то я вижу некорректную дату обновления ноды:

Published
Last saved (all languages) 02/03/2023 - 18:55

 

Если же звезды рейтинга модуля Fivestar выведены с помощью полей, то дата сохранения (изменения) ноды соответствует последней дате публикации:

Published
Last saved (all languages) 01/30/2023 - 22:30

Таким образом, при каждом голосовании через вывод Views у меня изменяется дата обновления ноды.

Мне нужна верная дата потому, что Views на главной выводит ноды в порядке обновления. В тоже время я не могу вывести звезды рейтинга модуля Fivestar не во views в некоторых типах материалов.

Как это исправить?

Комментарии

Аватар пользователя ivnish ivnish 3 февраля 2023 в 19:24

Зайти в issues на Drupal.org на страницу модуля. Поискать там репорт об этой проблеме. Если его нет, то создать.

Аватар пользователя marassa marassa 5 февраля 2023 в 15:45

А не в кэше ли дело? Возможно дата обновления меняется в любом случае (и судя по ответу на орге так и задумано), просто при выводе "с помощью полей" (что бы это ни значило) кэш не инвалидируется, и показывается устаревшее значение из кэша?

Аватар пользователя Alex1989_drupal Alex1989_drupal 6 февраля 2023 в 20:14

marassa wrote: А не в кэше ли дело? Возможно дата обновления меняется в любом случае (и судя по ответу на орге так и задумано), просто при выводе "с помощью полей" (что бы это ни значило) кэш не инвалидируется, и показывается устаревшее зн

Если так и задумано, то в таком случае у меня не получится выводить на главную только обновленные админами материалы. Fivestar создает спам из обновления нод, кода сотни пользователей постоянно голосуют и оценивают ноды.

Аватар пользователя ivnish ivnish 6 февраля 2023 в 20:16

В таком случае вам проще сделать кастомное поле даты и обновлять его только когда админы обновляют контент. Ну и вьюсы перенастроить на это поле

Аватар пользователя marassa marassa 6 февраля 2023 в 20:36

Вообще тема интересная. С чисто формальной точки зрения Fivestar - это одно из полей ноды. Изменение значения любого поля ноды автоматически приводит к изменению системного поля даты последней модификации ноды. С другой стороны Вашу логику тоже можно понять - голосование за ноду не приводит к изменению ее "содержательной части" и не делает ее обновленной. Интересно, сложно ли хакнуть модуль, чтобы дата последней модификации не менялась? В идеальном мире должна быть настройка поля Fivestar: менять дату последней модификации при голосовании или не трогать.

Аватар пользователя ivnish ivnish 6 февраля 2023 в 21:55

Если там используется что-то стандартное типа $node->save() то хакать модуль бесполезно. Это уже надо хакать ядро) Нормальный способ я описал выше