Мой новый форум на Discourse почти полностью настроен и работает, но один из участников задал вопрос, и я пока не могу найти решение. Сообщество переходит с другого форума, где можно получить ссылку на тему, ведущую к последней прочитанной точке, которую пользователи часто сохраняют в закладки браузера. Однако в Discourse я не смог найти, как это сделать. Есть ли у кого-нибудь идеи?
Discourse делает это за меня автоматически. Когда я нажимаю на тему, меня перекидывает туда, где я остановился в последний раз. Вы об этом спрашиваете?
Боюсь, что нет. URL-адрес, на который вы попадаете при клике на тему в списке тем, специфичен для того места, где вы читали в последний раз, а не является универсальной ссылкой «перейти туда, где я остановился». Поэтому, если вы добавите эту ссылку в закладки, продолжите чтение темы, а затем вернетесь по закладке, она перенаправит вас на то же место, куда вы попали изначально, а не туда, где вы остановились в последний раз. Мне нужна универсальная ссылка «где я остановился в этой теме», которую можно сохранить в браузере, и которая будет работать независимо от того, сколько уже прочитано из темы.
Насколько мне известно, Discourse не хранит последний посещённый топик, но сохраняет временную метку последнего посещения для каждого топика (topic_users.last_visited_at), поэтому теоретически можно определить последний посещённый топик и отобразить его. Однако для этого потребуется плагин или внешний виджет, обращающийся к API Discourse.
Ниже приведённая информация приводится лишь для полноты картины по данной теме.
Как уже упоминалось, наиболее близкое к желаемому решение — использование закладок:
Добавьте топик в закладки. Закладка вернёт вас к первому сообщению, если только вы не прочитали весь топик целиком — в этом случае вы окажетесь в последнем сообщении. Однако временная шкала может отображать кнопку «Назад», позволяющую вернуться к последнему прочитанному сообщению в этом топике — см. правый край этого скриншота:
Как вы отметили, закладки имеют два недостатка для вашей задачи:
Закладки обычно требуют ручного действия пользователя для создания, если только не используется плагин или другое программное обеспечение для их автоматического создания.
Закладки всегда возвращают к конкретному топику (то есть к первому сообщению) или к конкретному сообщению, выбранному пользователем. Нет возможности создать закладку, которая возвращает к топику или сообщению, определяемым программно в момент доступа к закладке.
Ссылка, о которой вы говорите, всегда может открыть последнее прочитанное сообщение, поскольку программное обеспечение форума автоматически сохраняет эти данные. Это полезно, так как мы не всегда знаем, когда прервётся наше чтение на форуме — это может произойти из-за перезагрузки системы, выхода пользователя из системы или неожиданного сбоя приложения.
В Discourse нет встроенной опции возврата к последнему просмотренному сообщению, но я считаю, что это была бы полезная функция.
P.S.
Однако в Discourse есть функция, показывающая, какие топики вы просматривали во время последнего визита, даже в разделе «Закладки», что помогает определить, какой топик вы, возможно, просматривали последним:
Спасибо за подробный ответ, очень ценно с вашей стороны, даже если в итоге действительно оказывается, что на данный момент нет способа сделать то, что мы хотим.
Действительно. К сожалению, я никогда не писал на Ruby, иначе попробовал бы сам. Думаю, это может оказаться слишком трудозатратным, поскольку списки тем определяют, какое последнее сообщение было прочитано в теме, и генерируют соответствующий URL. Так что можно было бы создать новый URL, например t/topic-title/133114/latest, который затем перенаправлял бы в нужное место.
Касательно PS, хм, я посмотрю. Дело в том, что у нас множество тем, которые растягиваются буквально на сотни сообщений, и вы могли не заглядывать в конкретные темы пару недель или больше, а затем захотеть вернуться и сразу перейти туда через закладку в браузере.
В то время как представление «Последнее» идеально подходит для этого сценария, так как все многочисленные темы с правками или новыми сообщениями с момента последнего посещения будут отображаться выше линии последнего просмотра.
Извините, я неправильно понял ваш предыдущий ответ.
Вы всё ещё говорили, что пользователь хочет вернуться к последнему разговору, который он читал или вёл во время своего последнего визита, даже если в этой теме не было никаких изменений.
Это функция автоматического возобновления, которую я хотел бы видеть, но, похоже, команда Discourse не собирается её внедрять.
Не совсем так, я думаю. Люди будут следить за множеством разных тем. В рамках конкретной категории форума есть десятки, а то и сотни долгосрочных тем, в которых публикуются сотни и сотни сообщений, и многие люди подписываются на множество из них. Очевидно, они любят заходить, читать много сообщений, но, возможно, не до самого конца, а затем возвращаться позже, чтобы прочитать ещё. А некоторые люди любят добавлять такие темы в закладки браузера.
Хотя я думаю, что вкладка «Закладки» может стать разумной альтернативой, поскольку вы действительно были правы: этот вид действительно позволяет вернуться к тому месту, где вы остановились, и его также можно отфильтровать по категориям.
Поскольку PS в вашем подробном ответе, похоже, и есть решение, я выберу этот пост как решение. Честно говоря, это был отличный пост и без этого, очень информативный.