Skip to content
This repository was archived by the owner on Sep 16, 2021. It is now read-only.

Commit f158e18

Browse files
committed
SonataEnhancer works ..
1 parent 82891a4 commit f158e18

File tree

3 files changed

+22
-10
lines changed

3 files changed

+22
-10
lines changed

Enhancer/SonataAdminEnhancer.php

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,23 +44,30 @@ public function enhance(array $data, Resource $resource)
4444
$class = ClassUtils::getClass($object);
4545

4646
if (false === $this->pool->hasAdminByClass($class)) {
47-
return;
47+
return $data;
4848
}
4949

5050
$admin = $this->pool->getAdminByClass($class);
5151

5252
$links = array();
53-
foreach (array_keys($admin->getRoutes()) as $routeName) {
53+
54+
$routeCollection = $admin->getRoutes();
55+
56+
foreach ($routeCollection->getElements() as $code => $route) {
57+
$routeName = $route->getDefault('_sonata_name');
5458
$url = $this->urlGenerator->generate($routeName, array(
55-
$admin->getIdParameter(),
56-
$admin->getUrlsafeIdentifier($object)
57-
));
59+
$admin->getIdParameter() => $admin->getUrlsafeIdentifier($object)
60+
), true);
5861

59-
$links[$routeName] = $url;
62+
$routeRole = substr($code, strlen($admin->getCode()) + 1);
63+
64+
$links[$routeRole] = $url;
6065
}
6166

62-
$data['_admin_label'] = $admin->getLabel();
63-
$data['_admin_links'] = $links;
67+
$data['sonata_label'] = $admin->getLabel();
68+
$data['sonata_links'] = $links;
69+
70+
return $data;
6471
}
6572
}
6673

Resources/config/enhancer.admin.xml renamed to Resources/config/enhancer.sonata_admin.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
<service id="cmf_resource_rest.enhancer.sonata_admin" class="%cmf_resource_rest.enhancer.sonata_admin.class%">
1414
<argument type="service" id="sonata.admin.pool" />
15+
<argument type="service" id="router" />
1516
<tag name="cmf_resource_rest.enhancer" alias="sonata_admin" />
1617
</service>
1718

Serializer/Jms/Handler/ResourceHandler.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public function serializeResource(
7171
$context->accept($data);
7272
}
7373

74-
private function doSerializeResource(Resource $resource)
74+
private function doSerializeResource(Resource $resource, $depth = 0)
7575
{
7676
$data = array();
7777
$repositoryAlias = $this->registry->getRepositoryAlias($resource->getRepository());
@@ -92,7 +92,11 @@ private function doSerializeResource(Resource $resource)
9292

9393
$children = array();
9494
foreach ($resource->listChildren() as $name => $resource) {
95-
$children[$name] = $this->doSerializeResource($resource);
95+
$children[$name] = array();
96+
97+
if ($depth < 1) {
98+
$children[$name] = $this->doSerializeResource($resource, $depth + 1);
99+
}
96100
}
97101
$data['children'] = $children;
98102

0 commit comments

Comments
 (0)