I realize that this question might be the result of a fundamental misunderstanding of how things work. So I apologize in advance if this is just me being a dope.

I am creating a webpage for a festival. On each page there is a left side menu bar with about 6 menus in it. I want that there most of the time, so that is good.

I've now created the ability for users to add events to the festival so others can see what's going on. I've created a content type called Event, added the fields I want to it and exposed it to registered users. I then create a table view and calendar view with all the events broken down by date/time with a few filters.

All that is working fine. The part I'm now struggling with is, I want all the menus on the left to go away, any time I am working with the events. Which means when I'm adding, editing, viewing the content, and when I'm viewing the Event views I want access to the entire width of the site, except for a small menu on the right with Add Event, View Events, View Calendar.

I thought a sub-theme would get me what I want, so I created a subtheme with the menus the way I want it and the page the way I want it. But I can't for the life of me figure out how to get the content to show in the sub-theme.

Any help would be appreciated. Please keep in mind I am very new to drupal so as much detail as you can go into would be appreciated.




Check out the Context module - http://drupal.org/project/context.

That should help you show the menus/sidebar on pages you want (i.e. adding, editing, viewing the Event content type) and not on the others.


Did you added the menu on the left side menu bar using blocks or printing directly from the template?

On the first case you can hide the blocks on specific pages in many ways. The easiest is to configure the visibility from the blocks configuration (Administration > structure > blocks). On every block settings you can specify in which pages hide or show the block.

If you're printing the menus from the template you've to use some php in order to select when print them, like "if current page is x, then print" or something similar.


  • I tried that. I went into the block, and checked every content type except the type I didn't want displayed. When i did that the block was removed on every page. – TheMad Hatter Feb 24 '13 at 22:03
  • EDIT: I was incorrect. I have views setup to display a teaser list of certain content type. For example, cicking on Theme Camps brings me up a list of Theme Camp Articles. On this page, the block is not being displayed. However if I click on one of the teasers the block appears. This issue is it's not showing on the main page or any of the views. I need to be able to control the blocks for my views as well. – TheMad Hatter Feb 24 '13 at 22:09
  • @TheMad Hatter...if you can upload some screenshots that would be great – ninjascorner Feb 25 '13 at 5:46
  • You've to correctly set the visibility from the block settings or you can also follow the solution suggested by @adaptordie (using context module) – FiNeX Feb 26 '13 at 16:48

One solution would be to create another content type for your Events pages. Then once you have that content type, you can create a separate template for it in your theme, which will be named page--YOUR_CONTENT_TYPE_MACHINE_NAME.tpl.php. In this template you can rearrange your content as needed, ie omit the sidebar-first element, add a top menu, etc. For more info, you can refer to this tutorial.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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