Как вывести ленту новых материалов и терминов с помощью views

Тип материала: 
Версия Drupal: 
Ключевые слова: 
Модули и темы: 
Форумы: 
Чт, 18/05/2017 - 18:53

Добрый вечер!
Поиск не помог (ни одного даже похоже вопроса или обсуждения), или не могу сформулировать проблему, или это редкий вопрос, или он очень просто решается.

На главной странице сайта сейчас с помощью views и DS выводятся анонсы новых статей. Я хочу выводить там так же, в виде анонсов, новые термины из справочника. Типа как лента всех новых записей. При этом и ноды и термины в одном списке по дате добавления.

Для просмотра карточки термина уже используется Taxonomy View Integrator.

Подскажите как можно это организовать по возможности настройками или модулями, если по простому не получится, то может есть ссылки на решения похожих вопросов.

0 Спасибо

Комментарии

Аватар пользователя ХулиGUN
6 дней 8 часов назад ХулиGUN #

Изучить SQL, отказаться от views и копать в сторону UNION

0 Спасибо
Аватар пользователя dgastudio
6 дней 8 часов назад dgastudio #

хулиган, хорош людей тролить...
ну не любишь ты друпал, хрен с тобой, но не пугай хоть..

тс
создаете views, терминам таксономии, цепляете relationship на контент и по нему сортируете

0 Спасибо
Аватар пользователя ХулиGUN
6 дней 7 часов назад ХулиGUN #
dgastudio написал:
создаете views, терминам таксономии, цепляете relationship на контент и по нему сортируете

Andrei_ra написал:
сейчас с помощью views и DS выводятся анонсы новых статей

Скорее всего они сортируются по дате создания или дате публикации Статьи сущность которой является нода

Andrei_ra написал:
Я хочу выводить там так же, в виде анонсов, новые термины из справочника

Andrei_ra написал:
При этом и ноды и термины в одном списке по дате добавления.

А во ^, ноды сортируются по дате добавления ноды, а термины по дате добавления термина
Как ты собрался делать сортировку разных таблиц через relationship?
Твоя идея понятна: Ты хочешь выводить вьюхой термины таксономии со связью с нодами, но сортировка то, либо дате из термина, либо по дате из ноды. Как ни крути))) Термин к ноде я мог создать и год назад, а ноду только вчера)))

Самый простой вариант - это 2 выборки (ноды и термины) по количеству необходимых записей(так как на страницу может не попасть под условия одна из выборок) Затем создаём ассоциативный массив с ключом по дате в едином формате и добавляем в него все сущности(и ноды, и термины). После сортируем массив по ключу, обрезаем и выводим в шаблон.

Есть ещё проще вариант - Пересмотреть архитектуру своего проекта и свой "справочник" сделать не на терминах, а на нодах. Тогда во вьюхе просто нужно будет добавить контент тайп)))

Профит!!!

0 Спасибо
Аватар пользователя Andrei_ra
6 дней 2 часа назад Andrei_ra #

Спасибо за советы, но у меня нет связи нод и терминов.
Ноды - это статьи, а термины - это водоемы, населенные пункты и т.д.
При этом есть один тип статьи, который все таки использует эти термины: отчеты о рыбалке привязывается к водоему и населенному пункту.

Переделать термины в ноды не реально, как раз из-за того, что они используются в качестве справочников. С другой у каждого водоема есть подробное описание, фотки, куча характеристик, тоже самое у населенных пунктов, да еще вложенность.

В общем простых решений судя по всему нет.

0 Спасибо
Аватар пользователя ХулиGUN
6 дней 1 час назад ХулиGUN #
Andrei_ra написал:
В общем простых решений судя по всему нет.

Ну если под "простыми" Вы подразумеваете "накликать мышкой", то скорее всего нет. Программно не такая уж и большая задача. На пару часов максимум с гуглением(при условии, если знать что гуглить)

Andrei_ra написал:
Переделать термины в ноды не реально, как раз из-за того, что они используются в качестве справочников

Почему ноды нельзя использовать в качестве справочников?

0 Спасибо
Аватар пользователя Andrei_ra
6 дней 1 час назад Andrei_ra #

Понял, спасибо!

Почему ноды нельзя использовать в качестве справочников?

Я боюсь, что это приведет к глобальным переделкам того, что уже есть, а так же перепилке множества штатных модулей использующих таксономию: выпадающие списки, фильтры, кастомная пошаговая форма выбора населенного пункта и водоема.

У меня была мысль дублировать - на термин делать еще и ноду, может даже автоматически, но это прям костыль какой-то.

0 Спасибо
Аватар пользователя ХулиGUN
6 дней 1 час назад ХулиGUN #

Понятно, что ради 1 интерфейса пол сайта не станешь переделывать. Обычно интерфейсы продумываются на этапе формирования ТЗ. Так что ваш вариант как и с водоемами - кастом)))

0 Спасибо
Аватар пользователя jsv
3 дня 4 часа назад jsv #

Тут проще написать самому вывод, чем париться со views. Не так долго.

0 Спасибо
Аватар пользователя ХулиGUN
3 дня 3 часа назад ХулиGUN #
jsv написал:
Тут проще написать самому вывод, чем париться со views. Не так долго.

Я написал:
Самый простой вариант - это 2 выборки (ноды и термины) по количеству необходимых записей(так как на страницу может не попасть под условия одна из выборок) Затем создаём ассоциативный массив с ключом по дате в едином формате и добавляем в него все сущности(и ноды, и термины). После сортируем массив по ключу, обрезаем и выводим в шаблон.

0 Спасибо
Аватар пользователя jsv
3 дня 2 часа назад jsv #
ХGUN написал:
Я написал

Надо было ещё написать, что это не Views - для полноты мысли. И не другие готовые модули

0 Спасибо
Аватар пользователя gun_dose
2 дня 23 часа назад gun_dose #

А можно на хук энтити пресэйв навесить обработчик, который будет по сохранению нод и терминов создавать ноды с копиями нужных полей и ссылками на сами сущности. И делать вьюху уже по этим нодам.

А для тех, у кого не установлен текстовый редактор, можно это сделать рулсами

0 Спасибо
Аватар пользователя jsv
2 дня 12 часов назад jsv #

Только надо ещё будет прогнать этот код по уже существующим терминам и нодам

0 Спасибо
Аватар пользователя ХулиGUN
2 дня 19 часов назад ХулиGUN #
gun_dose написал:
А можно на хук энтити пресэйв навесить обработчик, который будет по сохранению нод и терминов создавать ноды с копиями нужных полей и ссылками на сами сущности. И делать вьюху уже по этим нодам.

И для полноты крафтовости заюзать веб сокеты)))
На самом деле подобные "приёмы" увеличивают скорость выборки данных, ибо опять таки - дополнительные джойны, не говоря уже о действительно лишнем весе самой бд.

Жопа - универсальный интерфейс - через неё можно сделать всё, что угодно)))

0 Спасибо
Аватар пользователя gun_dose
2 дня 13 часов назад gun_dose #

Почему дополнительные джоины? Просто вывести вьюхой эти крафтовые ноды и всё. А ссылки в них можно хардкодить при создании. Лишний вес - да. Но его не так уж много будет.

0 Спасибо
Аватар пользователя Andrei_ra
2 дня 12 часов назад Andrei_ra #

Сейчас таких терминов примерно 300 значений, планируется, что за пару лет терминов наберется в районе 2-4 тысяч, вариант с копированием в ноду выглядит не таким уж страшным.
Думаю, что воспользуюсь этим советом.
А когда их станет 4 тысячи и все будет тупить - никогда не поздно удалить этот тип нода и вывести сами термины на главную.

0 Спасибо
Аватар пользователя jsv
2 дня 12 часов назад jsv #
Andrei_ra написал:
При этом и ноды и термины в одном списке по дате добавления.

А с каких пор дата создания термина стала храниться, а? Как сортировать то по дате добавления термина, если этой даты в природе нету?
В итоге только ноды прикручивать к терминам, как выше рекомендовано - накодить, как хулиган советовал, тут не выйдет

0 Спасибо
Аватар пользователя ХулиGUN
2 дня 8 часов назад ХулиGUN #

Ну я уже давно с друпалом не работаю, так что не помню наличие полей в сущностях))) Но как показала практика наличие таких полей, как created_at и updated_at не помешало ещё ни одной сущности)))

0 Спасибо
Аватар пользователя jsv
2 дня 7 часов назад jsv #

Да термины даже не сущности

0 Спасибо
Аватар пользователя gun_dose
2 дня 6 часов назад gun_dose #

да шо вы такое говорите?

1 Спасибо
Аватар пользователя jsv
2 дня 5 часов назад jsv #

Ой, и правда сущности. Думал их не охватили

0 Спасибо
Аватар пользователя ХулиGUN
8 часов 32 мин. назад ХулиGUN #

Сущность - понятие абстрактное. Если есть какая либо модель данных, это есть сущность. Не забивайте голову entity из друпала.

0 Спасибо