Добавить кнопку «Личное сообщение» в посте

Как вы думаете, возможно ли добавить кнопку «Личное сообщение» в первый пост темы? :thinking:

Я удивлен, что многие пользователи не знают, как отправить ЛС автору темы (OP), так как кнопка ЛС видна только после клика по аватару автора темы.

Например,


В настоящее время я использую плагин « discourse-custom-topic-button».

И использую URL вида:
example.com/new-message?username=<TOPIC_USERNAME>&title=Re:<TOPIC_TITLE>

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

Как вы думаете, возможно ли заставить пользовательскую кнопку (URL new-message) работать так же, как кнопка «Сообщение» в карточке пользователя? :thinking:

Недавно я создал это для клиента:

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

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

Благодарю @davidkingham за заказ на выполнение этой работы и разрешение сделать проект открытым, что, в свою очередь, поддерживает широкое сообщество.

10 лайков

Спасибо большое. :smiling_face_with_three_hearts: :smiling_face_with_three_hearts: :smiling_face_with_three_hearts:

Это работает именно так, как я искал. :partying_face: :partying_face: :partying_face:


Просто из любопытства :grinning:

Как вы думаете, я могу добавить
{{#if this.user.can_send_private_message_to_user}}
в “pm-topic-author.hbs”, чтобы кнопка не отображалась, если пользователь совпадает с автором темы (OP)? :thinking:

Аналогично карточке пользователя Discourse “user-card-contents.hbs

3 лайка

Отличное замечание!

Учитывая, что у нас уже есть свойство showPMTopicAuthorButton, вероятно, стоит реализовать это в JS, хотя ваше решение — отличное временное решение.

3 лайка

Так что я сделал это на JS:

Спасибо за обратную связь.

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

10 лайков

Огромное спасибо за обновление. :smiling_face_with_three_hearts: :smiling_face_with_three_hearts: :smiling_face_with_three_hearts:

Теперь вход для авторизованных пользователей работает идеально. :partying_face: :partying_face: :partying_face:

Однако, похоже, что после обновления плагин вызывает ошибки у неавторизованных пользователей. Когда неавторизованный пользователь заходит на страницу, пост отображается пустым. Видны только заголовок, категория и теги, а всё остальное ниже — пусто. :thinking:

Инструменты разработчика браузера:

Журнал ошибок:

1 лайк

Ошибка новичка :man_facepalming:t3: — появилась в последнем изменении. Надеюсь, это решит вашу проблему :slight_smile:

4 лайка

У вас это уже есть в композере: нажмите на стрелку «Ответить» в верхнем левом углу, как показано ниже, затем выберите Новое сообщение.

Здравствуйте, я вижу, что вы теперь поддерживаете этот плагин на GitHub?

Я установил плагин, но, похоже, он не работает. Во-первых, кнопка включения на странице плагинов неактивна (серая), см. ниже. Не уверен, что это означает?

Далее, при настройке значений кнопка рядом с именем пользователя не отображается.

Этот плагин всё ещё работает? Можем ли мы заставить его работать?

Здравствуйте,
Я хочу добавить кнопку «Отправить сообщение» рядом с именем пользователя в сообщениях, как показано ниже:

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

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

Есть ли какие-либо идеи, как этого добиться?

Похоже, что нет плагина- outlets, чтобы разместить кнопку именно там, где вы хотите:

Возможно, вам подойдет размещение её в topic-above-posts.

Затем вы создадите компонент glimmer, который добавит кнопку. Наконец, вы используете api.renderInOutlet, чтобы отобразить этот компонент в указанном месте. Пример такого подхода можно найти здесь: Custom Components -- add button or text at any plugin outlet.

Таким образом, вам нужно будет изменить это:

и просто определить URL для начала этого сообщения (Prefilled composer link generator может помочь — вам нужно только знать, какую ссылку вы хотите использовать).

3 лайка

Спасибо за ответ. Это выше моих возможностей.
Существовал плагин для именно таких требований, похоже, его удалили: Add a "Personal Message" button on Post — вот что я искал.

Привет, Салли! Мне интересно, зачем тебе это нужно. Разве ты не хочешь, чтобы твои участники отвечали на тему и вели диалог? Добавление такой ссылки также захламляет интерфейс и отвлекает участников.

Почему тебе недостаточно того, что при клике на аватар или имя пользователя всплывает карточка пользователя с кнопкой для отправки ему сообщения напрямую?

3 лайка

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

1 лайк

Это интересное использование Discourse! Возможно, вам удастся обойтись тем, что вы просто больше будете обучать своих участников тому, как открывать карточку пользователя, чтобы ответить через личное сообщение (или чат? используете ли вы также чат?). Например, можно создать постоянный баннер в верхней части страницы. И объяснить, как к нему получить доступ, в приветственном сообщении.

Если вам абсолютно необходима эта кнопка и у вас есть бюджет, вы можете написать в Marketplace, и, возможно, кто-то здесь сможет разработать её для вас.

Я уже это сделал: показал вверху, отправил инструкции в приветственном сообщении, на странице «О нас» и так далее.

Чат не использую, мне хватит личных сообщений.

Да, это будет последним вариантом.

Хотелось бы, чтобы кто-то возродил этот плагин, ведь он раньше работал, не так ли?

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

3 лайка

Привет, Роберт. Да, именно это я и хочу: добавить кнопку «Сообщение» рядом с первым сообщением автора темы (OP).

Проблема в том, что плагин не работает — кнопка «Сообщение» не отображается. Я его установил. На странице плагинов я вижу, что переключатель «Вкл» для этого плагина серого цвета; не совсем понимаю, что это означает?

Не могли бы вы возродить этот плагин? Пожалуйста? Если у вас найдётся немного свободного времени.

На самом деле, мой компонент темы кастомных компонентов должен сработать.

Просто укажите URL для начала личного сообщения (думаю, это работает?) и плагин-выход, о котором я упоминал выше, в настройках.

Редактирование:

О. Черт.

Нет. Вам нужно это

 https://your.discourse.site/new-message?username=username

И нет механизма для включения имени пользователя темы.

Если у вас есть бюджет и вы хотели бы спонсировать работу, напишите мне в личные сообщения.

2 лайка