431 |
mathias |
1 |
<?php
|
|
|
2 |
|
|
|
3 |
/* +-----------------------------------------------------------------------+
|
|
|
4 |
* |projet_derniers_telechargement.php |
|
|
|
5 |
* +-----------------------------------------------------------------------+
|
|
|
6 |
* | Copyright (c) 2001 - 2005 Tela Botanica |
|
|
|
7 |
* +-----------------------------------------------------------------------+
|
|
|
8 |
* | Affiche les derniers fichiers uploader dans le module projet |
|
|
|
9 |
* +-----------------------------------------------------------------------+
|
|
|
10 |
* | Auteur : Alexandre Granier <alexandre@tela-botanica.org> |
|
|
|
11 |
* +-----------------------------------------------------------------------+
|
|
|
12 |
|
|
|
13 |
* $Id: projet_derniers_telechargements.php,v 1.4.2.1 2007-05-11 13:59:27 alexandre_tb Exp $
|
|
|
14 |
*/
|
|
|
15 |
|
|
|
16 |
// Cette application affiche les derniers documents uploades dans le module projet
|
|
|
17 |
// ainsi que tous les documents du module
|
|
|
18 |
|
|
|
19 |
// ===========================================================
|
|
|
20 |
// Configuration
|
|
|
21 |
// ===========================================================
|
|
|
22 |
|
|
|
23 |
|
|
|
24 |
// Le nombre a afficher
|
|
|
25 |
define ("PROJET_TELECHARGEMENT_NOMBRE", 8) ;
|
|
|
26 |
|
|
|
27 |
//==================== Les labels =======================================
|
|
|
28 |
define ("PROJET_TELECHARGEMENT_TITRE", "Page de téléchargements rapides") ;
|
|
|
29 |
define ("PROJET_TELECHARGEMENT_DERNIERS", "Derniers documents mis en ligne") ;
|
|
|
30 |
define ("PROJET_TELECHARGEMENT_TOUS", "Tous les documents, par projet") ;
|
|
|
31 |
|
|
|
32 |
//=============bibliotheques PEAR ===================================
|
|
|
33 |
include_once 'HTML/Table.php' ;
|
|
|
34 |
|
|
|
35 |
// ========== Bibliotheque Projet ====================================
|
|
|
36 |
include_once 'configuration/projet.config.inc.php' ;
|
|
|
37 |
include_once PROJET_CHEMIN_CLASSES.'projetControleur.class.php' ;
|
|
|
38 |
include_once PROJET_CHEMIN_CLASSES.'document.class.php' ;
|
|
|
39 |
include_once PROJET_CHEMIN_APPLI.'langues/pro_langue_fr.inc.php' ;
|
|
|
40 |
|
|
|
41 |
|
|
|
42 |
function afficherContenuCorps() {
|
|
|
43 |
global $id_projet, $repcourant, $baseURL, $projet ;
|
|
|
44 |
|
|
|
45 |
if (isset($_GET['service'])) {
|
|
|
46 |
if ($_GET['service'] == 'ecouteArbreFichier') {
|
|
|
47 |
include_once PROJET_CHEMIN_APPLI.'/services/ecouteArbreFichier.php';
|
|
|
48 |
}
|
|
|
49 |
if ($_GET['service'] == 'telechargement') {
|
|
|
50 |
include_once PROJET_CHEMIN_APPLI.'/services/telechargement.php';
|
|
|
51 |
}
|
|
|
52 |
}
|
|
|
53 |
// a remplacer par un div pour genesia
|
|
|
54 |
$res = "<h1>".PROJET_TELECHARGEMENT_TITRE."</h1>\n" ;
|
|
|
55 |
|
|
|
56 |
$res .= "<h2>".PROJET_TELECHARGEMENT_DERNIERS."</h2>\n" ;
|
|
|
57 |
|
|
|
58 |
$liste_documents = document::getDocumentsRecents( $nombre = 10, $GLOBALS['projet_db'], PROJET_CHEMIN_FICHIER,PROJET_CHEMIN_ICONES) ;
|
|
|
59 |
|
|
|
60 |
include_once PROJET_CHEMIN_CLASSES.'HTML_Liste.class.php' ;
|
|
|
61 |
include_once PROJET_CHEMIN_CLASSES.'HTML_listeDocuments.class.php' ;
|
|
|
62 |
$vue_liste_document = new HTML_listeDocuments($GLOBALS['url'], false, '', $GLOBALS['projet_auth']) ;
|
|
|
63 |
$vue_liste_document->setCheminIcones(PROJET_CHEMIN_ICONES) ;
|
|
|
64 |
$entete_liste = array (PROJET_FICHIERS_NOM, PROJET_FICHIERS_TAILLE, PROJET_FICHIERS_PAR, PROJET_FICHIERS_CREE_LE) ;
|
|
|
65 |
if (!isset($droits)) $droits = PROJET_DROIT_AUCUN ;
|
|
|
66 |
|
|
|
67 |
$vue_liste_document->construitEntete($entete_liste) ;
|
|
|
68 |
$vue_liste_document->construitListe ($liste_documents, $droits, 'ignore_repertoire', $GLOBALS['projet_db']) ;
|
|
|
69 |
$res .= $vue_liste_document->toHTML('', PROJET_DROIT_AUCUN) ;
|
|
|
70 |
|
|
|
71 |
$res .= "<h2>".PROJET_TELECHARGEMENT_TOUS."</h2>\n" ;
|
|
|
72 |
|
|
|
73 |
|
|
|
74 |
// Les noms des fichiers graphiques
|
|
|
75 |
$icon = 'folder.gif';
|
|
|
76 |
$expandedIcon = 'folder-expanded.gif';
|
|
|
77 |
|
|
|
78 |
$i = 0 ;
|
|
|
79 |
// Requete sur les projets
|
|
|
80 |
$requete = "SELECT p_titre, p_id FROM projet ORDER BY p_titre" ;
|
|
|
81 |
$resultat = $GLOBALS['projet_db']->query ($requete) or die ("Echec <br />".mysql_error()."<br />$requete") ;
|
|
|
82 |
|
|
|
83 |
$noeudProjet = '' ;
|
|
|
84 |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
|
|
|
85 |
$titre = $ligne->p_titre ;
|
|
|
86 |
$i++ ;
|
|
|
87 |
$noeudProjet .= '<div dojoType="TreeNode" title="'.$ligne->p_titre.'" widgetId="projet_'.
|
|
|
88 |
$ligne->p_id.'" objectId="projet_'.$ligne->p_id.'" isFolder="true"></div>'."\n";
|
|
|
89 |
}
|
|
|
90 |
$res .= '<p>' ;
|
|
|
91 |
|
|
|
92 |
$res .= '<script type="text/javascript" src="http://o.aolcdn.com/dojo/1.0.0/dojo/dojo.xd.js"
|
|
|
93 |
djConfig="parseOnLoad: true">djConfig.usePlainJson=true;</script>
|
|
|
94 |
<script>
|
|
|
95 |
dojo.require("dojo.data.ItemFileReadStore");
|
|
|
96 |
dojo.require("dijit.Tree");
|
|
|
97 |
dojo.require("dojo.parser");
|
|
|
98 |
</script>';
|
|
|
99 |
GEN_AttributsBody('class', 'tundra');
|
|
|
100 |
$res .='<style type="text/css">
|
|
|
101 |
@import "http://o.aolcdn.com/dojo/1.0.0/dijit/themes/tundra/tundra.css";
|
|
|
102 |
@import "http://o.aolcdn.com/dojo/1.0.0/dojo/resources/dojo.css";
|
|
|
103 |
</style>';
|
|
|
104 |
|
|
|
105 |
/*
|
|
|
106 |
$RCPUrl = PROJET_CHEMIN_APPLI.'services/ecouteArbreFichier.php?id_projet='.$id_projet;
|
|
|
107 |
$GLOBALS['url']->addQueryString(PROJET_VARIABLE_SERVICE, 'ecouteArbreFichier');
|
|
|
108 |
|
|
|
109 |
$RCPUrl = $GLOBALS['url']->getURL();
|
|
|
110 |
$res .= '<div dojoType="TreeLoadingController" RPCUrl="'.$RCPUrl.'" widgetId="treeController" DNDController="create"></div>
|
|
|
111 |
<div dojoType="TreeSelector" widgetId="treeSelector"></div>
|
|
|
112 |
<div dojoType="Tree" DNDMode="between" selector="treeSelector" widgetId="bandTree" controller="treeController">
|
|
|
113 |
<div dojoType="TreeNode" title="Racine" widgetId="rootNode" objectId="root" isFolder="true">'."\n".
|
|
|
114 |
$noeudProjet.'</div></div>';
|
|
|
115 |
*/
|
|
|
116 |
$res .= '<div dojoType="dojo.data.ItemFileReadStore"
|
|
|
117 |
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" />
|
|
|
118 |
<div dojoType="dijit.Tree" store="popStore" labelAttr="name" label="Pop Tarts"></div>';
|
|
|
119 |
|
|
|
120 |
$res .= '</div>';
|
|
|
121 |
return $res ;
|
|
|
122 |
}
|
|
|
123 |
|
|
|
124 |
/** fonction projet_fichiers() - Remplie un noeud avec les fichiers et repertoires
|
|
|
125 |
*
|
|
|
126 |
* Le noeud est passe en reference. Ainsi, cette fonction ne retourne rien mais modifie le tableau des
|
|
|
127 |
* noeuds passe en reference.
|
|
|
128 |
*
|
|
|
129 |
* return void
|
|
|
130 |
*/
|
|
|
131 |
|
|
|
132 |
function projet_fichiers ($noeud, $id_rep, $pere = 0)
|
|
|
133 |
{
|
|
|
134 |
//Recuperation de l'identifiant du repertoire courant
|
|
|
135 |
|
|
|
136 |
//La fonction est appele recursivement quand $pere ne vaut pas null
|
|
|
137 |
//$id_rep prend donc la valeur de $pere transmise par l'appel precedent de la fonction.
|
|
|
138 |
|
|
|
139 |
// Les noms des fichiers graphiques
|
|
|
140 |
$icon = 'folder.gif';
|
|
|
141 |
$expandedIcon = 'folder-expanded.gif';
|
|
|
142 |
|
|
|
143 |
//Requ�te pour r�cup�rer les noms des r�pertoires contenus dans le r�pertoire courant ($id_rep)
|
|
|
144 |
$queryRep = ' SELECT projet_documents.*'.
|
|
|
145 |
' FROM projet_documents'.
|
|
|
146 |
' WHERE projet_documents.pd_pere = '.$pere.
|
|
|
147 |
' AND projet_documents.pd_visibilite = "public" and pd_ce_projet='.$id_rep.' and pd_ce_type=0'.
|
|
|
148 |
' ORDER BY projet_documents.pd_nom ASC' ;
|
|
|
149 |
|
|
|
150 |
$resultRep = $GLOBALS['projet_db']->query($queryRep) ;
|
|
|
151 |
if (DB::isError ($resultRep)) {
|
|
|
152 |
die ('Echec de la requete : '.$queryRep.'<br />'.$resultRep->getMessage()) ;
|
|
|
153 |
}
|
|
|
154 |
|
|
|
155 |
//Stockage des informations sur les r�pertoires contenu dans le r�pertoire courant pour affichage dans un arbre.
|
|
|
156 |
//Et appel r�cursif de la fonction pour examiner le contenu de chaque r�pertoire du r�pertoire courant.
|
|
|
157 |
if ( $resultRep->numRows() != 0 ) {
|
|
|
158 |
while ( $ligneRep = $resultRep->fetchRow(DB_FETCHMODE_OBJECT) ) {
|
|
|
159 |
//Stockage des informations sur le r�pertoire courant
|
|
|
160 |
$noeud1_1 = &$noeud->addItem(new HTML_TreeNode(
|
|
|
161 |
array(
|
|
|
162 |
'text' => trim ($ligneRep->pd_nom),
|
|
|
163 |
'link' => "", 'icon' => $icon,
|
|
|
164 |
'expandedIcon' => $expandedIcon ) ) );
|
|
|
165 |
//Appel r�cursif de fonction courante
|
|
|
166 |
projet_fichiers (&$noeud1_1, $id_rep, $ligneRep->pd_id) ;
|
|
|
167 |
}
|
|
|
168 |
}
|
|
|
169 |
|
|
|
170 |
// Requ�te pour r�cup�rer les fichiers du r�pertoire courant ($id_rep) et leurs informations
|
|
|
171 |
$requete_fichiers = 'SELECT projet_documents.*, gen_type_de_fichier.gtf_type_icone'.
|
|
|
172 |
' FROM projet_documents, gen_type_de_fichier'.
|
|
|
173 |
' WHERE projet_documents.pd_ce_type= gen_type_de_fichier.gtf_id_type'.
|
|
|
174 |
' AND projet_documents.pd_visibilite= "public" ' ;
|
|
|
175 |
if ($pere == 0) {
|
|
|
176 |
$requete_fichiers .= ' AND projet_documents.pd_ce_projet= '.$id_rep.' and pd_pere=0 and pd_ce_type <> 0' ;
|
|
|
177 |
} else {
|
|
|
178 |
$requete_fichiers .= ' AND projet_documents.pd_pere= '.$pere.' and pd_ce_type<>0' ;
|
|
|
179 |
}
|
|
|
180 |
$requete_fichiers .= ' ORDER BY projet_documents.pd_nom ASC' ;
|
|
|
181 |
|
|
|
182 |
$resultat_fichiers = $GLOBALS['projet_db']->query($requete_fichiers) ;
|
|
|
183 |
if (DB::isError ($resultat_fichiers)) {
|
|
|
184 |
die ('Echec de la requete : '.$requete_fichiers.'<br />'.$resultat_fichiers->getMessage()) ;
|
|
|
185 |
}
|
|
|
186 |
|
|
|
187 |
//Stockage des informations sur les fichiers du r�pertoires courant pour affichage dans un arbre
|
|
|
188 |
if ( $resultat_fichiers->numRows() != 0 ) {
|
|
|
189 |
while ( $ligne_fichiers = $resultat_fichiers->fetchRow(DB_FETCHMODE_OBJECT) ) {
|
|
|
190 |
//Ajout de slash devant les caract�res sp�ciaux et suppression des caract�res invisibles en d�but et fin des noms de fichier.
|
|
|
191 |
$lien = trim( $ligne_fichiers->pd_nom );
|
|
|
192 |
$noeud_1_2 = &$noeud->addItem (new HTML_TreeNode (
|
|
|
193 |
array (
|
|
|
194 |
"text" => $lien,
|
|
|
195 |
"link" => PROJET_CHEMIN_FICHIER.$ligne_fichiers->pd_lien,
|
|
|
196 |
'icon' => $ligne_fichiers->gtf_type_icone,
|
|
|
197 |
"linkTarget" => "_blank" ))) ;
|
|
|
198 |
}
|
|
|
199 |
}
|
|
|
200 |
}
|
|
|
201 |
|
|
|
202 |
/* +--Fin du code ----------------------------------------------------------------------------------------+
|
|
|
203 |
*
|
|
|
204 |
* $Log: projet_derniers_telechargements.php,v $
|
|
|
205 |
* Revision 1.4.2.1 2007-05-11 13:59:27 alexandre_tb
|
|
|
206 |
* adaptation a ecouteArbreFichier qui est maintenant appele par papyrus.php
|
|
|
207 |
*
|
|
|
208 |
* Revision 1.4 2007/04/19 09:17:35 alexandre_tb
|
|
|
209 |
* utilisation de dojo pour afficher l arbre des derniers documents
|
|
|
210 |
*
|
|
|
211 |
* Revision 1.3 2005/10/06 08:23:48 alexandre_tb
|
|
|
212 |
* Ajout de commentaires
|
|
|
213 |
*
|
|
|
214 |
*
|
|
|
215 |
*
|
|
|
216 |
* +-- Fin du code ----------------------------------------------------------------------------------------+
|
|
|
217 |
*/
|
|
|
218 |
|
|
|
219 |
?>
|