public function preBuild(Fixture $fixture)
 {
     $parameters = $fixture->getParameters();
     if (isset($parameters['page']) && $parameters['page'] instanceof Fixture) {
         $additionalEntities = $parameters['page']->getAdditionalEntities();
         $properties = $fixture->getProperties();
         if (isset($properties['menu']) && $properties['menu']->getLocale() && isset($additionalEntities['translationNode_' . $properties['menu']->getLocale()])) {
             $fixture->getEntity()->setType(BaseMenuItem::TYPE_PAGE_LINK);
             $fixture->getEntity()->setNodeTranslation($additionalEntities['translationNode_' . $properties['menu']->getLocale()]);
         }
     }
     return;
 }
Exemplo n.º 2
0
 public function parseFixture(Fixture $fixture, $providers, $fixtures = [])
 {
     $entities = [];
     foreach ($fixtures as $key => $ref) {
         $entities[$key] = $ref->getEntity();
     }
     $fixture->setProperties($this->parseArray($fixture->getProperties(), $providers, $entities, [$fixture, 'fixtures' => $fixtures]));
     $fixture->setParameters($this->parseArray($fixture->getParameters(), $providers, $fixtures, [$fixture, 'fixtures' => $fixtures]));
     $fixture->setTranslations($this->parseArray($fixture->getTranslations(), $providers, $fixtures, [$fixture, 'fixtures' => $fixtures]));
 }
Exemplo n.º 3
0
 public function postBuild(Fixture $fixture)
 {
     /** @var Media $media */
     $media = $fixture->getEntity();
     $filePath = $media->getOriginalFilename();
     $data = new File($filePath, true);
     $contentType = $this->mimeTypeGuesser->guess($data->getPathname());
     if (method_exists($data, 'getClientOriginalName')) {
         $media->setOriginalFilename($data->getClientOriginalName());
     } else {
         $media->setOriginalFilename($data->getFilename());
     }
     if ($media->getName() === null) {
         $media->setName($media->getOriginalFilename());
     }
     $media->setContent($data);
     $media->setContentType($contentType);
     $media->setFolder($this->folder);
     $this->fileHandler->prepareMedia($media);
     $this->fileHandler->updateMedia($media);
     $this->fileHandler->saveMedia($media);
 }
 public function postFlushBuild(Fixture $fixture)
 {
     $params = $fixture->getParameters();
     $translations = $fixture->getTranslations();
     $original = $fixture->getEntity();
     if (!isset($params['page']) || empty($translations)) {
         throw new \Exception('No page reference and/or translations detected for pagepart fixture ' . $fixture->getName() . ' (' . $fixture->getClass() . ')');
     }
     $pageFixture = $params['page'];
     if (!$pageFixture instanceof Fixture) {
         throw new \Exception('Could not find a reference "' . $params['page'] . '"" for fixture ' . $fixture->getName() . ' (' . $fixture->getClass() . ')');
     }
     $additionalEntities = $pageFixture->getAdditionalEntities();
     $pp = $original;
     $first = null;
     foreach ($translations as $language => $data) {
         $key = $pageFixture->getName() . '_' . $language;
         if (!isset($additionalEntities[$key])) {
             continue;
         }
         if ($first !== null) {
             $pp = clone $original;
         }
         $page = $additionalEntities[$key];
         $this->populator->populate($pp, $data);
         $this->em->persist($pp);
         $this->em->flush($pp);
         // Find latest position.
         $position = array_key_exists('position', $params) ? $params['position'] : null;
         $context = isset($params['context']) ? $params['context'] : 'main';
         if (is_null($position)) {
             $pageParts = $this->pagePartRepo->getPagePartRefs($page, $context);
             $position = count($pageParts) + 1;
         }
         $this->pagePartRepo->addPagePart($page, $pp, $position, $context);
         $first = false;
     }
 }
Exemplo n.º 5
0
 public function postFlushBuild(Fixture $fixture)
 {
     $entities = $fixture->getAdditionalEntities();
     $fixtureParams = $fixture->getParameters();
     foreach ($fixture->getTranslations() as $language => $data) {
         /** @var HasNodeInterface $page */
         $page = $entities[$fixture->getName() . '_' . $language];
         /** @var NodeTranslation $translationNode */
         $translationNode = $entities['translationNode_' . $language];
         $pagecreator = array_key_exists('creator', $fixtureParams) ? $fixtureParams['creator'] : 'pagecreator';
         $creator = $this->userRepo->findOneBy(array('username' => $pagecreator));
         $nodeVersion = new NodeVersion();
         $nodeVersion->setNodeTranslation($translationNode);
         $nodeVersion->setType('public');
         $nodeVersion->setOwner($creator);
         $nodeVersion->setRef($page);
         $translationNode->setPublicNodeVersion($nodeVersion);
         if (isset($fixtureParams['template'])) {
             $pageTemplateConfiguration = new PageTemplateConfiguration();
             $pageTemplateConfiguration->setPageId($page->getId());
             $pageTemplateConfiguration->setPageEntityName(ClassLookup::getClass($page));
             $pageTemplateConfiguration->setPageTemplate($fixtureParams['template']);
             $this->manager->persist($pageTemplateConfiguration);
         }
         $this->manager->persist($nodeVersion);
         $this->manager->persist($translationNode);
     }
     $this->manager->flush();
 }
Exemplo n.º 6
0
 public function current(Fixture $fixture)
 {
     return $fixture->getSpec();
 }