Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AddUploadPictures #23

Open
wants to merge 11 commits into
base: develop
Choose a base branch
from
37 changes: 35 additions & 2 deletions src/AppBundle/DataFixtures/MongoDB/LoadWork.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,51 @@

namespace AppBundle\DataFixtures\MongoDB;

use Hautelook\AliceBundle\Alice\DataFixtureLoader;
use Application\Sonata\MediaBundle\Document\Media;
use Application\Sonata\MediaBundle\DataFixtures\MongoDB\AbstractMediaLoader;
use Symfony\Component\Finder\Finder;

class LoadWork extends DataFixtureLoader
class LoadWork extends AbstractMediaLoader
{
/**
* {@inheritDoc}
*/
protected function getFixtures()
{
$this->addPictures();

return array(
__DIR__.'/dynamic.yml',
__DIR__.'/static.yml',
);
}

/**
* This method return all MediaObjects.
*
* @return \Application\Sonata\MediaBundle\Document\Media[]|array
*/
public function getMediaObjects()
{
$mediaObjects = $this->manager->getRepository("ApplicationSonataMediaBundle:Media")->findAll();

return $mediaObjects;
}

/**
* This method saves the images in Media Collection.
*/
private function addPictures()
{
$finder = new Finder();
$finder->files()->in(__DIR__.'/images');

foreach ($finder as $file) {
$this->setMediaContent(
__DIR__.'/images/'.$file->getRelativePathname(),
'pictures',
'sonata.media.provider.image'
);
}
}
}
1 change: 1 addition & 0 deletions src/AppBundle/DataFixtures/MongoDB/dynamic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ AppBundle\Document\Dream:
author: @users*
statuses: 4x @statuses*
currentStatus: <word()>
mediaPictures: <getMediaObjects()>

AppBundle\Document\FinancialResource:
financialResources{1..100}:
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/AppBundle/DataFixtures/MongoDB/static.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ AppBundle\Document\Dream:
author: @user
statuses: [@status]
currentStatus: completed
mediaPictures: <getMediaObjects()>

AppBundle\Document\FinancialResource:
financialResource{1..20}:
Expand Down
76 changes: 68 additions & 8 deletions src/AppBundle/Document/Dream.php
Original file line number Diff line number Diff line change
Expand Up @@ -172,15 +172,15 @@ class Dream
*/
protected $currentStatus;

// /**
// * @ODM\ManyToMany(targetEntity="Application\Sonata\MediaBundle\Entity\Media")
// */
// protected $mediaPictures;
/**
* @ODM\ReferenceMany(targetDocument="Application\Sonata\MediaBundle\Document\Media")
*/
protected $mediaPictures = [];

// /**
// * @ODM\ReferenceMany(targetDocument="Application\Sonata\MediaBundle\Entity\Media")
// */
//// protected $mediaCompletedPictures;
/**
* @ODM\ReferenceMany(targetDocument="Application\Sonata\MediaBundle\Document\Media")
*/
protected $mediaCompletedPictures;
//
// /**
// * @ORM\OneToOne(targetEntity="Application\Sonata\MediaBundle\Entity\Media")
Expand Down Expand Up @@ -688,6 +688,66 @@ public function getResources()
return $this->resources;
}

/**
* Add mediaPicture
*
* @param \Application\Sonata\MediaBundle\Document\Media $mediaPicture
*/
public function addMediaPicture(\Application\Sonata\MediaBundle\Document\Media $mediaPicture)
{
$this->mediaPictures[] = $mediaPicture;
}

/**
* Remove mediaPicture
*
* @param \Application\Sonata\MediaBundle\Document\Media $mediaPicture
*/
public function removeMediaPicture(\Application\Sonata\MediaBundle\Document\Media $mediaPicture)
{
$this->mediaPictures->removeElement($mediaPicture);
}

/**
* Get mediaPictures
*
* @return \Doctrine\Common\Collections\Collection $mediaPictures
*/
public function getMediaPictures()
{
return $this->mediaPictures;
}

/**
* Add mediaCompletedPicture
*
* @param \Application\Sonata\MediaBundle\Document\Media $mediaCompletedPicture
*/
public function addMediaCompletedPicture(\Application\Sonata\MediaBundle\Document\Media $mediaCompletedPicture)
{
$this->mediaCompletedPictures[] = $mediaCompletedPicture;
}

/**
* Remove mediaCompletedPicture
*
* @param \Application\Sonata\MediaBundle\Document\Media $mediaCompletedPicture
*/
public function removeMediaCompletedPicture(\Application\Sonata\MediaBundle\Document\Media $mediaCompletedPicture)
{
$this->mediaCompletedPictures->removeElement($mediaCompletedPicture);
}

/**
* Get mediaCompletedPictures
*
* @return \Doctrine\Common\Collections\Collection $mediaCompletedPictures
*/
public function getMediaCompletedPictures()
{
return $this->mediaCompletedPictures;
}

public function __toString()
{
return $this->getTitle();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?php

namespace Application\Sonata\MediaBundle\DataFixtures\MongoDB;

use Application\Sonata\MediaBundle\Document\Media;
use Hautelook\AliceBundle\Alice\DataFixtureLoader;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;

abstract class AbstractMediaLoader extends DataFixtureLoader implements ContainerAwareInterface
{
protected $container;

/**
* Sets the Container.
*
* @param ContainerInterface|null $container A ContainerInterface instance or null
*
* @api
*/
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}

/**
* @param string $src
* @param string $context
* @param string $provider
*/
protected function setMediaContent($src, $context, $provider)
{
$mediaManager = $this->container->get('sonata.media.manager.media');
$media = new Media();
$media->setBinaryContent($src);
$media->setContext($context);
$media->setProviderName($provider);
$mediaManager->save($media);
}
}
6 changes: 3 additions & 3 deletions src/Application/Sonata/MediaBundle/Document/Media.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
use Sonata\MediaBundle\Document\BaseMedia as BaseMedia;

/**
* This file has been generated by the EasyExtends bundle ( http://sonata-project.org/bundles/easy-extends )
* This file has been generated by the EasyExtends bundle ( http://sonata-project.org/bundles/easy-extends ).
*
* References :
* working with object : http://www.doctrine-project.org/docs/mongodb_odm/1.0/en/reference/working-with-objects.html
Expand All @@ -24,12 +24,12 @@
class Media extends BaseMedia
{
/**
* @var integer $id
* @var integer
*/
protected $id;

/**
* Get id
* Get id.
*
* @return integer $id
*/
Expand Down