LoadElementData.php 5.2KB

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