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

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

first commit

File size: 15.5 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//include(get_language_filepath('plugin.lang.php', $m_p->plugin_path));
9        load_language('plugin.lang', $m_p->plugin_path);
10
11$page['infos'] = array();
12
13/*$template->assign_vars(
14  array(
15    'PLUGIN_PATH' => $m_p->plugin_path
16    )); */
17$template->assign(array(
18        'PLUGIN_PATH'                   => $m_p->plugin_path, 
19        ));
20
21// +-----------------------------------------------------------------------+
22// |                envoi d'une synchro                                     |
23// +-----------------------------------------------------------------------+
24if (isset($_POST['envoi']) and $_POST['envoi'] == "synchro")
25{
26 $template->set_filename('envoi', $m_p->plugin_path.'template/admin_envoi.tpl');
27
28 $repertoire='./plugins/music_player/music';
29 $dossier = array();
30       
31 if (is_dir($repertoire)){
32   
33   $dir = opendir($repertoire); //ouvre le repertoire courant désigné par la variable
34   while(false!==($folder = readdir($dir))){ //on lit tout et on récupere tout les dossiers dans $folder
35     if(is_file($folder)) { continue; }
36   
37     if(!in_array($folder, array('.','..'))){ //on eleve le parent et le courant '. et ..'
38       if($folder != 'externe') { //On ne prend que les mp3 -- A tester : mid, wav...
39         array_push($dossier, $folder);
40            }
41      }//fin if in array
42   }//while
43 }
44   
45 natcasesort($dossier);
46 
47 //////////////[ recherche des nouveaux dossier ]
48 $n=0;
49 foreach($dossier as $value) {
50 $n++;
51
52           ///on vérife si ils n'existe pas déjà
53           $rep = pwg_query('SELECT COUNT(*) AS result FROM '.MP_PLAYLIST.' WHERE url IN (\''.$value.'\') ;');
54       $res = mysql_fetch_array($rep);
55           if ($res['result']!=0)
56           {
57                   $n--;
58              continue;
59           }
60           
61           ///[ récup de la music juste pour info
62     $fichier = array();
63     $dir_2 = opendir('./plugins/music_player/music/'.$value); //ouvre le repertoire courant désigné par la variable
64     while(false!==($file = readdir($dir_2))){ //on lit tout et on récupere tout les dossiers dans $folder
65   
66       if(!in_array($file, array('.','..'))){ //on eleve le parent et le courant '. et ..'
67         if(is_file($file)) { continue; }
68         $page = $file; //sort l'extension du fichier
69     $page = explode('.', $page);
70     $nb = count($page);
71     $nom_fichier = $page[0];
72     for ($i = 1; $i < $nb-1; $i++){
73     $nom_fichier .= '.'.$page[$i];
74     }
75     if(isset($page[1])){
76     $ext_fichier = $page[$nb-1];
77     }
78     else {
79     $ext_fichier = '';
80     }
81   
82     if($ext_fichier == 'mp3') { //On ne prend que les mp3 -- A tester : mid, wav...
83     array_push($fichier, $file);
84     } 
85                }//fin if in array
86     }//while
87   $fichier = implode(",", $fichier);
88
89   $template->append('syn',
90    array('RESULT' => $value,
91          'RESULT_M' => $fichier,//Ne sert que pour avoir un aperçu
92          'NBR' => $n,
93                  ));
94
95/*   $template->assign_block_vars('syn',
96    array('RESULT' => $value,
97          'RESULT_M' => $fichier,//Ne sert que pour avoir un aperçu
98          'NBR' => $n,
99                  ));*/
100
101 }//foreach 
102
103if ($n ==0)
104{
105  //$mp_msgs[] = $lang['mp_msg_admin1'];
106  array_push($page['infos'], l10n('mp_msg_admin1'));
107
108
109}
110else
111{
112$template->assign(
113  array(
114    'NBR_TT' => $n,
115    ));
116$template->assign_var_from_handle('ENVOI', 'envoi');
117}
118
119/////////////////////[ Xml 'pour tous' ? : v1.2 => plus pour tous seulement pour si nouveau
120
121 foreach($dossier as $value) {
122
123  $filename="./plugins/music_player/music/".$value."/".$value.".xml";
124  if (file_exists($filename)) {
125    continue; // si il existe on passe, la synchro des pistes se fait individuellement par soucis d'optimisation
126  }
127  /// v 1.2 on ne cree que pour les nouveaux
128  $rep = pwg_query('SELECT COUNT(*) AS result FROM '.MP_PLAYLIST.' WHERE url IN (\''.$value.'\') ;');
129  $res = mysql_fetch_array($rep);
130  if ($res['result']!=0)
131  {
132    continue;
133  }
134
135    ///[ recup music
136         $fichier = array();
137     $dir_2 = opendir('./plugins/music_player/music/'.$value); //ouvre le repertoire courant désigné par la variable
138     while(false!==($file = readdir($dir_2))){ //on lit tout et on récupere tout les dossiers dans $folder
139   
140       if(!in_array($file, array('.','..'))){ //on eleve le parent et le courant '. et ..'
141         if(is_file($file)) { continue; }
142         $page = $file; //sort l'extension du fichier
143     $page = explode('.', $page);
144     $nb = count($page);
145     $nom_fichier = $page[0];
146     for ($i = 1; $i < $nb-1; $i++){
147     $nom_fichier .= '.'.$page[$i];
148     }
149     if(isset($page[1])){
150     $ext_fichier = $page[$nb-1];
151     }
152     else {
153     $ext_fichier = '';
154     }
155   
156     if($ext_fichier == 'mp3') { //On ne prend que les mp3 -- A tester : mid, wav...
157     array_push($fichier, $file);
158     } 
159                }//fin if in array
160     }//while
161     natcasesort($fichier); //la fonction natcasesort( ) est la fonction de tri standard sauf qu'elle ignore la casse
162  /*$fichier_sql = implode("/", $fichier);
163  $fichier_sql = addslashes($fichier_sql);
164  ////[ maj de la bdd
165  $result = pwg_query('SELECT id FROM '.MP_PLAYLIST.' WHERE url IN (\''.$value.'\') ;');
166  $data = mysql_fetch_array($result);
167  $query = '
168UPDATE '.MP_PLAYLIST.'
169  SET music=\''.$fichier_sql.'\'
170  WHERE id IN (\''.$data['id'].'\')
171   ;';
172        pwg_query($query);*/
173
174//////////////////////Création XML 
175      $_xml ="<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n";
176      $_xml .="<playlist version=\"1\" xmlns=\"http://xspf.org/ns/0/\">\r\n";
177      $_xml .="\t<trackList>\r\n";
178         
179          /*$p_url = explode('/', $_SERVER['PHP_SELF']);
180      $count = count($p_url);
181          $url = str_replace($p_url[$count-1], '', 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);*/
182         
183      foreach($fichier as $file) {
184           ///on va trouver le nom du fichier
185      $page = $file;
186      $page = explode('.', $page);
187      $nb = count($page);
188      $nom_fichier = $page[0];
189       for ($i = 1; $i < $nb-1; $i++){
190         $nom_fichier .= '.'.$page[$i];
191       }
192      $_xml .="\t\t<track>\r\n";
193      $_xml .="\t\t\t<title>".$nom_fichier."</title>\r\n";
194      $_xml .="\t\t\t<location>music/".$value."/".$file."</location>\r\n";
195      $_xml .="\t\t\t<image>music/".$value."/".$value.".jpg</image>\r\n";
196      $_xml .="\t\t</track>\r\n";
197          }//fin foreach
198         
199      $_xml .="\t</trackList>\r\n";
200      $_xml .="</playlist>";
201          $file= fopen($filename, "w");
202        if (!is_writable($filename) ) {
203         die("Le fichier est inaccessible en écriture");
204         }
205      fwrite($file, $_xml);
206
207  //$mp_msgs[] = $lang['mp_msg_admin_3_1'].$value.'/'.$value.'.xml'.$lang['mp_msg_admin_3_2'];
208  array_push($page['infos'], l10n('mp_msg_admin_3_1').$value.'/'.$value.'.xml'.l10n('mp_msg_admin_3_2'));
209 }
210}//fin post
211
212// +-----------------------------------------------------------------------+
213// |                envoi des noms après synchro                           |
214// +-----------------------------------------------------------------------+
215if (isset($_POST['envoi']) and $_POST['envoi'] == "texte")
216{
217  for ($n = 1; $n <= $_POST['nbr']; $n++)
218  {
219     if($_POST['texte_'.$n.'']=="")
220         { continue; }
221         ///[ creation pl
222     $texte = addslashes($_POST['texte_'.$n.'']);
223     $query = '
224INSERT INTO '.MP_PLAYLIST.'
225  (type, url, texte)
226  VALUES
227  (\'local\', \''.$_POST['url_'.$n.''].'\', \''.$texte.'\')
228;';
229     pwg_query($query);
230
231         ///[ listage fichier
232         $fichier = array();
233     $dir_2 = opendir('./plugins/music_player/music/'.$_POST['url_'.$n.'']); //ouvre le repertoire courant désigné par la variable
234     while(false!==($file = readdir($dir_2))){ //on lit tout et on récupere tout les dossiers dans $folder
235   
236     if(!in_array($file, array('.','..'))){ //on eleve le parent et le courant '. et ..'
237          if(is_file($file)) { continue; }
238          $page = $file; //sort l'extension du fichier
239      $page = explode('.', $page);
240      $nb = count($page);
241      $nom_fichier = $page[0];
242      for ($i = 1; $i < $nb-1; $i++){
243       $nom_fichier .= '.'.$page[$i];
244      }
245      if(isset($page[1])){
246       $ext_fichier = $page[$nb-1];
247      }
248      else {
249       $ext_fichier = '';
250      }
251   
252      if($ext_fichier == 'mp3') { //On ne prend que les mp3 -- A tester : mid, wav...
253       array_push($fichier, $file);
254      }
255         }//fin if in array
256     }//while
257    natcasesort($fichier); //la fonction natcasesort( ) est la fonction de tri standard sauf qu'elle ignore la casse
258
259    $result = pwg_query('SELECT id FROM '.MP_PLAYLIST.' WHERE url IN (\''.$_POST['url_'.$n.''].'\') ;');
260    $data_pl = mysql_fetch_assoc($result);
261        $rang=1;
262
263        foreach($fichier as $file) {
264       
265        $page = $file; //sort nom_fichier
266    $page = explode('.', $page);
267    $nb = count($page);
268    $nom_fichier = $page[0];
269
270     $file = addslashes($file);
271     $nom_fichier = addslashes($nom_fichier);
272         $query = '
273  INSERT INTO '.MP_MUSIC.'
274  (pl_id, rang, url, nom)
275  VALUES
276  (\''.$data_pl['id'].'\', \''.$rang.'\', \'music/'.$_POST['url_'.$n.''].'/'.$file.'\', \''.$nom_fichier.'\' )
277;';
278     pwg_query($query);
279        $rang++;
280        }
281
282  //$mp_msgs[] = $lang['mp_msg_admin_4'].$_POST['url_'.$n.''];
283  $page['infos'][]= l10n('mp_msg_admin_4').' '.$_POST['url_'.$n];
284 }//fin for
285}
286// +------------------------------------------------------------+
287// |                Nouveau externe                             |
288// +------------------------------------------------------------+
289if (isset($_POST['envoi']) and $_POST['envoi'] == "externe" )
290{
291 if ($_POST['texte'] != "" )
292 {
293     $texte = addslashes($_POST['texte']);
294     $url = addslashes($_POST['url']);
295     $query = '
296INSERT INTO '.MP_PLAYLIST.'
297  (type, url, texte)
298  VALUES
299  (\'externe\', \''.$url.'\', \''.$texte.'\')
300;';
301     pwg_query($query);
302         
303     $result = pwg_query('SELECT id FROM '.MP_PLAYLIST.' WHERE url=\''.$url.'\' ;');
304     $data_pl = mysql_fetch_assoc($result);
305         
306     $filename="./plugins/music_player/music/externe/".$data_pl['id'].".php";
307     $rep="./plugins/music_player/music/externe";
308         if ( !is_dir($rep) ) {    //    le répertoire existe t-il ?
309       mkdir ($rep);
310     }
311     
312         $_php ='<?php ';
313         $_php .='header("content-type:text/xml;charset=utf-8"); ';
314         $_php .='readfile(\''.$url.'\'); ';
315         $_php .='exit(); ';
316         $_php .='?>';
317      $file= fopen($filename, "w");
318     if (!is_writable($filename) ) {
319           die("Le fichier est inaccessible en écriture");
320         }
321     fwrite($file, $_php);
322 }
323 else
324 { //$mp_msgs[] = $lang['mp_msg_err_aj2'] ;
325 array_push($page['errors'], l10n('mp_msg_err_aj2')); } 
326}
327// +-----------------------------------------------------------------------+
328// |              défaut : affichage des playlist existante                |
329// +-----------------------------------------------------------------------+
330$playlist = array();
331$query = 'SELECT id, url, texte FROM '.MP_PLAYLIST.' WHERE type IN (\'local\') ORDER BY id ;';
332$result = pwg_query($query);
333while ($row = mysql_fetch_assoc($result)) {
334    array_push($playlist, $row);
335}
336
337foreach ($playlist as $list) {
338
339    $txt = stripslashes($list['texte']);
340    $template->append('list',
341        array('URL' => $list['url'],
342              'TEXTE' => $txt,
343              'ID' => $list['id'],
344                  ));
345    $template->append('list2',
346        array('URL' => $list['url'],
347              'TEXTE' => $txt,
348              'ID' => $list['id'],
349                  ));
350}
351$playlist = array();
352$query = 'SELECT id, url, texte FROM '.MP_PLAYLIST.' WHERE type IN (\'externe\') ORDER BY id ;';
353$result = pwg_query($query);
354while ($row = mysql_fetch_assoc($result)) {
355    array_push($playlist, $row);
356}
357
358foreach ($playlist as $list) {
359
360    $txt = stripslashes($list['texte']);
361    $template->append('list_ex',
362        array('URL' => $list['url'],
363              'TEXTE' => $txt,
364              'ID' => $list['id'],
365                  ));
366}
367
368
369$conf_lecteur = explode("," , $conf['mp_lecteur']);
370$conf_plugin = explode("," , $conf['mp_plugin']);
371
372////envoi
373if ($_POST['envoi_config']=='lecteur')
374{
375 
376 
377  if ($_POST['mp_miniature']=="true")
378  { 
379    $conf_lecteur = array(
380      $_POST['h_tt'],
381      $_POST['l_tt'],
382      $_POST['h'],
383      $_POST['mp_miniature'],
384      $_POST['l'],
385      $_POST['mp_shuffle'],
386      $_POST['mp_repeat'],
387      $_POST['mp_autostart'],
388      $_POST['mp_autoscroll'],
389    );
390  } 
391  else
392  {
393      $h = $_POST['h_tt'] - 20;//pour un affichage correct la playlist doit faire la hauteur totale moins les 20px de la barre
394    $conf_lecteur = array(
395      $_POST['h_tt'],
396      $_POST['l_tt'],
397      $h,
398      $_POST['mp_miniature'],
399      '0',
400      $_POST['mp_shuffle'],
401      $_POST['mp_repeat'],
402      $_POST['mp_autostart'],
403      $_POST['mp_autoscroll'],
404    );
405  }   
406  $newconf_lecteur = implode ("," , $conf_lecteur);
407  $query = '
408    UPDATE '.CONFIG_TABLE.'
409    SET value="'.$newconf_lecteur.'"
410    WHERE param="mp_lecteur"
411    LIMIT 1';
412  pwg_query($query);
413       
414//  $mp_msgs[] = $lang['mp_msg_admin_5'];
415array_push($page['infos'], l10n('mp_msg_admin_5'));
416}
417if (isset($_POST['envoi_config']) ){
418if ($_POST['envoi_config']=='plugin' or isset($_POST['foot']))
419{
420    $conf_plugin = array(
421      $_POST['evidence'],
422      $_POST['head'],
423      $_POST['foot'],
424      $_POST['h_pop'],
425      $_POST['l_pop'],
426    );
427  $newconf_plugin = implode ("," , $conf_plugin);
428  $query = '
429    UPDATE '.CONFIG_TABLE.'
430    SET value="'.$newconf_plugin.'"
431    WHERE param="mp_plugin"
432    LIMIT 1';
433  pwg_query($query);
434       
435  //$mp_msgs[] = $lang['mp_msg_admin_6'];
436  array_push($page['infos'], l10n('mp_msg_admin_6'));
437}}
438
439$check='checked="checked"';
440if ($conf_lecteur[3]=='true') $miniature=$check;
441if ($conf_lecteur[5]=='true') $shuffle=$check;
442if ($conf_lecteur[6]=='true') $repeat=$check;
443if ($conf_lecteur[8]=='true') $autoscroll=$check;
444
445if ($conf_lecteur[7]!='0')
446{
447$rep = pwg_query('SELECT texte FROM '.MP_PLAYLIST.' WHERE id IN (\''.$conf_lecteur[7].'\') ;');
448$pl = mysql_fetch_array($rep);
449$txt=$pl['texte'];
450}
451else {$txt="Defaut"; }
452
453if ($conf_plugin[0]=='true') $evidence=$check;
454if ($conf_plugin[1]=='true') $head=$check;
455if ($conf_plugin[2]=='true') $foot=$check;
456////assignement des valeurs
457$template->assign(
458    array(
459      'MP_EVIDENCE' => $evidence,
460      'MP_HEAD' => $head,
461      'MP_FOOT' => $foot,
462      'MP_H_POP' => 'value="'.$conf_plugin[3].'"',
463      'MP_L_POP' => 'value="'.$conf_plugin[4].'"',
464         
465      'MP_H_TT' => 'value="'.$conf_lecteur[0].'"',
466      'MP_L_TT' => 'value="'.$conf_lecteur[1].'"',
467      'MP_H' => 'value="'.$conf_lecteur[2].'"',
468      'MP_MINIATURE_ACTIVATED' =>   $miniature,
469      'MP_L' => 'value="'.$conf_lecteur[4].'"',
470      'MP_SHUFFLE_ACTIVATED' => $shuffle,
471      'MP_REPEAT_ACTIVATED' => $repeat,
472      'AUTOSTART' => $conf_lecteur[7],
473      'AUTOSTART_T' => $txt,
474      'MP_AUTOSCROLL_ACTIVATED' => $autoscroll,
475    )
476  );
477// +-----------------------------------------------------------------------+
478// |               affichage des msg                                       |
479// +-----------------------------------------------------------------------+
480/*
481if (count($mp_msgs) > 0)
482{
483  $template->append('mp_msgs',array());
484  foreach ($mp_msgs as $mp_msg)
485  {
486    $template->append('mp_msgs.mp_msg',
487                                 array('MP_MSG'=>$mp_msg));
488  }
489}
490*/
491$template->set_filename('plugin_admin_content', $m_p->plugin_path.'template/admin.tpl');
492$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
493
494
495?>
Note: See TracBrowser for help on using the repository browser.