LoadElementData.php 6.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. <?php
  2. namespace Muzich\UserBundle\DataFixtures\ORM;
  3. use Doctrine\Common\DataFixtures\AbstractFixture;
  4. use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
  5. use Symfony\Component\DependencyInjection\ContainerAwareInterface;
  6. use Symfony\Component\DependencyInjection\ContainerInterface;
  7. use Muzich\CoreBundle\Entity\Element;
  8. class LoadElementData extends AbstractFixture implements OrderedFixtureInterface, ContainerAwareInterface
  9. {
  10. private $container;
  11. private $entity_manager;
  12. public function setContainer(ContainerInterface $container = null)
  13. {
  14. $this->container = $container;
  15. }
  16. public function getOrder()
  17. {
  18. return 6;
  19. }
  20. protected function getArrayOfTag($names)
  21. {
  22. $tags = array();
  23. foreach ($names as $name)
  24. {
  25. $tags[] = $this->entity_manager->merge($this->getReference('tag_'.$name));
  26. }
  27. return $tags;
  28. }
  29. /**
  30. *
  31. */
  32. protected function createElement($reference_id, $name, $url, $tags, $type, $owner, $group = null)
  33. {
  34. $element = new Element();
  35. $element->setName(ucfirst($name));
  36. $element->setUrl($url);
  37. $element->setType($type);
  38. $element->setOwner($owner);
  39. if ($group)
  40. $element->setGroup($group);
  41. $this->addReference('element_'.$reference_id, $element);
  42. foreach ($tags as $tag)
  43. {
  44. $element->addTag($tag);
  45. }
  46. $this->entity_manager->persist($element);
  47. }
  48. public function load($entity_manager)
  49. {
  50. $this->entity_manager = $entity_manager;
  51. // Timestampable stuff
  52. $evm = new \Doctrine\Common\EventManager();
  53. // ORM and ORM
  54. $timestampableListener = new \Gedmo\Timestampable\TimestampableListener();
  55. $evm->addEventSubscriber($timestampableListener);
  56. // now this event manager should be passed to entity manager constructor
  57. $this->entity_manager->getEventManager()->addEventSubscriber($timestampableListener);
  58. //
  59. $bux = $this->entity_manager->merge($this->getReference('user_bux'));
  60. $jean = $this->entity_manager->merge($this->getReference('user_jean'));
  61. $paul = $this->entity_manager->merge($this->getReference('user_paul'));
  62. $bob = $this->entity_manager->merge($this->getReference('user_bob'));
  63. $joelle = $this->entity_manager->merge($this->getReference('user_joelle'));
  64. // 'youtube', 'soundclound', 'son2teuf', 'jamendo'
  65. $youtube = $this->entity_manager->merge($this->getReference('element_type_youtube'));
  66. $soundclound = $this->entity_manager->merge($this->getReference('element_type_soundclound'));
  67. $son2teuf = $this->entity_manager->merge($this->getReference('element_type_son2teuf'));
  68. $jamendo = $this->entity_manager->merge($this->getReference('element_type_jamendo'));
  69. $this->createElement('youtube_heretik_1', 'Heretik System Popof - Resistance',
  70. 'http://www.youtube.com/watch?v=tq4DjQK7nsM',
  71. $this->getArrayOfTag(array('hardtek')),
  72. $youtube, $bux);
  73. $this->createElement('youtube_dtc_passdrop', 'dtc che passdrop',
  74. 'http://www.youtube.com/watch?v=2A4buFCp7qM',
  75. $this->getArrayOfTag(array('hardtek')),
  76. $youtube, $bux);
  77. $this->createElement('youtube_antroppod_1', 'Antropod - Polakatek',
  78. 'http://www.youtube.com/watch?v=VvpF3lCh1hk&NR=1',
  79. $this->getArrayOfTag(array('hardtek')),
  80. $youtube, $bux);
  81. $this->createElement('youtube_koinkoin_1', 'koinkOin - H5N1',
  82. 'http://www.son2teuf.org/Voir-details/Sons/Lives/Hardtek-_-Tribe/koinkOin-_-H5N1',
  83. $this->getArrayOfTag(array('hardtek', 'electro')),
  84. $youtube, $bux);
  85. $this->createElement('youtube_djfab_1', 'DJ FAB',
  86. 'http://www.jamendo.com/fr/album/42567',
  87. $this->getArrayOfTag(array('hardtek')),
  88. $jamendo, $jean);
  89. $this->createElement('youtube_djantoine_1', 'dj antoine',
  90. 'http://www.jamendo.com/fr/album/75206',
  91. $this->getArrayOfTag(array('hardtek', 'tribe')),
  92. $jamendo, $jean);
  93. $this->createElement('youtube_acroyek_1', 'Acrotek Hardtek G01',
  94. 'http://www.jamendo.com/fr/album/3409',
  95. $this->getArrayOfTag(array('hardtek')),
  96. $jamendo, $jean);
  97. $this->createElement('jamendo_caio_1', 'All Is Full Of Pain',
  98. 'http://soundcloud.com/keytek/all-is-full-of-pain',
  99. $this->getArrayOfTag(array('tribe', 'hardtek')),
  100. $soundclound, $paul);
  101. $this->createElement('jamendo_reverb_1', 'RE-FUCK (ReVeRB_FBC) mix.',
  102. 'http://soundcloud.com/reverb-2/re-fuck-reverb_fbc-mix',
  103. $this->getArrayOfTag(array('tribe')),
  104. $soundclound, $paul);
  105. $this->createElement('jamendo_cardio_1', 'CardioT3K - Juggernaut Trap',
  106. 'http://soundcloud.com/cardiot3k/cardiot3k-juggernaut-trap',
  107. $this->getArrayOfTag(array('tribe')),
  108. $soundclound, $paul);
  109. $this->createElement('dudeldrum', 'DUDELDRUM',
  110. 'http://www.jamendo.com/fr/album/89109',
  111. $this->getArrayOfTag(array('medieval')),
  112. $jamendo, $joelle,
  113. $this->entity_manager->merge($this->getReference('group_dudeldrum'))
  114. );
  115. $this->createElement('infected_psycho', 'Infected Mushroom - Psycho',
  116. 'http://www.youtube.com/watch?v=dLWXSsYJoWY',
  117. $this->getArrayOfTag(array('psytrance')),
  118. $youtube, $paul,
  119. $this->entity_manager->merge($this->getReference('group_fan_de_psytrance'))
  120. );
  121. $this->createElement('infected_muse', 'Infected mushroom - Muse Breaks',
  122. 'http://www.youtube.com/watch?v=g0Cbfm1PStA',
  123. $this->getArrayOfTag(array('psytrance')),
  124. $youtube, $bob,
  125. $this->entity_manager->merge($this->getReference('group_fan_de_psytrance'))
  126. );
  127. $this->createElement('joelle_1', 'Cents Pas - Joëlle',
  128. 'http://www.youtube.com/watch?v=bIAFB4vRdGw',
  129. $this->getArrayOfTag(array('chanteuse')),
  130. $youtube, $joelle
  131. );
  132. $this->createElement('joelle_2', 'Cents Pas - Joëlle (bis)',
  133. 'http://www.youtube.com/watch?v=bIAFB4vRdGw',
  134. $this->getArrayOfTag(array('chanteuse')),
  135. $youtube, $joelle,
  136. $this->entity_manager->merge($this->getReference('group_joelle'))
  137. );
  138. $this->entity_manager->flush();
  139. }
  140. }