@@ -81,7 +81,7 @@ private function enumerateAll(?Site $site, ContentReleaseLogger $contentReleaseL
81
81
82
82
$ nodeTypeWhitelist = $ this ->nodeTypeConstraintFactory ->parseFilterString ($ this ->nodeTypeWhitelist );
83
83
84
- $ queueSite = function (Site $ site ) use ($ combinator , & $ documentNodeVariantsToRender , $ nodeTypeWhitelist , $ contentReleaseLogger , $ workspaceName ) {
84
+ $ queueSite = function (Site $ site ) use ($ combinator , $ nodeTypeWhitelist , $ contentReleaseLogger , $ workspaceName ) {
85
85
$ contentReleaseLogger ->debug ('Publishing site ' , [
86
86
'name ' => $ site ->getName (),
87
87
'domain ' => $ site ->getFirstActiveDomain ()
@@ -94,9 +94,18 @@ private function enumerateAll(?Site $site, ContentReleaseLogger $contentReleaseL
94
94
'dimensionValues ' => $ dimensionValues
95
95
]);
96
96
97
+ // Build filter from white listed nodetypes
98
+ $ nodeTypeWhitelist = explode (', ' , $ this ->nodeTypeWhitelist ?: 'Neos.Neos:Document ' );
99
+ $ nodeTypeFilter = implode (', ' , array_map (static function ($ nodeType ) {
100
+ if ($ nodeType [0 ] === '! ' ) {
101
+ return '[!instanceof ' . substr ($ nodeType , 1 ) . '] ' ;
102
+ }
103
+ return '[instanceof ' . $ nodeType . '] ' ;
104
+ }, $ nodeTypeWhitelist ));
105
+
97
106
$ documentQuery = new FlowQuery ([$ siteNode ]);
98
107
/** @var NodeInterface[] $documents */
99
- $ documents = $ documentQuery ->find (' [instanceof Neos.Neos:Document] ' )->add ($ siteNode )->get ();
108
+ $ documents = $ documentQuery ->find ($ nodeTypeFilter )->add ($ siteNode )->get ();
100
109
101
110
foreach ($ documents as $ documentNode ) {
102
111
$ contextPath = $ documentNode ->getContextPath ();
@@ -122,17 +131,11 @@ private function enumerateAll(?Site $site, ContentReleaseLogger $contentReleaseL
122
131
$ contentReleaseLogger ->debug ('Skipping node from publishing, because it is hidden ' , [
123
132
'node ' => $ contextPath ,
124
133
]);
125
- } else if ( $ nodeTypeWhitelist -> matches (NodeTypeName:: fromString ( $ documentNode -> getNodeType ()-> getName ()))) {
134
+ } else {
126
135
$ contentReleaseLogger ->debug ('Registering node for publishing ' , [
127
136
'node ' => $ contextPath
128
137
]);
129
-
130
138
yield EnumeratedNode::fromNode ($ documentNode );
131
- } else {
132
- $ contentReleaseLogger ->debug ('Skipping node from publishing, because it did not match the configured nodeTypeWhitelist ' , [
133
- 'node ' => $ contextPath ,
134
- 'nodeTypeWhitelist ' => $ this ->nodeTypeWhitelist
135
- ]);
136
139
}
137
140
}
138
141
}
0 commit comments