JamendocomFactory.php 3.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. namespace Muzich\CoreBundle\ElementFactory\Site;
  3. use Muzich\CoreBundle\ElementFactory\Site\base\BaseFactory;
  4. /**
  5. *
  6. *
  7. * @author bux
  8. */
  9. class JamendocomFactory extends BaseFactory
  10. {
  11. public function getEmbedCode()
  12. {
  13. $data = $this->getCleanedUrl();
  14. $embed_url = null;
  15. // http://www.jamendo.com/fr/album/30661
  16. if (preg_match("#^\/[a-zA-Z0-9_-]+\/album\/([0-9]+)#", $data, $chaines))
  17. {
  18. $id_album = $chaines[1];
  19. $embed_url = "http://widgets.jamendo.com/fr/album/?album_id=$id_album&playertype=2008";
  20. }
  21. // http://www.jamendo.com/fr/track/207079
  22. else if (preg_match("#^\/[a-zA-Z0-9_-]+\/track\/([0-9]+)#", $data, $chaines))
  23. {
  24. $id_track = $chaines[1];
  25. $embed_url = "http://widgets.jamendo.com/fr/track/?playertype=2008&track_id=$id_track";
  26. }
  27. if ($embed_url)
  28. {
  29. $height = $this->container->getParameter('jamendo_player_height');
  30. $width = $this->container->getParameter('jamendo_player_width');
  31. return '
  32. <object width="'.$width.'" height="'.$height.'" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" align="middle">
  33. <param name="allowScriptAccess" value="always" />
  34. <param name="wmode" value="transparent" />
  35. <param name="movie" value="'.$embed_url.'" />
  36. <param name="quality" value="high" />
  37. <param name="bgcolor" value="#FFFFFF" />
  38. <embed src="'.$embed_url.'" quality="high" wmode="transparent" bgcolor="#FFFFFF" width="'.$width.'" height="'.$height.'" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
  39. &nbsp;
  40. </embed>
  41. &nbsp;
  42. </object>
  43. <a href="http://pro.jamendo.com/" style="display:block;font-size:8px !important;">Catalogue professionnel de musique libre</a>
  44. ';
  45. }
  46. return null;
  47. }
  48. public function getThumbnailUrl()
  49. {
  50. $url_object = $this->getCleanedUrl();
  51. $get_url = null;
  52. $url = null;
  53. // http://www.jamendo.com/fr/album/30661
  54. if (preg_match("#^\/[a-zA-Z0-9_-]+\/album\/([0-9]+)#", $url_object, $chaines))
  55. {
  56. $id_album = $chaines[1];
  57. $get_url = "http://api.jamendo.com/get2/image/album/json/?id=".$id_album;
  58. }
  59. // http://www.jamendo.com/fr/track/207079
  60. else if (preg_match("#^\/[a-zA-Z0-9_-]+\/track\/([0-9]+)#", $url_object, $chaines))
  61. {
  62. /*
  63. * Pour une track c'est un peu différent
  64. */
  65. $id_track = $chaines[1];
  66. $get_album_url = "http://www.jamendo.com/get/album/id/track/page/json/".$id_track.'/';
  67. $ch = curl_init($get_album_url);
  68. curl_setopt_array($ch, array(
  69. CURLOPT_RETURNTRANSFER => true,
  70. CURLOPT_HTTPHEADER => array('Content-type: application/json')
  71. ));
  72. $result = json_decode(curl_exec($ch));
  73. if (count($result))
  74. {
  75. $album_url = str_replace('http://www.jamendo.com', '', $result[0]);
  76. $expl_alb = null;
  77. if (preg_match("#^\/album\/([0-9]+)#", $album_url, $expl_alb))
  78. {
  79. $id_album = $expl_alb[1];
  80. $get_url = "http://api.jamendo.com/get2/image/album/json/?id=".$id_album;
  81. }
  82. }
  83. }
  84. if ($get_url)
  85. {
  86. $ch = curl_init($get_url);
  87. $options = array(
  88. CURLOPT_RETURNTRANSFER => true,
  89. CURLOPT_HTTPHEADER => array('Content-type: text/plain')
  90. );
  91. curl_setopt_array( $ch, $options );
  92. $result = json_decode(curl_exec($ch));
  93. if (count($result))
  94. {
  95. $url = $result[0];
  96. }
  97. }
  98. /**
  99. * www.jamendo.com/get/album/id/track/page/plain/2000/
  100. * api.jamendo.com/get2/image/track/json/?id=
  101. *
  102. * api.jamendo.com/get2/album/id/track/json/?id=
  103. *
  104. */
  105. return $url;
  106. }
  107. }