Confusion on Neos.Neos:Page vs Neos.NodeTypes:Page

Hi all,
I just completed my first migration to Neos 3.0.1 successfully and I have to admit everything went smoothly with only a couple of (expected) bumps.

The only thing that got me a little confused is the use of namspeace for Page nodes.
The official migration script renamed all of Page nodes to Neos.NodeTypes:Page either in MyPackage.Site/…/NodeTypes.yaml either in MyPackage.Site/…/Sites.xml, but if I try to set the same namespace into my MyPackage.Site/…/Root.fusion (page = Neos.NodeTypes:Page), Neos complains about a missing template with this error:

The fluid file "resource://Neos.NodeTypes/Private/Templates/NodeTypes/Page.html" was not found.

The error vanishes is I correct my Root.fusion in page = Neos.Neos:Page

This behaviour left me a little puzzled: is it normal? If so, when should I use Neos.Neos:Page and when Neos.NodeTypes:Page?

As a side note: I bumped into this “issue” because leaving Root.fusion as before with lines like

page = Page

breaks everything leaving me with a 502 Bad Gateway caused by php-fpm segmentation fault error.

Thank you all,
Nicola

Ok, so that probably needs a bit of explanation.

The Neos package provides a default renderer for HTML Pages, which is a Fusion prototype called Neos.Neos:Page.

No NodeType by that name exists because we want to allow you to disable all (visible) NodeTypes.

The Neos.NodeTypes package ships a default page NodeType (inheriting from the abstract Neos.Neos:Document, which is the base for all “page”-like NodeTypes), this node type is called Neos.NodeTypes:Page and is commonly used as default page type, it has no Fusion protoype though as the Neos.Neos:Page prototype is usually used to render it (or to be more precise, it gets some default fusion code as any other NodeType, but that is not suitable).

So in short, you extend NodeTypes from Neos.NodeTypes:Page but you render pages with the Fusion prototype Neos.Neos:Page.

1 Like

That’s exactly what I supposed, thanks @christianm.

To make it even shorter a rough sum up could be:

  • Fusion -> Neos.Neos:Page
  • “Everything else” -> Neos.NodeTypes :Page

Am I right?

Thanks again,
Nicola