The panel node module creates a new node type, the 'panel' node, which has a panel layout. It is otherwise independent from your other nodes, as well as from panel pages. It is sort of a lesser cousin to panel pages, and it exists in case you actually need the functionality of a 'node' for your panels; sometimes this does turn out to be necessary.

Using panels nodes can be particularly helpful to give end users free range in creativity to creating pages that are laid out however they wish. It may also be beneficial to create your panel pages as nodes if for instance you want them to show up as results in the search engine. Content that is added to this panel is injected into the search engine when cron runs. There are other example use cases but these are two that I have personally run into while working on projects.

A node is an abstract object and page is only related to presentation. So, for example, nodes can be commented, and while panel pages can have comments, those comments are attached to nodes and not to panel itself.

Without presentation, panel pages don't exist and don't have any meaning. So, if you want to do something with the whole panel (and not with the single node in panel page), without showing it to the user, you will need panel as node object.

Comments

Stomper’s picture

So if you already have a content type that has content for it, is there a simple way of mapping the existing data to this new panel node type? I ask because I'm currently using a content type plus an attached view via the EVA module to achieve the layout I want. This approach isn't perfect and thus am considering using panel nodes to do the layout rather than the EVA module.