Question about a View with Taxonomy-Filtering
Sorry this is so long. I tried to include as much detail as possible, so it could kind of act as a “recipe” for future websites like mine. (By the way, I didn’t know if this applied more to “Views” or “Taxonomy” so I posted this in both groups. I know duplication is frowned upon, but I know that most people aren’t members of both groups so I didn’t want to select only one group if the solution really lies within the conceptual framework of the other group).
My website is a database of advertising information (e.g. available advertising spaces, media companies, educational articles). Each piece of content that users submit can be categorized in up to 4 different ways (using 4 different taxonomy vocabularies):
- Topic (single-select)
- Region (multiple-select)
- Target Market Dimensions (multiple-select): (if the content is applicable only to certain demographic subsets)
- User Tags
Here is an example to better illustrate this categorization scheme…
A user submits “Tri-State Young Men’s Magazine” to the database (because companies can advertise in this magazine).
- Topic: Print Media
- Region(s): Philadelphia Metro, New York Metro, New Jersey (These 3 regions encapsulate the circulation of the magazine. Notice that they can select metro areas, as well as entire states which would be the “parents” of metro areas.)
- Target Market Dimensions: Men, 18-25 age group
- User Tags: cheap, high ROI, trusted
Here is what I want to do, which I’ve been having a lot of trouble with…
- Have a “Browse” section of the site where users can select a certain combination of terms and see the relevant resources (ad spaces, media companies, articles, blog entries, etc.). (I’m assuming this will end up having something to do with Views 2).
- For each combination of terms (which could be a massive amount), there would be 2 primary areas of the page…
- (This is the tricky part…) At the top, there would be an overview for that combination of terms (if it has already been created). This would probably be its own content type (type: “overview”) and will be brought into the view via a block or some other method. If it has not been created (which will be likely for many combinations since there could be so many), the user will be presented with the option to write an overview of a few paragraphs. (If they choose not to create an overview, then that overview content type page will simply not be created, since there’s no point in creating many many pages with no content).
- For the second half of the page, present the user with resources.
- Resources matching that exact combination of terms,
- Then, present the user with filter criteria so that they can further narrow-down what they’re looking at
So, here’s an example…
A user selects Topic: Print Media and Region: Philadelphia Metro. He is then shown the following:
- “Overview of Print Media in the Philadelphia Metro Region” (since it’s not an extremely specific criteria-set, someone before him likely wrote a few paragraphs worth of interesting facts).
- “Resources Matching Your Criteria” (e.g. articles, ad spaces, and media companies tagged with “Print Media” and “Philadelphia Metro”. Resources with only those 2 tags will be higher on the list, while resources with a lot of additional tags will be lower on the list.
- “Interested in More Specific Demographics” (Option to use additional filters, such as “Target Dimension: Male”. Say a user clicked on “Male”. He would then see a page similar to this one but with the additional filter of “Male” applied. If Print Media + Philadelphia + Male is not a very popular filter combination, there will probably not be an overview already created, so this user will have the option to create one when he goes to that page).
I know this is a lot to read, but I’ve spent many many hours trying to come up with a solution for all this. The hard part, as I said above, is finding a way to let users create an overview for a tag-combination on-the-fly. (I also would want to limit it to only 1 overview per exact-set of tags, so once it’s created I’d just allow users to edit rather than create).
After doing my best to research available options, it seems like I might have to just force users to select exactly one topic and exactly one region, create all 1000 topic+region combinations myself (even if it’s just a blank page) and only give users the permission to edit these overviews. Then, only use Target Market Dimensions and User Tags as additional filters on each topic+region page. I don’t prefer this method because I’d have to create all 1000 pages, plus it wouldn’t allow users to create overviews for any specific topic+region+dimension combinations (which was really going to be a selling point of my site due to awesome information scalability.
Does anyone have any ideas? I’m not an expert in any of the following modules, but I think one of them or a combination of them might be a partial part of the solution:
- Taxonomy Filter (I’ve been trying this but can’t quite get it to work the way I want. For example, it either doesn’t show parent terms (really just grouping labels such as “Gender”) or shows them and allows them to be selected as filtering criteria (I want “Male” to be selectable, not “Gender”. I could just not know what I’m doing, though).
- Faceted Search (Looks like you can’t select multiple terms from the same vocabulary. For example, you can’t select “Male” as well as “Age: 18-25”. If need be, I might just have to create a whole bunch of different vocabularies (like one just for “Gender”), but this would make my content submission forms really long (I use the taxonomy Super Select and like the way it displays nested fields by auto-collapsing them)
- Taxonomy Super Select (I currently use this on my content submission forms and it works well for that. Not sure how I’d incorporate it into Browse pages)
- Views 2 or 3 (using arguments and/or exposed filters)
- Hierarchical Select
- Exhibit
- Contemplate
- Panels 2 or 3
Alternatively, is there a slightly-different, yet much easier way to accomplish the kind of thing I’m trying to do? There are a lot of sites out there that allow users to apply multiple filters to the content, so there’s GOT to be an easy way to implement this.
Thanks!


Looks like you didn't get a
Looks like you didn't get a lot of response. It was a bit big to take in.
OK, here's what I would do. somehow (not sure yet) have your nexus page (where your filters combine) made up of two views. The bottom half the matching resources, as you describe.
The top half a view that selects node(s) of a content type called "Overview" that match the query.
Now, I know you said (I also would want to limit it to only 1 overview per exact-set of tags, so once it’s created I’d just allow users to edit rather than create). ... but if you could forgo that you may end up with three complimentary (or conflicting?) overviews, but each somewhat valid. There may be a way to limit it to one in the DB, but that sounds hard.
Me, I'd limit it in the UI:
"There is no overview page for "Print Media+Philadelphia Metro" - click here to make one.
"This overview for "Print Media+Philadelphia Metro" can be edited.
You've got 80% of your functionality just happening. You don't need pages with a special relationship to that nexus, you just need ones that are tagged in such a way that they end up in the right place.
Not sure about implimentation. I'd build on the existing taxonomy/term/n,o+p syntax that views supports, but seek help in creating a panel (maybe) that includes regions that pass the arguments down to views that are blocks in those regions. Maybe.
Maybe I'd do it a bit by hand and programatically invoke the views engine.
Thanks
Dman,
Thanks for all the thoughtful input. The method you described seems to be a good solution for me, so I'm going to go ahead and give it a shot.