Subversion Repositories Applications.projet

Rev

Blame | Last modification | View Log | RSS feed

<?php

/*  +-----------------------------------------------------------------------+
*   |projet_derniers_telechargement.php                                                         |
*   +-----------------------------------------------------------------------+
*   | Copyright (c) 2001 - 2005 Tela Botanica                                                   |
*   +-----------------------------------------------------------------------+
*   | Affiche les derniers fichiers uploader dans le module projet          |
*   +-----------------------------------------------------------------------+
*   | Auteur : Alexandre Granier <alexandre@tela-botanica.org>                  |
*   +-----------------------------------------------------------------------+

*   $Id: projet_derniers_telechargements.php,v 1.4.2.1 2007-05-11 13:59:27 alexandre_tb Exp $
*/

// Cette application affiche les derniers  documents uploades dans le module projet
// ainsi que tous les documents du module

// ===========================================================
//                  Configuration
// ===========================================================


// Le nombre a afficher 
define ("PROJET_TELECHARGEMENT_NOMBRE", 8) ;

//====================      Les labels      =======================================
define ("PROJET_TELECHARGEMENT_TITRE", "Page de t&eacute;l&eacute;chargements rapides") ;
define ("PROJET_TELECHARGEMENT_DERNIERS", "Derniers documents mis en ligne") ;
define ("PROJET_TELECHARGEMENT_TOUS", "Tous les documents, par projet") ;

//=============bibliotheques PEAR  ===================================
include_once 'HTML/Table.php' ;

// ========== Bibliotheque Projet ====================================
include_once 'configuration/projet.config.inc.php' ;
include_once PROJET_CHEMIN_CLASSES.'projetControleur.class.php' ;
include_once PROJET_CHEMIN_CLASSES.'document.class.php' ;
include_once PROJET_CHEMIN_APPLI.'langues/pro_langue_fr.inc.php' ;


function afficherContenuCorps() {
    global $id_projet, $repcourant, $baseURL, $projet ;
    
    if (isset($_GET['service'])) {
        if ($_GET['service'] == 'ecouteArbreFichier') {
        include_once PROJET_CHEMIN_APPLI.'/services/ecouteArbreFichier.php';
        }
        if ($_GET['service'] == 'telechargement') {
                include_once PROJET_CHEMIN_APPLI.'/services/telechargement.php';
        }
    }
    // a remplacer par un div pour genesia
    $res = "<h1>".PROJET_TELECHARGEMENT_TITRE."</h1>\n" ;
    
    $res .= "<h2>".PROJET_TELECHARGEMENT_DERNIERS."</h2>\n" ;
    
    $liste_documents = document::getDocumentsRecents( $nombre = 10, $GLOBALS['projet_db'], PROJET_CHEMIN_FICHIER,PROJET_CHEMIN_ICONES) ;
    
    include_once PROJET_CHEMIN_CLASSES.'HTML_Liste.class.php' ;
    include_once PROJET_CHEMIN_CLASSES.'HTML_listeDocuments.class.php' ;
    $vue_liste_document = new HTML_listeDocuments($GLOBALS['url'], false, '', $GLOBALS['projet_auth']) ;
    $vue_liste_document->setCheminIcones(PROJET_CHEMIN_ICONES) ;
    $entete_liste = array (PROJET_FICHIERS_NOM, PROJET_FICHIERS_TAILLE, PROJET_FICHIERS_PAR, PROJET_FICHIERS_CREE_LE) ;
    if (!isset($droits)) $droits = PROJET_DROIT_AUCUN ;
        
    $vue_liste_document->construitEntete($entete_liste) ;
    $vue_liste_document->construitListe ($liste_documents, $droits, 'ignore_repertoire', $GLOBALS['projet_db']) ;
    $res .= $vue_liste_document->toHTML('', PROJET_DROIT_AUCUN) ;
    
    $res .= "<h2>".PROJET_TELECHARGEMENT_TOUS."</h2>\n" ;
    

    // Les noms des fichiers graphiques
    $icon         = 'folder.gif';
    $expandedIcon = 'folder-expanded.gif';
    
    $i = 0 ;
    // Requete sur les projets
    $requete = "SELECT p_titre, p_id FROM projet ORDER BY p_titre" ;
    $resultat = $GLOBALS['projet_db']->query ($requete) or die ("Echec <br />".mysql_error()."<br />$requete") ;
    
    $noeudProjet = '' ;
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
        $titre = $ligne->p_titre ;
        $i++ ;
        $noeudProjet .= '<div dojoType="TreeNode" title="'.$ligne->p_titre.'" widgetId="projet_'.
                                        $ligne->p_id.'" objectId="projet_'.$ligne->p_id.'" isFolder="true"></div>'."\n";
    }
    $res .= '<p>' ;
  
    $res .= '<script type="text/javascript" src="http://o.aolcdn.com/dojo/1.0.0/dojo/dojo.xd.js"
                djConfig="parseOnLoad: true">djConfig.usePlainJson=true;</script>
            <script>
              dojo.require("dojo.data.ItemFileReadStore");
              dojo.require("dijit.Tree");
              dojo.require("dojo.parser");
            </script>';
GEN_AttributsBody('class', 'tundra');
            $res .='<style type="text/css">
                    @import "http://o.aolcdn.com/dojo/1.0.0/dijit/themes/tundra/tundra.css";
                            @import "http://o.aolcdn.com/dojo/1.0.0/dojo/resources/dojo.css";
                                </style>';
    
    /*
    $RCPUrl = PROJET_CHEMIN_APPLI.'services/ecouteArbreFichier.php?id_projet='.$id_projet;
        $GLOBALS['url']->addQueryString(PROJET_VARIABLE_SERVICE, 'ecouteArbreFichier');
                        
        $RCPUrl = $GLOBALS['url']->getURL();
    $res .= '<div dojoType="TreeLoadingController" RPCUrl="'.$RCPUrl.'" widgetId="treeController" DNDController="create"></div>
                                <div dojoType="TreeSelector" widgetId="treeSelector"></div>
                                <div dojoType="Tree" DNDMode="between" selector="treeSelector" widgetId="bandTree" controller="treeController">
                                <div dojoType="TreeNode" title="Racine" widgetId="rootNode" objectId="root" isFolder="true">'."\n".
                        $noeudProjet.'</div></div>';    
*/      
   $res .= '<div dojoType="dojo.data.ItemFileReadStore"
             url="http://www.tela-botanica.org/page:telechargement?service=ecouteArbreFichier&action=getChildren&data=%7B%22node%22%3A%7B%22widgetId%22%3A%22projet_37%22%2C%22objectId%22%3A%22projet_37%22%2C%22index%22%3A57%2C%22isFolder%22%3Atrue%7D%2C%22tree%22%3A%7B%22widgetId%22%3A%22bandTree%22%2C%22objectId%22%3A%22%22%7D%7D&dojo.preventCache=1196781266714" jsid="popStore" />
        <div dojoType="dijit.Tree" store="popStore" labelAttr="name" label="Pop Tarts"></div>';

    $res .= '</div>';
    return $res ;
}

/** fonction projet_fichiers() - Remplie un noeud avec les fichiers et repertoires
*
* Le noeud est passe en reference. Ainsi, cette fonction ne retourne rien mais modifie le tableau des 
* noeuds passe en reference.
*
* return  void
*/

function projet_fichiers ($noeud, $id_rep, $pere = 0)
{
    //Recuperation de l'identifiant du repertoire courant
    
    //La fonction est appele recursivement quand $pere ne vaut pas null
    //$id_rep prend donc la valeur de $pere transmise par l'appel precedent de la fonction.
    
    // Les noms des fichiers graphiques
    $icon = 'folder.gif';
    $expandedIcon = 'folder-expanded.gif';
    
    //Requ�te pour r�cup�rer les noms des r�pertoires contenus dans le r�pertoire courant ($id_rep)
    $queryRep =    ' SELECT projet_documents.*'.
                            ' FROM projet_documents'.
                            ' WHERE projet_documents.pd_pere = '.$pere.
                            ' AND projet_documents.pd_visibilite = "public" and pd_ce_projet='.$id_rep.' and pd_ce_type=0'.
                            ' ORDER BY projet_documents.pd_nom ASC' ;

    $resultRep = $GLOBALS['projet_db']->query($queryRep) ;
    if (DB::isError ($resultRep)) {
        die ('Echec de la requete : '.$queryRep.'<br />'.$resultRep->getMessage()) ;
    }
    
    //Stockage des informations sur les r�pertoires contenu dans le r�pertoire courant pour affichage dans un arbre.
    //Et appel r�cursif de la fonction pour examiner le contenu de chaque r�pertoire du r�pertoire courant.
    if ( $resultRep->numRows() != 0 ) {
        while ( $ligneRep = $resultRep->fetchRow(DB_FETCHMODE_OBJECT) ) {
            //Stockage des informations sur le r�pertoire courant
            $noeud1_1 = &$noeud->addItem(new HTML_TreeNode(
                                                        array(
                                                            'text' => trim ($ligneRep->pd_nom),
                                                            'link' => "", 'icon' => $icon,
                                                            'expandedIcon' => $expandedIcon ) ) );
            //Appel r�cursif de fonction courante
            projet_fichiers (&$noeud1_1, $id_rep, $ligneRep->pd_id) ;
        }
    }
    
    // Requ�te pour r�cup�rer les fichiers du r�pertoire courant ($id_rep) et leurs informations
    $requete_fichiers = 'SELECT projet_documents.*, gen_type_de_fichier.gtf_type_icone'.
                                    ' FROM projet_documents, gen_type_de_fichier'.
                                    ' WHERE projet_documents.pd_ce_type= gen_type_de_fichier.gtf_id_type'.
                                    ' AND projet_documents.pd_visibilite= "public" ' ;
    if ($pere == 0) {
        $requete_fichiers .= ' AND projet_documents.pd_ce_projet= '.$id_rep.' and pd_pere=0 and pd_ce_type <> 0' ;
    } else {
        $requete_fichiers .= ' AND projet_documents.pd_pere= '.$pere.' and pd_ce_type<>0' ;
    }
    $requete_fichiers .= ' ORDER BY projet_documents.pd_nom ASC' ;

    $resultat_fichiers = $GLOBALS['projet_db']->query($requete_fichiers) ;
    if (DB::isError ($resultat_fichiers)) {
        die ('Echec de la requete : '.$requete_fichiers.'<br />'.$resultat_fichiers->getMessage()) ;
    }
    
    //Stockage des informations sur les fichiers du r�pertoires courant pour affichage dans un arbre
    if ( $resultat_fichiers->numRows() != 0 ) {
        while ( $ligne_fichiers = $resultat_fichiers->fetchRow(DB_FETCHMODE_OBJECT) ) {
            //Ajout de slash devant les caract�res sp�ciaux et suppression des caract�res invisibles en d�but et fin des noms de fichier.
            $lien = trim( $ligne_fichiers->pd_nom  );
            $noeud_1_2 = &$noeud->addItem (new HTML_TreeNode (
                                                            array (
                                                                "text" => $lien,
                                                                "link" => PROJET_CHEMIN_FICHIER.$ligne_fichiers->pd_lien,
                                                                'icon' => $ligne_fichiers->gtf_type_icone,
                                                                "linkTarget" => "_blank" ))) ;
        }
    }
}

/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: projet_derniers_telechargements.php,v $
* Revision 1.4.2.1  2007-05-11 13:59:27  alexandre_tb
* adaptation a ecouteArbreFichier qui est maintenant appele par papyrus.php
*
* Revision 1.4  2007/04/19 09:17:35  alexandre_tb
* utilisation de dojo pour afficher l arbre des derniers documents
*
* Revision 1.3  2005/10/06 08:23:48  alexandre_tb
* Ajout de commentaires
*
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/

?>