public function testCreate() { $aGetFields = $this->getFields(); $module = $this->em->getRepository('BigfishEavBundle:Module')->find(1); $aContent = array(); foreach ($aGetFields as $field) { $aContent[$field['identifier']] = $field['testData']; } $object = $this->container->get('eav.module.manager'); $object->setModule($module); $container = new Container(); $container->setModule($module); $container->setSequence(999); $this->em->persist($container); $this->em->flush(); $container = $object->save($container, $aContent); $this->assertNotNull($container); $this->assertNotNull($module); }
/** * createModuleData. */ public function createModuleData() { $aFields = $this->getFields(); $aContent = array(); foreach ($aFields as $field) { $aContent[$field['identifier']] = $field['testData']; } $oModule = new Module(); $oModule->setName('Test Module'); $oModule->setDescription('test'); $sequence = 0; foreach ($aFields as $field) { $oField = new Field(); $oField->setName($field['name']); $oField->setFormType($field['form']); $oField->setIdentifier($field['identifier']); $this->em->persist($oField); $oModuleHasField = new ModuleHasField(); $oModuleHasField->setField($oField); $oModuleHasField->setModule($oModule); $oModuleHasField->setSequence($sequence); $this->em->persist($oModuleHasField); ++$sequence; } $this->em->flush(); for ($i = 0; $i < $this->rows; ++$i) { $container = new Container(); $container->setModule($oModule); $container->setSequence(999); $this->em->persist($container); $this->em->flush(); $this->container->enterScope('request'); $this->container->set('request', new Request(), 'request'); $object = $this->container->get('eav.module.manager'); $object->setModule($oModule); $object->save($container, $aContent); } $this->em->clear(); }
/** * @param PersisterObjectInterface $object * @param ModuleInterface $module * * @return Container|mixed */ public function loadModel(ModuleInterface $module, Context $context, PersisterObjectInterface $object = null) { $container = null; if ($object) { // find container $container = $this->objectManager->getRepository('BigfishEavBundle:Container')->findOneBy(array('id' => $object->getId(), 'module' => $module->getId(), 'context' => $context->getId())); } // if container is not found, create one if (!$container) { $container = new Container(); $container->setDeleted(new \DateTime()); $container->setExpireTemporaryDate(new \DateTime('+ 3 hour')); $container->setModule($module); $container->setContext($context); $this->objectManager->persist($container); return $container; } return $container; }
/** * @param Module $module * @param Container $container * @param array $data * * @return Container */ public function save(Container $container = null, array $data) { if (null == $this->module) { throw new \Exception('First set a module'); } if (!$container) { $container = new Container(); $container->setModule($this->module); $container->setSequence(1); $this->em->persist($container); } foreach ($data as $input => $value) { $field = $this->em->getRepository('BigfishEavBundle:Field')->findOneBy(array('identifier' => $input)); if (!$field) { continue; } if ($field->getTranslate()) { $content = $this->em->getRepository('BigfishEavBundle:Content')->findOneBy(array('field' => $field, 'container' => $container, 'language' => $this->language)); } else { $content = $this->em->getRepository('BigfishEavBundle:Content')->findOneBy(array('field' => $field, 'container' => $container)); } if ($field) { if (!$content) { $content = new Content(); $content->setContainer($container); $content->setField($field); } if ($this->columnMapper->getColumn(ColumnMapperInterface::SETTER, $field->getFormType())) { $column = $this->columnMapper->getColumn(ColumnMapperInterface::SETTER, $field->getFormType()); $content->{$column}($value); } // if field has to be translated if ($field->getTranslate()) { $content->setLanguage($this->language); } $this->em->persist($content); $this->em->flush(); // execute event when exists if ($field->getEvent()) { $event = new FieldEvent($container, $field, $this->language, $value, $content); $this->eventDispatcher->dispatch($field->getEvent(), $event); } } } return $container; }
/** * @param Resource $resource * @param Module $module * @return Container */ public function loadModel(ModuleInterface $module, PersisterObjectInterface $object = null) { $context = $this->contextLanguageMediator->getContextManager()->getContext(); // find container $container = $this->objectManager->getRepository("BigfishEavBundle:Container")->findOneByResource($object->getId(), $module->getId(), $context->getId()); // if container is not found, create one if (!$container) { $container = new Container(); $container->setContext($context); $container->setResource($object); $container->setModule($module); $this->objectManager->persist($container); return $container; } return $container; }