Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Daniel Filho

Painel de Controle e Interface

Recommended Posts

Olá, andei dando uma estudada no CakePHP e comecei a me interessar em desenvolver com ele.

 

Porém, me veio uma "dúvida" simples: "Como pensar no Painel de Controle do meu site feito em CakePHP?".

 

Digo, como restringir o acesso ao meu painel de controle. Que views criar, como separá-lo e ao mesmo tempo integrá-lo ao site?

 

Dese já, grato pela atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode deixar a área administrativo num prefixo (por exemplo: site.com/admin/posts/cadastrar). Para isso você utiliza Prefix Routes.

Para retringir o acesso a uma action/controller, utilize o component Auth: http://forum.imasters.com.br/index.php?/topic/367685-tutorial-utilizando-o-auth-component-no-cakephp/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo, se eu mapear a rota afim de criar um painel de controle desta forma:

 

Configure::write('Routing.admin', 'admin');
Router::connect('/admin', array('controller' => 'admin', 'action' => 'index', 'admin' => true));

Eu terei ainda que criar um admin_controller.php e assim por diante?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não necessariamente.

Com rotas você pode casar qualquer url para qualquer controller.

Então poderia ser:

Router::connect('/admin', array('controller' => 'paginas', 'action' => 'inicial', 'admin' => true));
Ou:

Router::connect('/admin', array('controller' => 'posts', 'action' => 'ultimos_comentarios', 'admin' => true));
Vai de sua escolha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenho que fazer isso pra todos os controllers e as ações?

 

Eu tentei mapear e deu erro:

Router::connect('/admin', array('controller' => 'blogs', 'action' => 'index', 'admin' => true));

EDITADO

 

Bom, acho que eu entendi. Porém eu gostaria de correção do meu pensamento (se for o caso), e que o tópico não fosse encerrado, para dúvidas posteriores.

 

Eu fiz isso:

Router::connect('/admin', array('controller' => 'admin', 'action' => 'index', 'admin' => true));
Router::connect('/admin/blogs', array('controller' => 'blogs', 'action' => 'index', 'admin' => true));
Router::connect('/admin/blogs/cadastrar', array('controller' => 'blogs', 'action' => 'cadastrar', 'admin' => true));

E entendi que para cada ação, para cada navegação, feita no painel de controle da aplicação, deve ser feita a mapeação da URL. Certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não nao.

Toda action em um controller já tem uma rota, MAS, você não tem um controle sobre elas. Para você criar do jeitinho que você quiser, você usa os Routes.

Portanto, se você tem o controller blogs e uma action editar, uma rota padrão já será definida:

/blogs/editar
Você não precisa cria-la.

 

Outro exemplo.

Se você tem o controller produtos e uma action admin_cadastrar, a seguinte rota será definida:

/admin/produtos/cadastrar

No seu caso ali, nenhuma rota será necessária.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho que ter uma action admin_cadastrar na rota para que a url (/admin/produtos/cadastrar) funcione?

 

Exemplo:

Router::connect('/admin', array('controller' => 'blogs', 'action' => 'index', 'admin_cadastrar' => true));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho que ter uma action admin_cadastrar na rota para que a url (/admin/produtos/cadastrar) funcione?

Este é o comportamento padrão do Cake, mas você pode modifica-lo com as rotas.

ProdutosController::admin_cadastrar -> /admin/produtos/cadastrar

 

------- LEGENDA ------

Controller;

Admin route (ou Routing prefixes em novas versões do cake;

Action;

 

Links:

http://forum.imasters.com.br/index.php?/topic/374740-tutorial-iniciando-no-cakephp-entendendo-o-controller-parte3/ - falo como o cake cria as rotas padrões

http://forum.imasters.com.br/index.php?/topic/367686-tutorial-roteamento-no-cakephp-routes-basico/ - básico sobre rotas

http://forum.imasters.com.br/index.php?/topic/370218-tutorial-cakephp-elementos-de-rotas-e-urls-amigaveis/ - elemento de rotas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok.

Vou passar alguns exemplo

 

Você tem o controller "posts" e a action "novo". Qual rota o cake faz para você?

/posts/novo
->>> Se você acessar esta URL, o cake irá busca o controller posts e a action novo, ou seja PostsController::novo()

--------

Você tem o controller "posts" e a action "editar" que recebe uma variável como parâmetro, o ID do post

/posts/editar/12
->>> Se você acessar esta URL, o cake irá buscar o controller posts e a action editar, ele também passará o numero "12" como parametro. Ou seja: PostsController::editar(12)

----

Você tem o controller "posts", a action "admin_novo" e você habilitou o Routing Admin (ou Routing Prefix):

admin/posts/novo
->>> Se você acessar esta URL, o cake irá buscar pelo controller posts e a action "admin_novo" (PostsController::admin_novo()) caso o Routing Admin esteja ativado, caso ele não esteja ativado, irá buscar normalmente, como se "admin" fosse o controller e "posts" a action, ao qual receberia um parâmetro "novo" - AdminController::posts('novo');

 

Se tiver dúvidas falae =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.