/** * Creates an instance of itself and processes the event. * * The attached environment {@link ContaoCommunityAlliance\DcGeneral\EnvironmentInterface} will be populated * with the information from the builder's data source. * * @param PopulateEnvironmentEvent $event The event to process. * * @return void */ public static function process(PopulateEnvironmentEvent $event) { $builder = new static(); /** @var $builder EnvironmentPopulatorInterface */ $builder->populate($event->getEnvironment()); }
/** * Callback coming from the environment populator. * * This is used to get to know the environment here in the DC. * See the implementation in constructor and ExtendedLegacyDcaPopulator::populateCallback(). * * @param PopulateEnvironmentEvent $event The event. * * @return void */ public function handlePopulateEnvironment(PopulateEnvironmentEvent $event) { $this->objEnvironment = $event->getEnvironment(); }
/** * Handle a populate environment event for MetaModels. * * @param PopulateEnvironmentEvent $event The event payload. * * @return void * * @SuppressWarnings(PHPMD.Superglobals) * @SuppressWarnings(PHPMD.CamelCaseVariableName) */ public function populate(PopulateEnvironmentEvent $event) { $translator = $event->getEnvironment()->getTranslator(); $dispatcher = $this->serviceContainer->getEventDispatcher(); if (!$translator instanceof TranslatorChain) { $translatorChain = new TranslatorChain(); $translatorChain->add($translator); $event->getEnvironment()->setTranslator($translatorChain); } else { $translatorChain = $translator; } // Map the tl_metamodel_item domain over to this domain. $dispatcher->dispatch(ContaoEvents::SYSTEM_LOAD_LANGUAGE_FILE, new LoadLanguageFileEvent('tl_metamodel_item')); $this->mapTranslations($GLOBALS['TL_LANG']['tl_metamodel_item'], $event->getEnvironment()->getDataDefinition()->getName()); $translatorChain->add($this->translator); $metaModel = $this->getMetaModel(); $environment = $event->getEnvironment(); foreach ($metaModel->getAttributes() as $attribute) { $event = new PopulateAttributeEvent($metaModel, $attribute, $environment); // Trigger BuildAttribute Event. $dispatcher->dispatch($event::NAME, $event); } }