/** * Add medias * * @param ArticleMedia $media * * @return Article */ public function addMedia(ArticleMedia $media) { $this->medias[] = $media; $media->setArticle($this); return $this; }
protected function loadArticlesAndCategoriesFromOldDatabase() { $em = $this->getContainer()->get('doctrine')->getManager('default'); $emLegacy = $this->getContainer()->get('doctrine')->getManager('legacy'); $categories = array(); $oldCategories = $emLegacy->getRepository('GaropiLegacyWrapperBundle:AdminCategories')->findAll(); foreach ($oldCategories as $oldCategory) { $id = $oldCategory->getId(); $category = $em->getRepository('AppBundle:ArticleCategory')->findOneBy(array('name' => $oldCategory->getName())); $categories[$id] = $category; } $oldArticles = $emLegacy->getRepository('GaropiLegacyWrapperBundle:Articles')->findAll(); $mediaManager = $this->getContainer()->get('sonata.media.manager.media'); /** @var Articles $oldArticle */ foreach ($oldArticles as $oldArticle) { $legacyId = $oldArticle->getId(); $title = $oldArticle->getTitle(); $summary = $oldArticle->getSummary(); $content = $this->bbcode_to_html($oldArticle->getContent()); $authorName = $oldArticle->getAuthor(); $createdAt = new \DateTime($oldArticle->getCreatedAt()); $updatedAt = new \DateTime($oldArticle->getUpdatedAt()); /** @var ArticleCategory $category */ $category = $categories[$oldArticle->getCategoryId()]; $article = new Article(); if ($oldArticle->getPictureFileName()) { $finder = new Finder(); $path = $this->getContainer()->get('kernel')->getRootDir() . '/../legacy/photos/000/000/' . sprintf("%'.03d", $oldArticle->getId()) . '/original/'; $finder->files()->in($path); /** @var File $file */ foreach ($finder as $file) { try { /** @var Media $media */ $media = $mediaManager->create(); $media->setBinaryContent($file->getRealPath()); $media->setDescription($summary); $media->setEnabled(true); $media->setContext('default'); $media->setProviderName('sonata.media.provider.image'); $em->persist($media); $articleMedia = new ArticleMedia(); $articleMedia->setArticle($article); $articleMedia->setMedia($media); $em->persist($articleMedia); } catch (\Exception $e) { var_dump($e); } } } $article->setTitle($title); $article->setSummary($summary); $article->setContent($content); $article->setAuthorName($authorName); $article->setPublished(true); $article->setCreatedAt($createdAt); $article->setUpdatedAt($updatedAt); $article->setLegacyId($legacyId); $article->setCategory($category); $category->addArticle($article); $em->persist($article); $em->flush(); } }