Встраивание комментариев Discourse в тему Discourse

Я хочу узнать, возможно ли встроить тему с моего сайта Discourse в другую тему. Например, последний пост в виде живого потока комментариев.

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

Вы посмотрели Journal Plugin?

Да, но я рассматриваю другую идею. Поскольку мы можем встраивать тему Discourse в качестве комментариев на другом сайте, теоретически мы должны иметь возможность встраивать тему в качестве комментариев внутри темы Discourse. Возможно, для этого достаточно будет использовать компонент темы.

Я завершил тест с iframe для Staruc. Он работает, однако встраивает весь сайт вместе с заголовком и подвалом. В моём случае на мобильных устройствах это создаёт проблемы.

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

Преимущество: потенциально не требуется плагин, что расширяет возможности использования на любом сайте Discourse через простой компонент темы (TC). Хотя, возможно, это не так просто. :joy:

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

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


Возможно, мне следовало уточнить в первом посте (OP), что я осведомлён о плагинах Journal и голосовании за посты.

Хм… может быть, стоит использовать CSS-цель для скрытия заголовка и боковой панели при отображении в iframe? Возможно, что-то вроде этого (не уверен, сработает ли это):

iframe > html > body > ... {
  display: none;
}

Попробую разобраться, возможно, с помощью JS :eyes:.


@Heliosurge, как бы вы реализовали встраивание в темы, если их несколько? Если я правильно понял, каждая тема блога связана с соответствующей темой комментариев в отдельной категории. Просто интересно :slightly_smiling_face:.


Может быть, стоит снять галочку с разрешения ‘Создание’ для тех, кто не является авторами блогов, но оставить включённым разрешение ‘Ответ’, а для авторов блогов включить разрешение ‘Создание’?

Да, у каждой темы блога будет соответствующая тема комментариев в другой категории или подкатегории.

Однако меня интересует, не сработает ли похожая идея с iframe. Можно, например, создать div, который будет отображать тему внутри рамки. По сути, это будет своего рода iframe. Похоже на то, как мы используем CSS и TC, чтобы влиять на отображение категории.

Что касается прав доступа к категории, то тема блога в этом плане будет аналогична предложению Муна о плагине «Журнал». Только автор может публиковать и отвечать в категории «Статьи». Комментарии, упомянутые в последнем посте, будут представлены в виде элемента, открывающего окно с комментариями в интерактивном iframe.

Альтернативно, можно, вероятно, просто использовать код, аналогичный тому, который используется для отображения комментариев Discourse на таких платформах, как Ghost. Но мне кажется, что это можно сделать так, чтобы это выглядело и работало похоже на медиасайты с разделом комментариев.

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

Компонент темы #theme-component: блоки справа также содержат код для отображения последних ответов, который тоже может подойти.

Основа для модификации в обертку bbcode, которая, возможно, будет использовать ID темы как переменную для извлечения темы в блок для отображения в сообщении.

Добавить собственную заголовочную часть в верхней части блока со ссылкой «Добавить комментарий». И скрыть первое сообщение.

Другие потенциальные применения помимо добавления окна комментариев. Если речь идет об отдельном сообщении, можно также использовать это в категории только для объявлений, чтобы отображать «пилюлю» или другие подобные элементы.

В ходе своих экспериментов в похожем направлении я многому научился и получил новые идеи, изучив плагин discpage от @sylque

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

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

В блоках правой боковой панели есть код для отображения последних ответов. Это тоже может быть полезно. Чем больше способов мы найдем для дублирования или имитации функций других платформ, тем более разнообразной будет восприниматься Discourse.