예제 #1
0
파일: Article.php 프로젝트: sghribi/garopi
 /**
  * Add medias
  *
  * @param ArticleMedia $media
  *
  * @return Article
  */
 public function addMedia(ArticleMedia $media)
 {
     $this->medias[] = $media;
     $media->setArticle($this);
     return $this;
 }
예제 #2
0
 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();
     }
 }