Descrição do Projeto:
A ideia é ter um gestor para criar um outro gestor. Como funcionaria.. eu iria gerar um gestor de conteúdo com uma configuração específica para cada caso, por exemplo, eu tenho um site de notícias que precisa de alguns módulos como: notícias, agenda, galeria de fotos, publicidade, blogs, página de contato... então neste exemplo o gestor principal teria que ter as configurações:
Criar módulo > Nome do Módulo {Notícias} > Campos do Módulo {Titulo, Data, Resumo, Descrição, Fonte, Autor, Categoria, Permitir Comentários, e o que mais desejar}. Para cada campo desse eu iria escolher o tipo de campo, se ele é input, textarea, select, se é obrigatório ou não, quantos caracteres no máximo cada campo deve ter se for o caso..
Criar módulo > Nome do Módulo {Blog} > Campos do Módulo {Titulo, Data, Reusmo, Descrição, Categoria, Blogger e assim por diante}.
A ideia é o sistema poder gerar um outro sistema com seus módulos, aí o sistema deixa disponível para download esses arquivos para que seja apenas configurado conexão com o banco de dados, mas o próprio sistema deve gerar os arquivos dos módulos, seu banco de dados e todas as configurações para que ele funcione.
Temos um sistema gestor de conteúdo, mas toda vez temos que configurar um por um para cada necessidade de clientes, e estamos fazendo uma migração agora e a ideia é um sistema, gerar esse outro sistema para que possamos efetuar isso.
Deve ser levado em consideração padrão para uploads de arquivos, por exemplo, para o módulo de notícias, ter uma pasta específica para os uploads das imagens que for enviada para esse módulo, o mesmo para blog, o mesmo para qualquer outro nome de módulo, o ideal seria no próprio sistema a pessoa poder informar o nome da pasta que será criada, para que as imagens sejam enviadas para essa pasta, seja ela imagem principal ou galeria de fotos.
O sistema é um pouco complexo do ponto de vista de lógica, mas é tudo CRUD, porém tem que haver experiência com manipulação de arquivos, criação de banco de dados através de execuções e entendimento de estrutura para não ficar gerando um sistema bagunçado.
Todo módulo que haver a opção de vincular campos de categorias, por exemplo, eu adiciono o módulo de categorias, com o {titulo, modulo} afim de que quando eu for por exemplo adicionar o módulo de notícias, eu quero que tenha um select com categorias, e eu possa selecionar através da conexão as categorias do módulo de notícias, aí quando o usuário do gestor for adicionar uma notícia, ele poderá escolher as categorias que foram adicionadas no módulo específico.
Outro ponto importante é sobre o tipo de campo textarea, ao selecionar isso, o gestor final tem que apresentar um editor semelhante ao do Wordpress, com aquelas opções de formatação, tratamento dos caracteres que são gravados no banco de dados, afim de evitar erros como aspas simples, duplas, funcionamento semelhante ao WP.
Módulos que devemos criar com o sistema gerador:
Notícias; Blogs; Galeria de Fotos; Enquetes..