Often times in a website requires easy content creation workflows. In addition to Articles, Pages or News Posts sometimes a site requires for instance:
Uploading and maintain a list of images and teaser text for a jQuery SlideDeck or Slideshow.
Provide some tag references for allowable dates: Spring 2013, Fall 2013, Winter 2014; for display use with annual events.
In Drupal we can easily create custom Content Types using the core module Field UI. Content types created with the Field UI are Drupal Nodes. By default Nodes are accessible at a specific path on your website such as /node/321. Node content and the Field UI are core mechanisms of Drupal that let content managers easily define and create new pieces of content of your site.
But, in my 1st example of above sometimes we want a piece of data such as an Image with teaser text to be used on the website and managed by its staff — while not being directly accessible by the general public as a piece of content at the default url location provided by Drupal.
Hiding these tertiary pieces of content can seem difficult to accomplish with all the built-in functionality Drupal offers. Thankfully, this is where Drupal Community modules can help us greatly. A well-known module to fill this need is Rabbit Hole. Rabbit Hole can be a godsend to help you more easily relate the building-blocks of content you’re using in your website and essentially hide some of the complexity from end-users.
Rabbit Hole works with Nodes, Taxonomy Terms and Users. You simply install and activate the module, using Drush:
drush dl rabbit_hole # The types of content rabbit hole supports is actually # achieved by sub-modules. So you only need activate # the functionality you require. drush en rabbit_hole rh_node -y
Then per content type define what happens when the public attempts to reach this piece of content:
The content may be: reachable, a 404 message can be displayed, or the content cannot be found. Lastly you can redirect to another location.
I find myself using this module regularly in sites I construct so that all my sites’ data components are essentially 1st class Drupal citizens (Nodes) which makes my application more maintainable, exportable and flexible.