derschlendrian—I’m sorry I don’t have time to write the full code, but I’ll give you the gist of one way you could implement a two-faceted browsing setup…
First, I’m assuming you intend to have dozens of car models in your knowledgebase, if you were only going to have a few models, then a faceted browse/search would be overkill. But if you had 50 models and 10 subsystems per model, users would have to wade through 500 menu items to find the right one. With a faceted browse, the user selects the model and the subsystem in two clicks instead of one, but it’s faster and easier on the whole.
In your templates, you’d have two navigation menus: one with a list of models and the other with a list of subsystems. An intuitive layout for this would be to have the list of models in the left-hand column and the subsystems as tabs across the top of the content area.
You’d need to use URL segments to tell EE what the user has selected. Something like this:
yoursite.com/index.php/{template_group}/{template}/{model}/{subsystem}
Let’s say your template group is “articles” and your template is “browse”, like this:
yoursite.com/index.php/articles/browse/
The above URL would list ALL articles, regarless of model or subsystem. To narrow it down, the user clicks on “Model A” in the left-hand column menu, which links to…
yoursite.com/index.php/articles/browse/model_a/all/
...which lists articles for ALL subsystems of Model A.
Next, the user clicks on the “Engine” tab, which links to…
yoursite.com/index.php/articles/browse/model_a/engine/
...which lists only the articles related to the Model A engine.
The user could have clicked on the Engine tab first (prior to selecting the model), which would link to…
yoursite.com/index.php/articles/browse/all/engine/
...and would list ALL engine articles, regardless of model.
Then the user would click on “Model A” in the models menu, which would lead to the same destination as above:
yoursite.com/index.php/articles/browse/model_a/engine/
The “browse” template would need some php code to correctly set the URLs for the links in the model menu and subsystem tabs, based on the values (or non-existence) of {segment_3} and {segment_4}. The template would also need to use a {exp:query…} tag to select which articles to list. The query tag for the above URL would select entries where the category is “Model A” and the subsystem field is “engine”.
Note: all of the above describes a system for browsing rather than a typical search, but the strategy for searching would be similar. You’d add a subsystem drop-down menu to the Advanced Search template, and the search module might need a little hacking to include the subsystem selection in the search criteria.
I hope that’s not too confusing.