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

¿Crees que es posible agregar un botón de “Mensaje privado” a la primera publicación del tema? :thinking:

Me sorprende que muchos usuarios no sepan cómo enviar un MP al autor original (OP), ya que el botón de MP no es visible a menos que hagan clic en el avatar del OP.

Por ejemplo,


Actualmente, estoy utilizando el plugin “discourse-custom-topic-button”.

Y uso la URL de:
example.com/new-message?username=<TOPIC_USERNAME>&title=Re:<TOPIC_TITLE>

Sin embargo, cuando el usuario hace clic en el botón, salta inmediatamente a la página principal antes de que aparezca el editor de mensajes. No se comporta igual que el botón “Mensaje” en la tarjeta de usuario. Si haces clic en el botón “Mensaje” en la tarjeta de usuario, aparece el editor de mensajes de inmediato sin saltar a otra página.

¿Crees que es posible hacer que el botón personalizado (URL de new-message) se comporte igual que el botón “Mensaje” en la tarjeta de usuario? :thinking:

Recientemente construí esto para un cliente:

Es de código abierto. Puede que se ajuste a tus necesidades. Solo añade las Categorías en las que quieres que aparezca. Avísame si encuentras algún error.

Por desgracia, en este momento no tengo tiempo para ampliarlo.

Gracias a @davidkingham por encargarnos el trabajo y permitir que sea de código abierto, lo que a su vez apoya a la comunidad en general.

10 Me gusta

¡Muchas gracias! :smiling_face_with_three_hearts: :smiling_face_with_three_hearts: :smiling_face_with_three_hearts:

Funciona exactamente como lo necesitaba. :partying_face: :partying_face: :partying_face:


Solo por curiosidad :grinning:

¿Crees que podría agregar {{#if this.user.can_send_private_message_to_user}} a “pm-topic-author.hbs” para que el botón no aparezca si el usuario es el mismo que el autor original (OP)? :thinking:

Similar a la tarjeta de usuario de Discourse “user-card-contents.hbs”.

3 Me gusta

¡Buena captura!

Dado que ya tenemos la propiedad showPMTopicAuthorButton, probablemente deberíamos hacerlo en JS, aunque tu solución es un gran enfoque provisional.

3 Me gusta

Así es como lo he hecho con JS:

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

Gracias por tus comentarios.

Actualiza cuando tengas oportunidad y por favor confirma que funciona para ti.

10 Me gusta

¡Muchas gracias por la actualización. :smiling_face_with_three_hearts: :smiling_face_with_three_hearts: :smiling_face_with_three_hearts:

Ahora funciona perfectamente para los usuarios con sesión iniciada. :partying_face: :partying_face: :partying_face:

Sin embargo, parece que después de la actualización, el plugin causa algún error para los usuarios sin sesión iniciada. Cuando un usuario sin sesión inicia visita la página, obtiene un post en blanco. Solo muestra el título, la categoría y la etiqueta, pero todo lo que está debajo está vacío. :thinking:

Inspector del navegador:

Registro de errores:

1 me gusta

Error de principiante :man_facepalming:t3:: lo introduje en el último cambio. Espero que eso lo resuelva para ti :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