Dentro da pasta modulos existe subpastas nomeadas de acordo com cada módulo inserido no sistema
Dentro de cada módulo, segue-se o mesmo padrão de pastas e arquivos, sendo:
/modulos/nome_modulo/view/nome_modulo.html - Contendo listagens e formulários (para manter o padrão, no view utilize apenas html, css e javascript)
/modulos/nome_modulo/model/nome_modulo.php - Contendo rota para insert, update, remove e list (Para insert e update existe classes prontas para simplificar)
/modulos/nome_modulo/controller/nome_modulo.php - Contendo controlador de rotas, define quando será exibido formulários e listas
Em resumo, abrindo por exemplo a rota
app.gerenciamais.com.br/produtos, o
index.php raiz do sistema detecta o módulo, no caso
produtos utilizando a função
router(0) e inclui o arquivo
modulos/produtos/controller/produtos.php.
O controller por sua vez inclui o
modulos/produtos/view/produtos.html exibindo por padrão a listagem de registros.
Após importado, o view inicia o Vuejs (em alguns módulos jQuery)
e faz uma requisição via GET (Vue com Axios ou jQuery com Ajax) no
modulos/produtos/model/produtos.php (/model/produtos/list) para obter o retorno do mysql select com a listagem dos registros no formato
JSON.
Abrindo a rota
app.gerenciamais.com.br/produtos/insert ou update, o controller inclui o formulário para inserção ou atualização de dados.
O formulário possui campos de acordo com cada módulo, e deverá enviar dados sempre via POST (Vue com Axios ou jQuery com Ajax) para
model/produtos/insert ou update, com isso, dentro do
model
do módulo você poderá inserir ou atualizar dados no banco.
A validação de campos poderá feita feita com Vue antes do envio do POST ou no recebimento dos dados no model.
O exemplo acima se aplica para todos os módulos atuais e para os novos.
Criando novo módulo:
Para criar um novo módulo, você pode baixar o módulo exemplo
aqui, alterar o nome para um que não exista na base de módulos se seguir as instruções contidas no arquivo
(leia me).
O módulo de exmplo possui listagem, formulário para insert, update e remoção de dados.
Se preferir, aqui tem um
vídeo mostrando a instalação de um novo módulo.