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

Responder a