LoadElementData.php 7.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  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\Element;
  9. class LoadElementData extends AbstractFixture implements OrderedFixtureInterface, ContainerAwareInterface
  10. {
  11. private $container;
  12. private $entity_manager;
  13. public function setContainer(ContainerInterface $container = null)
  14. {
  15. $this->container = $container;
  16. }
  17. public function getOrder()
  18. {
  19. return 6;
  20. }
  21. protected function getArrayOfTag($names)
  22. {
  23. $tags = array();
  24. foreach ($names as $name)
  25. {
  26. $tags[] = $this->entity_manager->merge($this->getReference('tag_'.$name));
  27. }
  28. return $tags;
  29. }
  30. /**
  31. *
  32. */
  33. protected function createElement($reference_id, $name, $url, $tags, $type, $owner, $group = null, $date = null)
  34. {
  35. $element = new Element();
  36. $element->setName(ucfirst($name));
  37. $element->setUrl($url);
  38. $element->setType($type);
  39. $element->setOwner($owner);
  40. if ($date)
  41. {
  42. $date_object = new \DateTime($date);
  43. $element->setCreated($date_object);
  44. $element->setUpdated($date_object);
  45. }
  46. if ($group)
  47. $element->setGroup($group);
  48. $this->addReference('element_'.$reference_id, $element);
  49. foreach ($tags as $tag)
  50. {
  51. $element->addTag($tag);
  52. }
  53. $this->entity_manager->persist($element);
  54. }
  55. protected function dateD($ecal)
  56. {
  57. return date('Y-m-d H:i:s', time() - 60 * 60 *24 * $ecal);
  58. }
  59. public function load(ObjectManager $entity_manager)
  60. {
  61. $this->entity_manager = $entity_manager;
  62. // Timestampable stuff
  63. $evm = new \Doctrine\Common\EventManager();
  64. // ORM and ORM
  65. $timestampableListener = new \Gedmo\Timestampable\TimestampableListener();
  66. $evm->addEventSubscriber($timestampableListener);
  67. // now this event manager should be passed to entity manager constructor
  68. $this->entity_manager->getEventManager()->addEventSubscriber($timestampableListener);
  69. //
  70. $bux = $this->entity_manager->merge($this->getReference('user_bux'));
  71. $jean = $this->entity_manager->merge($this->getReference('user_jean'));
  72. $paul = $this->entity_manager->merge($this->getReference('user_paul'));
  73. $bob = $this->entity_manager->merge($this->getReference('user_bob'));
  74. $joelle = $this->entity_manager->merge($this->getReference('user_joelle'));
  75. $this->createElement('youtube_heretik_1', 'Heretik System Popof - Resistance',
  76. 'http://www.youtube.com/watch?v=tq4DjQK7nsM',
  77. $this->getArrayOfTag(array('hardtek')),
  78. 'youtube.com', $bux, null, $this->dateD(200));
  79. $this->createElement('youtube_dtc_passdrop', 'dtc che passdrop',
  80. 'http://www.youtube.com/watch?v=2A4buFCp7qM',
  81. $this->getArrayOfTag(array('hardtek')),
  82. 'youtube.com', $bux, null, $this->dateD(199));
  83. $this->createElement('youtube_antroppod_1', 'Antropod - Polakatek',
  84. 'http://www.youtube.com/watch?v=VvpF3lCh1hk&NR=1',
  85. $this->getArrayOfTag(array('hardtek')),
  86. 'youtube.com', $bux, null, $this->dateD(198));
  87. $this->createElement('youtube_koinkoin_1', 'koinkOin - H5N1',
  88. 'http://www.son2teuf.org/Voir-details/Sons/Lives/Hardtek-_-Tribe/koinkOin-_-H5N1',
  89. $this->getArrayOfTag(array('hardtek', 'electro')),
  90. 'son2teuf.org', $bux, null, $this->dateD(197));
  91. $this->createElement('youtube_djfab_1', 'DJ FAB',
  92. 'http://www.jamendo.com/fr/album/42567',
  93. $this->getArrayOfTag(array('hardtek')),
  94. 'jamendo.com', $jean, null, $this->dateD(196));
  95. $this->createElement('youtube_djantoine_1', 'dj antoine',
  96. 'http://www.jamendo.com/fr/album/75206',
  97. $this->getArrayOfTag(array('hardtek', 'tribe')),
  98. 'jamendo.com', $jean, null, $this->dateD(195));
  99. $this->createElement('youtube_acroyek_1', 'Acrotek Hardtek G01',
  100. 'http://www.jamendo.com/fr/album/3409',
  101. $this->getArrayOfTag(array('hardtek')),
  102. 'jamendo.com', $jean, null, $this->dateD(194));
  103. $this->createElement('jamendo_caio_1', 'All Is Full Of Pain',
  104. 'http://soundcloud.com/keytek/all-is-full-of-pain',
  105. $this->getArrayOfTag(array('tribe', 'hardtek')),
  106. 'soundcloud.com', $paul, null, $this->dateD(193));
  107. $this->createElement('jamendo_reverb_1', 'RE-FUCK (ReVeRB_FBC) mix.',
  108. 'http://soundcloud.com/reverb-2/re-fuck-reverb_fbc-mix',
  109. $this->getArrayOfTag(array('tribe')),
  110. 'soundcloud.com', $paul, null, $this->dateD(192));
  111. $this->createElement('jamendo_cardio_1', 'CardioT3K - Juggernaut Trap',
  112. 'http://soundcloud.com/cardiot3k/cardiot3k-juggernaut-trap',
  113. $this->getArrayOfTag(array('tribe')),
  114. 'soundcloud.com', $paul, null, $this->dateD(191));
  115. $this->createElement('dudeldrum', 'DUDELDRUM',
  116. 'http://www.jamendo.com/fr/album/89109',
  117. $this->getArrayOfTag(array('medieval')),
  118. 'jamendo.com', $joelle,
  119. $this->entity_manager->merge($this->getReference('group_dudeldrum'))
  120. , $this->dateD(190)
  121. );
  122. $this->createElement('infected_psycho', 'Infected Mushroom - Psycho',
  123. 'http://www.youtube.com/watch?v=dLWXSsYJoWY',
  124. $this->getArrayOfTag(array('psytrance')),
  125. 'youtube.com', $paul,
  126. $this->entity_manager->merge($this->getReference('group_fan_de_psytrance'))
  127. , $this->dateD(189)
  128. );
  129. $this->createElement('infected_muse', 'Infected mushroom - Muse Breaks',
  130. 'http://www.youtube.com/watch?v=g0Cbfm1PStA',
  131. $this->getArrayOfTag(array('psytrance')),
  132. 'youtube.com', $bob,
  133. $this->entity_manager->merge($this->getReference('group_fan_de_psytrance'))
  134. , $this->dateD(188)
  135. );
  136. $this->createElement('joelle_1', 'Cents Pas - Joëlle',
  137. 'http://www.youtube.com/watch?v=bIAFB4vRdGw',
  138. $this->getArrayOfTag(array('chanteuse')),
  139. 'youtube.com', $joelle, null, $this->dateD(187)
  140. );
  141. $this->createElement('joelle_2', 'Cents Pas - Joëlle (bis)',
  142. 'http://www.youtube.com/watch?v=bIAFB4vRdGw',
  143. $this->getArrayOfTag(array('chanteuse')),
  144. 'youtube.com', $joelle,
  145. $this->entity_manager->merge($this->getReference('group_joelle'))
  146. , $this->dateD(186)
  147. );
  148. $this->createElement('ukf_1', 'UKF Dubstep Mix - August ',
  149. 'http://www.youtube.com/watch?v=SFu2DfPDGeU',
  150. $this->getArrayOfTag(array('dubstep')),
  151. 'youtube.com', $joelle, null, $this->dateD(185)
  152. );
  153. $this->createElement('beatbox_1', 'Dubstep Beatbox',
  154. 'http://www.dailymotion.com/video/xm5omz_dubstep-beatbox_creation',
  155. $this->getArrayOfTag(array('dubstep', 'beatbox')),
  156. 'dailymotion.com', $joelle, null, $this->dateD(184)
  157. );
  158. $this->createElement('soulfly_1', 'SOULFLY - Prophecy',
  159. 'http://www.youtube.com/watch?v=zCc_jLctZkA',
  160. $this->getArrayOfTag(array('metal')),
  161. 'youtube.com', $bux, null, $this->dateD(183)
  162. );
  163. $this->createElement('azyd_azylum_1', 'AZYD AZYLUM Live au Café Provisoire',
  164. 'http://www.youtube.com/watch?v=8AXhRXAt2E4',
  165. $this->getArrayOfTag(array('metal')),
  166. 'youtube.com', $bux, null, $this->dateD(182)
  167. );
  168. $this->createElement('babylon_pression_1', 'Babylon Pression - Des Tasers et des Pauvres',
  169. 'http://www.youtube.com/watch?v=XWkbaHxRvds&feature=related',
  170. $this->getArrayOfTag(array('metal', 'hardcore')),
  171. 'youtube.com', $bux, null, $this->dateD(181)
  172. );
  173. $this->createElement('ed_cox_1', 'Ed Cox - La fanfare des teuffeurs (Hardcordian)',
  174. 'http://www.youtube.com/watch?v=Lk1gnh-JCDs&feature=related',
  175. $this->getArrayOfTag(array('electro')),
  176. 'youtube.com', $bux, null, $this->dateD(180)
  177. );
  178. $this->entity_manager->flush();
  179. }
  180. }