<?php// ---------------------------------------------------------------// KwsPHP kOoGar Web System// $Id: trier.php 897 2010-02-26 12:01:10Z mike007.devpwsphp $// ---------------------------------------------------------------// Création : 07/10/07 par FouPouDave// ---------------------------------------------------------------/*** Sécurité*/if (!(defined('__KWS__'))) {die ('Erreur d\'appel de fichier.');}/*** Transformation des paramètres du module en variables*/require './modules/download/parametres.php';// ---------------------------------------------------------------if (isset($_REQUEST['critere']) and (!isset($dl_critere))){ $dl_critere = $_REQUEST['critere'];}if (!isset($dl_critere)){ $dl_critere = 'fichier';}// Sécuritéif (!( $dl_critere == 'id' or $dl_critere == 'fichier' or $dl_critere == 'version' or $dl_critere == 'image' or $dl_critere == 'auteur' or $dl_critere == 'titre' or $dl_critere == 'description' or $dl_critere == 'grade' or $dl_critere == 'id_groupe' or $dl_critere == 'filtre' or $dl_critere == 'date_creation' or $dl_critere == 'date_modification' or $dl_critere == 'date_hit' or $dl_critere == 'hit' or $dl_critere == 'vote_nbr' or $dl_critere == 'vote_somme' or $dl_critere == 'variable_interne')){ $dl_critere = 'fichier';}if ( $dl_critere == 'date_creation' or $dl_critere == 'date_modification' or $dl_critere == 'date_hit' or $dl_critere == 'hit'){ $dl_desc = 'DESC';}else{ $dl_desc = 'ASC';}$dl_liste_repertoire = array();$dl_liste_fichier = array();$dl_liste = array();$dl_requete = " SELECT * FROM `dl` ORDER BY ".$dl_critere." ".$dl_desc."";unset($dl_critere);$dl_requete = reqmysql($dl_requete);while ($dl_fichier = mysql_fetch_object($dl_requete)){ $dl_fichier->file_exists = file_exists($dl_fichier->fichier); $dl_fichier->valid = !empty($dl_fichier->titre); // Test plus intéréssant mais ça bouffe du temps... //$dl_fichier->valid = (!empty($dl_fichier->titre)) and ($dl_fichier->md5_file == @md5_file($dl_fichier->fichier)); $dl_fichier->autorisation = autorisation('or',$dl_fichier->grade,$dl_fichier->id_groupe,$dl_administration); if ($dl_visible==1) { $dl_fichier->visible = true; } $dl_fichier->nouveaute = $dl_fichier->date_modification+$dl_nouveaute*24*60*60>time(); $dl_fichier->compteur = 0; foreach ($dl_fichier as $dl_indice => $dl_contenu) { $dl_fichier->$dl_indice = ax($dl_contenu); } ${'dl_liste_'.$dl_fichier->type}[$dl_fichier->fichier] = $dl_fichier;}ksort($dl_liste_repertoire);//ksort($dl_liste_fichier);// Antériorité sur les droits des répertoiresforeach ($dl_liste_repertoire as $dl_nom => $dl_repertoire){ $dl_nom_temp = $dl_nom; while ($dl_nom_temp!=$dl_upload and ($dl_liste_repertoire[$dl_nom]->autorisation)) { $dl_nom_temp = dirname($dl_nom_temp).'/'; if (!$dl_liste_repertoire[$dl_nom_temp]->autorisation) { $dl_liste_repertoire[$dl_nom]->autorisation = false; } }}// Suppression des répertoires invalidesforeach ($dl_liste_repertoire as $dl_nom => $dl_repertoire){ if (!(($dl_repertoire->valid and ($dl_repertoire->autorisation or $dl_repertoire->visible==1)) or $dl_administration)) { unset($dl_liste_repertoire[$dl_nom]); }}// Suppression et triage des fichiers avec réferencement des répertoires (nouveauté et compteur)foreach ($dl_liste_fichier as $dl_nom => $dl_fichier){ if (!$dl_liste_repertoire[dirname($dl_nom).'/']->autorisation) { $dl_liste_fichier[$dl_nom]->autorisation = false; } if ((($dl_liste_fichier[$dl_nom]->valid and ($dl_liste_fichier[$dl_nom]->autorisation or $dl_liste_fichier[$dl_nom]->visible==1)) or $dl_administration)) { $dl_liste_repertoire[dirname($dl_nom).'/']->compteur++ ; if ($dl_liste_fichier[$dl_nom]->nouveaute) { $dl_liste_repertoire[dirname($dl_nom).'/']->nouveaute = true; } } else { unset($dl_liste_fichier[$dl_nom]); }}if (!$dl_explorateur2){ foreach ($dl_liste_repertoire as $dl_nom_repertoire => $dl_repertoire) { $dl_liste[$dl_nom_repertoire] = $dl_repertoire; foreach ($dl_liste_fichier as $dl_nom_fichier => $dl_fichier) { if (dirname($dl_nom_fichier).'/'==$dl_nom_repertoire) { $dl_liste[$dl_nom_fichier] = $dl_fichier; } } }}else{ foreach ($dl_liste_repertoire as $dl_nom_repertoire => $dl_repertoire) { while ($dl_repertoire->niveau_repertoire < count($dl_niveau)) { $dl_last_rep = array_pop($dl_niveau); foreach ($dl_liste_fichier as $dl_nom_fichier => $dl_fichier) { if (dirname($dl_nom_fichier).'/' == $dl_last_rep) { $dl_liste[$dl_nom_fichier] = $dl_fichier; } } } $dl_liste[$dl_nom_repertoire] = $dl_repertoire; $dl_niveau[$dl_repertoire->niveau_repertoire] = $dl_nom_repertoire; } while (($dl_last_rep = array_pop($dl_niveau)) != NULL) { foreach ($dl_liste_fichier as $dl_nom_fichier => $dl_fichier) { if (dirname($dl_nom_fichier).'/' == $dl_last_rep) { $dl_liste[$dl_nom_fichier] = $dl_fichier; } } }}/*bloc_head('Liste classée');echo 'repertoire :<br />';df_print_r($dl_liste_repertoire);echo 'fichiers :';df_print_r($dl_liste_fichier);close_table();/**/?>