Commit 319f31d8 authored by Zéfling's avatar Zéfling 🎨
Browse files

en objet

J'ai ajouté une barre d'état

17/03/2008
parent 93872d4c
<?php
class Dossier {
private $rep = '';
public $nbDossiers = 0;
public $nbFichiers = 0;
public $taille = 0;
public $scriptDraggable = '';
public $scriptDroppable = '';
public function __construct ($rep) {
$this->rep = $rep;
}
public function lireDossier ($ret = 1) {
$rep = $this->rep;
$aRep = explode ('/', $rep);
$repCourant = $aRep[count($aRep)-1];
$rep .= '/';
$dir = opendir($rep);
$liste = '';
while ($f = readdir($dir)) {
if(!is_file($rep.$f) && $f != '.' && $f != '..') {
// test si il y a des sous dossiers
$ssDir = opendir($rep.$f.'/');
$ssDossier = false;
while (($ssf = readdir($ssDir)) && !$ssDossier) {
if(!is_file($rep.$f.'/'.$ssf) && $ssf != '.' && $ssf != '..') {
$ssDossier = true;
}
}
// si il y a des sous-dossiers ou non
if ($ssDossier) {
$id = ' id="'.$rep.$f.'"';
$onclick = ' onclick="xajax_arbreDossierOuvrir(\''.$rep.$f.'\');return false;"';
$typeF = 'close';
$onclickImg = ' onclick="xajax_arbreDossierOuvrir(\''.$rep.$f.'\');"';
} else {
$id = '';
$onclick = ' onclick="xajax_afficherDossier(\''.$rep.$f.'\');return false;"';
$typeF = 'none';
$onclickImg = '';
}
$liste .= '<li'.$id.'><img src="icones/folder_'.$typeF.'.png" alt=""'.$onclickImg.'/><a href=""'.$onclick.'>'.$f.'</a></li>';
}
}
closedir($dir);
return (($ret == 1) ? '<img src="icones/folder_open.png" alt="" onclick="xajax_arbreDossierFermer(\''.$rep.$f.'\');" /><a href="" onclick="xajax_afficherDossier(\''.$rep.$f.'\');return false;">'.$repCourant.'</a>' : '').'<ul id="'.$rep.'">'.$liste.'</ul>';
/*Droppables.add('panier',
{accept:'products',
onDrop:function(element)
{
//ajax.updater
new Ajax.Updater('panier','ajpan.php',
{
parameters:'id=' + encodeURIComponent(element.id)
//parameters:'id=' + encodeURIComponent(idprod)
})
}
})
*/
}
//Fonction qui va se charger de faire les requetes
public function listerDossier () {
$rep = $this->rep;
$nbFichiers = 0;
$nbDossiers = 0;
$taille = 0;
$drag = '';
$rep .= '/';
$dir = opendir($rep);
$liste = '<div class="barre_type"><div class="nom">Nom</div><div class="taille">Taille</div><div class="type">Type</div><div class="date">Date Modification</div></div>';
while ($f = readdir($dir)) {
if ($f != '.' && $f != '..') {
$md5 = md5($rep.$f);
$drag .= "new Draggable('f-".$md5."',{revert:true});";
$fileinfo = new FileInfo($rep, $f);
if (!is_file($rep.$f)) {
$liste .= '<div class="ligne_fichier" id="f-'.$md5.'" title="'.addslashes($rep.$f).'" onclick="testSelectionFichier(this)" ondblclick="xajax_arbreDossierOuvrir(\''.$rep.$f.'\')">';
$nbDossiers++;
} else {
$liste .= '<div class="ligne_fichier" id="f-'.$md5.'" title="'.addslashes($rep.$f).'" onclick="testSelectionFichier(this)" >';
$nbFichiers++;
}
$taille += $fileinfo->getTaille();
$liste .= '<div class="nom"><img src="icones/'.$fileinfo->infoIcone().'" alt="" /><span>'.$f.'</span></div>';
$liste .= '<div class="taille"><span>'.$fileinfo->taille(4).'</span></div>';
$liste .= '<div class="type"><span>'.$fileinfo->infoType().'</span></div>';
$liste .= '<div class="date"><span>'.$fileinfo->dateFormat().'</span></div>';
$liste .= '</div>';
}
}
closedir($dir);
$this->taille = $taille;
$this->nbFichiers = $nbFichiers;
$this->nbDossiers = $nbDossiers;
$this->scriptDraggable = $drag;
return '<div id="tab">'.$liste.'</div>';
}
}
?>
\ No newline at end of file
<?php
class FileInfo {
private $dossier = false;
private $adresse = '';
private $fichier = '';
private $extension = '';
private $dateFichier = 0;
private $tailleFichier = 0;
public function __construct ($dossier, $nom) {
$this->fichier = $nom;
$this->adresse = $dossier;
// extension
$fichier = explode('.', strtolower($nom));
if (count($fichier) > 1) {
$this->extension = array_pop($fichier);
}
// fichier | dossier
if(!is_file($dossier.$nom)) {
$this->dossier = true;
}
//date
$this->dateFichier = filemtime($dossier.$nom);
//taille
$this->tailleFichier = filesize($dossier.$nom);
}
public function dateFormat() {
return date ('d/m/Y H:i', $this->dateFichier);
}
public function taille ($nombre = 5) {
return FileInfo::tailleFormat($this->tailleFichier, $nombre);
}
public static function tailleFormat ($taille, $nombre = 5) {
if ($taille < 1024) {
$taille .= ' o';
} else if ($taille < 1024*1024) {
$taille = ($taille/1024);
$taille = substr($taille, 0, $nombre);
if (substr($taille, -1, 1) == '.') $taille = substr($taille, 0, -1);
$taille .= ' Kio';
} else if ($taille < 1024*1024*1024) {
$taille = ($taille/(1024*1024));
$taille = substr($taille, 0, $nombre);
if (substr($taille, -1, 1) == '.') $taille = substr($taille, 0, 1);
$taille .= ' Mio';
} else {
$taille = ($taille/(1024*1024*1024));
$taille = substr($taille, 0, $nombre);
if (substr($taille, -1, 1) == '.') $taille = substr($taille, 0, 1);
$taille .= ' Gio';
}
if (strpos(',', $taille) == $nombre) $taille = substr($taille, 0, $nombre).substr($taille, $nombre+1);
return str_replace('.', ',', $taille);
}
public function getTaille() {
return $this->tailleFichier;
}
public function infoType () {
if (!$this->dossier) {
$types = array(
'png' => 'Image PNG',
'jpg' => 'Image JPEG',
'gif' => 'Image GIF',
'php' => 'Script PHP',
'js' => 'Script JS',
'txt' => 'Texte',
'css' => 'Feuille de style',
);
if (empty($this->extension)) {
return '';
} else if (isset($types[$this->extension])) {
return $types[$this->extension];
} else {
return 'Fichier '.strtoupper($this->extension);
}
} else {
return 'Dossier';
}
}
public function infoEdit () {
$info = '';
switch(strtolower($this->extension)) {
case 'txt' :
case 'xml' :
case 'php' :
case 'php3' :
case 'php4' :
case 'php5' :
case 'ini' :
case 'htm' :
case 'html' :
case 'xhtml':
case 'css' :
case 'js' : $info = true; break;
default : $info = false;
}
return $info;
}
public function infoIcone () {
if($this->dossier) return 'folder.png' ;
$info = '';
switch(strtolower($this->extension)) {
case 'txt' : $info = 'txt.png'; break;
case 'php' :
case 'php3' : $info = 'question.png'; break;
case 'htm' :
case 'html' : $info = 'htm.png'; break;
case 'xml' :
case 'css' :
case 'js' : $info = 'css_js.png'; break;
case 'jar' :
case 'rar' : $info = 'rar.png'; break;
case 'zip' : $info = 'zip.png'; break;
case 'ace' : $info = 'ace.png'; break;
case 'fla' : $info = 'fla.png'; break;
case 'swf' : $info = 'swf.png'; break;
case 'jpg' :
case 'jpeg' :
case 'gif' :
case 'bmp' :
case 'png' : $info = 'image.png'; break;
case 'mp3' :
case 'mp2' :
case 'mpc' :
case 'ogg' :
case 'flac' :
case 'ape' :
case 'wma' :
case 'uta' : $info = 'musique.png'; break;
case 'avi' :
case 'mkv' :
case 'ogm' :
case 'wmv' :
case 'mpg' : $info = 'musique.png'; break;
case 'pspimage' : $info = 'psp.png'; break;
case 'fon' : $info = 'fon.png'; break;
case 'ttf' : $info = 'ttf.png'; break;
default : $info = 'fichier.png';
}
return $info;
}
}
?>
\ No newline at end of file
icones/exe.png

801 Bytes

icones/fla.png

805 Bytes

icones/fon.png

783 Bytes

icones/htm.png

876 Bytes

icones/psp.png

261 Bytes

icones/swf.png

708 Bytes

Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment