コード例 #1
0
ファイル: Persister.php プロジェクト: bigfishcmf/bigfishcmf
 public function createTemporary(TemplateInterface $template, Resource $parent = null, EavPersisterObjectInterface $object = null)
 {
     $context = $this->contextLanguageMediator->getContextManager()->getContext();
     $culture = $this->contextLanguageMediator->getLanguageManager()->getObject();
     $module = $template->getModule();
     /** @var EavPersisterObjectInterface $container */
     $container = $this->eavPersister->loadModel($module, $context, $object);
     $resource = new Resource();
     $resource->setExpireTemporaryDate(new \DateTime("+3 hour"));
     $resource->setContext($context);
     $resource->setTemplate($template);
     if ($parent) {
         $resource->setParent($parent);
     }
     $this->objectManager->persist($resource);
     $translation = new ResourceTranslation();
     $translation->setResource($resource);
     $translation->setLanguage($culture);
     $translation->setName(uniqid());
     $this->objectManager->persist($translation);
     $container->setResource($resource);
     $this->objectManager->persist($container);
     $this->objectManager->flush();
     return $resource;
 }
コード例 #2
0
 /**
  * @param $resource
  * @param $language
  * @return ResourceTranslation
  */
 public function loadModel(Resource $resource, Language $language)
 {
     $resourceTranslation = $this->objectManager->getRepository('BigfishResourceBundle:Resource')->findOneByLanguage($resource->getId(), $language->getId());
     if (!$resourceTranslation) {
         $resourceTranslation = new ResourceTranslation();
         $resourceTranslation->setLanguage($language);
         $resourceTranslation->setResource($resource);
     }
     return $resourceTranslation;
 }
コード例 #3
0
 /**
  * @param Template $template
  * @param Resource $parent
  * @return Resource
  */
 public function create(Template $template, Resource $parent = null, array $data)
 {
     $resource = new Resource();
     $resource->setTemplate($template);
     $this->objectManager->persist($resource);
     $translation = new ResourceTranslation();
     $translation->setResource($resource);
     $translation->setLanguage($this->language->getObject());
     $translation->setName(uniqid());
     $this->objectManager->persist($translation);
     $module = $template->getModule();
     $container = $this->loadModel($resource, $module);
     $moduleManager = $this->moduleManager->setModule($module);
     return $moduleManager->save($container, $data);
 }