O que eu fiz aqui no trampo....

 

www.site.com/abrir/empresa/historia

 

Sendo que:

Abrir é um método do controller main.php (é o default no routes.php)

empresa é o título do menu e historia seu submenu.

 

Não há routes, uma vez que é o cliente que coloca os nomes dos
menus/submenus. O que tu poderias fazer é:

- Criar um campo url_title, por exemplo, ao criar um menu. Eu não fiz e
agora sinto muita falta. Assim não importa qual o nome do menu (pode até ser
“Esta empresa cobra por um Ferrari e paga por uma bicicleta” que ele
convertia num nome “Google friendly”).

- Nos routes, defina apenas o que é especial. Por exemplo, produtos,
noticias e outros. Se na url não existir estes, que dizer que é menu
“normal”.

 

Funciona muito bem para mim, e não tenho a necessidade de colocar ids ou
números na url, coisa que (para mim) é confusa.

 

Também não quis colocar um controller para cada, salvo quando é carrinho de
compras/e-commerce. Assim fica melhor dividido. Agora menus especiais
(notícias, vídeos, etc) eu deixei no controller principal, com um método
para ele: function noticias($noticia)...

 

É fazer testes, mas deixei meu htaccess quase intacto. Só as configurações
normais para retirar o índex.php e alguns limites de upload (2mb é pouco
para subir PDFs, ZIPs e afins).

 

De resto acho que é isso.

Se precisar de alguma coisa mais técnica, me avise.

 

 

 

De: [email protected]
[mailto:[email protected]] Em nome de Octávio Augusto
Interliquia
Enviada em: quarta-feira, 23 de setembro de 2009 23:28
Para: CodeIgniter Brasil
Assunto: Re: [CodeIgniter] Menu dinâmico - editoria na URL - Remapping -
Route

 

Oi Roberto e pessoal da lista.

Editorias dinâmicas = menu dinâmico = infinitos controlers.

Eu também pensei em alterar os routes dinamicamente com um include (gerando
um php a cada inclusão / alteração de editorias).
Não é uma solução muito sofisticada, mas resolveria.

Não usar indetificadores extras e o final da url terminada em "titulo.html"
é uma questão de SEO. Foi só para ilustrar um caso de artigo/notícia.

Pensei também em fazer um route geral com (:any) e tratar tudo no controler
principal, mas seria o mesmo que refazer o trabalho do CI.
Também não sei como acionar / chamar um controler dentro do outro. Sabe como
fazer isso?



Octávio Augusto



2009/9/23 Roberto Almeida Longhi <[email protected]>

Octávio,

Tudo bom?
No meu ponto de vista, o routes foi feito exatamente para isso.

Mas não sei se entendi direito.
O seu menu é fixo? Você colocou editoriais dinâmicas, não entendi muito bem.

Referente o link do artigo


meusite.com.br/esporte/id_noticia-999/titulo-da-noticia.html

Não entendi muito bem porque você precisa do titulo da noticia, acredito que
o id da noticia resolva, ou o titulo (como faz o wordpress).

Vou supor que você tenha varias categorias (esporte, cultura, politica), mas
que tudo é artigo.
Neste caso eu faria um controller artigo, e redirecionaria a categoria como
um parametro.
Ai a url seria parecido com o que você descreveu meusite.com.br/esporte/id/
<http://meusite.com.br/esporte/id_noticia-999/titulo-da-noticia.html>  porém
no routes faria o redirecionamento.
$route['esporte/([a-z]+)'] = "artigo/esporte/$1";

Agora se a categoria também é dinamica (no exemplo acima, o parametro
esporte) ai fica dificil, mas provavelmente eu iria alterar o routes.php
dinamicamente ou algo parecido.

[]'s

Octávio Augusto Interliquia escreveu: 

Salve pessoal.

Estou fazendo um portal e vou ter editorias dinâmicas (canais do menu).

Assim, vou ter Esporte, Cultura, Politica etc.

Quero montar url amigável e prática, sendo a mais curta possível.

Gostaria de usar url do tipo "meusite.com.br/esporte" ou mesmo
"meusite.com.br/cultura"
Mas não quero ter que fazer um controler para cada um deles - já que é
dinamico - ou colocar o nome do controler "editoria" ou "noticia" na url.

Ou ainda, quando for um artigo, que a url seja
"meusite.com.br/esporte/id_noticia-999/titulo-da-noticia.html"

Alguém já solucionou isso?

Algum jeito que não seja fazendo várias routes (remaping) manualmente.

Agradeço a ajuda!


Octávio Augusto




  _____  



 
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
  





-- 
Roberto Almeida Longhi
Time Web
Contmatic
(11) 2942 6700 Ramal 1404
(11) 8599 9022
www.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

Responder a