Настройка сортировки постов в Discourse

discourse-post-sorting-customizer позволяет пользователям сортировать сообщения в темах по трём критериям: активность, старейшие и лайки.

Установка
Установите плагин, следуя инструкциям по установке плагинов. Адрес репозитория плагина:
https://github.com/jahan-ggn/discourse-post-sorting-customizer

Описание

  1. Активность: позволяет сортировать сообщения, которые были недавно отвечены.
  2. Старейшие: позволяет сортировать сообщения, которые были отвечены давно.
  3. Лайки: позволяет сортировать сообщения по количеству лайков, полученных в них.

Примечание
По умолчанию плагин отключён. Чтобы использовать его, администратор сайта должен включить плагин через настройку сайта с именем discourse_post_sorting_customizer_enabled.

12 лайков

@angus, есть какие-то мысли о том, чтобы использовать это в плагине «Вопросы и ответы»?

2 лайка

Отличная работа! Да, думаю, можно использовать это с плагином «Вопросы и ответы». Я предполагаю, что вы взяли списки «Активные», «Древние» и «Нравится» из аналогичных вариантов сортировки списка постов на StackOverflow? Вы уже тестировали это с плагином QnA? Есть ли сейчас сообщество, которому это нужно? Было бы здорово сначала увидеть это в действии в реальном сообществе.

7 лайков

Да, я протестировал с плагином QnA, он работает корректно, но для идеального отображения потребуется отдельно стилизовать блок answer count. Вот и всё.

3 лайка

Теперь плагин совместим с плагином discourse-solved. Когда пользователь выберет вариант сортировки постов и в теме есть пост, отмеченный как решение, он будет показан первым, а остальные посты будут отсортированы в соответствии с выбранным пользователем вариантом сортировки.

5 лайков

@jahan_gagan Спасибо за этот отличный плагин. Он очень полезен для пользователей, позволяя сортировать большое количество ответов и находить нужное.

Возможно ли сделать плагин специфичным для категорий, чтобы он работал только в определённых категориях?
Также имеет ли смысл добавить функцию сортировки постов по «пользователям, которые мне понравились» или «пользователям, на которых я подписан»?
Плагин «user follow» разработал angus. Я думаю, что «пользователи, которые мне понравились» будет достаточно. Спасибо.

1 лайк

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

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

2 лайка

Мне очень хочется это попробовать. Также мне интересно, насколько, по-вашему, будет легко добавить возможность сортировки тем по алфавиту — как по возрастанию, так и по убыванию, так как было много запросов на это: Sort display of topics Alphabetically, Sort topics in user-defined/alphabetical order, Sort topics (within category) in alphabetical order by default, Call me stupid - how do I sort topics by created date or by title?, и, возможно, ещё больше.

Как вы думаете, будет ли легко добавить опцию сортировки по алфавиту?


Также хочу предупредить: я только что попытался установить его и получил ошибку: Gem::LoadError: can't activate request_store-1.5.0, already activated request_store-1.5.1. У меня установлено много плагинов, поэтому я не уверен, какой из них уже активировал эту версию. Просто хотел сообщить об этом.

Вот полное сообщение:

I, [2022-05-18T19:22:03.185295 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
Gem::LoadError: can't activate request_store-1.5.0, already activated request_store-1.5.1
/var/www/discourse/lib/plugin_gem.rb:27:in `load'
/var/www/discourse/lib/plugin/instance.rb:773:in `gem'
/var/www/discourse/plugins/discourse-post-sorting-customizer/plugin.rb:14:in `activate!'
/var/www/discourse/lib/plugin/instance.rb:679:in `instance_eval'
/var/www/discourse/lib/plugin/instance.rb:679:in `activate!'
/var/www/discourse/lib/discourse.rb:279:in `block in activate_plugins!'
/var/www/discourse/lib/discourse.rb:276:in `each'
/var/www/discourse/lib/discourse.rb:276:in `activate_plugins!'
/var/www/discourse/config/application.rb:222:in `block in <class:Application>'
/var/www/discourse/lib/plugin.rb:6:in `initialization_guard'
/var/www/discourse/config/application.rb:221:in `<class:Application>'
/var/www/discourse/config/application.rb:81:in `<module:Discourse>'
/var/www/discourse/config/application.rb:80:in `<top (required)>'
/var/www/discourse/Rakefile:7:in `require'
/var/www/discourse/Rakefile:7:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
1 лайк

Сталкнулся с той же ошибкой:

Gem::LoadError: не удается активировать request_store-1.5.0, так как уже активирован request_store-1.5.1

Привет и добро пожаловать @sudoanand :slight_smile:

У этого плагина стоит метка broken, поэтому, боюсь, в данный момент он, скорее всего, не работает.

1 лайк