Content Dimensions corrupted if they are unconfigured?

Hi,

I created a new Site package (from the Neos backend). No settings.yaml or policy.yaml were generated.
Everthing seems to be fine, so I started developing.
I have a Homepage similar to the Neos demo site, some other custom pages and content elements.
When I started to work on the Hompage, I saw that the ContentCollection ‘main’ was there twice.
This page can’t be deleted or changed, to another Type, to get rid of it.
I exported the site. please find the relevant snipped below.

I think, the brand new site has a documentNode in the content dimension ‘en_US’ (with ‘main’).
I had no content dimension adjusted, when changing this nodeType into ‘Homepage’ (second ‘main’) and all the rest of the site.

So: I’ve to clean up the mess. My aim is it to have the content dimension language set to the fixed value ‘de_DE’.
Like this I have the backend UI translated to german. Other languages are not planned yet.

So what is the best way to solve this?

  • removing the ‘en_US’-stuff by hand from the XML
  • re-importing the XML
  • the misterious ./flow node:migrate 20150716212459

But then??
Can someone tell me?

Klaus

P.S.
There should be a settings.yaml file with the basic content dimension language (e.g. DE/EN) configuration, when a new site package is created.

<root>
  <site name="energiegewinner.de" state="1" siteResourcesPackageKey="Eg.Website" siteNodeName="website">
    <nodes formatVersion="2.0">
      <node identifier="135b866b-b20e-4a58-aec9-69d0d7443935" nodeName="website">
        <variant sortingIndex="100" workspace="live" nodeType="TYPO3.Neos.NodeTypes:Page" version="1" removed="" hidden="" hiddenInIndex="">
          <dimensions>
            <language>en_US</language>
          </dimensions>
          <accessRoles __type="array"/>
          <creationDateTime __type="object" __classname="DateTime">2016-07-06T12:26:27+00:00</creationDateTime>
          <lastModificationDateTime __type="object" __classname="DateTime">2016-07-06T12:26:27+00:00</lastModificationDateTime>
          <properties>
            <title __type="string">Home</title>
            <uriPathSegment __type="string">home</uriPathSegment>
          </properties>
        </variant>
        <variant sortingIndex="100" workspace="live" nodeType="Eg.Website:HomePage" version="2" removed="" hidden="" hiddenInIndex="">
          <dimensions/>
          <accessRoles __type="array"/>
          <creationDateTime __type="object" __classname="DateTime">2016-07-06T13:18:06+00:00</creationDateTime>
          <lastModificationDateTime __type="object" __classname="DateTime">2016-07-06T13:18:19+00:00</lastModificationDateTime>
          <lastPublicationDateTime __type="object" __classname="DateTime">2016-07-06T13:18:19+00:00</lastPublicationDateTime>
          <properties>
            <title __type="string">Home</title>
            <uriPathSegment __type="string">home</uriPathSegment>
            <canonicalLink __type="string"/>
          </properties>
        </variant>
        <node identifier="0fe750fb-4e12-40b3-da41-0e2b023e51d0" nodeName="footer">
          <variant sortingIndex="200" workspace="live" nodeType="TYPO3.Neos:ContentCollection" version="3" removed="" hidden="" hiddenInIndex="">
            <dimensions/>
            <accessRoles __type="array"/>
            <creationDateTime __type="object" __classname="DateTime">2016-07-06T13:18:06+00:00</creationDateTime>
            <lastModificationDateTime __type="object" __classname="DateTime">2016-07-06T15:49:18+00:00</lastModificationDateTime>
            <lastPublicationDateTime __type="object" __classname="DateTime">2016-07-06T13:18:19+00:00</lastPublicationDateTime>
            <properties/>
          </variant>
          <node identifier="f0a30ca4-0e0c-4923-82de-175be356288a" nodeName="node-577d098b9935d">
            <variant sortingIndex="100" workspace="live" nodeType="TYPO3.Neos.NodeTypes:Text" version="7" removed="" hidden="" hiddenInIndex="">
              <dimensions/>
              <accessRoles __type="array"/>
              <creationDateTime __type="object" __classname="DateTime">2016-07-06T13:37:15+00:00</creationDateTime>
              <lastModificationDateTime __type="object" __classname="DateTime">2016-07-06T13:37:43+00:00</lastModificationDateTime>
              <lastPublicationDateTime __type="object" __classname="DateTime">2016-07-06T13:37:43+00:00</lastPublicationDateTime>
              <properties>
                <text __type="string">&lt;p&gt;Gemeinsamer Text im Footer&lt;/p&gt;</text>
              </properties>
            </variant>
          </node>
        </node>
        <node identifier="3a06d642-9c4f-4a5a-adac-ffb926754145" nodeName="main">
          <variant sortingIndex="100" workspace="live" nodeType="TYPO3.Neos:ContentCollection" version="1" removed="" hidden="" hiddenInIndex="">
            <dimensions>
              <language>en_US</language>
            </dimensions>
            <accessRoles __type="array"/>
            <creationDateTime __type="object" __classname="DateTime">2016-07-06T12:26:27+00:00</creationDateTime>
            <lastModificationDateTime __type="object" __classname="DateTime">2016-07-06T12:26:27+00:00</lastModificationDateTime>
            <properties/>
          </variant>
        </node>
        <node identifier="97ea63aa-5d93-7b83-335e-ed8b666402c1" nodeName="main">
          <variant sortingIndex="100" workspace="live" nodeType="TYPO3.Neos:ContentCollection" version="3" removed="" hidden="" hiddenInIndex="">
            <dimensions/>
            <accessRoles __type="array"/>
            <creationDateTime __type="object" __classname="DateTime">2016-07-06T13:18:06+00:00</creationDateTime>
            <lastModificationDateTime __type="object" __classname="DateTime">2016-07-06T15:49:18+00:00</lastModificationDateTime>
            <lastPublicationDateTime __type="object" __classname="DateTime">2016-07-06T13:18:19+00:00</lastPublicationDateTime>
            <properties/>
          </variant>
          <node identifier="df8b3211-dae3-45b3-b1ab-e3e7488d6787" nodeName="text1">
            <variant sortingIndex="100" workspace="live" nodeType="TYPO3.Neos.NodeTypes:Text" version="1" removed="" hidden="" hiddenInIndex="">
              <dimensions>
                <language>en_US</language>
              </dimensions>
              <accessRoles __type="array"/>
              <creationDateTime __type="object" __classname="DateTime">2016-07-06T12:26:27+00:00</creationDateTime>
              <lastModificationDateTime __type="object" __classname="DateTime">2016-07-06T12:26:27+00:00</lastModificationDateTime>
              <properties>
                <text __type="string">&lt;p&gt;This is the homepage&lt;/p&gt;</text>
              </properties>
            </variant>
          </node>
        </node>

Sorry, I am no expert, but I can help you with the mysterious node:migrate: “Migrate from some node dimensions to default dimension values, adding missing dimension default values.” You find a list of all available migrations with ./flow node:migrationstatus.

You could also try to configure Neos to use just one language and set the uri segment to empty, like this:

TYPO3:
  TYPO3CR:
    contentDimensions:
      'language':
        label: 'Language'
        icon: 'icon-language'
        default: 'de'
        defaultPreset: 'de'
        presets:
          'de':
            label: 'German'
            values: ['de']
            uriSegment: ''

Afterwards you have to run the migration step once again.

Good luck :wink:

Those two things (content dimensions) and backend localization are not coupled in any way.

You can configure the backend localization from the user management module or the user preference.

If you don’t need content dimensions for the frontend, just don’t configure them. It’s fine to have a website in german only, no need of the content dimensions in this case.

Also check [solved] only one language necessary. Translate the frontend

Thank you Klaus.
I think I will go on without content dimensions (see below)

Klaus

Hi Dominique,

thanks (once again) for your support! Some more questions:

  1. If we later on decide to introduce languages or other dimensions, is there no disadvantage if starting without any CD?
  2. A newly created site package contains a root node in the language dimension en_US. (see above). Without dimensions this node can never be changed or deleted. (I see 2 times the ContentCollection ‘main’).
    I will delete this zombie from the XML by hand and re-import it.
    This is a trap for every newby! It would not occur if the CD of the root nod and the configuration are matching.
    Instead of just saying “This is the Homepage” a hint on the issue would be nice like “Your next steps …”

Enjoy the nice summer day (about 30 degrees in Cologne today)!
Klaus

For question 1. no you can add the required dimensions later on by running the proper node migration.

For question 2. it’s really strange, and I’m not sure if I understand how to reproduce your situation ? Basically is you don’t have any dimensions configured … you should not have dimensions informations in the Site.xml export. If you can give me step by step procedure to reproduce your this condition, I can test if we can remove this bad trap.