From 8a7b6d4055e16f43e184f1d223c7af03cbaded0d Mon Sep 17 00:00:00 2001 From: Marc Ducobu Date: Fri, 7 Nov 2014 19:03:23 +0100 Subject: [PATCH] declareReportAsCustomizable --- DependencyInjection/ChillReportExtension.php | 23 +++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/DependencyInjection/ChillReportExtension.php b/DependencyInjection/ChillReportExtension.php index 7e3506b5b..972772a23 100644 --- a/DependencyInjection/ChillReportExtension.php +++ b/DependencyInjection/ChillReportExtension.php @@ -6,13 +6,14 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\Config\FileLocator; use Symfony\Component\HttpKernel\DependencyInjection\Extension; use Symfony\Component\DependencyInjection\Loader; +use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface; /** * This is the class that loads and manages your bundle configuration * * To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html} */ -class ChillReportExtension extends Extension +class ChillReportExtension extends Extension implements PrependExtensionInterface { /** * {@inheritdoc} @@ -25,4 +26,24 @@ class ChillReportExtension extends Extension $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); $loader->load('services.yml'); } + + /** + * Declare the entity Report, as a customizable entity (can add custom fields) + */ + public function declareReportAsCustomizable(ContainerBuilder $container) + { + $bundles = $container->getParameter('kernel.bundles'); + if (!isset($bundles['ChillCustomFieldsBundle'])) { + throw new MissingBundleException('ChillCustomFieldsBundle'); + } + + $customizables_entities['customizables_entities'][] = array('class' => 'Chill\ReportBundle\Entity\Report', 'name' => 'ReportName'); + + $container->prependExtensionConfig('chill_custom_fields', $customizables_entities); + } + + public function prepend(ContainerBuilder $container) + { + $this->declareReportAsCustomizable($container); + } }