Neos.Neos/Classes/Service/NodeTypeSchemaBuilder.php
protected function generateConstraints()
    {
        $constraints = [];
        $nodeTypes = $this->nodeTypeManager->getNodeTypes(true);
        /** @var NodeType $nodeType */
        foreach ($nodeTypes as $nodeTypeName => $nodeType) {
            $constraints[$nodeTypeName] = [
                'nodeTypes' => [],
                'childNodes' => []
            ];
            foreach ($nodeTypes as $innerNodeTypeName => $innerNodeType) {
                if ($nodeType->allowsChildNodeType($innerNodeType)) {
                    $constraints[$nodeTypeName]['nodeTypes'][$innerNodeTypeName] = true;
                }
            }

            foreach ($nodeType->getAutoCreatedChildNodes() as $key => $_x) {
                foreach ($nodeTypes as $innerNodeTypeName => $innerNodeType) {
                    if ($nodeType->allowsGrandchildNodeType($key, $innerNodeType)) {
                        $constraints[$nodeTypeName]['childNodes'][$key]['nodeTypes'][$innerNodeTypeName] = true;
                    }
                }
            }
        }

        return $constraints;
    }
protected function generateConstraints()
    {
        $constraints = [];
        $nodeTypes = $this->nodeTypeManager->getNodeTypes(true);
        /** @var NodeType $nodeType */
        foreach ($nodeTypes as $nodeTypeName => $nodeType) {
            $constraints[$nodeTypeName] = [
                'nodeTypes' => [],
                'childNodes' => []
            ];
            foreach ($nodeTypes as $innerNodeTypeName => $innerNodeType) {
                if ($nodeType->allowsChildNodeType($innerNodeType)) {
                    $constraints[$nodeTypeName]['nodeTypes'][$innerNodeTypeName] = true;
                }
            }

            foreach ($nodeType->getAutoCreatedChildNodes() as $key => $_x) {
                foreach ($nodeTypes as $innerNodeTypeName => $innerNodeType) {
                    if ($nodeType->allowsGrandchildNodeType($key, $innerNodeType)) {
                        $constraints[$nodeTypeName]['childNodes'][$key]['nodeTypes'][$innerNodeTypeName] = true;
                    }
                }
            }
        }

        return $constraints;
    }
protected function generateConstraints ( ) { $ constraints = [ ] ; $ nodeTypes = $ this -> nodeTypeManager -> getNodeTypes ( true ) ; /** @var NodeType $nodeType */ foreach ( $ nodeTypes as $ nodeTypeName => $ nodeType ) { $ constraints [ $ nodeTypeName ] = [ 'nodeTypes' => [ ] , 'childNodes' => [ ] ] ; foreach ( $ nodeTypes as $ innerNodeTypeName => $ innerNodeType ) { if ( $ nodeType -> allowsChildNodeType ( $ innerNodeType ) ) { $ constraints [ $ nodeTypeName ] [ 'nodeTypes' ] [ $ innerNodeTypeName ] = true ; } } foreach ( $ nodeType -> getAutoCreatedChildNodes ( ) as $ key => $ _x ) { foreach ( $ nodeTypes as $ innerNodeTypeName => $ innerNodeType ) { if ( $ nodeType -> allowsGrandchildNodeType ( $ key , $ innerNodeType ) ) { $ constraints [ $ nodeTypeName ] [ 'childNodes' ] [ $ key ] [ 'nodeTypes' ] [ $ innerNodeTypeName ] = true ; } } } } return $ constraints ; }
Generate the list of allowed sub-node-types per parent-node-type and child-node-name.

@return array constraints
Generate the list of allowed sub - node - types per parent - node - type and child - node - name .