protected function addCategory($message) { $categoryName = $message->getValue('categoryName'); $gallery = $message->getValue('gallery'); $filePath = $message->getValue('filePath'); $donwnloadable = $message->getValue('donwnloadable'); $prefixNameForm = $message->getValue('prefix_name'); $category = new PhotoCategory(); $category->setName($categoryName); $galleries = $this->enityManager->getRepository('AldorGalleryBundle:Gallery')->findAll(); foreach ($galleries as $gal) { if ($gal->getName() == $gallery) { $category->setGallery($gal); break; } } $zip = new ExtractZip($filePath); $files = $zip->extract(); if ($donwnloadable) { $zipFile = new Media(); $zipFile->setBinaryContent($zip->getZipPath()); $zipFile->setEnabled(true); $zipFile->setContext('default'); $zipFile->setProviderName('sonata.media.provider.file'); $category->setZip($zipFile); } $this->enityManager->persist($category); $prefixName = $categoryName; if ($prefixNameForm && $prefixNameForm != '') { $prefixName = $prefixNameForm; } $counter = 0; foreach ($files as $pos => $file) { $title = explode('/', $pos); $fileName = $title[count($title) - 1]; $fileName = str_replace('DSC_', '', $fileName); $title = $prefixName . '-' . explode('.', $fileName)[0]; $photo = new Photo(); $photo->setTitle($title); $media = new Media(); $media->setBinaryContent($file); $media->setEnabled(true); $media->setContext('gallery'); $media->setName($categoryName . '-' . $fileName); $photo->setImage($media); $photo->addCategory($category); // if (count($photo->getCategories()) == 0) { // print_r("jksdrgt-------------"); // throw "err"; // return 12313; // } $this->enityManager->persist($photo); } $this->enityManager->flush(); $zip->clean(); }
public function load(ObjectManager $em) { $files = Finder::create()->name('*.*')->in(__DIR__ . '/../data/files'); $manager = $this->container->get('sonata.media.manager.media'); $medias = []; foreach ($files as $pos => $file) { $media = new Media(); $media->setBinaryContent($file); $media->setEnabled(true); $manager->save($media, 'gallery', 'sonata.media.provider.image'); $medias[] = $media; } $design = new PhotoCategory(); $design->setName('Grafika'); $design->setSlug(Inftech::slugify('Grafika')); $design->setImage($medias[0]); $design->setGallery($em->merge($this->getReference('Gallery-1'))); $design2 = new PhotoCategory(); $design2->setName('Grafika2'); $design2->setSlug(Inftech::slugify('Grafika2')); $design2->setImage($medias[1]); $design2->setGallery($em->merge($this->getReference('Gallery-1'))); $design3 = new PhotoCategory(); $design3->setName('Grafika4'); $design3->setSlug(Inftech::slugify('Grafika4')); $design3->setImage($medias[3]); $design3->setGallery($em->merge($this->getReference('Gallery-1'))); $design4 = new PhotoCategory(); $design4->setName('Grafika3'); $design4->setSlug(Inftech::slugify('Grafika3')); $design4->setImage($medias[2]); $design4->setGallery($em->merge($this->getReference('Gallery-1'))); $programming = new PhotoCategory(); $programming->setName('Programowanie'); $programming->setSlug(Inftech::slugify('Programowanie')); $programming->setImage($medias[4]); $programming->setGallery($em->merge($this->getReference('Gallery-2'))); $linux = new PhotoCategory(); $linux->setName('Linux'); $linux->setSlug(Inftech::slugify('Linux')); $linux->setImage($medias[5]); $linux->setGallery($em->merge($this->getReference('Gallery-2'))); $em->persist($design); $em->persist($programming); $em->persist($linux); $em->persist($design2); $em->persist($design3); $em->persist($design4); $em->flush(); $this->addReference('PhotoCategory-1', $design); $this->addReference('PhotoCategory-4', $design2); $this->addReference('PhotoCategory-6', $design3); $this->addReference('PhotoCategory-5', $design4); $this->addReference('PhotoCategory-2', $programming); $this->addReference('PhotoCategory-3', $linux); }