Вариант «Голоса» в верхнем меню главной страницы

Плагин «Голосование» добавляет пункт «Голоса» в верхнее меню в тех категориях, где он включён. При нажатии на эту опцию пользователи получают список наиболее популярных тем в данной категории.

Для сайтов, созданных вокруг этой функции голосования, было бы очень полезно иметь пункт «Голоса» в верхнем меню главной страницы. Администраторы могли бы установить представление «Голоса» по умолчанию, а пользователи — в своих настройках, точно так же, как «Последние», «Категории», «Лучшие» и т. д.

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

2 лайка

Я только что узнал, что добавление «/votes» к URL-адресу экземпляра Discourse предоставляет сводный список голосов. Например:

https://bitwish.top/votes

Следовательно, остаётся только добавить опцию «Голоса» в верхнее меню.

Можно ли это реализовать с помощью компонента темы, или такое изменение нужно внести в плагин Voting?

Привет @icaria36
Попробуйте GitHub - discourse/Discourse-nav-links-component · GitHub
Если вы хотите добавить ссылку в меню навигации.

Вы предпочитаете, чтобы она была видна всем участникам или только определённым группам?

1 лайк

Ага, да, Custom Top Navigation Links. Хорошая мысль, спасибо.

Интересно, как этот компонент темы повлияет на ссылки «Голоса» и «Мои голоса», которые отображаются в верхнем меню категорий, где включено голосование. Я прочитал обширные комментарии о том, как этот компонент темы влияет на навигацию по категориям, но у меня не сложилось чёткого впечатления. Придётся попробовать, но у меня такое чувство, что я решу одну проблему, создав при этом несколько новых?

Запрашиваемое поведение в точности совпадает с тем, что предлагают два других очень популярных плагина: Events Plugin 📅 и Locations Plugin 🌍. Оба добавляют элемент в верхнее меню, который можно добавлять и удалять так же, как элементы верхнего меню самого Discourse:

Если «Голоса» — первый элемент в верхнем меню, то по умолчанию будет отображаться страница “/votes”.

Возможно, есть какой-то код из этих плагинов, который можно переиспользовать? Если PR приветствуется и @angus или кто-то другой заинтересован, мы могли бы даже «вывести это на маркетплейс» (я не представляю, насколько просто или сложно будет написать и протестировать патч).

Что-то вроде этого должно сработать:

Добавляет два параметра:

  • voting_show_votes_on_homepage: «Показывать пункт навигации со списком голосов на главной странице?»
  • voting_show_votes_before: «Показывать пункт навигации со списком голосов перед этим пунктом навигации»

Обратите внимание, что я оставил его в черновом состоянии, так как в настоящее время в плагине существует разница между /votes и /latest?order=votes, что влияет на эту функцию. Сначала потребуется мнение одного из сопровождающих по этому вопросу.

3 лайка

@angus, вы великолепны во многих отношениях. Большое спасибо!

Интересно. Похоже, что в /votes «последние» являются вторым критерием сортировки для тем с одинаковым количеством голосов. Это было бы ожидаемо для /latest?order=votes, но по какой-то причине второй критерий сортировки отличается. Мне не удалось найти закономерность.

Также заметка на случай, если кто-то будет менять критерии сортировки. В данный момент темы с нулём голосов и темы, у которых вообще нет концепции голосования, перемешаны. Логичнее было бы сгруппировать все темы с нулём голосов вместе, а затем разместить темы, для которых голосование отключено, в конце, отдельно.

1 лайк

Это перемещено из черновика в опубликованное.

3 лайка