Some terminology to learn

We initially found Panels slightly difficult to learn because the terminology was unfamiliar. It doesn't take long to figure out, so here's a quick introduction (based on our non-official understanding).

Term

What is it

Custom Page

This is a standalone page which is just like any other node on Drupal. It has one specific URL and is listed in the Content List along with other nodes. The only difference is that it is a panel – made up of different bits of content from nodes, embedded content (which is content entered into the panel itself), blocks and views. It is also known as a 'landing page' in some navigation.

System Page

These are panels which override system pages – such as the Node or Taxonomy page. These in turn are referred to as templates.

Node Template

This is a template (System Page) which creates a specific layout for a given content type. If you have a content type 'Blog', then you can create a Panel layout for it. You can also do it via the standard Node Templates (described next)

Manage Pages > Templates

In the Panels Dashboard and the Page Manager (if that module is enabled) you will see a list of built in templates. These need to be enabled to use them. For example you can enable the 'Taxonomy Term Template' which overrides the way the standard Drupal taxonomy pages are laid out. Similarly you can do the same for a 'Node Template', so you can layout nodes in different ways depending on criteria that you set.

Variants

In the System Pages and Custom Pages you can have many different ways a node is laid out depending on criteria you set. Each of these ways is called a 'variant', and it contains all the logic for when it is to be used and what the layout is going to be. Variants are most useful in System Pages (such as nodes, user or taxonomy pages) where different conditions can result in different layouts. We'll talk about this a lot further down.

Selection Rules

For each variant you create, you can set an enormous number of 'selection rules'. These are basically there to make a decision on whether it is that variant which will be used to display a page. For example, you could set a rule that says if a person is logged in then display a page one way, but if the person is anonymous then don't use this variant.

Contexts

This is one of the most powerful aspects of Panels and at the beginning unfamiliar, so maybe best to take an example. I have a node which has a taxonomy term 'Studio portraits' (as in photography), and I have a page which promotes how wonderful my photos are. I also have a bunch of testimonials from people saying so, which I've brought together in a 'view' (in amongst testimonials about all sorts of other stuff). I want the testimonials about 'Studio portraits' to show only on the 'Studio portrait' page. So essentially I need to know the taxonomy term of the main node to pass into the view which will also show on that page. That taxonomy term (and all the related data, like the Term ID, the name etc) becomes a 'context' – a grouping of data which is passed to each bit of the panel. Hopefully this will become clear later.

Layout

The layout is how the page is displayed – 1 column, 2 columns, 3 columns, biscuit, wafer – you name it. You can do almost anything (within the bounds of HTML and CSS), and this is entirely extensible within your theme. Amazing.

Content

This allows you to put content – node data, search forms, views, self created text, breadcrumbs, the logo – anywhere within the 'Layout' defined above. Any content created by Drupal (which eventually gets put into the traditional regions and blocks) can be put anywhere in a Panel Layout. This is incredibly powerful.

Mini-Panels

These are like 'Panels snippets' which can be reused inside other panels. It's a bit like creating blocks in standard Drupal which you can use around the place.