plugin_path); $page['infos'] = array(); $template->assign(array( 'PLUGIN_PATH' => $m_p->plugin_path, )); // +-----------------------------------------------------------------------+ // | envoi d'une synchro | // +-----------------------------------------------------------------------+ if (isset($_POST['envoi']) and $_POST['envoi'] == "synchro") { $template->set_filename('envoi', $m_p->plugin_path.'template/admin_envoi.tpl'); $repertoire='./plugins/music_player/music'; $dossier = array(); if (is_dir($repertoire)){ $dir = opendir($repertoire); //ouvre le repertoire courant désigné par la variable while(false!==($folder = readdir($dir))){ //on lit tout et on récupere tout les dossiers dans $folder if(is_file($folder)) { continue; } if(!in_array($folder, array('.','..'))){ //on eleve le parent et le courant '. et ..' if($folder != 'externe') { //On ne prend que les mp3 -- A tester : mid, wav... array_push($dossier, $folder); } }//fin if in array }//while } natcasesort($dossier); //////////////[ recherche des nouveaux dossier ] $n=0; foreach($dossier as $value) { $n++; ///on vérife si ils n'existe pas déjà $rep = pwg_query('SELECT COUNT(*) AS result FROM '.MP_PLAYLIST.' WHERE url IN (\''.$value.'\') ;'); $res = mysql_fetch_array($rep); if ($res['result']!=0) { $n--; continue; } ///[ récup de la music juste pour info $fichier = array(); $dir_2 = opendir('./plugins/music_player/music/'.$value); //ouvre le repertoire courant désigné par la variable while(false!==($file = readdir($dir_2))){ //on lit tout et on récupere tout les dossiers dans $folder if(!in_array($file, array('.','..'))){ //on eleve le parent et le courant '. et ..' if(is_file($file)) { continue; } $page = $file; //sort l'extension du fichier $page = explode('.', $page); $nb = count($page); $nom_fichier = $page[0]; for ($i = 1; $i < $nb-1; $i++){ $nom_fichier .= '.'.$page[$i]; } if(isset($page[1])){ $ext_fichier = $page[$nb-1]; } else { $ext_fichier = ''; } if($ext_fichier == 'mp3') { //On ne prend que les mp3 -- A tester : mid, wav... array_push($fichier, $file); } }//fin if in array }//while $fichier = implode(",", $fichier); $template->append('syn', array('RESULT' => $value, 'RESULT_M' => $fichier,//Ne sert que pour avoir un aperçu 'NBR' => $n, )); }//foreach if ($n ==0) { array_push($page['infos'], l10n('mp_msg_admin1')); } else { $template->assign( array( 'NBR_TT' => $n, )); $template->assign_var_from_handle('ENVOI', 'envoi'); } /////////////////////[ Xml 'pour tous' ? : v1.2 => plus pour tous seulement pour si nouveau foreach($dossier as $value) { $filename="./plugins/music_player/music/".$value."/".$value.".xml"; if (file_exists($filename)) { continue; // si il existe on passe, la synchro des pistes se fait individuellement par soucis d'optimisation } /// v 1.2 on ne cree que pour les nouveaux $rep = pwg_query('SELECT COUNT(*) AS result FROM '.MP_PLAYLIST.' WHERE url IN (\''.$value.'\') ;'); $res = mysql_fetch_array($rep); if ($res['result']!=0) { continue; } ///[ recup music $fichier = array(); $dir_2 = opendir('./plugins/music_player/music/'.$value); //ouvre le repertoire courant désigné par la variable while(false!==($file = readdir($dir_2))){ //on lit tout et on récupere tout les dossiers dans $folder if(!in_array($file, array('.','..'))){ //on eleve le parent et le courant '. et ..' if(is_file($file)) { continue; } $page = $file; //sort l'extension du fichier $page = explode('.', $page); $nb = count($page); $nom_fichier = $page[0]; for ($i = 1; $i < $nb-1; $i++){ $nom_fichier .= '.'.$page[$i]; } if(isset($page[1])){ $ext_fichier = $page[$nb-1]; } else { $ext_fichier = ''; } if($ext_fichier == 'mp3') { //On ne prend que les mp3 -- A tester : mid, wav... array_push($fichier, $file); } }//fin if in array }//while natcasesort($fichier); //la fonction natcasesort( ) est la fonction de tri standard sauf qu'elle ignore la casse /*$fichier_sql = implode("/", $fichier); $fichier_sql = addslashes($fichier_sql); ////[ maj de la bdd $result = pwg_query('SELECT id FROM '.MP_PLAYLIST.' WHERE url IN (\''.$value.'\') ;'); $data = mysql_fetch_array($result); $query = ' UPDATE '.MP_PLAYLIST.' SET music=\''.$fichier_sql.'\' WHERE id IN (\''.$data['id'].'\') ;'; pwg_query($query);*/ //////////////////////Création XML $_xml ="\r\n"; $_xml .="\r\n"; $_xml .="\t\r\n"; /*$p_url = explode('/', $_SERVER['PHP_SELF']); $count = count($p_url); $url = str_replace($p_url[$count-1], '', 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);*/ foreach($fichier as $file) { ///on va trouver le nom du fichier $page = $file; $page = explode('.', $page); $nb = count($page); $nom_fichier = $page[0]; for ($i = 1; $i < $nb-1; $i++){ $nom_fichier .= '.'.$page[$i]; } $_xml .="\t\t\r\n"; $_xml .="\t\t\t".$nom_fichier."\r\n"; $_xml .="\t\t\tmusic/".$value."/".$file."\r\n"; $_xml .="\t\t\tmusic/".$value."/".$value.".jpg\r\n"; $_xml .="\t\t\r\n"; }//fin foreach $_xml .="\t\r\n"; $_xml .=""; $file= fopen($filename, "w"); if (!is_writable($filename) ) { die("Le fichier est inaccessible en écriture"); } fwrite($file, $_xml); //$mp_msgs[] = $lang['mp_msg_admin_3_1'].$value.'/'.$value.'.xml'.$lang['mp_msg_admin_3_2']; array_push($page['infos'], l10n('mp_msg_admin_3_1').$value.'/'.$value.'.xml'.l10n('mp_msg_admin_3_2')); } }//fin post // +-----------------------------------------------------------------------+ // | envoi des noms après synchro | // +-----------------------------------------------------------------------+ if (isset($_POST['envoi']) and $_POST['envoi'] == "texte") { for ($n = 1; $n <= $_POST['nbr']; $n++) { if($_POST['texte_'.$n.'']=="") { continue; } ///[ creation pl $texte = addslashes($_POST['texte_'.$n.'']); $query = ' INSERT INTO '.MP_PLAYLIST.' (type, url, texte) VALUES (\'local\', \''.$_POST['url_'.$n.''].'\', \''.$texte.'\') ;'; pwg_query($query); ///[ listage fichier $fichier = array(); $dir_2 = opendir('./plugins/music_player/music/'.$_POST['url_'.$n.'']); //ouvre le repertoire courant désigné par la variable while(false!==($file = readdir($dir_2))){ //on lit tout et on récupere tout les dossiers dans $folder if(!in_array($file, array('.','..'))){ //on eleve le parent et le courant '. et ..' if(is_file($file)) { continue; } $page = $file; //sort l'extension du fichier $page = explode('.', $page); $nb = count($page); $nom_fichier = $page[0]; for ($i = 1; $i < $nb-1; $i++){ $nom_fichier .= '.'.$page[$i]; } if(isset($page[1])){ $ext_fichier = $page[$nb-1]; } else { $ext_fichier = ''; } if($ext_fichier == 'mp3') { //On ne prend que les mp3 -- A tester : mid, wav... array_push($fichier, $file); } }//fin if in array }//while natcasesort($fichier); //la fonction natcasesort( ) est la fonction de tri standard sauf qu'elle ignore la casse $result = pwg_query('SELECT id FROM '.MP_PLAYLIST.' WHERE url IN (\''.$_POST['url_'.$n.''].'\') ;'); $data_pl = mysql_fetch_assoc($result); $rang=1; foreach($fichier as $file) { $page = $file; //sort nom_fichier $page = explode('.', $page); $nb = count($page); $nom_fichier = $page[0]; $file = addslashes($file); $nom_fichier = addslashes($nom_fichier); $query = ' INSERT INTO '.MP_MUSIC.' (pl_id, rang, url, nom) VALUES (\''.$data_pl['id'].'\', \''.$rang.'\', \'music/'.$_POST['url_'.$n.''].'/'.$file.'\', \''.$nom_fichier.'\' ) ;'; pwg_query($query); $rang++; } //$mp_msgs[] = $lang['mp_msg_admin_4'].$_POST['url_'.$n.'']; $page['infos'][]= l10n('mp_msg_admin_4').' '.$_POST['url_'.$n]; }//fin for } // +------------------------------------------------------------+ // | Nouveau externe | // +------------------------------------------------------------+ if (isset($_POST['envoi']) and $_POST['envoi'] == "externe" ) { if ($_POST['texte'] != "" ) { $texte = addslashes($_POST['texte']); $url = addslashes($_POST['url']); $query = ' INSERT INTO '.MP_PLAYLIST.' (type, url, texte) VALUES (\'externe\', \''.$url.'\', \''.$texte.'\') ;'; pwg_query($query); $result = pwg_query('SELECT id FROM '.MP_PLAYLIST.' WHERE url=\''.$url.'\' ;'); $data_pl = mysql_fetch_assoc($result); $filename="./plugins/music_player/music/externe/".$data_pl['id'].".php"; $rep="./plugins/music_player/music/externe"; if ( !is_dir($rep) ) { // le répertoire existe t-il ? mkdir ($rep); } $_php =''; $file= fopen($filename, "w"); if (!is_writable($filename) ) { die("Le fichier est inaccessible en écriture"); } fwrite($file, $_php); } else { //$mp_msgs[] = $lang['mp_msg_err_aj2'] ; array_push($page['errors'], l10n('mp_msg_err_aj2')); } } // +-----------------------------------------------------------------------+ // | défaut : affichage des playlist existante | // +-----------------------------------------------------------------------+ $playlist = array(); $query = 'SELECT id, url, texte FROM '.MP_PLAYLIST.' WHERE type IN (\'local\') ORDER BY id ;'; $result = pwg_query($query); while ($row = mysql_fetch_assoc($result)) { array_push($playlist, $row); } foreach ($playlist as $list) { $txt = stripslashes($list['texte']); $template->append('list', array('URL' => $list['url'], 'TEXTE' => $txt, 'ID' => $list['id'], )); $template->append('list2', array('URL' => $list['url'], 'TEXTE' => $txt, 'ID' => $list['id'], )); } $playlist = array(); $query = 'SELECT id, url, texte FROM '.MP_PLAYLIST.' WHERE type IN (\'externe\') ORDER BY id ;'; $result = pwg_query($query); while ($row = mysql_fetch_assoc($result)) { array_push($playlist, $row); } foreach ($playlist as $list) { $txt = stripslashes($list['texte']); $template->append('list_ex', array('URL' => $list['url'], 'TEXTE' => $txt, 'ID' => $list['id'], )); } $conf_lecteur = explode("," , $conf['mp_lecteur']); $conf_plugin = explode("," , $conf['mp_plugin']); ////envoi if (isset($_POST['envoi_config']) ){ if ($_POST['envoi_config']=='lecteur') { if ($_POST['style']=='NULL') { $style=$conf_lecteur['9']; } else { $style=$_POST['style']; } if ($_POST['mp_miniature']=="true") { $conf_lecteur = array( $_POST['h_tt'], $_POST['l_tt'], $_POST['h'], $_POST['mp_miniature'], $_POST['l'], $_POST['mp_shuffle'], $_POST['mp_repeat'], $_POST['mp_autostart'], $_POST['mp_autoscroll'], $style, $_POST['various_style'], ); } else { $h = $_POST['h_tt'] - 20;//pour un affichage correct la playlist doit faire la hauteur totale moins les 20px de la barre $conf_lecteur = array( $_POST['h_tt'], $_POST['l_tt'], $h, $_POST['mp_miniature'], '0', $_POST['mp_shuffle'], $_POST['mp_repeat'], $_POST['mp_autostart'], $_POST['mp_autoscroll'], $style, $_POST['various_style'], ); } $newconf_lecteur = implode ("," , $conf_lecteur); $query = ' UPDATE '.CONFIG_TABLE.' SET value="'.$newconf_lecteur.'" WHERE param="mp_lecteur" LIMIT 1'; pwg_query($query); // $mp_msgs[] = $lang['mp_msg_admin_5']; array_push($page['infos'], l10n('mp_msg_admin_5')); }} if (isset($_POST['envoi_config']) ){ if ($_POST['envoi_config']=='plugin' or isset($_POST['foot'])) { $conf_plugin = array( $_POST['evidence'], $_POST['head'], $_POST['foot'], $_POST['h_pop'], $_POST['l_pop'], ); $newconf_plugin = implode ("," , $conf_plugin); $query = ' UPDATE '.CONFIG_TABLE.' SET value="'.$newconf_plugin.'" WHERE param="mp_plugin" LIMIT 1'; pwg_query($query); //$mp_msgs[] = $lang['mp_msg_admin_6']; array_push($page['infos'], l10n('mp_msg_admin_6')); }} $check='checked="checked"'; if ($conf_lecteur[3]=='true') { $miniature=$check; } else { $miniature=NULL; } if ($conf_lecteur[5]=='true') { $shuffle=$check; } else { $shuffle=NULL; } if ($conf_lecteur[6]=='true') { $repeat=$check; } else { $repeat=NULL; } if ($conf_lecteur[8]=='true') { $autoscroll=$check; } else { $autoscroll=NULL; } if ($conf_lecteur[10]=='true') { $various_style=$check; } else { $various_style=NULL; } if ($conf_lecteur[7]!='0') { $rep = pwg_query('SELECT texte FROM '.MP_PLAYLIST.' WHERE id IN (\''.$conf_lecteur[7].'\') ;'); $pl = mysql_fetch_array($rep); $txt=$pl['texte']; } else {$txt="Defaut"; } if ($conf_plugin[0]=='true') { $evidence=$check; } else { $evidence=NULL; } if ($conf_plugin[1]=='true') { $head=$check; } else { $head=NULL; } if ($conf_plugin[2]=='true') { $foot=$check; } else { $foot=NULL; } //////////////////////////////////////////////// ////////[ liste des styles globaux ////////// //////////////////////////////////////////////// /*$fichier = array(); $dir = opendir('./plugins/music_player/template/style'); //ouvre le repertoire courant désigné par la variable while(false!==($file = readdir($dir))){ //on lit tout et on récupere tout les dossiers dans $folder if(!in_array($file, array('.','..'))){ //on eleve le parent et le courant '. et ..' if(is_file($file)) { continue; } $page = $file; //sort l'extension du fichier $page = explode('.', $page); $nb = count($page); $nom_fichier = $page[0]; for ($i = 1; $i < $nb-1; $i++){ $nom_fichier .= '.'.$page[$i]; } if(isset($page[1])){ $ext_fichier = $page[$nb-1]; } else { $ext_fichier = ''; } if($ext_fichier == 'css') { //On ne prend que les css array_push($fichier, $file); } }//fin if in array }//while natcasesort($fichier); //la fonction natcasesort( ) est la fonction de tri standard sauf qu'elle ignore la casse */ function recursive_readdir ($dir) { global $conf, $template; $conf_lecteur = explode("," , $conf['mp_lecteur']); $dh = opendir ($dir); // on l'ouvre while (($file = readdir ($dh)) !== false ) { //boucle pour parcourir le repertoire if ($file !== '.' && $file !== '..') { // no comment $path =$dir.'/'.$file; // construction d'un joli chemin... if (is_dir ($path)) { //si on tombe sur un sous-repertoire //echo '

', $path, ' -> dir

'; // ptit style... recursive_readdir ($path); // appel recursif pour lire a l'interieur de ce sous-repertoire } else { //echo $path, '
'; // si il s'agit d'un fichier, on affiche, tout simplement. $page = explode('.', $file); $nb = count($page); $nom_fichier = $page[0]; for ($i = 1; $i < $nb-1; $i++){ $nom_fichier .= '.'.$page[$i]; } if(isset($page[1])){ $ext_fichier = $page[$nb-2].'.'.$page[$nb-1]; } else { $ext_fichier = ''; } if($ext_fichier == 'conf.php') { //On ne prend que les css $path = str_replace("/plugins/music_player", "", $path); if ($conf_lecteur[9]==$path) { $template->append('list_style', array('FILE' => $path, 'TEXTE' => ' --> '.$path, )); } else { $template->append('list_style', array('FILE' => $path, 'TEXTE' => $path, )); } } } } } closedir ($dh); // on ferme le repertoire courant } recursive_readdir ('./plugins/music_player/template/style'); ////assignement des valeurs $template->assign( array( 'MP_EVIDENCE' => $evidence, 'MP_HEAD' => $head, 'MP_FOOT' => $foot, 'MP_H_POP' => 'value="'.$conf_plugin[3].'"', 'MP_L_POP' => 'value="'.$conf_plugin[4].'"', 'MP_H_TT' => 'value="'.$conf_lecteur[0].'"', 'MP_L_TT' => 'value="'.$conf_lecteur[1].'"', 'MP_H' => 'value="'.$conf_lecteur[2].'"', 'MP_MINIATURE_ACTIVATED' => $miniature, 'MP_L' => 'value="'.$conf_lecteur[4].'"', 'MP_SHUFFLE_ACTIVATED' => $shuffle, 'MP_REPEAT_ACTIVATED' => $repeat, 'AUTOSTART' => $conf_lecteur[7], 'AUTOSTART_T' => $txt, 'MP_AUTOSCROLL_ACTIVATED' => $autoscroll, 'MP_VARIOUS_STYLE' => $various_style, ) ); // +-----------------------------------------------------------------------+ // | affichage des msg | // +-----------------------------------------------------------------------+ /* if (count($mp_msgs) > 0) { $template->append('mp_msgs',array()); foreach ($mp_msgs as $mp_msg) { $template->append('mp_msgs.mp_msg', array('MP_MSG'=>$mp_msg)); } } */ $template->set_filename('plugin_admin_content', $m_p->plugin_path.'template/admin.tpl'); $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content'); ?>