There are many sites which allow users to select their "customer type" or "audience", which then displays different information on the front page and provides them with navigation and content appropriate for their needs. Banks, higher-education institutions, and medical providers do this often (http://chase.com, http://aetna.com).

I'm looking for the best way to implement this on a site I'll be developing over the next few weeks. I need the main navigation to change per audience and I'd like to show specific content on the home page and sidebars based on that context. I don't think I want to use subdomains or multi-site; it seems that there should be a better way.

I'd like the URL structure to look like "mysite.com/audience1", "mysite.com/audience2", "mysite.com/audience3", and so on for the front page. Deeper pages would follow that url prefix ("mysite.com/audience1/products/tools")

There are also 'global' resources which any audience would find useful and I've been wondering about how I'd handle that use-case as well.

Should I look into panels, context, display suite, other modules? Any guidance is appreciated. Thanks!

  • I would start looking at Context first and all of the modules that extend it (must be at least 20+). Then also look at Delta. Panels will fit nicely into the setup with Context. Panels and its variants are great to respond to context. Display Suite would be less suitable. Commented Feb 25, 2015 at 14:50
  • Thanks @J.Reynolds, I've not used Panels intensively, but it seems like it should give me a lot of flexibility. I'm guessing that I would trigger different menus to display based on the url for each audience (say mysite.com/doctors would display the doctors audience menu). Those unique menus would provide links to pages which have urls aliased to that audience url as well (mysite.com/doctors/support). Seems like this could get complicated! Commented Feb 25, 2015 at 18:40

1 Answer 1


Explaining the whole process would be bit complicated

i ll provide you some steps try to follow that.

In our project the same structure you have mentioned is used we have global pages like mysite.com/products and some further branch level pages like mysite.com/chennai/products

Step one: create a view page in views.

Step two: create a taxonomy term reference for the audience.

step three: create a block and in contextual filter add taxonomy term as contextual filter and in provide default value give get taxonomy term by url.

step four: for every content you create it should have the term reference field.

step five: when you pass the audience name in the url it should display the content related to the taxonomy term.

step six: like wise you have to configure the block in all the pages

step seven: in block settings give display only in that particular page

now what this will do is for every block it will be displayed their content based on the url if you change the url to audience two it will show the content having the taxonomy term as audience two as their value.

hope this will give you a start up for the task :p

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.