Añadir un botón de "Mensaje Personal" en la publicación

Do you think it is possible to add a “Private Message” button to the topic first post? :thinking:

I am surprised that many users don’t know how to send PM to OP, because the PM button is not visible unless they click on the OP’s avatar.

For example,


Currently, I am using the " discourse-custom-topic-button" plugin.

And use the url of
example.com/new-message?username=<TOPIC_USERNAME>&title=Re:<TOPIC_TITLE>

However, when user click on the button, it jump to the front page immediately, before the Message editor show up. It doesn’t act the same as the “Message” button in user card. If you click on the “Message” button in user card, it show up the message editor immediate without jumping to other page.

Do you think it is possible to make the custom button (new-message url) act the same as the Message button in user card ? :thinking:

I recently built this for a client:

https://github.com/paviliondev/discourse-pm-topic-author

It is open-source. It may suit your needs. Just add the Categories you want it to appear in. Let me know if you hit any bugs.

Unfortunately I don’t have time to extend it at present.

Thanks to @davidkingham for commissioning us to do the work and allowing this to be open source, and in turn therefore supporting the wider community.

10 Me gusta

Thank you very much. :smiling_face_with_three_hearts: :smiling_face_with_three_hearts: :smiling_face_with_three_hearts:

It works exactly what I am looking for. :partying_face: :partying_face: :partying_face:


Just out of curiosity, :grinning:

Do you think I can add
{{#if this.user.can_send_private_message_to_user}}
to “pm-topic-author.hbs” , so that the button won’t show up if the user is the same as the OP ? :thinking:

Similar to Discourse User card “user-card-contents.hbs

pm-topic-author.hbs

3 Me gusta

Good catch!

Given we already have the showPMTopicAuthorButton property, we should probably do that in JS, though your solution is a great interim approach.

3 Me gusta

So I’ve done that with JS:

https://github.com/paviliondev/discourse-pm-topic-author/commit/a82ac238d9dce2291e827b66784aef1715e077c0

Thanks for your feedback.

Upgrade when you get chance and please confirm that works for you.

10 Me gusta

Thank you very much for the update. :smiling_face_with_three_hearts: :smiling_face_with_three_hearts: :smiling_face_with_three_hearts:

Now It works perfectly well for login user. :partying_face: :partying_face: :partying_face:

However, it seem after updated, the plugin cause some error for non-login user. When non-login user visit the page, it get a blank post. It only show the title, category, tag, but everything below is empty . :thinking:

Browser Inspector:
2021-04-11_053333

Error log:

1 me gusta

https://github.com/paviliondev/discourse-pm-topic-author/commit/ed5a0128c754e1017a752a08bf3725acf3f5bfb5
Schoolboy error :man_facepalming:t3:- introduced that in last change. Hopefully that resolves it for you :slight_smile:

4 Me gusta

Ya lo tienes aquí en el editor, haz clic en la flecha de responder en la parte superior izquierda, así, y luego selecciona Mensaje nuevo.

Hola, ¿puedo ver que ahora mantienes este plugin en github?

He instalado el plugin pero no parece funcionar. Primero, el botón de encendido está gris en la página de Plugins, ver abajo. ¿No estoy seguro de qué significa?

A continuación, la configuración de valores no muestra un botón al lado del nombre del usuario.

¿Funciona todavía este plugin? ¿Podemos hacerlo funcionar?

Hola,
Quiero añadir un botón de “Enviar mensaje” junto al nombre del usuario en las publicaciones, como se muestra a continuación:

He estado leyendo varias publicaciones relacionadas con esta función, pero ninguna parece satisfacer mis requisitos.

He leído esto, pero esto apunta a un componente temático que añade un botón en la parte inferior del tema.

¿Alguna idea de cómo lograr esto?

Parece que no hay una salida de plugin para colocar el botón exactamente donde lo deseas:

Quizás podrías conformarte con tenerlo en topic-above-posts.

Luego, crearías un componente glimmer que agregue el botón. Finalmente, usarías api.renderInOutlet para que ese componente aparezca allí. Custom Components -- add button or text at any plugin outlet es un ejemplo de eso.

Así que luego modificarías esto:

y simplemente averiguarías la URL para iniciar ese mensaje (Prefilled composer link generator podría ayudar, solo necesitas saber qué enlace quieres).

3 Me gusta

Gracias por la respuesta. Está más allá de mis capacidades.
Había un plugin para estos requisitos exactos, parece que ha sido eliminado Add a "Personal Message" button on Post esto es lo que estaba buscando.

¡Hola, Sally! Me pregunto por qué querrías hacer esto. ¿No quieres que tus miembros respondan al tema para tener una conversación juntos? Añadir un enlace así también saturará la interfaz y distraerá a tus miembros.

¿Por qué no te basta con que, al hacer clic en el avatar/nombre de usuario, aparezca una tarjeta de usuario con el botón para enviar un mensaje directamente al miembro?

3 Me gusta

[cita=“tobiaseigen, post:13, topic:186183”]
Me pregunto por qué querrías hacer esto. ¿No quieres que tus miembros respondan al tema para tener una conversación juntos? Añadir un enlace como ese también sobrecargará la interfaz y distraerá a tus miembros.

¿Por qué no te basta con que, al hacer clic en el avatar/nombre de usuario, aparezca una tarjeta de usuario que tenga el botón para enviar al miembro un mensaje directamente?
[/quote]

Estoy intentando construir un sistema de mensajería donde los usuarios puedan publicar en el foro, pero la característica principal es el envío de mensajes entre ellos. Así que quiero que el botón de Mensaje sea visible. Cualquier nuevo usuario tardará en averiguar cómo enviar un mensaje.

1 me gusta

¡Ese es un uso interesante de Discourse! Podrías salirte con la tuya simplemente haciendo más para educar a tus miembros sobre cómo acceder a la tarjeta de usuario para responder a través de un mensaje personal (¿o chat? ¿También estás usando chat?). Podrías crear un banner persistente en la parte superior, por ejemplo. Y explica cómo acceder a él en tu mensaje de bienvenida.

Si absolutamente necesitas este botón y tienes un presupuesto, podrías publicarlo en Marketplace y tal vez alguien aquí pueda construirlo para ti.

Ya lo he hecho, lo muestro en la parte superior, envío instrucciones en el mensaje de bienvenida, página “acerca de nosotros” y demás.

No uso chat, los mensajes me servirán.

Sí, esa sería la última opción.

Ojalá alguien pudiera revivir este plugin, ¿funcionaba en el pasado, verdad?

Soy el autor original. Incluso si todavía funcionara, el plugin solo añade el botón a la primera publicación, no a cada publicación.

3 Me gusta

[cita=“merefield, post:17, topic:186183, full:true”]
Incluso si todavía funcionara, el plugin solo añade el botón al primer Post no a cada Post.
[/cita]

Hola Robert, sí, eso es exactamente lo que quiero, añadir el botón de Mensaje al lado del primer post del OP (Original Poster).

El problema es que el plugin no funciona, no muestra el botón de Mensaje. Lo he instalado. Puedo ver que el botón de Encendido está en gris en la página de Plugins para este plugin, ¿no estoy seguro de lo que significa eso?

¿Podrías revivir este plugin? ¿Por favor? Si tienes algo de tiempo libre.

En realidad, mi componente de tema de componentes personalizados funcionaría.

Simplemente pon la URL para iniciar un mensaje privado (¿creo que eso funciona?) y el outlet del plugin que mencioné anteriormente en la configuración.

Editar:

Oh. Maldición.

No. Necesitas esto

https://tu.sitio.discourse.com/new-message?username=nombredeusuario

Y no hay ningún mecanismo para incluir el nombre de usuario del tema.

Si tienes presupuesto y te gustaría patrocinar el trabajo, envíame un mensaje privado.

2 Me gusta