LoadElementData.php 5.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  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, $date = null)
  33. {
  34. if (!$date)
  35. {
  36. $date = new \DateTime();
  37. }
  38. $element = new Element();
  39. $element->setName(ucfirst($name));
  40. $element->setUrl($url);
  41. $element->setType($type);
  42. $element->setOwner($owner);
  43. $element->setDateAdded($date);
  44. if ($group)
  45. $element->setGroup($group);
  46. $this->addReference('element_'.$reference_id, $element);
  47. foreach ($tags as $tag)
  48. {
  49. $element->addTag($tag);
  50. }
  51. $this->entity_manager->persist($element);
  52. }
  53. public function load($entity_manager)
  54. {
  55. $this->entity_manager = $entity_manager;
  56. $bux = $this->entity_manager->merge($this->getReference('user_bux'));
  57. $jean = $this->entity_manager->merge($this->getReference('user_jean'));
  58. $paul = $this->entity_manager->merge($this->getReference('user_paul'));
  59. $bob = $this->entity_manager->merge($this->getReference('user_bob'));
  60. $joelle = $this->entity_manager->merge($this->getReference('user_joelle'));
  61. // 'youtube', 'soundclound', 'son2teuf', 'jamendo'
  62. $youtube = $this->entity_manager->merge($this->getReference('element_type_youtube'));
  63. $soundclound = $this->entity_manager->merge($this->getReference('element_type_soundclound'));
  64. $son2teuf = $this->entity_manager->merge($this->getReference('element_type_son2teuf'));
  65. $jamendo = $this->entity_manager->merge($this->getReference('element_type_jamendo'));
  66. $this->createElement('youtube_heretik_1', 'Heretik System Popof - Resistance',
  67. 'http://www.youtube.com/watch?v=tq4DjQK7nsM',
  68. $this->getArrayOfTag(array('hardtek')),
  69. $youtube, $bux);
  70. $this->createElement('youtube_dtc_passdrop', 'dtc che passdrop',
  71. 'http://www.youtube.com/watch?v=2A4buFCp7qM',
  72. $this->getArrayOfTag(array('hardtek')),
  73. $youtube, $bux);
  74. $this->createElement('youtube_antroppod_1', 'Antropod - Polakatek',
  75. 'http://www.youtube.com/watch?v=VvpF3lCh1hk&NR=1',
  76. $this->getArrayOfTag(array('hardtek')),
  77. $youtube, $bux);
  78. $this->createElement('youtube_koinkoin_1', 'koinkOin - H5N1',
  79. 'http://www.son2teuf.org/Voir-details/Sons/Lives/Hardtek-_-Tribe/koinkOin-_-H5N1',
  80. $this->getArrayOfTag(array('hardtek', 'electro')),
  81. $youtube, $bux);
  82. $this->createElement('youtube_djfab_1', 'DJ FAB',
  83. 'http://www.jamendo.com/fr/album/42567',
  84. $this->getArrayOfTag(array('hardtek')),
  85. $jamendo, $jean);
  86. $this->createElement('youtube_djantoine_1', 'dj antoine',
  87. 'http://www.jamendo.com/fr/album/75206',
  88. $this->getArrayOfTag(array('hardtek', 'tribe')),
  89. $jamendo, $jean);
  90. $this->createElement('youtube_acroyek_1', 'Acrotek Hardtek G01',
  91. 'http://www.jamendo.com/fr/album/3409',
  92. $this->getArrayOfTag(array('hardtek')),
  93. $jamendo, $jean);
  94. $this->createElement('jamendo_caio_1', 'All Is Full Of Pain',
  95. 'http://soundcloud.com/keytek/all-is-full-of-pain',
  96. $this->getArrayOfTag(array('tribe', 'hardtek')),
  97. $soundclound, $paul);
  98. $this->createElement('jamendo_reverb_1', 'RE-FUCK (ReVeRB_FBC) mix.',
  99. 'http://soundcloud.com/reverb-2/re-fuck-reverb_fbc-mix',
  100. $this->getArrayOfTag(array('tribe')),
  101. $soundclound, $paul);
  102. $this->createElement('jamendo_cardio_1', 'CardioT3K - Juggernaut Trap',
  103. 'http://soundcloud.com/cardiot3k/cardiot3k-juggernaut-trap',
  104. $this->getArrayOfTag(array('tribe')),
  105. $soundclound, $paul);
  106. $this->createElement('dudeldrum', 'DUDELDRUM',
  107. 'http://www.jamendo.com/fr/album/89109',
  108. $this->getArrayOfTag(array('medieval')),
  109. $jamendo, $joelle,
  110. $this->entity_manager->merge($this->getReference('group_dudeldrum'))
  111. );
  112. $this->createElement('infected_psycho', 'Infected Mushroom - Psycho',
  113. 'http://www.youtube.com/watch?v=dLWXSsYJoWY',
  114. $this->getArrayOfTag(array('psytrance')),
  115. $youtube, $paul,
  116. $this->entity_manager->merge($this->getReference('group_fan_de_psytrance'))
  117. );
  118. $this->createElement('infected_muse', 'Infected mushroom - Muse Breaks',
  119. 'http://www.youtube.com/watch?v=g0Cbfm1PStA',
  120. $this->getArrayOfTag(array('psytrance')),
  121. $youtube, $bob,
  122. $this->entity_manager->merge($this->getReference('group_fan_de_psytrance'))
  123. );
  124. $this->createElement('joelle_1', 'Cents Pas - Joëlle',
  125. 'http://www.youtube.com/watch?v=bIAFB4vRdGw',
  126. $this->getArrayOfTag(array('chanteuse')),
  127. $youtube, $joelle
  128. );
  129. $this->createElement('joelle_2', 'Cents Pas - Joëlle (bis)',
  130. 'http://www.youtube.com/watch?v=bIAFB4vRdGw',
  131. $this->getArrayOfTag(array('chanteuse')),
  132. $youtube, $joelle,
  133. $this->entity_manager->merge($this->getReference('group_joelle'))
  134. );
  135. $this->entity_manager->flush();
  136. }
  137. }