From: <cra...@us...> - 2007-05-20 22:42:26
|
Revision: 154 http://svn.sourceforge.net/easybox-mod/?rev=154&view=rev Author: craftsnux Date: 2007-05-20 15:42:20 -0700 (Sun, 20 May 2007) Log Message: ----------- utilisation du fichier etc/mtab plutot que fstab pour avoir les disques r?\195?\169ellement pr?\195?\169sentset am?\195?\169lioration de l'affichage Modified Paths: -------------- trunk/_framework/demarrage.php trunk/_framework/fonctions_partagees.inc.php Modified: trunk/_framework/demarrage.php =================================================================== --- trunk/_framework/demarrage.php 2007-05-20 10:21:51 UTC (rev 153) +++ trunk/_framework/demarrage.php 2007-05-20 22:42:20 UTC (rev 154) @@ -82,7 +82,7 @@ clean_vars(); // R\xE9cup\xE9ration des disques - if (PHP_OS == "WIN32" || PHP_OS == "WINNT" || is_readable('/etc/fstab')) { + if (PHP_OS == "WIN32" || PHP_OS == "WINNT" || is_readable('/etc/mtab')) { save_variable('disques', serialize(DISQUES())); } Modified: trunk/_framework/fonctions_partagees.inc.php =================================================================== --- trunk/_framework/fonctions_partagees.inc.php 2007-05-20 10:21:51 UTC (rev 153) +++ trunk/_framework/fonctions_partagees.inc.php 2007-05-20 22:42:20 UTC (rev 154) @@ -234,6 +234,16 @@ } RETURN $nomcourant; } +function extract_lastname($name){ + $nomcourant = str_replace("\\", "/", $name); + if($pos = strrpos($nomcourant,"/")){ + $pos++; + $nomcourant = substr($nomcourant,$pos); + }else{ + $nomcourant=$name; + } +RETURN $nomcourant; +} //Sauvegarder un signet function save_signet(){ @@ -305,24 +315,40 @@ $obj = null; } - } elseif (is_readable('/etc/fstab')) { + } elseif (is_readable('/etc/mtab')) { // si ce fichier est lisible on assume qu'on est sur un OS qui le supporte // Noter que c'est une facon pour un autre OS que Linux ou Windows de faire // en sorte que easybox puisse acc\xE9der aux disques! - $fstab =& new File_Fstab(); + $fstab =& new File_Fstab(array('file' => '/etc/mtab')); foreach($fstab->entries as $io) { // On n'a pas la description hardware du type de disque, // mais on sait qu'un CD-ROM ou un DVD sont pratiquement // toujours de type cd9660 pour mac, udf ou iso9660 - // A priori on pourrait ajouter 'auto' dans les types accept\xE9s, - // mais en pratique ca revient a rajouter une entr\xE9e pour - // le... lecteur de disquettes. - if (strstr($io->getFsType(),'udf') || strstr($io->getFsType(),'iso9660') || strstr($io->getFsType(),'cd9660')) { - $lect[] = array('lettre'=>$io->getDevice(), 'path'=>$io->getMountPoint(), 'type'=>'Disque optique', 'nom'=>$io->getMountPoint(), 'gif'=>'diskoptical'); - } elseif (! strstr($io->getFsType(),'proc')) { - // Bon, on se souviens quand-meme des autres, sauf /proc car faut pas pousser - $lect[] = array('lettre'=>$io->getDevice(), 'path'=>$io->getMountPoint(), 'type'=>'Inconnu', 'nom'=>$io->getMountPoint(), 'gif'=>'diskunknown'); + // + if ( strstr($io->getFsType(),'proc')|| + strstr($io->getFsType(),'swap')|| + strstr($io->getDevice(),'none')|| + strstr($io->getDevice(),'fd')|| + strstr($io->getMountPoint(),'floppy')|| + strstr($io->getMountPoint(),'proc')|| + strstr($io->getMountPoint(),'var') + ) { + //on ne se souvient pas du lecteur de disquette, de swap, de /proc, et des non-identifi\xE9s + } elseif ( strstr($io->getFsType(),'udf') || + strstr($io->getFsType(),'iso9660') || + strstr($io->getFsType(),'cd9660') || + strstr($io->getFsType(),'auto')|| + strstr($io->getFsType(),'supermount') + ) { + // on racourcit les noms, on prend le repertoire de montage qui est plus significatif + $lect[] = array('lettre'=>extract_lastname($io->getMountPoint()), 'path'=>$io->getMountPoint(), 'type'=>'Disque optique', 'nom'=>$io->getMountPoint(), 'gif'=>'diskoptical'); + } elseif ( strstr($io->getFsType(),'fat')|| + strstr($io->getFsType(),'ext') + ) { + $lect[] = array('lettre'=>extract_lastname($io->getMountPoint()), 'path'=>$io->getMountPoint(), 'type'=>'Disque dur', 'nom'=>$io->getMountPoint(), 'gif'=>'diskhdd'); + } else { + $lect[] = array('lettre'=>extract_lastname($io->getMountPoint()), 'path'=>$io->getMountPoint(), 'type'=>'Inconnu', 'nom'=>$io->getMountPoint(), 'gif'=>'diskunknown'); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |