Le code PHP de "playlist-video-search.php"

  1. <?php

  2. /*Récupération des paramêtres*/

  3. $searchterm = $_GET["s"];

  4. $username = $_GET["user"];

  5. $startindex = $_GET["sind"];

  6. $maxresults = $_GET["max"];

  7. /*Appel à la feuille XSL*/

  8. @$xslDoc = new DOMDocument();

  9. $xslDoc->load("playlist-video-search.xsl");

  10. /*Connection aux données GDATA XML*/

  11. @$xmlDoc = new DOMDocument();

  12. $xmlDoc->load("http://gdata.youtube.com/feeds/videos?format=5&vq=" . $searchterm . "&start-index=" . $startindex . "&max-results=" . $maxresults . "&key=Votre clé dévéloppeur GDATA");

  13. /*Passage des paramêtres*/

  14. @$proc = new XSLTProcessor();

  15. $proc->importStylesheet($xslDoc);

  16. $proc->setParameter('', 's', $searchterm);

  17. $proc->setParameter('', 'sind', $startindex);

  18. $proc->setParameter('', 'max', $maxresults);

  19. echo $proc->transformToXML($xmlDoc);

  20. ?>

  21.  
  22.  

Le code XSLT de playlist-video-search.xsl

  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <xsl:stylesheet version="1.0"

  3. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

  4. xmlns:fn="http://www.w3.org/2005/xpath-functions"

  5. xmlns:gd="http://schemas.google.com/g/2005"

  6. xmlns:media="http://search.yahoo.com/mrss/"

  7. xmlns:n1="http://www.w3.org/2005/Atom"

  8. xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/"

  9. xmlns:xdt="http://www.w3.org/2005/xpath-datatypes"

  10. xmlns:xs="http://www.w3.org/2001/XMLSchema"

  11. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  12. xmlns:yt="http://gdata.youtube.com/schemas/2007">

  13. <xsl:output method="html" encoding="ISO-8859-1" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>

  14. <!-- Récupération des paramêtres passés par querystring à PHP -->

  15. <xsl:param name="s" />

  16. <xsl:param name="sind" />

  17. <xsl:param name="max" />

  18. <xsl:variable name="XML" select="/"/>

  19. <!-- Début du template -->

  20. <xsl:template match="/">

  21. <!-- Début HTML -->

  22. <html>

  23. <head>

  24. <title>Playlist Vidéo de "<xsl:value-of select="$s"/>" avec Youtube</title>

  25. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>

  26. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>

  27. <link rel="cannonical" href="playlist-video-search-{$s}-1-50.html" />

  28. <!-- CSS -->

  29. <link rel="stylesheet" href="css/playlist-video.css" media="screen" />

  30. <!-- JS -->

  31. <script type="text/javascript" src="js/youtube-static.js"></script>

  32. <script type="text/javascript" src="js/swfobject.js"></script>

  33. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>

  34. <script type="text/javascript" src="js/jquery.easing.1.3.js"></script>

  35. <script type="text/javascript" src="js/jquery.elastislide.js"></script>

  36. </head>

  37. <body>

  38. <!-- Affichage du player Youtube -->

  39. <xsl:for-each select="$XML">

  40. <xsl:for-each select="n1:feed">

  41. <xsl:if test="n1:entry[1]">

  42. <div class="youtubevideo">

  43. <div id="cur_video">

  44. <xsl:for-each select="n1:entry[1]/media:group/media:content">

  45. <xsl:if test="@type = 'application/x-shockwave-flash'">

  46. <embed>

  47. <xsl:attribute name="src">

  48. <xsl:value-of select="@url"/><xsl:value-of select="'&amp;autoplay=1'"/>

  49. </xsl:attribute>

  50. <xsl:attribute name="width">100%</xsl:attribute>

  51. <xsl:attribute name="height">255px</xsl:attribute>

  52. <xsl:attribute name="allowFullScreen">true</xsl:attribute>

  53. <xsl:attribute name="allowScriptAccess">always</xsl:attribute>

  54. <xsl:attribute name="quality">high</xsl:attribute>

  55. <xsl:attribute name="autoplay">1</xsl:attribute>

  56. <!--<xsl:attribute name="allowFullScreen">true</xsl:attribute>-->

  57. <!--<xsl:attribute name="fs">1</xsl:attribute>-->

  58. <!--<xsl:attribute name="bgcolor">#fff</xsl:attribute>-->

  59. <xsl:attribute name="id">cur_video_swf</xsl:attribute>

  60. <xsl:attribute name="name">cur_video_swf</xsl:attribute>

  61. </embed>

  62. </xsl:if>

  63. </xsl:for-each>

  64. </div>

  65. </div>

  66. </xsl:if>

  67. <!-- Affichage du caroussel des miniatures de navigation -->

  68. <div id="carousel" class="es-carousel-wrapper">

  69. <div class="es-carousel">

  70. <ul class="youtubethumbs">

  71. <xsl:for-each select="n1:entry">

  72. <xsl:if test="position() > 0">

  73. <xsl:for-each select="media:group">

  74. <li class="youtubethumb">

  75. <xsl:for-each select="media:content">

  76. <xsl:if test="@type = 'application/x-shockwave-flash'">

  77. <a>

  78. <xsl:attribute name="href">#</xsl:attribute>

  79. <xsl:attribute name="onmousedown">PlayVideo('<xsl:value-of select="@url"/>','#', 'Youtube', true);</xsl:attribute>

  80. <xsl:attribute name="onclick">return false;</xsl:attribute>

  81. <xsl:for-each select="../media:thumbnail[1]">

  82. <xsl:element name="img">

  83. <xsl:attribute name="src"><xsl:value-of select="@url"/></xsl:attribute>

  84. </xsl:element>

  85. </xsl:for-each>

  86. <h2><xsl:value-of select="substring(../media:title,1,45)"/> ...</h2>

  87. <!-- Affichage de la description de la vidéo DESACTIVEE <xsl:value-of disable-output-escaping="no" select="../media:description"/>-->

  88. </a>

  89. </xsl:if>

  90. </xsl:for-each>

  91. </li>

  92. </xsl:for-each>

  93. </xsl:if>

  94. </xsl:for-each>

  95. </ul>

  96. </div>

  97. </div>

  98. <p>Cliquez sur les vignettes ci-dessus pour lancer une vidéo de "<strong><xsl:value-of select="$s"/></strong>"</p>

  99. <!-- Navigation et pagination des vidéos -->

  100. <!--DESACTIVEE Sans réécriture d'URL <xsl:if test="$sind &gt; ($max)">

  101. <a href="playlist-video-.php?user={$user}&amp;sind={$sind - $max}&amp;max={$max}">Vidéos précédentes</a> |

  102. </xsl:if>

  103. <a href="playlist-video.php?user={$user}&amp;sind={$sind + $max}&amp;max={$max}" rel="next">voir + de vidéos de <xsl:value-of select="$user"/></a>

  104. -->

  105. <!--Avec réécriture d'URL-->

  106. <p>

  107. <a href="liste-videos-{$s}-1-{$max}.html">Retour aux 1ères vidéos de "<xsl:value-of select="$s"/>"</a><br />

  108. <a href="liste-videos-{$s}-{$sind + $max}-{$max}.html" rel="next">voir + de vidéos de "<xsl:value-of select="$s"/>"</a><br />

  109. <xsl:if test="$sind &gt; ($max)">

  110. <a href="liste-videos-{$s}-{$sind - $max}-{$max}.html" rel="prev">Vidéos précédentes</a>

  111. </xsl:if>

  112. </p>

  113. </xsl:for-each>

  114. </xsl:for-each>

  115. <script type="text/javascript">

  116. $('#carousel').elastislide({

  117. imageW : 120,

  118. minItems : 2

  119. });

  120. </script>

  121. </body>

  122. </html>

  123. <!-- FIN HTML -->

  124. </xsl:template>

  125. </xsl:stylesheet>

  126.  
  127.  
  128.