/** * {@inheritdoc} */ public function enhance(array $data, PuliResource $resource) { $object = $resource->getPayload(); // sonata has dependency on ClassUtils so this is fine. $class = ClassUtils::getClass($object); if (false === $this->pool->hasAdminByClass($class)) { return $data; } $admin = $this->pool->getAdminByClass($class); $links = array(); $routeCollection = $admin->getRoutes(); foreach ($routeCollection->getElements() as $code => $route) { $routeName = $route->getDefault('_sonata_name'); $url = $this->urlGenerator->generate($routeName, array($admin->getIdParameter() => $admin->getUrlsafeIdentifier($object)), true); $routeRole = substr($code, strlen($admin->getCode()) + 1); $links[$routeRole] = $url; } $data['label'] = $admin->toString($object); $data['sonata_label'] = $admin->getLabel(); $data['sonata_links'] = $links; return $data; }
/** * {@inheritdoc} */ public function enhance(array $data, PuliResource $resource) { $payload = $resource->getPayload(); $data['payload'] = $payload; return $data; }
/** * {@inheritdoc} */ public function supports(PuliResource $resource) { if (false === $resource instanceof CmfResource) { return false; } $payload = $resource->getPayload(); // sonata has dependency on ClassUtils so this is fine. $class = ClassUtils::getClass($payload); return $this->pool->hasAdminByClass($class); }