22
22
use Sulu \Component \Content \Compat \PropertyParameter ;
23
23
use Sulu \Component \SmartContent \DataProviderAliasInterface ;
24
24
use Sulu \Component \Tag \Request \TagRequestHandlerInterface ;
25
- use Sulu \Exception \FeatureNotImplementedException ;
26
25
use Symfony \Component \HttpFoundation \RequestStack ;
27
26
28
27
class SmartContentResolver implements ContentTypeResolverInterface
@@ -85,6 +84,12 @@ public function resolve($result, PropertyInterface $property, string $locale, ar
85
84
{
86
85
// gather data provider and effective parameters
87
86
$ providerResolver = $ this ->getProviderResolver ($ property );
87
+
88
+ if ($ providerResolver === null ) {
89
+ // Return null if no provider is registered
90
+ return new ContentView (null , \is_array ($ result ) ? $ result : []);
91
+ }
92
+
88
93
/** @var PropertyParameter[] $params */
89
94
$ params = \array_merge (
90
95
$ this ->getDefaultParams ($ providerResolver ),
@@ -166,7 +171,7 @@ public function resolve($result, PropertyInterface $property, string $locale, ar
166
171
return new ContentView ($ result ->getItems (), $ viewData );
167
172
}
168
173
169
- private function getProviderResolver (PropertyInterface $ property ): DataProviderResolverInterface
174
+ private function getProviderResolver (PropertyInterface $ property ): ? DataProviderResolverInterface
170
175
{
171
176
$ params = $ property ->getParams ();
172
177
@@ -176,11 +181,7 @@ private function getProviderResolver(PropertyInterface $property): DataProviderR
176
181
$ providerAlias = $ params ['provider ' ]->getValue ();
177
182
}
178
183
179
- if (!\array_key_exists ($ providerAlias , $ this ->resolvers )) {
180
- throw new FeatureNotImplementedException ();
181
- }
182
-
183
- return $ this ->resolvers [$ providerAlias ];
184
+ return $ this ->resolvers [$ providerAlias ] ?? null ;
184
185
}
185
186
186
187
/**
0 commit comments