source: extensions/music_player/admin/admin_edit.php @ 3329

Last change on this file since 3329 was 3329, checked in by flop25, 15 years ago

first commit

File size: 16.8 KB
Line 
1<?php
2
3if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
4$m_p = get_plugin_data('music_player');
5
6global $conf, $template, $lang, $page;
7global $prefixeTable;
8        load_language('plugin.lang', $m_p->plugin_path);
9//$mp_msgs = array();
10  $template->assign(  array(
11                          'MP_PATH' => MP_PATH
12                         ));
13
14// +----------------------------------------+
15// |              Edit texte                |
16// +----------------------------------------+
17if (isset($_POST['envoi']) and $_POST['envoi']=='edit_txt' )
18{
19
20  $txt = addslashes($_POST['texte']);
21  $query = '
22UPDATE '.MP_PLAYLIST.'
23  SET texte=\''.$txt.'\'
24  WHERE id IN (\''.$_POST['id'].'\')
25   ;';
26   pwg_query($query);
27   $page['infos'][]=l10n('mp_msg_edit1');
28   //$mp_msgs[] = $lang['mp_msg_edit1'];
29
30}
31if (isset($_GET['id']))
32{
33  $query = 'SELECT texte FROM '.MP_PLAYLIST.' WHERE id IN (\''.$_GET['id'].'\') ;';
34  $result = pwg_query($query);
35  $data = mysql_fetch_assoc($result);
36  $txt = stripslashes($data['texte']);
37  $template->append('edit_txt',
38                               array('TXT'=>$txt, 'ID'=>$_GET['id']) );
39  $template->assign(  array(
40                          'PLAYLIST' => $txt
41                         ));
42
43}
44// +----------------------------------------+
45// |              Edit externe              |
46// +----------------------------------------+
47if (isset($_POST['envoi']) and $_POST['envoi']=='edit_ex' )
48{
49
50  $txt = addslashes($_POST['texte']);
51  $url = addslashes($_POST['url']);
52  $query = '
53UPDATE '.MP_PLAYLIST.'
54  SET texte=\''.$txt.'\', url=\''.$url.'\'
55  WHERE id IN (\''.$_POST['id'].'\')
56   ;';
57   pwg_query($query);
58         
59     $filename="./plugins/music_player/music/externe/".$_POST['id'].".php";
60     $rep="./plugins/music_player/music/externe";
61         if ( !is_dir($rep) ) {    //    le répertoire existe t-il ?
62       mkdir ($rep);
63     }
64         $_php ='<?php ';
65         $_php .='header("content-type:text/xml;charset=utf-8"); ';
66         $_php .='readfile(\''.$url.'\'); ';
67         $_php .='exit(); ';
68         $_php .='?>';
69     $file= fopen($filename, "w");
70     if (!is_writable($filename) ) {
71           die("Le fichier est inaccessible en écriture");
72         }
73     fwrite($file, $_php);
74
75//   $mp_msgs[] = $lang['mp_msg_edit1'];
76   $page['infos'][]=l10n('mp_msg_edit1');
77
78}
79if (isset($_GET['ex_id']))
80{
81  $query = 'SELECT url, texte FROM '.MP_PLAYLIST.' WHERE id IN (\''.$_GET['ex_id'].'\') ;';
82  $result = pwg_query($query);
83  $data = mysql_fetch_assoc($result);
84  $txt = stripslashes($data['texte']);
85  $url = stripslashes($data['url']);
86  $template->append('edit_ex',
87                               array('TXT'=>$txt, 'URL'=>$url, 'ID'=>$_GET['ex_id']) );
88  $template->assign(  array(
89                          'PLAYLIST' => $txt
90                         ));
91
92}
93// +-----------------------------------------+
94// |             Edit Musique                |
95// +-----------------------------------------+
96if (isset($_POST['envoi']) and $_POST['envoi']=="edit_music")
97{
98  $nom = addslashes($_POST['nom']);
99  $url = addslashes($_POST['url']);
100  $query = '
101UPDATE '.MP_MUSIC.'
102  SET nom=\''.$nom.'\', url=\''.$url.'\'
103  WHERE id IN (\''.$_POST['id'].'\')
104   ;';
105   pwg_query($query);
106   //$mp_msgs[] = $lang['mp_msg_edit1'];
107   $page['infos'][]=l10n('mp_msg_edit1');
108
109}
110if (isset($_GET['music_id']))
111{
112  $query = 'SELECT pl_id, nom, url FROM '.MP_MUSIC.' WHERE id IN (\''.$_GET['music_id'].'\') ;';
113  $result = pwg_query($query);
114  $data = mysql_fetch_assoc($result);
115  $nom = stripslashes($data['nom']);
116  $url = stripslashes($data['url']);
117  $template->append('edit_music',
118                               array('NOM'=>$nom,
119                                                                 'URL'=>$url,
120                                                                 'ID'=>$_GET['music_id'],
121                                                                 'PL'=>$data['pl_id']
122                                                                         ) );
123  $template->assign(  array(
124                          'PLAYLIST' => $nom
125                         ));
126}
127// +-----------------------------------------+
128// |        Suppression Musique              |
129// +-----------------------------------------+
130if (isset($_POST['envoi']) and $_POST['envoi']=="suppr")
131{
132  $query = 'SELECT pl_id, url, rang FROM '.MP_MUSIC.' WHERE id IN (\''.$_POST['id'].'\') ;';
133  $result = pwg_query($query);
134  $suppr = mysql_fetch_assoc($result);
135  $url = stripslashes($suppr['url']);
136 
137  if(preg_match('`^music`',$url))
138  {
139   $filename="./plugins/music_player/".$url;
140   unlink($filename);
141   //$mp_msgs[] = $lang['mp_msg_edit5'].$url;
142   $page['infos'][]=l10n('mp_msg_edit5').$url;
143  }
144
145  $rep = pwg_query('SELECT MAX(rang) AS max FROM '.MP_MUSIC.' WHERE pl_id='.$suppr['pl_id'].';');
146  $rang = mysql_fetch_assoc($rep);
147
148  $i = $suppr['rang'] + 1;
149  while ($i<=$rang['max']) {
150    $rep = pwg_query('SELECT COUNT(*) AS result FROM '.MP_MUSIC.' WHERE rang IN (\''.$i.'\') AND pl_id IN (\''.$suppr['pl_id'].'\') ;');
151    $res = mysql_fetch_array($rep);
152    if ($res['result'] != 0)
153    {
154      $query = 'SELECT id FROM '.MP_MUSIC.' WHERE rang IN (\''.$i.'\') AND pl_id IN (\''.$suppr['pl_id'].'\') ;';
155      $result = pwg_query($query);
156          $meme = mysql_fetch_assoc($result);
157          $i_inf = $i - 1 ;
158          $query = 'UPDATE '.MP_MUSIC.' SET rang=\''.$i_inf.'\' WHERE id IN (\''.$meme['id'].'\') ;';
159      pwg_query($query);
160    }
161    $i++;
162  }//while
163 pwg_query('DELETE FROM '.MP_MUSIC.' WHERE id IN (\''.$_POST['id'].'\')');
164// $mp_msgs[] = $lang['mp_msg_edit4'].$url;
165 $page['infos'][]=l10n('mp_msg_edit4').$url;
166}
167if (isset($_GET['suppr']))
168{
169  $query = 'SELECT pl_id, nom FROM '.MP_MUSIC.' WHERE id IN (\''.$_GET['suppr'].'\') ;';
170  $result = pwg_query($query);
171  $data = mysql_fetch_assoc($result);
172  $template->append('suppr',
173                               array('ID'=>$_GET['suppr'],
174                                                                 'PL'=>$data['pl_id']
175                                                                         ) );
176  $nom = stripslashes($data['nom']);
177  $template->assign(  array(
178                          'PLAYLIST' => $nom
179                         ));
180
181}
182
183
184// +-----------------------------------------------------------------------+
185// |                        envoi monter/descendre                         |
186// +-----------------------------------------------------------------------+
187if (isset($_POST['envoi']) and $_POST['envoi']=="rang" )
188{
189  $query = '
190UPDATE '.MP_MUSIC.'
191  SET rang=\'-1\'
192  WHERE rang IN (\''.$_POST['rang'].'\') AND pl_id IN (\''.$_GET['music'].'\')
193   ;';
194   pwg_query($query);
195   
196  $query = '
197UPDATE '.MP_MUSIC.'
198  SET rang=\'-2\'
199  WHERE rang IN (\''.$_POST['nouv_rang'].'\') AND pl_id IN (\''.$_GET['music'].'\')
200   ;';
201   pwg_query($query);
202
203  $query = '
204UPDATE '.MP_MUSIC.'
205  SET rang=\''.$_POST['nouv_rang'].'\'
206  WHERE rang IN (\'-1\') AND pl_id IN (\''.$_GET['music'].'\')
207   ;';
208   pwg_query($query);
209   
210  $query = '
211UPDATE '.MP_MUSIC.'
212  SET rang=\''.$_POST['rang'].'\'
213  WHERE rang IN (\'-2\') AND pl_id IN (\''.$_GET['music'].'\')
214   ;';
215   pwg_query($query);
216   
217  //$mp_msgs[] = $lang['mp_msg_edit3'];
218  $page['infos'][]=l10n('mp_msg_edit3');
219}
220// +-----------------------------------------------------------------------+
221// |                                AJOUT                                  |
222// +-----------------------------------------------------------------------+
223if ( !isset($_POST['nbr_ajout']) and !isset($_GET['suppr']))
224{
225$n=1;
226}
227elseif ( isset($_POST['nbr_ajout']) )
228{
229$n=$_POST['nbr_ajout'];
230}
231// |              EXtra                |
232if (isset($_GET['music']))//affichage du contenu de la playlist
233{  $template->assign(array('etape_ID' => $_GET['music'], 'etape_I' => $n  ) );
234
235  for($i=1; $i <= $n ; $i++)
236  {
237    $template->append('ajout', array('I' => $i ) );
238  }
239}// +-----------------------------------------------------------------------+
240if (isset($_POST['envoi']) and $_POST['envoi']=='ajout')
241{
242 $rep = pwg_query('SELECT MAX(rang) AS max FROM '.MP_MUSIC.' WHERE pl_id='.$_GET['music'].';');
243 $rg = mysql_fetch_assoc($rep);
244 for($i=1; $i <= $_POST['nbr'] ; $i++)
245 {
246         if ( $_POST['url_'.$i.'']=="" ) {       $mp_msgs[] = $lang['mp_msg_err_aj1'];   continue;}
247         if ( $_POST['nom_'.$i.'']=="" ) {       $mp_msgs[] = $lang['mp_msg_err_aj2'];   continue;}
248         
249         $url = addslashes($_POST['url_'.$i.'']);
250     $nom = addslashes($_POST['nom_'.$i.'']);
251         
252         if ( $_POST['rang_'.$i.'']>$rg['max'] or $_POST['rang_'.$i.'']==NULL) {         $rang=$rg['max']+1;     }
253         else {
254          $rang=$_POST['rang_'.$i.''];
255          //[ on doit décaler les autres pour insérer le nouveau
256      $query = 'SELECT id, rang FROM '.MP_MUSIC.' WHERE pl_id='.$_GET['music'].' AND rang>='.$rang.' ORDER BY rang ;';
257      $result = pwg_query($query);
258      while ($sup = mysql_fetch_assoc($result)){
259         
260            $n_rang = $sup['rang'] + 1 ;
261        $query = '
262        UPDATE '.MP_MUSIC.'
263        SET rang=\''.$n_rang.'\'
264        WHERE id IN (\''.$sup['id'].'\')
265        ;';
266        pwg_query($query);
267         
268          }//while
269         }
270         $query = '
271  INSERT INTO '.MP_MUSIC.'
272  (pl_id, rang, url, nom)
273  VALUES
274  (\''.$_GET['music'].'\', \''.$rang.'\', \''.$url.'\', \''.$nom.'\' )
275;';
276     pwg_query($query);
277         //$mp_msgs[] = $lang['mp_msg_admin_4'].$url;
278         $page['infos'][]=l10n('mp_msg_admin_4').$url;
279 }
280}
281
282
283// +-----------------------------------------------------------------------+
284// |                          Synchro bdd/fichier                          |
285// +-----------------------------------------------------------------------+
286if (isset($_POST['envoi']) and $_POST['envoi']=='synchro_bdd')
287{
288
289  $query = 'SELECT url FROM '.MP_PLAYLIST.' WHERE id IN (\''.$_POST['id_playlist'].'\') ;';
290  $result = pwg_query($query);
291  $dt = mysql_fetch_assoc($result);
292
293/////[ recup music
294         $fichier = array();
295     $dir_2 = opendir('./plugins/music_player/music/'.$dt['url']);
296     while(false!==($file = readdir($dir_2))){ //on lit tout et on récupere tout les dossiers dans $folder
297   
298       if(!in_array($file, array('.','..'))){ //on eleve le parent et le courant '. et ..'
299         if(is_file($file)) { continue; }
300         $page = $file; //sort l'extension du fichier
301     $page = explode('.', $page);
302     $nb = count($page);
303     $nom_fichier = $page[0];
304     for ($i = 1; $i < $nb-1; $i++){
305     $nom_fichier .= '.'.$page[$i];
306     }
307     if(isset($page[1])){
308     $ext_fichier = $page[$nb-1];
309     }
310     else {
311     $ext_fichier = '';
312     }
313   
314     if($ext_fichier == 'mp3') { //On ne prend que les mp3 -- A tester : mid, wav...
315
316///////[ Ajout ?
317       $nom_fichier = addslashes($nom_fichier);
318           //$rep = pwg_query('SELECT COUNT(*) AS result FROM '.MP_MUSIC.' WHERE pl_id='.$_POST['id_playlist'].' AND url REGEXP \''.$nom_fichier.'\' ;');like '%".$recherche."%'"
319           $rep = pwg_query('SELECT COUNT(*) AS result FROM '.MP_MUSIC.' WHERE pl_id='.$_POST['id_playlist'].' AND url LIKE \'%'.$nom_fichier.'%\' ;');
320       $res = mysql_fetch_array($rep);
321           if ($res['result']==0)
322           {
323           array_push($fichier, $file);
324           }
325     
326     } 
327         }//fin if in array
328     }//while
329 
330  $rep = pwg_query('SELECT MAX(rang) AS max FROM '.MP_MUSIC.' WHERE pl_id='.$_POST['id_playlist'].';');
331  $rang = mysql_fetch_assoc($rep);
332  $n=$rang['max']+1;
333
334///////[ Ajout ds bdd
335        foreach($fichier as $file) {
336         $page = $file; //sort le nom fichier
337     $page = explode('.', $page);
338     $nb = count($page);
339     $nom_fichier = $page[0];
340     $file = addslashes($file);
341     $nom_fichier = addslashes($nom_fichier);
342         $query = '
343  INSERT INTO '.MP_MUSIC.'
344  (pl_id, rang, url, nom)
345  VALUES
346  (\''.$_POST['id_playlist'].'\', \''.$n.'\', \'music/'.$dt['url'].'/'.$file.'\', \''.$nom_fichier.'\' )
347;';
348     pwg_query($query);
349         //$mp_msgs[] = $lang['mp_msg_admin_4'].$file;
350         $page['infos'][]=l10n('mp_msg_admin_4').$file;
351         $n++;
352         }
353 
354//////[ Fichiers supprimés ?
355  $query = 'SELECT * FROM '.MP_MUSIC.' WHERE pl_id='.$_GET['music'].' ORDER BY rang ;';
356  $result = pwg_query($query);
357  while ($music = mysql_fetch_assoc($result)){
358  $url = stripslashes($music['url']);
359 
360   if(preg_match('`^music`', $music['url'])) {
361    $filename="./plugins/music_player/".$url;
362    if (!file_exists($filename)) {
363      pwg_query('DELETE FROM '.MP_MUSIC.' WHERE url IN (\''.$music['url'].'\')');
364          //$mp_msgs[] = $lang['mp_msg_edit4'].$url;
365          $page['infos'][]=l10n('mp_msg_edit4').$url;
366    }
367   }
368  }
369}
370// +-----------------------------------------------------------------------+
371// |                          Génération   XML                             |
372// +-----------------------------------------------------------------------+
373if (isset($_POST['envoi']) and $_POST['envoi']=='synchro_xml')
374{
375  $query = 'SELECT url FROM '.MP_PLAYLIST.' WHERE id IN (\''.$_POST['id_playlist'].'\') ;';
376  $result = pwg_query($query);
377  $dt = mysql_fetch_assoc($result);
378
379  $query = 'SELECT * FROM '.MP_MUSIC.' WHERE pl_id='.$_GET['music'].' ORDER BY rang ;';
380  $result = pwg_query($query);
381
382  $filename="./plugins/music_player/music/".$dt['url']."/".$dt['url'].".xml";
383
384//////////////////////Création XML 
385      $_xml ="<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n";
386      $_xml .="<playlist version=\"1\" xmlns=\"http://xspf.org/ns/0/\">\r\n";
387      $_xml .="\t<trackList>\r\n";
388
389      while ($music = mysql_fetch_assoc($result)){
390            $nom_fichier=stripslashes($music['nom']);
391            $url=stripslashes($music['url']);
392        $_xml .="\t\t<track>\r\n";
393        $_xml .="\t\t\t<title>".$nom_fichier."</title>\r\n";
394        $_xml .="\t\t\t<location>".$url."</location>\r\n";
395        $_xml .="\t\t\t<image>music/".$dt['url']."/".$dt['url'].".jpg</image>\r\n";
396        $_xml .="\t\t</track>\r\n";
397          }
398         
399      $_xml .="\t</trackList>\r\n";
400      $_xml .="</playlist>";
401          $file= fopen($filename, "w");
402        if (!is_writable($filename) ) {
403         die("Le fichier est inaccessible en écriture");
404         }
405      fwrite($file, $_xml);
406
407//  $mp_msgs[] = $lang['mp_msg_edit2'];
408  $page['infos'][]=l10n('mp_msg_edit2');
409}
410// +-----------------------------------------------------------------------+
411if (isset($_GET['music']))//affichage du contenu de la playlist
412// +-----------------------------------------------------------------------+
413{
414  $query = 'SELECT texte FROM '.MP_PLAYLIST.' WHERE id='.$_GET['music'].' ;';
415  $result = pwg_query($query);
416  $playlist = mysql_fetch_assoc($result);
417 
418  $txt = stripslashes($playlist['texte']);
419  $template->assign(  array(
420                        'PLAYLIST' => $txt
421                      ));
422
423  $template->assign(array('playlist_TEXTE'=>$txt, 'playlist_ID'=>$_GET['music']));
424
425  $rep = pwg_query('SELECT MAX(rang) AS max FROM '.MP_MUSIC.' WHERE pl_id='.$_GET['music'].';');
426  $rang = mysql_fetch_assoc($rep);
427   
428  $query = 'SELECT * FROM '.MP_MUSIC.' WHERE pl_id='.$_GET['music'].' ORDER BY rang ;';
429  $result = pwg_query($query);
430  $num=0;
431   while ($music = mysql_fetch_assoc($result)){
432    $music_url = stripslashes($music['url']);
433    $music_nom = stripslashes($music['nom']);
434       
435        if ($music['rang']==$rang['max'] and $music['rang']=='1')
436        {
437        $template->append('music',
438                                 array('NOM' => $music_nom,
439                                                                       'FILE' => $music_url,
440                                                                       'ID' => $music['id'],
441                                                                       'CLASS' => ($num++ % 2 == 1) ? 'row2' : 'row1'));
442        }
443        elseif ($music['rang']==$rang['max'])
444        {
445    $template->append('music',
446                                 array('NOM' => $music_nom,
447                                                                       'FILE' => $music_url,
448                                                                       'ID' => $music['id'],
449                                                                       'CLASS' => ($num++ % 2 == 1) ? 'row2' : 'row1',
450                                                                       'UP_RANG' => $music['rang'],
451                                                                       'UP_RANG_NEW' => ($music['rang']-1) ));
452        }
453        elseif ($music['rang']=='1')
454        {
455    $template->append('music',
456                                 array('NOM' => $music_nom,
457                                                                       'FILE' => $music_url,
458                                                                       'ID' => $music['id'],
459                                                                       'CLASS' => ($num++ % 2 == 1) ? 'row2' : 'row1',
460                                                                       'D_RANG' => $music['rang'],
461                                                                       'D_RANG_NEW' => ($music['rang']+1) ));
462        }
463        else
464        {
465    $template->append('music',
466                                 array('NOM' => $music_nom,
467                                                                       'FILE' => $music_url,
468                                                                       'ID' => $music['id'],
469                                                                       'CLASS' => ($num++ % 2 == 1) ? 'row2' : 'row1',
470                                                                       'D_RANG' => $music['rang'],
471                                                                       'D_RANG_NEW' => ($music['rang']+1),
472                                                                       'UP_RANG' => $music['rang'],
473                                                                       'UP_RANG_NEW' => ($music['rang']-1) ));
474        }
475  }
476}
477
478// +-----------------------------------------------------------------------+
479// |               affichage des msg                                       |
480// +-----------------------------------------------------------------------+
481/*
482if (count($mp_msgs) > 0)
483{
484  $template->append('mp_msgs',array());
485  foreach ($mp_msgs as $mp_msg)
486  {
487    $template->append('mp_msgs.mp_msg',
488                                 array('MP_MSG'=>$mp_msg));
489  }
490}
491*/
492$template->set_filename('plugin_admin_content', $m_p->plugin_path.'template/admin_edit.tpl');
493$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
494
495
496?>
Note: See TracBrowser for help on using the repository browser.