LoadElementData.php 9.9KB

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