Formulario de contacto

Roto en la última versión de Discourse

Recientemente actualicé Discourse y este complemento rompió el sitio. (Para ser claros, esto es más probable que sea el resultado de mis horribles modificaciones que de Discourse en sí. Actualmente no tengo ancho de banda para encontrar la solución, así que solo dejo esta advertencia para otros).

:information_source: Resumen Añade un formulario de contacto en la parte superior de cualquier tema etiquetado como contact. La información enviada a través del formulario se enviará al grupo o categoría configurada para recibirla.
:hammer_and_wrench: Enlace al Repositorio https://github.com/jericson/discourse-contact-plugin
:open_book: Guía de Instalación Cómo instalar complementos en Discourse

Características

Cuando está habilitado, el complemento Contact Form coloca un formulario de contacto en la parte superior de cualquier tema etiquetado como contact. Los datos enviados a través del formulario se envían a una categoría o grupo configurado para recibir correo de contact_form_email.[1] Al igual que los formularios de contacto tradicionales, no se requiere tener una cuenta en el sitio para enviar.

Así es como podría verlo un visitante:

Tenga en cuenta que esta es una publicación normal que puede tener cualquier instrucción que desee incluir en el cuerpo.[2] Actualmente, los nombres de los campos están codificados y no se realiza ninguna validación real, pero consulte la sección TODO a continuación. Una vez enviado el mensaje, aparecerá en el feed de mensajes del grupo configurado:

Dependiendo de cómo estén configuradas sus notificaciones por correo electrónico, los miembros del grupo configurado también pueden recibir un correo electrónico de Discourse:

Configuración

Para utilizar este complemento, debe configurar el correo electrónico entrante para crear nuevos temas o mensajes de grupo. No es necesario configurar la respuesta por correo electrónico ya que el complemento en realidad no envía correo electrónico. Secuestra la API para simular correo entrante. (Dicho esto, ¡la respuesta por correo electrónico es una característica útil!)

En particular, este complemento requiere:

  • email_in y
  • enable_staged_users

que estén habilitados.

Una vez habilitado, cualquier tema etiquetado como contact tendrá un formulario de contacto agregado a la salida del complemento topic-above-posts.

Enviar a un grupo

Dado que las personas usarán este formulario para enviar su información personal, enviar los resultados a un grupo cerrado es la opción más segura.

  1. Cree un nuevo grupo para las personas que manejarán los contactos. (Normalmente lo llamo “Contacto” por simplicidad, pero podría ser cualquier cosa, incluido un grupo existente).
  2. Agregue miembros que recibirán la información de contacto.
  3. No marque ninguna de las opciones de acceso. Este debe ser un grupo cerrado.
  4. Cambie la visibilidad del grupo según lo razonable para su organización.
  5. Establezca la “Dirección de correo electrónico entrante personalizada” como la misma que la configuración contact_form_email. (Por defecto, es “contact@example.com”.)

Enviar a una categoría

Enviar a una categoría también es posible utilizando la configuración de categoría “Dirección de correo electrónico entrante personalizada”. Asegúrese de habilitar también “Aceptar correos electrónicos de usuarios anónimos sin cuentas”.

¡Sin embargo, no se recomienda enviar a una categoría información de contacto! Si por alguna casualidad se cambian los permisos de acceso de la categoría, podría exponer información personal a personas (o motores de búsqueda) que no deberían tener acceso. Es mucho menos probable que suceda si los contactos se envían a mensajes de grupo en su lugar.

Limitar quién puede agregar formularios de contacto

Podría ser bastante extraño que aparecieran formularios de contacto por todas partes, por lo que es posible que desee limitar quién puede usar la etiqueta contact. Para hacerlo, cree un nuevo grupo de etiquetas:

  1. Desde la página /tags, seleccione la llave inglesa en la esquina superior derecha.
  2. Seleccione “Administrar grupos de etiquetas” y luego seleccione " :heavy_plus_sign: Nuevo grupo".
  3. Complete un nombre apropiado (por ejemplo, “Solo personal”), agregue la etiqueta contact y seleccione “Las etiquetas son visibles para todos, pero solo los siguientes grupos pueden usarlas”.
  4. Elija el grupo al que desea permitir agregar un formulario de contacto (generalmente “personal” o “administradores”) y guarde el grupo de etiquetas.

REGISTRO DE CAMBIOS

  • 25 de abril de 2024: Lanzamiento Alfa.

PENDIENTE

  • Me gustaría configurar pruebas para asegurarme de que nada se rompa cuando haga cambios. En particular, quiero verificar que las personas sin cuentas puedan enviar sus datos.
  • Mientras probaba, descubrí una fuga de datos importante. Eliminé esa vulnerabilidad en particular, pero realmente me vendría bien algo de ayuda para probar.
  • El formulario no realiza ninguna validación. El único requisito real es que el campo de correo electrónico parezca un correo electrónico. Si alguien deja una respuesta sin agregar un correo electrónico, el formulario falla silenciosamente.
  • No hay protección contra spam o abuso.
  • El código es muy del tipo my-first-plugin basado en ejemplos que usaban convenciones obsoletas. Cualquier sugerencia sobre el estilo es bienvenida.
  • Me gusta tener el formulario de contacto asociado con un tema etiquetado como “contacto”, pero es complicado y probablemente innecesario. Estoy considerando agregar una nueva ruta que sea solo el formulario de contacto para simplificar.
  • Los datos de contacto se almacenan en la base de datos, pero podría ser útil tener un panel de administración para ver una lista de contactos.
  • El formulario está fijo a mis requisitos actuales, pero sería útil tener algo de flexibilidad sobre qué campos solicita.

  1. Esa configuración tiene como valor predeterminado “contact@example.com” pero se puede configurar para aceptar correos electrónicos reales. ↩︎

  2. Incluso es posible responder al formulario de contacto, para bien o para mal. ↩︎

13 Me gusta

Esto no funciona. ¿Puedes actualizar a @jericson

Funcionando para mí.

1 me gusta

No es un tema, es un plugin. Véase Install plugins on a self-hosted site.

5 Me gusta

Lo instalé. Agregué mi correo electrónico a contact_form_email, habilité email_in, agregué 'everyone' en email in allowed groups, enable_staged_users. Probé el formulario, no, no estoy recibiendo ningún correo electrónico.

2 Me gusta

¡Buen trato! Podría ayudar a futuros lectores saber qué lo resolvió.

No instalo el plugin como tema, supongo :wink:

1 me gusta

¿Puedes publicar algunas capturas de pantalla del plugin en acción? ¿Se puede modificar/configurar el “Formulario de contacto”?

1 me gusta

¡Claro! Mira la publicación editada.

Lamentablemente no. ¡Pero las PR son bienvenidas!

1 me gusta

Plugin bastante bueno. Supongo que la dirección de correo electrónico falsificada no se muestra al usuario final.

Correcto. Tengo otro plugin (aún más rudimentario que este) para obtener reseñas anónimas. Uso review@example.com para dirigir esos mensajes al destino adecuado. Es solo una cadena de texto.

1 me gusta