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).
| 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. |
|
| Enlace al Repositorio | https://github.com/jericson/discourse-contact-plugin | |
| 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_inyenable_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.
- 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).
- Agregue miembros que recibirán la información de contacto.
- No marque ninguna de las opciones de acceso. Este debe ser un grupo cerrado.
- Cambie la visibilidad del grupo según lo razonable para su organización.
- 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:
- Desde la página
/tags, seleccione la llave inglesa en la esquina superior derecha. - Seleccione “Administrar grupos de etiquetas” y luego seleccione "
Nuevo grupo". - Complete un nombre apropiado (por ejemplo, “Solo personal”), agregue la etiqueta
contacty seleccione “Las etiquetas son visibles para todos, pero solo los siguientes grupos pueden usarlas”. - 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-pluginbasado 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.
Esa configuración tiene como valor predeterminado “contact@example.com” pero se puede configurar para aceptar correos electrónicos reales. ↩︎
Incluso es posible responder al formulario de contacto, para bien o para mal. ↩︎





