Hola a todos, espero estar publicando esto en el lugar correcto. Estoy intentando desarrollar un plugin para mi nuevo sitio web de Discourse.
Hice un fork del repositorio de ejemplo aquí, logré que funcionara un Plugin Outlet, luego me encontré con un muro y empecé a sentirme bastante perdido y confundido. Recientemente estoy empezando a dominar los frameworks MVC de PHP como Laravel, pero soy MUY nuevo en los frameworks de JS. Nunca he tocado Ruby, Rails o Ember antes.
El Problema
Mi sitio web es para una comunidad de HOA. Lo que estoy intentando hacer es recopilar y guardar algunos campos de datos adicionales por usuario:
legal_name(cadena)is_owner(booleano)is_resident(booleano)building(cadena) - representando el número de su edificiounit(cadena) - representando el número de su unidad- … y algunas otras variables internas, como si un moderador los ha confirmado.
Quiero hacer que estos campos sean obligatorios para el registro de usuarios. Eso significa modificar el formulario de registro de usuarios. Me conecté al outlet create-account-after-password y logré mostrar algunos campos adicionales, pero obviamente esto no lo hace funcional.
Creo que necesito extender el controlador en app/assets/javascripts/discourse/app/controllers/create-account.js, no solo para capturar los nuevos valores del formulario cuando se envían, ¡sino incluso para algo tan (aparentemente) básico como usar el nombre del sitio this.siteSettings.title en un campo de traducción de client.en.yml! (Ahora mismo, los campos adicionales en mi formulario de registro tienen como encabezado: “¿Cuál es tu conexión con [valor de %{title} faltante]?”. Lo cual obviamente no es bueno).
Cuanto más intentaba buscar respuestas, más preguntas tenía y más grandes se volvían. Diferentes guías que intenté seguir aparentemente fueron escritas para diferentes versiones de Discourse. El repositorio de ejemplo del plugin tiene cosas que no entiendo. ¿Cuál es la diferencia entre una ruta del lado del cliente y una ruta del lado del servidor? ¿Cuál es la diferencia entre un plugin y un módulo? Estoy tan perdido.
Si alguien pudiera ofrecer alguna ayuda, estaré muy agradecido. Gracias de antemano.
