LoadUsersElementsFavoritesData.php 5.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <?php
  2. namespace Muzich\UserBundle\DataFixtures\ORM;
  3. use Doctrine\Common\Persistence\ObjectManager;
  4. use Doctrine\Common\DataFixtures\AbstractFixture;
  5. use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
  6. use Symfony\Component\DependencyInjection\ContainerAwareInterface;
  7. use Symfony\Component\DependencyInjection\ContainerInterface;
  8. use Muzich\CoreBundle\Entity\UsersElementsFavorites;
  9. use Muzich\CoreBundle\Entity\User;
  10. use Muzich\CoreBundle\Managers\PlaylistManager;
  11. use Muzich\CoreBundle\Propagator\EventElement;
  12. class LoadUsersElementsFavoritesData extends AbstractFixture implements OrderedFixtureInterface, ContainerAwareInterface
  13. {
  14. private $container;
  15. private $entity_manager;
  16. public function setContainer(ContainerInterface $container = null)
  17. {
  18. $this->container = $container;
  19. }
  20. public function getOrder()
  21. {
  22. return 102; // the order in which fixtures will be loaded
  23. }
  24. /**
  25. *
  26. */
  27. protected function createRecord(User $user, $element)
  28. {
  29. $favorite = new UsersElementsFavorites();
  30. $favorite->setUser($user);
  31. $favorite->setElement($element);
  32. if ($element->getOwner()->getId() != $user->getId())
  33. {
  34. $element->addPoints($this->container->getParameter('reputation_element_favorite_value'));
  35. $element->increaseCountFavorited();
  36. }
  37. $this->entity_manager->persist($favorite);
  38. $this->entity_manager->persist($element);
  39. //$this->addReference('user_tag_'.$user->getId().'_'.$tag->getId(), $userTag);
  40. }
  41. protected function createPlaylist($name, User $user, $public, $elements)
  42. {
  43. $playlist_manager = new PlaylistManager($this->entity_manager);
  44. $playlist = $playlist_manager->getNewPlaylist($user);
  45. $playlist->setPublic($public);
  46. $playlist->setName($name);
  47. $playlist_manager->addElementsToPlaylist($elements, $playlist);
  48. $this->entity_manager->persist($playlist);
  49. $this->entity_manager->flush();
  50. foreach ($elements as $element)
  51. {
  52. $event = new EventElement($this->container);
  53. $event->addedToPlaylist($element, $user, $playlist);
  54. $this->entity_manager->persist($element);
  55. }
  56. return $playlist;
  57. }
  58. public function load(ObjectManager $entity_manager)
  59. {
  60. $this->entity_manager = $entity_manager;
  61. // favoris de bux
  62. $bux = $this->entity_manager->merge($this->getReference('user_bux'));
  63. $paul = $this->entity_manager->merge($this->getReference('user_paul'));
  64. $bob = $this->entity_manager->merge($this->getReference('user_bob'));
  65. $youtube_heretik_1 = $this->getReference('element_youtube_heretik_1');
  66. $youtube_djfab_1 = $this->getReference('element_youtube_djfab_1');
  67. $jamendo_caio_1 = $this->getReference('element_jamendo_caio_1');
  68. $this->createRecord($bux, $youtube_heretik_1);
  69. $this->createRecord($bux, $youtube_djfab_1);
  70. $this->createRecord($paul, $youtube_heretik_1);
  71. $this->createRecord($paul, $jamendo_caio_1);
  72. // Playlists
  73. $playlist1 = $this->createPlaylist("Un peu de basses ?",
  74. $bux, true, array(
  75. $this->getReference('element_soulfly_1'),
  76. $youtube_heretik_1,
  77. $youtube_djfab_1,
  78. $jamendo_caio_1,
  79. $this->getReference('element_youtube_dtc_passdrop'),
  80. $this->getReference('element_youtube_antroppod_1'),
  81. $this->getReference('element_youtube_koinkoin_1'),
  82. $this->getReference('element_youtube_djantoine_1'),
  83. $this->getReference('element_youtube_acroyek_1'),
  84. $this->getReference('element_jamendo_caio_1'),
  85. $this->getReference('element_jamendo_reverb_1'),
  86. $this->getReference('element_jamendo_cardio_1'),
  87. $this->getReference('element_dudeldrum'),
  88. $this->getReference('element_infected_psycho'),
  89. $this->getReference('element_infected_muse'),
  90. $this->getReference('element_joelle_1'),
  91. $this->getReference('element_joelle_2'),
  92. $this->getReference('element_ukf_1'),
  93. $this->getReference('element_beatbox_1'),
  94. $this->getReference('element_soulfly_1'),
  95. $this->getReference('element_youtube_koinkoin_1'),
  96. $this->getReference('element_youtube_koinkoin_1'),
  97. $this->getReference('element_youtube_koinkoin_1'),
  98. $this->getReference('element_youtube_koinkoin_1'),
  99. $this->getReference('element_youtube_koinkoin_1'),
  100. $this->getReference('element_youtube_koinkoin_1'),
  101. $this->getReference('element_youtube_koinkoin_1'),
  102. $this->getReference('element_youtube_koinkoin_1'),
  103. $this->getReference('element_youtube_koinkoin_1'),
  104. $this->getReference('element_youtube_koinkoin_1'),
  105. $this->getReference('element_youtube_koinkoin_1'),
  106. $this->getReference('element_youtube_koinkoin_1'),
  107. $this->getReference('element_youtube_koinkoin_1'),
  108. $this->getReference('element_youtube_koinkoin_1'),
  109. $this->getReference('element_youtube_koinkoin_1'),
  110. $this->getReference('element_youtube_koinkoin_1'),
  111. $this->getReference('element_youtube_koinkoin_1'),
  112. $this->getReference('element_soulfly_1')
  113. ));
  114. $playlist2 = $this->createPlaylist("Ma playlist perso",
  115. $bux, false, array($youtube_heretik_1, $youtube_djfab_1));
  116. $playlist_bob = $this->createPlaylist("A travers l'espace",
  117. $bob, true, array(
  118. $this->getReference('element_infected_psycho'),
  119. $this->getReference('element_infected_muse'),
  120. $this->getReference('element_joelle_1'),
  121. $this->getReference('element_joelle_2')
  122. ));
  123. $playlist_manager = new PlaylistManager($this->entity_manager);
  124. $playlist_manager->addPickedPlaylistToUser($paul, $playlist1);
  125. $playlist_manager->addPickedPlaylistToUser($bux, $playlist_bob);
  126. $this->entity_manager->flush();
  127. }
  128. }