Рейтинг:1

Можно ли сортировать поля абзаца в узле?

флаг in

У меня есть тип контента node с полем абзаца с несколькими значениями. Абзац имеет дату и текстовое поле. Когда я показываю узел, я хотел бы отсортировать значения абзаца по дате. Я пытался сделать это в ветке с фильтром сортировки, но безрезультатно. Это можно как-то сделать, может с препроцессингом поля?

Рейтинг:3
флаг cn

Это не должно быть проблемой при сортировке элементов поля при предварительной обработке поля, но, начиная с Drupal 9, это также можно сделать в Twig.

Например:

field--node--field-my-paragraph-field.html.twig:

{% set items = items|sort((a, b) => a.content['#paragraph'].field_date.date.gettimestamp() <=> b.content['#paragraph'].field_date.date. получить отметку времени()) %}

См. документацию Twig 2.x (доступно для Drupal >=9): https://twig.symfony.com/doc/2.x/filters/sort.html


Если .датировать свойство не работает, это другой тип поля. Попробуйте универсальный .стоимость имущество:

{% set items = items|sort((a, b) => a.content['#paragraph'].field_foo.value <=> b.content['#paragraph'].field_foo.value) %}

Это также относится к типу поля Timestamp. Не часто используется для настроенных полей, чаще всего для базовых полей, таких как «Создано» или «Изменено».

pglatz avatar
флаг in
Спасибо - я пробовал что-то подобное, но не смог заставить его работать. Поле даты в моем типе абзаца называется `field_dw_date`, поэтому моя сортировка выглядит так: `% set items = items|sort((a, b) => a.content['#paragraph'].field_dw_date.date. gettimestamp() b.content['#paragraph'].field_dw_date.date.gettimestamp()) %}`. Однако это не работает, я не понимаю, как разыменовываются поля. Что означает «дата» в «.field_dw_date.date»?
4uk4 avatar
флаг cn
См. https://drupal.stackexchange.com/questions/252333/how-to-get-formatted-date-string-from-a-datetimeitem-object
pglatz avatar
флаг in
Полезно знать, спасибо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.