I want to classify my content within the following categories:
They are shared among my content types (e.g. news, page).
I want to create listing pages filtering by category, something like "news/international-politics" (notice the clean URL).
What is the best way to achieve this?
I've kind of done it with a shared taxonomy and a view per content type with an argument, but then I can't use the taxonomy links and have to build them by hand (cleaning the taxonomy name), but it's not a very clean solution.
Bite the bullet and create the page in code. You just need to iterate over the content types and terms, creating the links as you go.
Create a normal view that lists the taxonomy terms. Use link rewriting in the view to output a link that's contains the term name and content type, and is easily identifiable. Eg.
custom_term_list/news/International Politics. Use custom_url_rewrite_outbound() to translate this to
/news/international-politics. Gotta be careful not to slow the site down here.
Use a terms as nodes paradigm. (I think this would work.) Create a content type for which each node will refer to a term. This can be done with taxonomy_node, nat (Node Auto Term), or even content_taxonomy (and maybe others for all I know). Add a computed_field that calculates the name of the term with spaces turned to dashes (or whatever). Then it would be easy to make the listing. If you want the node term to be created automatically when a term's created, then you'll need to use one of the first two modules mentioned.
Those are the only approaches I can think of to create listing pages. I think I'd just go for the first one.
I found a way to do it using distinct vocabularies per content type togheter with nat and tvi.
It took me days to work this out but the answer is in this video
Hierarchical Views Catalog using Taxonomy
In Views Use The Rewrite results Output this field as a link
Make sure your title field in the Taxonomy View doesn't link to the taxonomy term, but it outputs the field as a link to "catalog/[name]" that way your catalog names are clickable :)