Então galera, que bom que vcs estão interessados no projeto!
Na verdaede eu estou trabalhando com a configuração do crud dentro do
próprio controller.
Deixe-me explicar a vcs o que fiz até agora. Primeiramente, quem
quiser fazer o download do código, ele está disponível em:
http://www.gersongoulart.com.br/testsite5.dev.zip
O pacote tá "grandinho" pq tem o CI junto. Observaçnao importante:
estou codificando tudo em inglês.
O que eu fiz aí foi:
1) Passei a pasta /application para a raiz (só para ficar mais fácil
atualizar o CI sem mexer no meu sisteminha);
2) Criei um arquivo .htaccess basico na raiz para da acesso a arquivos
e tirar o index.php da url;
3) Alterei o arquivo autoload.php para carregar automaticamente a
library database;
4) Alterei o arquivo config.php para colocar o diretorio /application
na raiz e tirar o index.php;
5) Alterei o arquivo database.php para colocar minhas configurações.
Deixei um sql na raiz com meu banco;
6) Alterei significativamente o arquivo routes.php. Nele eu escrevi um
pequeno codigo para ler quais arquivos .php tenho na pasta /controller
e poder filtrar as urls de forma que as urls contendo o nome de um
controller vão abrir ele corretamente, mas os que tiverem qualquer
outra informação vao ser levados para um controller padrão pre-
defindo. Daí, usando o nome dos arquivos/controllers eu criei uma
route para o controller padrão e outra para as funções do Crud. É
importante explicar que existem várias nomenclaturas para o que
chamamos de "CRUD". Para esta library que estou criando estou usando a
nomenclatura ABCD (Add+Browse+Create+Delete), simplesmente porque acho
essa nomenclatura mais f´åcil de compreender.
7) Comecei a criar o ABCD base no crud criado por Giordano Piazza (t´å
nos foruns do CI, mas perdi o url). Isso consiste de um arquivo
Abcd.php dentro de /libraries e uma nova pasta ./application/fields
com os arquivos contendo o html (configuraçnao dos campos do
formulário (inputs, textareas, etc).
8) Dentro de cada controller deverá haver uma função ABCD() para
configurar o crud daquele controler (como sera a listagem, o
formulario, futuramente as permissões de usuários, etc.);
Bom, é isso. Se vcs colocarem esse pacote instalado no localhost de
vcs e entrarem no admin pela url localhost/admin vão ver a tela que
fiz com a listagem e o formulário. Podem deletar/edita/adicoinar que
vcs vão ver que tudo funciona direitinho e muito rápido.
A questão a partir daqui é que, como disse, agarrei em como fazer os
relacionamentos entre as tabelas. Lá no banco tem duas tabelas:
sections e pages. O objetivo é muito simples: criar seções para o site
e, dentro de cada seção, criar umas páginas. O primeiro campo do
cadastro de novas páginas deveria ser para selecionar à que seção essa
página deve pertencer. E essa seção deveria vir da tabela de seções. O
banco também não tem o relacionamento ainda (as tabelas estão
independentes) simplesmente porque eu não sabia como criar o
relacionamento para ser "lido" pelo sistema de crud.
Se conseguirmos uma forma de fazer o relacionamento de maneira tão
simples quanto o restante, teremos ai uma ferramenta para gerar sites
inteiros em questão de minutos. Como eu disse, se alguém tiver uma
idéia simples e eficiente para conseguir fazer os relacionamentos
funcinarem dentro dessa estrutura que eu já comecei mas tiver com
pouco tempo ou grana, eu estou disposto a pagar pelas horas de
trabalho para ter um resultado. Pq eu realmente quero muito terminar
isso mas meu conhecimento não é vasto o bastante.
Obrigado!
Gerson.
On 15-Apr-09, at 5:53 PM, [email protected] wrote:
Enviar submissões para a lista de discussão Lista para
[email protected]
Para se cadastrar ou descadastrar via WWW, visite o endereço
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
ou, via email, envie uma mensagem com a palavra 'help' no assunto ou
corpo da mensagem para
[email protected]
Você poderá entrar em contato com a pessoa que gerencia a lista pelo
endereço
[email protected]
Quando responder, por favor edite sua linha Assunto assim ela será
mais específica que "Re: Contents of Lista digest..."
Tópicos de Hoje:
1. Re: CRUD (Roberto A. Longhi)
2. Re: CRUD (Luigi Bertaco Cristofolini)
----------------------------------------------------------------------
Message: 1
Date: Wed, 15 Apr 2009 17:47:19 -0300
From: "Roberto A. Longhi" <[email protected]>
Subject: Re: [CodeIgniter] CRUD
To: CodeIgniter Brasil <[email protected]>
Message-ID: <[email protected]>
Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"
É uma boa ...
Só precisa analisar como fazer esse arquivo para não prejudicar o
desempenho do sistema.
Mas achei a melhor opção.
Luigi Bertaco Cristofolini escreveu:
Chegaram a pensar em fazer um "arquivo de configuração" da estrutura
dos dados
como no hibernate do java onde geraria o banco de dados e o crud
dele?
talvez de um pouquinho mais de trabalho do que criar o banco de dados
diretamente
mais acredito que possa detalhar melhor e o CRUD fazer exatamente o
que for pedido na configuração
2009/4/15 Vinicius Cruz <[email protected] <mailto:[email protected]
>>
Poderia ser feita de ambas as formas? Caso o sistema não
identifique o FK, verifica pelo nome.
2009/4/15 Marcus Cavalcanti <[email protected]
<mailto:[email protected]>>
Para relacionar campos.
O MySQL só aceita FK quando se usa InnoDB, então tem gente que
resolve isso por nomenclatura.
Exemplo:
*tabela produto:*
id
nome
preco
descricao
*tabela carrinho;*
id
data_compra
produto_id (padrão de nomenclatura)
status
--
Marcus Cavalcanti
21 9144-5068
www.marcuscavalcanti.net/blog
<http://www.marcuscavalcanti.net/blog>
2009/4/15 Roberto A. Longhi <[email protected]
<mailto:[email protected]>>
Padrão de nomeclatura para as constraints ?
Marcus Cavalcanti escreveu:
Vc pode fazer isso de duas maneiras: ou criando uma
padrão de nomenclatura.
Ou lendo os campos que são FK.
--
Marcus Cavalcanti
21 9144-5068
www.marcuscavalcanti.net/blog
<http://www.marcuscavalcanti.net/blog>
2009/4/15 Gerson Macedo <[email protected]
<mailto:[email protected]>>
Caros!
Estou tentando desenvolver uma library, um CRUD
automático para o CI.
A função desta library CRUD seria ler o banco de
dados extraindo das tabelas as informações
necessárias para criar a listagem e o formulário para
inserção de novos dados. Algo muito próximo do
scaffolding, mas para ser usado como parte do
sistema.
A bem da verdade tudo o que eu disse acima já está
criado. Agarrei na parte de criar os relacionamentos
(um para um, um para muitos, muitos para muitos
etc.). Não sei como "ler" esta informação no banco e
como trata-la na hora de montar a listagem e o
formulário.
Àqueles que tiverem interesse no projeto, posso
disponibilizar o código gratuitamente (todo escrito
em inglês).
Quem tiver conhecimento que possibilite prosseguir no
desenvolvimento deste, como isso é parte importante
de um sistema maior que almejo desenvolver, estou
disposto a pagar pelo serviço de desenvolvimento como
freela.
Obrigado à todos.
Gerson Goulart.
_______________________________________________
Lista mailing list
[email protected]
<mailto:[email protected]>
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
------------------------------------------------------------------------
_______________________________________________ Lista
mailing list [email protected]
<mailto:[email protected]>
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
--
Roberto Almeida Longhi
Programador
Contmatic
(11) 2942 6700 Ramal 1404
(11) 8599 9022
www.contmatic.com.br <http://www.contmatic.com.br>
_______________________________________________
Lista mailing list
[email protected] <mailto:[email protected]>
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
_______________________________________________
Lista mailing list
[email protected] <mailto:[email protected]>
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
_______________________________________________
Lista mailing list
[email protected] <mailto:[email protected]>
http://codeigniter.com.br/mailman/listinfo/
lista_codeigniter.com.br
------------------------------------------------------------------------
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
--
Roberto Almeida Longhi
Programador
Contmatic
(11) 2942 6700 Ramal 1404
(11) 8599 9022
www.contmatic.com.br
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://codeigniter.com.br/pipermail/lista_codeigniter.com.br/attachments/20090415/218a0ecf/attachment-0001.html
>
------------------------------
Message: 2
Date: Wed, 15 Apr 2009 17:53:18 -0300
From: Luigi Bertaco Cristofolini <[email protected]>
Subject: Re: [CodeIgniter] CRUD
To: CodeIgniter Brasil <[email protected]>
Message-ID:
<[email protected]>
Content-Type: text/plain; charset="iso-8859-1"
Como funciona esses @annotations??daria para implementar no CI??
2009/4/15 Roberto A. Longhi <[email protected]>
É uma boa ...
Só precisa analisar como fazer esse arquivo para não prejudicar o
desempenho do sistema.
Mas achei a melhor opção.
Luigi Bertaco Cristofolini escreveu:
Chegaram a pensar em fazer um "arquivo de configuração" da
estrutura dos
dados como no hibernate do java onde geraria o banco de dados e o
crud
dele?
talvez de um pouquinho mais de trabalho do que criar o banco de dados
diretamente
mais acredito que possa detalhar melhor e o CRUD fazer exatamente o
que for
pedido na configuração
2009/4/15 Vinicius Cruz <[email protected]>
Poderia ser feita de ambas as formas? Caso o sistema não
identifique o FK,
verifica pelo nome.
2009/4/15 Marcus Cavalcanti <[email protected]>
Para relacionar campos.
O MySQL só aceita FK quando se usa InnoDB, então tem gente que
resolve
isso por nomenclatura.
Exemplo:
*tabela produto:*
id
nome
preco
descricao
*tabela carrinho;*
id
data_compra
produto_id (padrão de nomenclatura)
status
--
Marcus Cavalcanti
21 9144-5068
www.marcuscavalcanti.net/blog
2009/4/15 Roberto A. Longhi <[email protected]>
Padrão de nomeclatura para as constraints ?
Marcus Cavalcanti escreveu:
Vc pode fazer isso de duas maneiras: ou criando uma padrão de
nomenclatura.
Ou lendo os campos que são FK.
--
Marcus Cavalcanti
21 9144-5068
www.marcuscavalcanti.net/blog
2009/4/15 Gerson Macedo <[email protected]>
Caros!
Estou tentando desenvolver uma library, um CRUD automático para
o CI.
A função desta library CRUD seria ler o banco de dados
extraindo das
tabelas as informações necessárias para criar a listagem e o
formulário para
inserção de novos dados. Algo muito próximo do scaffolding, mas
para ser
usado como parte do sistema.
A bem da verdade tudo o que eu disse acima já está criado.
Agarrei na
parte de criar os relacionamentos (um para um, um para muitos,
muitos para
muitos etc.). Não sei como "ler" esta informação no banco e
como trata-la na
hora de montar a listagem e o formulário.
Àqueles que tiverem interesse no projeto, posso disponibilizar
o código
gratuitamente (todo escrito em inglês).
Quem tiver conhecimento que possibilite prosseguir no
desenvolvimento
deste, como isso é parte importante de um sistema maior que
almejo
desenvolver, estou disposto a pagar pelo serviço de
desenvolvimento como
freela.
Obrigado à todos.
Gerson Goulart.
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
------------------------------
_______________________________________________
Lista mailing
[email protected]http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
--
Roberto Almeida Longhi
Programador
Contmatic
(11) 2942 6700 Ramal 1404
(11) 8599 9022www.contmatic.com.br
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/
lista_codeigniter.com.br
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
------------------------------
_______________________________________________
Lista mailing
[email protected]http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
--
Roberto Almeida Longhi
Programador
Contmatic
(11) 2942 6700 Ramal 1404
(11) 8599 9022www.contmatic.com.br
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://codeigniter.com.br/pipermail/lista_codeigniter.com.br/attachments/20090415/55347340/attachment.html
>
------------------------------
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
Fim da Digest Lista, volume 21, assunto 31
******************************************
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br