Last updated January 23, 2015. Created on July 28, 2012.
Edited by onefreewalk, dobie_gillis, micromegas, dsnopek. Log in to edit this page.

Now that you have created your custom content types and entities it's time to create different ways of organizing and displaying them. Because we are operating in a Panels paradigm you are going to create all of your Views displays as "content panes". This will allow your displays to be added into all panelized layout thus inheriting all of the awesome powers of Panels. We also want to leverage the magic of Panopoly by exposing certain kinds of configuration that will be customizable through the Panels In Place Editor (IPE). Everything else is just the normal views configuration you have come to know and love.

Below we've identified a set of best-practices and also some ways to avoid some common pitfalls in creating Views for Panels.

Use a Single View


It is really important that we try to keep the Panopoly apps ecosystem as clean and manageable as possible. For that reason it is highly encouraged that you try to place all of your displays within a single view. The view should have the same name as your app.

Use Fields

Panopoly allows site builders and end users to configure some of your content pane displays through the IPE. This includes the choice of whether the display should be rendered in a specific content build mode, as certain fields, or as a table. When it comes to rendering your display as fields, the IPE will allow you to select/deselect which fields you want to be visible. For this reason it is recommended you create every view as fields instead of content. When adding a new view you will choose to "Show (Content) of type (your content type) sorted by (your selection of sort criteria), then in views you will choose "Fields" as what to show in your new view. Here is how the configuration of the view impacts the settings in the IPE:

View Fields

Exposed Filters and Sorts

Similar to how the rendering of content above can be customized in the IPE, Panels also allows you to pass additional filters and sorts into the IPE for each display. This gives a simplified experience to site builders and end users who don't want, and shouldn't have to master Views. To pass a filter or sort through to the IPE just choose to expose the filter or sort like this.

Expose Filter or Sort

Once you have exposed multiple sorts and filters they will show up on the IPE like this:

Exposed Filters and Sorts

Allowed Settings

The final piece to piping these settings from Views into the IPE is the Allow Settings configuration. This is how you will tell Views to allow field overrides, sorts, filters and other types of config. You will likely want to select "Use exposed widgets form as pane configuration" and "Fields override" otherwise you will not get your fields, filters and sorts into the IPE.

Allowed Settings

Here are some additional tips and conventions we encourage.

Setting Context

This is where we designate the source of this display's contextual filters. Whenever possible, it is preferable to use the Panels context as the source. This will allow us to use this view pane on any panel with the given context. For example, if we have a UID contextual filter, we can designate the User:uid or User:name context as the source.

Note that this needs to be set on every individual display. At this time Views does not set a default across displays.

Use Pager

The pager should be disabled by default; instead, use the "Display a specified number of items" settings and establish a common-sense default for the display you're constructing. As mentioned above, the number of items displayed can be changed in the pane configuration popup and the pager can be enabled in the same place.


In older versions of Panopoly, an error was often produced if AJAX is enabled when users attempt to add the view pane to a panel. If you are affected by this problem, try disabling AJAX on your view. Otherwise, newer versions of Panopoly work fine with AJAX.

Looking for support? Visit the forums, or join #drupal-support in IRC.