Bonjour,
Je viens à vous car je suis bloquer depuis quelques jours sans trouver de solution à mon ploblème .
J'ai un site sous SPIP 1.7 sur lequel je veux mettre une vidéothèque.
J'ai choisi de prendre JW FLVplayer et d'utiliser une playlist XML (RSS media)
cette playlist est généré dynamiquement via une base de donnée .
Expliquation du fonctionnement
1 - J'ai une page composé d'une listbox (qui contient les categorie/thèmes des vidéos) lorsque la valeur de celle-ci change je soumet mon formulaire et les recupère la categorie en session
2 - Le lecteur Flash se met en place et appel playlist.php
3 - Playlist.php appel ma fonction qui genere le XML à la volé et lui passe $_SESSION['categorie']
4 - La page est recharger avec la playlist désiré
Mon problème arrive au point 3 lorsque j'appel la fonction afficheVideos($_SESSION['categorie'])
ma session est vide alors quelle en l'ai pas dans la page 1
du coup je me retrouve avec la playlist du cas 0 ( Les vidéos en Une )
je me demande si cela ne viendrait pas de SPIP
Page 1 - Lecteur flash avec playlist en fonction de la valeur de la listbox
Page 2 - Fichier playlist qui appel la Base de donnée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 <?php function listCategorie($id) { $tab=listType(); $i=1; echo '<form action ="" method="POST">'; echo '<select name="categorie" onChange=this.form.submit()>'; while($i<count($tab)) { { if ($_POST['categorie'] == $i) { echo '<option value="'.$i .'" selected="true" >'.$tab[$i]."</option>\n"; } else { echo '<option value="'.$i .'" >'.$tab[$i]."</option>\n"; } $i++; } } echo '</select>'."\n\n"; echo '</form>'; return $tab; //Tableau contenant le nom des d'ifférentes catégories. } listCategorie($_POST['categorie']); ?> <div id='videotheque'>Erreur d'accées à la liste de lecture vidéo</div> <script type='text/javascript'> var s1 = new SWFObject('./video/player.swf','ply','400','500','9','#ffffff'); s1.addParam('allowfullscreen','true'); s1.addParam('allowscriptaccess','always'); s1.addParam('wmode','opaque'); s1.addParam('flashvars','file=./video/playlist/playlist.php&playlist=bottom&screencolor=#ffffff&frontcolor=005c98&lightcolor=ffd204'); s1.write('videotheque'); </script>
Page 3 - Génération de la playlist XML
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 session_start(); include ("../bdd.php"); afficheVideos($_SESSION['categorie']);
Auriez vous une idée pour arriver à mes fins car je vous avoue que je commence à être à court d'idée (peut être le javascript ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 function afficheVideos($idCategorie) { $i=0; connect(); //Connection à la BDD switch ($idCategorie) { case 0: $requete = 'SELECT * FROM videos WHERE enUne ="OUI"'; //Cas 0 = Affiche les vidéos choisi par la COM en UNE de la vidéothéque break; case 1: $requete = 'SELECT * FROM videos ORDER BY dateSaisie DESC'; //Cas 1 = Affiche toutes les vidéos de la plus récente à la plus ancienne break; case ($idCategorie > 1) : $requete = 'SELECT * FROM videos WHERE categorie='.$idCategorie.' ORDER BY dateSaisie DESC'; //Cas > 1 Affiche toutes les vidéo d'une catégorie en fonction de l'IDCatégorie break; } $_SESSION['categorie'] = null; $resultat = mysql_query($requete) or die(mysql_error()); // Exécution de la requête. echo ' <rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/"> <channel> <title></title> <link></link>'; while ($ligne = mysql_fetch_row($resultat)) { echo '<item> <title>'.$ligne[1].'</title> <description>'.$ligne[2].'</description> <media:group> <media:content url="'.$ligne[6].'" type="video/x-flv" duration="'.$ligne[3].'" start="'.$ligne[4].'" /> <media:thumbnail url="'.$ligne[7].'" type="image/png" /> </media:group> </item>'; } echo '</channel> </rss>'; mysql_close(); }
D'avance merci
Partager