Olá, eu traduzi a página de roteamento do manual do CI 2.0 e como achei um
pouco vago de exemplo usei o que foi citado no e-mail do Rafael (até pq o
link do comentário das routes não funcionou tb) para complementar a
tradução.
Mas em fim, o que eu gostaria de pedir é que vcs (que provavelmente se
interessam bem em routes, tem mais experiencia que eu, e testaram/utilizaram
a técnica acima) pudessem dar uma revisada no conteúdo que eu expliquei para
ver se falei alguma besteira.

Eu committei hoje a tarde, caso não estejam acompanhando o google project
vou colar aqui em baixo os detalhes.. qualquer modificação é só entrar e
committar o que acharem melhor..

Trecho que eu fiz:


$route['^(?!cms|site).*'] = "site/abrir/$0";
$route['cms/login'] = 'cms/site/login';
$route['cms/(:any)'] = "cms/$1";
$route['site/(:any)'] = "site/$1";

Você pode também misturar curingas com expressões regulares.

Como no exemplo acima, qualquer URL que o primeiro segmento não for similar
a cms ou site, irá chamar uma classe site, e usar seu método abrir (muito
útil para casos de nomes dinâmicos no segundo segmento, como por exemplo um
site com vários autores cadastrados no banco de dados e que você queira que
o remapeamento seja automático para cada usuário:
www.seu-site.com.br/fernandoaraujo, www.seu-site.com.br/joe, etc).

Quando for acessada a URL cms/login ela será remapeada para a classe cms, o
método site e passará como variável a palavra login (considerando que esteja
sendo usada a estrutura padrão da pasta controllers).

E as duas últimas linhas obedecem as regras do curinga normalmente, o que
for for cms/*** vai para cms/***, assim como site/***.


Acho que é isso aí.. vlw!
Abraço
Em 27 de janeiro de 2011 18:13, William Rufino <[email protected]>escreveu:

> CAra exatamente esta forma que me passaram hehe!
>
> Achei no forum
>
> é so eu usar essa regexp pra excluir todos meus controllers e estou salvo!
>
> William Rufino
> Desenvolvedor Web - Analista de Sistemas
> 31 8875-3143
> http://www.williamrufino.com.br
> http://www.websitesinteligentes.com.br
> @williamhrs <http://www.twitter.com/williamhrs>
> LinkedIN <http://br.linkedin.com/in/williamsilva/pt>
>
>
>
> Em 27 de janeiro de 2011 17:34, Rafael V. de Oliveira <
> [email protected]> escreveu:
>
> Então, acho que isso já deve dar-te uma luz:
>>
>> //@see http://zackhovatter.com/79/codeigniter-clean-urls/
>> $route['^(?!cms|site).*'] = "site/abrir/$0";
>> $route['cms/login'] = 'cms/site/login';
>> $route['cms/(:any)'] = "cms/$1";
>> $route['site/(:any)'] = "site/$1";
>>
>> Quer dizer, qualquer coisa que não for cms ou site, vai para site/abrir.
>> Qualquer coisa que for cms/*** vai para cms/***, assim como site/***.
>>
>> Pra mim deu imenso jeito pois utilizo poucos controllers. As vezes, quando
>> tenho e-commerce no site, eu coloco também para excluir o controller
>> carrinho.php
>> Mas no link acima tem mais informação, talvez dê para adaptar do teu
>> jeito.
>>
>> Abraços ^_^
>>
>> Em 2011/01/27, às 18:48, William Rufino escreveu:
>>
>> Fala galera tudo bom?
>>
>> To com uma dúvida sobre rotas,
>>
>> preciso criar a seguinte estrutura em meu site:
>>
>> www.site.com.br/usuario
>>
>>
>> pra isso seria uma rota
>>
>> $route['(:any)'] = 'usuario/buscar/$1';
>>
>> Porém se eu fizer desta forma seria horrível, pois teria que escrever
>> TODAs minhas rotas na mão, o que não é nem um pouco viável.
>>
>>
>> Alguem tem alguma sugestão de como fazer?
>>
>> Será que com hook da certo?
>>
>> Eu poderia vericar se existe um usuário, caso não exista eu continuo para
>> esse controller ou direcionava pra outro tem como
>> ?
>>
>> William Rufino
>> Desenvolvedor Web - Analista de Sistemas
>> 31 8875-3143
>> http://www.williamrufino.com.br
>> http://www.websitesinteligentes.com.br
>> @williamhrs <http://www.twitter.com/williamhrs>
>> LinkedIN <http://br.linkedin.com/in/williamsilva/pt>
>>
>> _______________________________________________
>> [email protected]
>> http://www.codeigniter.com.br
>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>> ---------------------------
>> Oportunidade de negócio
>> http://www.franquiasargohost.net
>> ---------------------------
>>
>>
>>
>> _______________________________________________
>> [email protected]
>> http://www.codeigniter.com.br
>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>> ---------------------------
>> Oportunidade de negócio
>> http://www.franquiasargohost.net
>> ---------------------------
>>
>>
>
> _______________________________________________
> [email protected]
> http://www.codeigniter.com.br
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
> ---------------------------
> Oportunidade de negócio
> http://www.franquiasargohost.net
> ---------------------------
>
>
_______________________________________________
[email protected]
http://www.codeigniter.com.br
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------

Responder a