Ajuda com URLs

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
sliderf's picture

Boa noite,

Estou a desenvolver um site de noticias em Drupal /. Estou com um problema nos urls que não sei bem como resolver.

Neste momento tenho configurado uma taxonomia de categorias. Cada item do menu corresponde a um termo da taxonomia.

Quando crio um conteúdo posso atribuir multiplas categorias.

O quero que quero que aconteça é que quando estou na homepage(tenho um view so na Home) e clico para ver o detalhe quero que o link do url seja dominio/titulo-da-noticia.
Quando estou na categoria, tenho a lista de todas as noticias correspondentes e quando vou ver o detalhe da noticia o link seja dominio/categoria/titulo-da-noticia.

O problema é ter multiplas categorias e não conseguir configurar um pattern no pathauto para o node.

É possível ter este comportamento?

Apenas não estou a conseguir implementar o link do detalhe da noticia quando venho da categoria.

Não sei se me estou a explicar bem mas se alguém souber a solução precisava de uma luzes... :)

Obrigada

Sliderf

Comments

Tens experiencia com filtros

fmfpereira's picture

Tens experiencia com filtros de contexto, relações e o módulo EVA?

A solução é um pouco reboscada para quem não tem experiência com isso, mas para o problema específico que colocas são as que me vêm á cabeça.

Para responderes a múltiplos URL'S tens duas alternativas:

VIEWS
Tens que criar uma view com o display do tipo página que mostre o nó, quando os filtros de contexto interpretam a categoria e o titulo do nó a partir do url.

RULES
Crias uma rule para criar um novo url alias sempre que gravas um nó. Iteras sobre as categorias, e usas os tokens para criar os URLS.

Já para mostrares o url certo consoante o contexto (se estás na homepage ou na listagem da categoria é que complica mais um bocado)

No teaser (ou nos display mode que usas), para apresentares o link consoante estás na view da homepage ou na listagem de nós da categoria tens que criar um EVA Field.
Ao apresentar o nó na listagem verifica se existe uma categoria no url. Se existir então re-escreves o campo categoria com o url categoria/titulo-do nó, caso contrário defines a opção sem resultados com a [path] original do nó. Esta opção também engloba que tenhas que usar relações entre as entidades taxonomia e conteúdo.

Conselho: Se vais usar títulos a partir de filtro de contexto nas views, usa o módulo machine_name para criar uma safe string do titulo, caso contrário podes ter problemas com espaços e caracteres especiais.

De resto, não estou a ver outra solução simples.

Se houver alguém que a tenha, que levante a mão ;)

Views e URL alternativos

camorim's picture

No curso Drupal 7 Views - http://nodes.pt/formacao/workshops-online/dominar-o-views , tenho essa funcionalidade implementada.

Procedimento em traços gerais:

  1. Taxonomia
    Tens de criar taxonomia com hierarquia das rubricas.

  2. Views
    Cria clone da view default /taxonomy/term/% e adapta-a ao que queres.
    Usa contextual filters:

- Content: Has taxonomy term ID (with depth)
- Content: Has taxonomy term ID depth modifier

  1. URLs alternativos
    Na secção Taxonomy terms, edita pattern para o vocabulário das tuas rubricas, de forma a que parent e child apareçam como alias.

term:parent]/[term:name]

Na secção dos patterns para o(s) teu(s) content type(s), usas o delta do field que faz relação com termod e taxonomia. No meu caso é field_topico que deves substituir pelo machine name do teu field.
O 0 (zero) mostra o parent (grande rubrica) e o 1 o child (sub-rubrica), seguido do título do node específico que estiver a ser visualizado.

[node:field-topico:0:name]/[node:field-topico:1:name]/[node:title]

Bom trabalho.

Abraço,
Cláudia Amorim

Obrigada aos dois pela

sliderf's picture

Obrigada aos dois pela ajuda.
Vou tentar implementar a ver se consigo.

Cumps,

sliderf

O módulo Pathauto pode ajudar

fsilva's picture

Penso que a forma mais simples é usar o módulo Pathauto onde podes definir qual o URL para cada nó que crias. Por exemplo podes definir que quando crias um artigo o URL é /{taxonomia}/{titulo}. O módulo cria URL alias para resolver isso.

The Pathauto module automatically generates URL/path aliases for various kinds of content (nodes, taxonomy terms, users) without requiring the user to manually specify the path alias. This allows you to have URL aliases like /category/my-node-title instead of /node/123. The aliases are based upon a "pattern" system that uses tokens which the administrator can change.

Não deves ter caminhos diferentes para o mesmo conteúdo. Em termos de SEO isso é bastante penalizador. Para um BOT como o google tu tens dois URLs diferentes o que quer dizer que um deles é uma cópia. (O Google webmasters pode-te ajudar neste assunto.)

Espero ter sido uma ajuda!

O fsilva tem razão, os bots

pio.fernandes's picture

O fsilva tem razão, os bots penalizam urls diferentes. Mas penso que existe um módulo para colmatar essa situação, o nodeSymLinks.

Nas vezes que precisei de categorizar assim conteúdo recorri ao módulo nodehierarchy. Mas que me lembre não creio quetenha tido sucesso na transformação do url consoante a categoria onde se pendura nos menus, que penso que é isso que OP está a tentar conseguir.

EDIT
Com o nodesymlinks, o OP consegue o que precisa relativamente aos URLs, desde que ao criar o conteudo, ele configure os menus pai onde quer pendurar o link. à mão. E o url gerado para cada link respeita a hierarquia com o token quem vem por omissão.
exemplo:
Only local images are allowed.

Viva, http://www.hobo-web.co.

fmfpereira's picture

Viva,

http://www.hobo-web.co.uk/duplicate-content-problems/

É sempre possível usar a tag canonical, no caso de termos múltiplos urls.

Ab.,
Filipe