Does every page really need to be a node?
No. Let's take the "usual" home page as an example:
- It doesn't need to have an author
- It doesn't have comments
- It rarely changes (Maybe it has Views in it that change the content that is shown, but the layout and static text don't change)
So we can use Panels for that. It also makes deployment easier:
- since the Panels are in code (same as having exported Views), it means we can prepare the Panels page on a development server and easily deploy it on a production server, without copying/ pasting nodes or do some db merge weirdness
- Different layout and content for different roles or languages - checkout our own home page English Vs. Hebrew. You can see we flip the image and change the text layout - those are just different Panels variants.
- Reusing our tools. We have many websites that have a standard skeleton (home page, about us, services, etc'). Once we have the Panels in code as a module, we can place it in other websites and quickly do the needed adjustment. Hack, we can even do it directly from within the code
Ok, one may argue that the client might need to change the home page - "If it was a node my client could easily edit it. What then?" But we argue back:
- Meh. How often does your client _really change the home page?
- If they do need to change it frequently, you can have the Panels page show an existing node - so the client will be able to change that node without changing the Panels itself
- Like Views, that should live in code - if there's some crisis and they _must change the Panels, they can do it manually, and the next day you can deploy a new fixed version, and revert the Panels so it will be served back from code
Thanks merlinofchaos for yet another great module!