Olá a todos, espero estar postando isso no lugar certo. Estou tentando desenvolver um plugin para o meu novo site Discourse.
Eu fiz um fork do repositório de exemplo aqui, consegui fazer um Plugin Outlet funcionar, depois bati em uma parede e comecei a me sentir bastante perdido e confuso. Recentemente, estou começando a pegar o jeito de frameworks MVC PHP como Laravel, mas sou MUITO novo em frameworks JS. Nunca mexi com Ruby, Rails ou Ember antes.
O Problema
Meu site é para uma comunidade de HOA. O que estou tentando fazer é coletar e salvar alguns campos de dados extras por usuário:
legal_name(string)is_owner(bool)is_resident(bool)building(string) - representando o número do prédio delesunit(string) - representando o número da unidade deles- … e algumas outras variáveis internas, como se um moderador os confirmou.
Quero tornar esses campos obrigatórios para o cadastro de usuários. Isso significa modificar o formulário de cadastro de usuário. Eu me conectei ao outlet create-account-after-password e consegui exibir alguns campos extras, mas obviamente isso não o torna funcional.
Acho que preciso estender o controller em app/assets/javascripts/discourse/app/controllers/create-account.js, não apenas para capturar os novos valores do formulário quando enviados, mas mesmo para algo tão (aparentemente) básico quanto usar o nome do site this.siteSettings.title em um campo de tradução client.en.yml! (No momento, os campos extras no meu formulário de cadastro estão com o título, “Qual é a sua conexão com [valor de %{title} ausente]?” O que obviamente não é bom.)
Quanto mais eu tentava procurar respostas, mais perguntas eu tinha e maiores elas se tornavam. Diferentes guias que tentei seguir foram aparentemente escritos para diferentes versões do Discourse. O repositório de exemplo do plugin tem coisas que não entendo. Qual a diferença entre uma rota do lado do cliente e uma rota do lado do servidor? Qual a diferença entre um plugin e um módulo? Estou tão perdido.
Se alguém puder oferecer alguma ajuda, serei muito grato. Agradeço antecipadamente.
