/**
  * 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());
 }
Esempio n. 2
0
 /**
  * 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();
 }
Esempio n. 3
0
 /**
  * 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);
     }
 }