LoadUsersElementsFavoritesData.php 5.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  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. class LoadUsersElementsFavoritesData extends AbstractFixture implements OrderedFixtureInterface, ContainerAwareInterface
  12. {
  13. private $container;
  14. private $entity_manager;
  15. public function setContainer(ContainerInterface $container = null)
  16. {
  17. $this->container = $container;
  18. }
  19. public function getOrder()
  20. {
  21. return 102; // the order in which fixtures will be loaded
  22. }
  23. /**
  24. *
  25. */
  26. protected function createRecord(User $user, $element)
  27. {
  28. $favorite = new UsersElementsFavorites();
  29. $favorite->setUser($user);
  30. $favorite->setElement($element);
  31. if ($element->getOwner()->getId() != $user->getId())
  32. {
  33. $element->addPoints($this->container->getParameter('reputation_element_favorite_value'));
  34. $element->increaseCountFavorited();
  35. }
  36. $this->entity_manager->persist($favorite);
  37. $this->entity_manager->persist($element);
  38. //$this->addReference('user_tag_'.$user->getId().'_'.$tag->getId(), $userTag);
  39. }
  40. protected function createPlaylist($name, User $user, $public, $elements)
  41. {
  42. $playlist_manager = new PlaylistManager($this->entity_manager);
  43. $playlist = $playlist_manager->getNewPlaylist($user);
  44. $playlist->setPublic($public);
  45. $playlist->setName($name);
  46. $playlist_manager->addElementsToPlaylist($elements, $playlist);
  47. $this->entity_manager->persist($playlist);
  48. return $playlist;
  49. }
  50. public function load(ObjectManager $entity_manager)
  51. {
  52. $this->entity_manager = $entity_manager;
  53. // favoris de bux
  54. $bux = $this->entity_manager->merge($this->getReference('user_bux'));
  55. $paul = $this->entity_manager->merge($this->getReference('user_paul'));
  56. $bob = $this->entity_manager->merge($this->getReference('user_bob'));
  57. $youtube_heretik_1 = $this->getReference('element_youtube_heretik_1');
  58. $youtube_djfab_1 = $this->getReference('element_youtube_djfab_1');
  59. $jamendo_caio_1 = $this->getReference('element_jamendo_caio_1');
  60. $this->createRecord($bux, $youtube_heretik_1);
  61. $this->createRecord($bux, $youtube_djfab_1);
  62. $this->createRecord($paul, $youtube_heretik_1);
  63. $this->createRecord($paul, $jamendo_caio_1);
  64. // Playlists
  65. $playlist1 = $this->createPlaylist("Un peu de basses ?",
  66. $bux, true, array(
  67. $this->getReference('element_soulfly_1'),
  68. $youtube_heretik_1,
  69. $youtube_djfab_1,
  70. $jamendo_caio_1,
  71. $this->getReference('element_youtube_dtc_passdrop'),
  72. $this->getReference('element_youtube_antroppod_1'),
  73. $this->getReference('element_youtube_koinkoin_1'),
  74. $this->getReference('element_youtube_djantoine_1'),
  75. $this->getReference('element_youtube_acroyek_1'),
  76. $this->getReference('element_jamendo_caio_1'),
  77. $this->getReference('element_jamendo_reverb_1'),
  78. $this->getReference('element_jamendo_cardio_1'),
  79. $this->getReference('element_dudeldrum'),
  80. $this->getReference('element_infected_psycho'),
  81. $this->getReference('element_infected_muse'),
  82. $this->getReference('element_joelle_1'),
  83. $this->getReference('element_joelle_2'),
  84. $this->getReference('element_ukf_1'),
  85. $this->getReference('element_beatbox_1'),
  86. $this->getReference('element_soulfly_1'),
  87. $this->getReference('element_youtube_koinkoin_1'),
  88. $this->getReference('element_youtube_koinkoin_1'),
  89. $this->getReference('element_youtube_koinkoin_1'),
  90. $this->getReference('element_youtube_koinkoin_1'),
  91. $this->getReference('element_youtube_koinkoin_1'),
  92. $this->getReference('element_youtube_koinkoin_1'),
  93. $this->getReference('element_youtube_koinkoin_1'),
  94. $this->getReference('element_youtube_koinkoin_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_soulfly_1')
  105. ));
  106. $playlist2 = $this->createPlaylist("Ma playlist perso",
  107. $bux, false, array($youtube_heretik_1, $youtube_djfab_1));
  108. $playlist_bob = $this->createPlaylist("A travers l'espace",
  109. $bob, true, array(
  110. $this->getReference('element_infected_psycho'),
  111. $this->getReference('element_infected_muse'),
  112. $this->getReference('element_joelle_1'),
  113. $this->getReference('element_joelle_2')
  114. ));
  115. $playlist_manager = new PlaylistManager($this->entity_manager);
  116. $playlist_manager->addPickedPlaylistToUser($paul, $playlist1);
  117. $playlist_manager->addPickedPlaylistToUser($bux, $playlist_bob);
  118. $this->entity_manager->flush();
  119. }
  120. }