/trunk/classes/projetControleur.class.php |
---|
20,7 → 20,7 |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: projetControleur.class.php,v 1.36 2007-04-19 15:34:35 neiluj Exp $ |
// CVS : $Id: projetControleur.class.php,v 1.37 2007-06-25 12:15:06 alexandre_tb Exp $ |
/** |
* Application projet |
33,7 → 33,7 |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.36 $ |
*@version $Revision: 1.37 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
48,7 → 48,7 |
include_once 'client/projet/langues/pro_langue_'.PROJET_LANGUE_DEFAUT.'.inc.php' ; |
} |
require_once GEN_CHEMIN_API.'sql/SQL_manipulation.fonct.php' ; |
require_once GEN_CHEMIN_API.'html/HTML_TableFragmenteur.php' ; |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE des constantes | |
101,7 → 101,7 |
define ("PROJETCONTROLEUR_ERREUR_CREATION_REPERTOIRE", -4) ; |
/** |
* Constantes pour définir les droits |
* Constantes pour definir les droits |
* |
*/ |
define ('PROJET_DROIT_ADMINISTRATEUR', 1) ; |
112,8 → 112,8 |
define ('PROJET_DROIT_EN_ATTENTE', 32); |
/** |
* class projetControleur |
* Cette classe sert à lancer les diverses applications du module projet, en |
* fonction des paramètre de l'URL GET ou POST. La méthode principale est run() |
* Cette classe sert a lancer les diverses applications du module projet, en |
* fonction des parametre de l'URL GET ou POST. La methode principale est run() |
*/ |
class projetControleur |
{ |
120,12 → 120,12 |
/*** Attributes: ***/ |
/** |
* Contient l'action du controleur, qui correspond à une action du module projet. |
* Contient l'action du controleur, qui correspond a une action du module projet. |
* @access private |
*/ |
var $_action; |
/** |
* Une connexion à une base de donnée DB. |
* Une connexion a une base de donnee DB. |
* @access private |
*/ |
var $_db; |
143,7 → 143,7 |
var $_url; |
/** |
* L'identifiant du projet sur lequel on travaille. Dans l'action par défaut, cet |
* L'identifiant du projet sur lequel on travaille. Dans l'action par defaut, cet |
* attribut n'a pas de valeur. |
* @access private |
*/ |
150,8 → 150,8 |
var $_id_projet; |
/** |
* L'identifiant du répertoire que l'on est en train d'observer. Il sera passé en |
* paramètre à la classe HTML_listeDocuments. |
* L'identifiant du repertoire que l'on est en train d'observer. Il sera passé en |
* parametre a la classe HTML_listeDocuments. |
* @access private |
*/ |
var $_id_repertoire; |
163,7 → 163,7 |
var $_id_document; |
/** |
* La présentation de la liste des projets, par défaut vide, signifie en liste. |
* La presentation de la liste des projets, par defaut vide, signifie en liste. |
* Valeurs possibles: arbre |
* @access private |
*/ |
170,7 → 170,7 |
var $_presentation; |
/** |
* Le type du projets, par défaut 0, signifie en pas de type particumier. |
* Le type du projets, par defaut 0, signifie en pas de type particumier. |
* Valeurs possibles: 0, 1, 2, 3 ... |
* @access private |
*/ |
177,7 → 177,7 |
var $_type ; |
/** |
* Le tableau des projets à ne pas afficher, ni dans l'arbre, ni dans les listes |
* Le tableau des projets a ne pas afficher, ni dans l'arbre, ni dans les listes |
* @access private |
*/ |
var $_projet_exclu = array(); |
195,7 → 195,7 |
var $_service ; |
/** |
* Méthode principale de la classe. Elle permet d'appeler les méthodes du modules |
* Methode principale de la classe. Elle permet d'appeler les methodes du modules |
* projet en fonction de l'action. |
* |
* @return string |
217,7 → 217,7 |
return $this->messageErreur(PROJETCONTROLEUR_ACTION_INVALIDE) ; |
} |
// Si il n'y a pas d'action mais un projet, on transmet par défaut l'action PROJET_VOIR |
// Si il n'y a pas d'action mais un projet, on transmet par defaut l'action PROJET_VOIR |
if ($this->_id_projet != "" && $this->_action == PROJET_DEFAUT) { |
$this->_action = PROJET_ACTION_VOIR_RESUME ; |
$this->_url->addQueryString (PROJET_VARIABLE_ID_PROJET, $this->_id_projet) ; |
337,7 → 337,7 |
/** |
* Permet de fixer la valeur de l'action pour l'objet projetControleur. Cette action |
* provient généralement de $_POST['action'] ou $_GET['action'] |
* provient generalement de $_POST['action'] ou $_GET['action'] |
* |
* @param int action L'action à passer provient de l'URL. |
* @return void |
393,7 → 393,7 |
include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ; |
$participant = new participe ($this->_db) ; |
// Les entête des tableaux |
// Les entetes des tableaux |
$tableau_label_statut_action = array (PROJET_GERER, PROJET_GERER, PROJET_GERER_FICHIER, PROJET_VOIR_FICHIER, "---") ; |
$auth = $this->_auth->getAuth() ; // Pour raccourcir le code |
404,7 → 404,7 |
} |
/** |
* Renvoie le menu général de l'application projet. Avec différents liens selon le |
* Renvoie le menu general de l'application projet. Avec differents liens selon le |
* statut de l'utilisateur. |
* |
* @return string |
425,7 → 425,7 |
$isAdm = 0 ; $isCoord = 0 ; $isContri = 0 ; |
} |
// Les menus spécifiques aux projets |
// Les menus specifiques aux projets |
if ($this->_id_projet != '') { |
if (!$isCoord) { |
$isCoord = $participant->isCoordinateur($this->_auth->getAuthData(PROJET_CHAMPS_ID), $this->_id_projet, $this->_db) ; |
475,7 → 475,7 |
if (!$isEnAttente) $res .= '<li class="projet_niv2"><a href="'. |
$this->_url->getURL().'">'.PROJET_S_INSCRIRE_AU_PROJET."</a></li>\n" ; |
} |
// L'action gérer les utilisateurs |
// L'action gerer les utilisateurs |
if ($isCoord || $isAdm) { |
$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_VOIR_PARTICIPANT) ; |
$res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_GESTION_UTILISATEUR."</a></li>\n" ; |
484,22 → 484,26 |
//document |
if ($isContri || $isCoord || $isAdm) { |
// On ajoute l id d un repertoire s il existe |
if (isset($this->_id_repertoire)) $this->_url->addQueryString ('id_repertoire', $this->_id_repertoire); |
$res .= '<li class="projet_niv2">'.PROJET_DOCUMENT ; |
// L'action "Mettre un fichier en ligne" |
$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_NOUVEAU_FICHIER) ; |
$res .= '<ul><li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_METTRE_FICHIER."</a></li>\n" ; |
// L'action créer un répertoire |
// L'action creer un repertoire |
$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_NOUVEAU_REPERTOIRE) ; |
$res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_CREER_REP."</a></li>\n" ; |
$res .= '</ul></li>' ; |
$this->_url->removeQueryString('id_repertoire'); |
// Forum |
$res .= '<li class="projet_niv1">'.PROJET_FORUM ; |
$res .= '<ul id="projet_groupe_niv2_for">' ; |
if ($projet->avoirListe()) { |
// On vérifie si l'utilisateur est inscrit ou non à la liste et on ajoute le lien |
// On verifie si l'utilisateur est inscrit ou non a la liste et on ajoute le lien |
//$projet->getListesAssociees(); |
include_once PROJET_CHEMIN_CLASSES.'inscription_liste.class.php'; |
592,7 → 596,7 |
} // end of member function menuGeneral |
/** |
* Renvoie le formulaire de création d'un projet. |
* Renvoie le formulaire de cretion d'un projet. |
* |
* @return string |
* @access public |
632,7 → 636,7 |
$res = PROJET_PROPOSER_PROJET ; |
return $res . $formulaire_projet->toHTML() ; |
} else { |
return 'Veuillez régler les permissions en écriture sur '.PROJET_CHEMIN_FICHIER ; |
return 'Veuillez régler les permissions en écriture sur '.PROJET_CHEMIN_FICHIER ; |
} |
} // end of member function nouveauProjet |
666,7 → 670,7 |
} else { |
return $formulaire_projet->toHTML() ; |
} |
} // end of member function nouveauProjetValidation |
} |
/** |
* Valide le formulaire et appelle la fonction de mise à jour. |
710,15 → 714,15 |
$formulaire_document = new HTML_formulaireDocument('formulaire_document', 'post',preg_replace ("/&/", "&", $this->_url->getURL())) ; |
$formulaire_document->construitFormulaire($action) ; |
if ($action == PROJET_ACTION_MODIFIER) { |
include_once PROJET_CHEMIN_CLASSES.'document.class.php' ; |
$document = new document($this->_id_document, $this->_db, PROJET_CHEMIN_FICHIER, PROJET_CHEMIN_ICONES) ; |
// On affecte dans un tableau les valeurs de chaque champs du formulaire avec le nom de chaque élément de formulaire |
// On affecte dans un tableau les valeurs de chaque champs du formulaire avec le nom de chaque element de formulaire |
// voir HTML_formulaireDocument |
$valeurs_par_defaut = array ('document_nom' => $document->getNomLong(), |
'document_description' => $document->getDescription(), |
'document_visibilite' => $document->getVisibilite()) ; |
// On rajoute un champs caché avec l'identifiant du document |
// On rajoute un champs cache avec l'identifiant du document |
$formulaire_document->addElement ('hidden', 'id_document', $this->_id_document) ; |
$formulaire_document->setDefaults($valeurs_par_defaut) ; |
} else { |
729,7 → 733,7 |
} // end of member function nouveauFichier |
/** |
* Présente un formulaire pour déplacer un fichier |
* Presente un formulaire pour deplacer un fichier |
* |
* |
*/ |
738,12 → 742,13 |
$projet = new projet ($this->_db, $this->_id_projet) ; |
$res = '<h1>'.PROJET_PROJET.' : '.$projet->getTitre().'</h1>' ; |
include_once PROJET_CHEMIN_CLASSES.'document.class.php' ; |
$document = new document($this->_id_document, $this->_db, PROJET_CHEMIN_FICHIER) ; |
// On traite le cas où l'on vient de déplacer un fichier |
// On traite le cas ou l'on vient de deplacer un fichier |
if (isset ($_POST['projet_repertoire'])) { |
if (!$document -> deplace ($_POST['projet_repertoire'], $projet->getNomRepertoire())) { |
echo 'echec du Déplacement' ; |
return 'echec du déplacement' ; |
} |
return ; |
} |
751,6 → 756,8 |
$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_COUPER) ; |
$HTML_formulaireCouperColler = new HTML_formulaireCouperColler('formulaire_couper_coller', 'post', str_replace('&', '&', $this->_url->getURL())) ; |
$HTML_formulaireCouperColler -> construitFormulaire($projet->getListeRepertoireHierarchisee()) ; |
$tab = $projet->getListeRepertoireHierarchisee(); |
//$res .= '<pre>'.print_r ($tab, true).'</pre>'; |
return $res.$HTML_formulaireCouperColler->toHTML('<img src="'.PROJET_CHEMIN_ICONES.$document->getCheminIcone().'" /> '.$document->getNomLong()); |
} |
/** |
778,7 → 785,7 |
} // end of member function nouveauFichier |
/** |
* Renvoie le formulaire de création d'un répertoire. |
* Renvoie le formulaire de creation d'un repertoire. |
* |
* @return void |
* @access public |
804,7 → 811,7 |
*/ |
function nouveauFichierValidation( ) |
{ |
// création de l'objet projet courant |
// creation de l'objet projet courant |
include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ; |
$projet = new projet ($this->_db, $this->_id_projet) ; |
if (isset($_SESSION['formulaire_document']) && $_SESSION['formulaire_document'] == 'valide') { |
815,24 → 822,31 |
$formulaire_document = new HTML_formulaireDocument('formulaire_document', 'post', preg_replace ("/&/", "&", $this->_url->getURL())) ; |
$formulaire_document->construitFormulaire() ; |
if ($formulaire_document->validate()) { |
// Création d'un objet document vide |
// Creation d'un objet document vide |
$document = new document ("", $this->_db) ; |
// avant d'appeler la méthode enregistrerSQL, il faut indiquer l'identifiant du projet et l'identifiant du propriétaire |
// avant d'appeler la methode enregistrerSQL, il faut indiquer l'identifiant du projet et l'identifiant du proprietaire |
$document->setIdProjet ($this->_id_projet) ; |
$document->setIdProprietaire ($this->_auth->getAuthData (PROJET_CHAMPS_ID)) ; |
// On passe aussi le numéro de répertoire s'il existe |
// On passe aussi le numero de repertoire s'il existe |
if ($this->_id_repertoire != '') $document->setIdRepertoire($this->_id_repertoire) ; |
if ($this->_id_repertoire == 0) $document->setIdRepertoire(0) ; |
//$GLOBALS['log'] .= '<br>this->_id_repertoire: '.$this->_id_repertoire.'<br>'; |
$chemin_upload = $document->calculeCheminUploaded($projet->getNomRepertoire()) ; |
//$GLOBALS['log'] .= '<br>chemin_upload: '.$chemin_upload.'<br>'; |
//$GLOBALS['log'] .= 'projet->getRepertoire() : '.$projet->getNomRepertoire().'<br>'; |
$id_document = SQL_obtenirNouveauId($this->_db, 'projet_documents', 'pd_id') ; |
$nouveau_nom = $document->genereNouveauNom($projet->getNomRepertoire(), $_FILES['fichier']['name'], $id_document); |
if (!$document->upload (PROJET_CHEMIN_FICHIER.$projet->getNomRepertoire().'/'.$chemin_upload)) { |
echo 'Echec de l\'upload' ; |
trigger_error('echec d\'upload !', E_USER_ERROR) ; |
if (!$document->upload (PROJET_CHEMIN_FICHIER.$chemin_upload.'/'.$nouveau_nom)) { |
return 'Echec de l\'upload<br />'. |
'Fichier source : '. $_FILES['fichier']['name']; |
'Fichier destination : '.PROJET_CHEMIN_FICHIER.$projet->getNomRepertoire().'/'.$chemin_upload.'/'.$nouveau_nom ; |
} |
$document->enregistrerSQL($formulaire_document->getSubmitValues(), $projet->getNomRepertoire().'/'.$chemin_upload) ; |
//$document->enregistrerSQL($formulaire_document->getSubmitValues(), $projet->getNomRepertoire().'/'.$chemin_upload) ; |
$retour = $document->enregistrerSQL($formulaire_document->getSubmitValues(), $nouveau_nom); |
// On place a 1 la colonne p_avoir_document |
if (!$projet->avoirDocument()) $projet->setAvoirDocument(true); |
841,6 → 855,7 |
} else { |
return $formulaire_document->toHTML() ; |
} |
return $retour; |
unset ($projet) ; |
} // end of member function nouveauFichierValidation |
852,7 → 867,7 |
*/ |
function modifierFichier( ) |
{ |
// création de l'objet projet courant |
// creation de l'objet projet courant |
include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ; |
$projet = new projet ($this->_db, $this->_id_projet) ; |
$this->_url->addQueryString (PROJET_VARIABLE_ACTION, PROJET_ACTION_MODIFIER_V) ; |
860,9 → 875,9 |
$formulaire_document = new HTML_formulaireDocument('formulaire_document', 'post',preg_replace ("/&/", "&", $this->_url->getURL())) ; |
$formulaire_document->construitFormulaire(PROJET_ACTION_MODIFIER_V) ; |
if ($formulaire_document->validate()) { |
// Création d'un objet document vide |
// Creation d'un objet document vide |
$document = new document ($this->_id_document, $this->_db) ; |
// On passe aussi le numéro de répertoire s'il existe |
// On passe aussi le numero de répertoire s'il existe |
if ($this->_id_repertoire != '') $document->setIdRepertoire($this->_id_repertoire) ; |
$document->majSQL($formulaire_document->getSubmitValues()) ; |
} else { |
879,7 → 894,7 |
*/ |
function nouveauRepertoireValidation( ) |
{ |
// création de l'objet projet courant |
// creation de l'objet projet courant |
include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ; |
$projet = new projet ($this->_db, $this->_id_projet) ; |
889,22 → 904,26 |
$formulaire_repertoire->setType ('repertoire') ; |
$formulaire_repertoire->construitFormulaire() ; |
if ($formulaire_repertoire->validate()) { |
// Création d'un objet |
// Creation d'un objet |
$document = new document ("", $this->_db) ; |
// avant d'appeler la méthode enregistrerSQL, il faut indiquer l'identifiant du projet et l'identifiant du propriétaire |
// avant d'appeler la methode enregistrerSQL, il faut indiquer l'identifiant du projet et l'identifiant du proprietaire |
$document->setIdProjet ($this->_id_projet) ; |
$document->setIdProprietaire ($this->_auth->getAuthData (PROJET_CHAMPS_ID)) ; |
// On passe aussi le numéro de répertoire s'il existe |
// On passe aussi le numero de repertoire s'il existe |
if ($this->_id_repertoire != '') $document->setIdRepertoire($this->_id_repertoire) ; |
if ($this->_id_repertoire == 0) $document->setIdRepertoire(0) ; |
$chemin_upload = $document->calculeCheminUploaded($projet->getNomRepertoire()) ; |
$nom_repertoire = $document->enregistrerSQL($formulaire_repertoire->getSubmitValues(), $projet->getNomRepertoire()) ; |
$lien = $document->enregistrerSQL($formulaire_repertoire->getSubmitValues(), $projet->getNomRepertoire()) ; |
// La creation du repertoire sur le disque, chemin / nom_repertoire_projet / id_repertoire |
$GLOBALS['log'] .= '<br />chemin_upload:'.$chemin_upload.'<br />'; |
$GLOBALS['log'] .= '<br />mkdir('.PROJET_CHEMIN_FICHIER.$chemin_upload.$nom_repertoire.')<br />'; |
if (!mkdir (PROJET_CHEMIN_FICHIER.$chemin_upload.'/'.$nom_repertoire)) { |
// La création du répertoire sur le disque, chemin / nom_repertoire_projet / id_repertoire |
if (!mkdir (PROJET_CHEMIN_FICHIER.$lien)) { |
$document->suppressionSQL() ; |
return $this->messageErreur(PROJETCONTROLEUR_ERREUR_CREATION_REPERTOIRE).'<br />'.PROJET_CHEMIN_FICHIER.$lien ; |
return $this->messageErreur(PROJETCONTROLEUR_ERREUR_CREATION_REPERTOIRE).'<br />'. |
PROJET_CHEMIN_FICHIER.$chemin_upload.'/'.$nom_repertoire; |
} |
// On place a 1 la colonne p_avoir_document |
if (!$projet->avoirDocument()) $projet->setAvoirDocument(true); |
911,11 → 930,11 |
} else { |
return $formulaire_repertoire->toHTML() ; |
} |
} // end of member function nouveauFichierValidation |
} |
/** |
* Permet de spécifier au controleur sur quel projet l'on travaille. |
* Permet de specifier au controleur sur quel projet l'on travaille. |
* |
* @param int id_projet L'identifiant du projet. |
* @return void |
936,11 → 955,11 |
function accueilProjet( ) |
{ |
$res = '' ; |
// création de l'objet projet courant |
// creation de l'objet projet courant |
include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ; |
$projet = new projet ($this->_db, $this->_id_projet) ; |
// récupération de la liste des documents associés |
// recuperation de la liste des documents associés |
$liste_documents = $projet->getListesDocuments(PROJET_CHEMIN_FICHIER, PROJET_CHEMIN_ICONES) ; |
// création de la vue liste de document, on nettoie l'url |
948,7 → 967,7 |
include_once PROJET_CHEMIN_CLASSES.'HTML_listeDocuments.class.php' ; |
$vue_liste_document = new HTML_listeDocuments($this->_url, false, $this->_id_repertoire) ; |
// réglage de paramètres de la vue |
// reglage de parametres de la vue |
$vue_liste_document->setAction (array ("couper" => PROJET_ACTION_COUPER, "modifier" => PROJET_ACTION_MODIFIER, "supprimer" => PROJET_SUPPRESSION_FICHIER)) ; |
$vue_liste_document->setCheminIcones(PROJET_CHEMIN_ICONES) ; |
956,7 → 975,7 |
$tableau_navigation = document::getCheminIdRepertoire($this->_id_repertoire, $this->_db) ; |
$vue_liste_document->setCheminNavigation ($tableau_navigation) ; |
// vérification des droits de l'utilisateur |
// verification des droits de l'utilisateur |
$entete_liste = array (PROJET_FICHIERS_NOM, PROJET_FICHIERS_TAILLE, PROJET_FICHIERS_CREE_LE) ; |
if ($this->_auth->getAuth()) { |
1131,10 → 1150,10 |
} // end of member function accueilProjet |
/** |
* Permet de spécifier quel répertoire, dans la vue de document afficher. Il sera |
* passé en paramètre à la classe HTML_listeDocuments. |
* Permet de specifier quel repertoire, dans la vue de document afficher. Il sera |
* passe en parametre a la classe HTML_listeDocuments. |
* |
* @param int id_repertoire L'identifiant du répertoire à afficher. |
* @param int id_repertoire L'identifiant du repertoire a afficher. |
* @return void |
* @access public |
*/ |
1141,7 → 1160,7 |
function setIdRepertoire( $id_repertoire ) |
{ |
$this->_id_repertoire = $id_repertoire ; |
} // end of member function setIdRepertoire |
} |
/** |
* Supprime un projet et tout ce qui va avec. |
1204,7 → 1223,7 |
*/ |
function envoyerUnMailValidation( ) |
{ |
// Vérifications |
// Verifications |
if (isset($_SESSION['formulaire_mail']) && $_SESSION['formulaire_mail'] == 'valide') { |
return include_once PROJET_CHEMIN_APPLI.'actions/forums.php' ; |
} |
1214,7 → 1233,7 |
$formulaire_mail = new HTML_formulaireMail('formulaire_mail', 'post', preg_replace ("/&/", "&", $this->_url->getURL())) ; |
$formulaire_mail->construitFormulaire() ; |
if ($formulaire_mail->validate()) { |
// création de l'objet projet courant |
// creation de l'objet projet courant |
include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ; |
$projet = new projet ($this->_db, $this->_id_projet) ; |
$info_liste = $projet->getListesAssociees() ; |
1229,7 → 1248,7 |
$entetes['Message-ID'] = md5(time()).'@'.$projet->_listes_associes[0]->getNom().'.'.$projet->_listes_associes[0]->getDomaine() ; |
$entetes['reply-to'] = $projet->_listes_associes[0]->getAdresseEnvoi() ; |
$entetes['Content-Type'] = 'text/plain' ; |
// Traitement de la reference s'il s'agit d'une réponse |
// Traitement de la reference s'il s'agit d'une reponse |
if (isset ($_POST['messageid'])) { |
$entetes['In-Reply-To'] = $_POST['messageid'] ; |
} |
1259,7 → 1278,7 |
$formulaire_liste->setDefaults(array('domaine_liste' => PROJET_DOMAINE_LISTE)) ; |
$formulaire_liste->updateElementAttr('domaine_liste', array('readonly' => 'readonly')) ; |
return $res.$formulaire_liste->toHTML() ; |
} // end of member function formulaireListe |
} |
/** |
* Transmet au serveur la demande de création d'une nouvelle liste. |
1269,13 → 1288,14 |
*/ |
function nouvelleListeValidation( ) |
{ |
// Vérifications |
// Verifications |
$this->_url->addQueryString (PROJET_VARIABLE_ACTION, PROJET_ACTION_NOUVELLE_LISTE_V ); |
include_once PROJET_CHEMIN_CLASSES.'HTML_formulaireListe.class.php' ; |
$formulaire_liste = new HTML_formulaireListe('formulaire_liste', 'post', preg_replace ("/&/", "&", $this->_url->getURL())) ; |
$formulaire_liste->construitFormulaire() ; |
if ($formulaire_liste->validate()) { |
// création de l'objet liste_discussion |
// creation de l'objet liste_discussion |
include_once PROJET_CHEMIN_CLASSES.'liste_discussion.class.php'; |
$liste = new liste_discussion('', $this->_db) ; |
// On vérifie que le nom de la liste soit unique |
1289,14 → 1309,14 |
$projet = new projet ($this->_db, $this->_id_projet) ; |
$projet->ajouterListe($liste) ; |
// Création de la liste |
// Creation de la liste |
$resultat_creation = file_get_contents (PROJET_SERVEUR_VPOPMAIL.'/creation_liste.php?domaine='. |
$liste->getDomaine().'&liste='.$liste->getNom().'¶metres=aBiud') ; |
// Ajout du modérateur |
// Ajout du moderateur |
$resultat_ajout_moderateur = file_get_contents (PROJET_SERVEUR_VPOPMAIL.'/ajout_moderateur.php?domaine='. |
$liste->getDomaine().'&liste='.$liste->getNom().'&mail='.$this->_auth->getUserName()) ; |
// Ajout du modérateur en tant qu'utilisateur |
// Ajout du moderateur en tant qu'utilisateur |
$resultat_ajout_utilisateur = file_get_contents (PROJET_SERVEUR_VPOPMAIL.'/ajout_abonne.php?domaine='. |
$liste->getDomaine().'&liste='.$liste->getNom().'&mail='.$this->_auth->getUserName()) ; |
1436,7 → 1456,7 |
} // end of member function voirParticipants |
/** |
* Inscrit un utilisateur à un projet avec le statut observateur |
* Inscrit un utilisateur a un projet avec le statut observateur |
* |
* @return void |
* @access public |
1481,7 → 1501,7 |
} else { |
$participant->setStatut(3, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ; |
$tableau_coordinateur = $participant->getCoordinateurs($this->_id_projet) ; |
#include_once PROJET_CHEMIN_API.'pear/Mail.php'; |
$entetes['From'] = $this->_auth->getUserName(); |
$entetes['To'] = ''; |
$entetes['Subject'] = PROJET_DEMANDE_INSCRIPTION ; |
1514,11 → 1534,12 |
} |
if ($this->_presentation != 'arbre') { |
return include_once PROJET_CHEMIN_APPLI.'actions/resume.php' ; |
return '<h1>'.$projet->getTitre().'</h1>'. |
str_replace ('nom_du_projet', $projet->getTitre(), PROJET_LAIUS_INSCRIPTION_MODERE); |
} else { |
$this->_action = PROJET_ACTION_VOIR_RESUME; |
} |
return ; |
return PROJET_LAIUS_INSCRIPTION_MODERE; |
} |
$res = '<h1>'.PROJET_INSCRIPTION_PROJET.' : '.$projet->getTitre().'</h1>'."\n" ; |
if ($projet->avoirListe()) $res .= '<h2>'.PROJET_MESSAGE_LISTE.'</h2>'."\n" ; |
1531,7 → 1552,7 |
} // end of member function inscriptionProjet |
/** |
* Inscrit l'utilisateur logué à la liste dont le paraître est en post. |
* Inscrit l'utilisateur loggue a la liste dont le parametre est en post. |
* |
* @return void |
* @access public |
1793,9 → 1814,9 |
{ |
$messageErreur = array ( |
PROJETCONTROLEUR_ACTION_INVALIDE => "Action non valide", |
PROJETCONTROLEUR_ERREUR_SUPPRESSION_REPERTOIRE => "Impossible de supprimer le répertoire", |
PROJETCONTROLEUR_PAS_DE_DOCUMENT_SELECTIONNE => 'Pas de fichier sélectionn°', |
PROJETCONTROLEUR_ERREUR_CREATION_REPERTOIRE => 'Impossible de créer le répertoire' |
PROJETCONTROLEUR_ERREUR_SUPPRESSION_REPERTOIRE => "Impossible de supprimer le répertoire", |
PROJETCONTROLEUR_PAS_DE_DOCUMENT_SELECTIONNE => 'Pas de fichier sélectionné', |
PROJETCONTROLEUR_ERREUR_CREATION_REPERTOIRE => 'Impossible de créer le répertoire' |
) ; |
return '<p class="erreur">'.$messageErreur[$valeur].'</p>' ; |
} // end of member function messageErreur |
/trunk/classes/ezmlmAccessObject.class.php |
---|
6,34 → 6,34 |
// Ce logiciel est un programme informatique servant à gérer du contenu et des |
// applications web. |
// Ce logiciel est régi par la licence CeCILL soumise au droit français et |
// Ce logiciel est regi par la licence CeCILL soumise au droit francais et |
// respectant les principes de diffusion des logiciels libres. Vous pouvez |
// utiliser, modifier et/ou redistribuer ce programme sous les conditions |
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA |
// de la licence CeCILL telle que diffusee par le CEA, le CNRS et l'INRIA |
// sur le site "http://www.cecill.info". |
// En contrepartie de l'accessibilité au code source et des droits de copie, |
// de modification et de redistribution accordés par cette licence, il n'est |
// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, |
// seule une responsabilité restreinte pèse sur l'auteur du programme, le |
// titulaire des droits patrimoniaux et les concédants successifs. |
// En contrepartie de l'accessibilite au code source et des droits de copie, |
// de modification et de redistribution accordes par cette licence, il n'est |
// offert aux utilisateurs qu'une garantie limitee. Pour les memes raisons, |
// seule une responsabilite restreinte pese sur l'auteur du programme, le |
// titulaire des droits patrimoniaux et les concedants successifs. |
// A cet égard l'attention de l'utilisateur est attirée sur les risques |
// associés au chargement, à l'utilisation, à la modification et/ou au |
// développement et à la reproduction du logiciel par l'utilisateur étant |
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à |
// manipuler et qui le réserve donc à des développeurs et des professionnels |
// avertis possédant des connaissances informatiques approfondies. Les |
// utilisateurs sont donc invités à charger et tester l'adéquation du |
// logiciel à leurs besoins dans des conditions permettant d'assurer la |
// sécurité de leurs systèmes et ou de leurs données et, plus généralement, |
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. |
// A cet egard l'attention de l'utilisateur est attiree sur les risques |
// associes au chargement, a l'utilisation, a la modification et/ou au |
// developpement et a la reproduction du logiciel par l'utilisateur etant |
// donne sa specificite de logiciel libre, qui peut le rendre complexe a |
// manipuler et qui le reserve donc a des developpeurs et des professionnels |
// avertis possedant des connaissances informatiques approfondies. Les |
// utilisateurs sont donc invites a charger et tester l'adequation du |
// logiciel a leurs besoins dans des conditions permettant d'assurer la |
// securite de leurs systemes et ou de leurs donnees et, plus generalement, |
// a l'utiliser et l'exploiter dans les memes conditions de securite. |
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez |
// pris connaissance de la licence CeCILL, et que vous en avez accepté les |
// Le fait que vous puissiez acceder a cet en-tete signifie que vous avez |
// pris connaissance de la licence CeCILL, et que vous en avez accepte les |
// termes. |
// ---- |
// CVS : $Id: ezmlmAccessObject.class.php,v 1.4 2007-04-19 15:34:35 neiluj Exp $ |
// CVS : $Id: ezmlmAccessObject.class.php,v 1.5 2007-06-25 12:15:06 alexandre_tb Exp $ |
/** |
* Application projet |
46,7 → 46,7 |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2006 |
*@version $Revision: 1.4 $ |
*@version $Revision: 1.5 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
91,10 → 91,11 |
'messages_auteur', |
'messages_mois', |
'messages_thread', |
'supprimer'); |
'supprimer', |
'liste_abonnes'); |
/** |
* l'action sélectionnée |
* l'action selectionnee |
*/ |
var $action ; |
109,7 → 110,7 |
var $url ; |
/** |
* L'identifiant du répertoire |
* L'identifiant du repertoire |
*/ |
var $identifiant_repertoire ; |
120,17 → 121,17 |
var $identifiant_message; |
/** |
* L'identifiant du répertoire |
* L'identifiant du repertoire |
*/ |
var $_numeroRepertoireSuivant ; |
/** |
* L'identifiant du répertoire |
* L'identifiant du repertoire |
*/ |
var $hash_auteur ; |
/** |
* Le mois à afficher |
* Le mois a afficher |
*/ |
var $mois ; |
147,9 → 148,8 |
var $chemin_fichier_xml; |
/** |
* Creation de l'objet d'accès |
* Creation de l'objet d'acces |
* |
* |
*/ |
function ezmlmAccessObject ($action, $domaine, $liste, $langue = 'fr', $url = '') { |
197,6 → 197,7 |
function handleElement_ezmlm_messages_thread ($name, $attribs, $data) { echo $data ; } |
function handleElement_ezmlm_liste_abonnes ($name, $attribs, $data) { echo $data ; } |
/** |
* Choix de l'action |
* |
204,11 → 205,11 |
* 'calendrier_messages' |
* |
* @access public |
* @param string une action qui doit être supporté |
* @param string une action qui doit etre supporté |
*/ |
function setAction($action) { |
// vérification de l'action |
// verification de l'action |
if (!in_array($action, $this->actions_supportees)) { |
return raiseError(EZMLM_ACCESS_OBJECT_ACTION_NON_SUPPORTEE) ; |
} |
217,6 → 218,9 |
// Libere les ressources (XML_Parser::free) |
$this->free(); |
// On vide l url |
//$this->url = ''; |
$this->chemin_fichier_xml = ''; |
// Charge la nouvelle action |
$this->load() ; |
} |
246,11 → 250,11 |
} |
/** |
* Précise un message à extraire |
* Precise un message a extraire |
* |
* On indique le numéro de répertoire ezmlm et le numéro du message |
* @param integer le numéro du répertoire |
* @param integer le numéro du message |
* On indique le numero de repertoire ezmlm et le numero du message |
* @param integer le numero du repertoire |
* @param integer le numero du message |
* |
*/ |
260,9 → 264,9 |
} |
/** |
* Précise un auteur |
* Precise un auteur |
* |
* On indique le numéro de répertoire ezmlm et le numéro du message |
* On indique le numero de repertoire ezmlm et le numero du message |
* @param string le hash d'un auteur |
* |
*/ |
271,9 → 275,9 |
$this->hash_auteur = $hash_auteur; |
} |
/** |
* Précise un mois |
* Precise un mois |
* |
* On indique le numéro de répertoire ezmlm et le numéro du message |
* On indique le numero de repertoire ezmlm et le numéro du message |
* @param string le hash d'un auteur |
* |
*/ |
298,17 → 302,30 |
function parse() |
{ |
if (substr(phpversion(), 0, 1) == '5') { |
$xml = new SimpleXMLElement(file_get_contents($this->chemin_fichier_xml)); |
echo utf8_decode ($xml); |
//try { |
$xml = new SimpleXMLElement($this->chemin_fichier_xml, null, true); |
switch ($this->action) { |
case 'calendrier_messages' : echo utf8_decode($xml->ezmlm_calendrier_messages); |
case 'calendrier_messages' :echo utf8_decode($xml); |
echo utf8_decode($xml->ezmlm_calendrier_messages); |
break; |
case 'message': |
echo utf8_decode ($xml); |
$this->_numeroRepertoirePrecedent = $xml->message_precedent['numero_repertoire']; |
$this->_numeroRepertoireSuivant = $xml->message_suivant['numero_repertoire']; |
$this->_numeroFichierSuivant = $xml->message_suivant['numero']; |
$this->_numeroFichierPrecedent = $xml->message_precedent['numero']; |
break; |
default : |
echo utf8_decode($xml); |
} |
$error = 'Erreur dans l\'accès au fichier:<br />'.$this->chemin_fichier_xml.'<br />'; |
$error = ''; |
// throw new Exception($error); |
//} |
//catch (Exception $e) { |
// echo $e->getMessage(). "<br />"; |
//} |
} else { |
return parent::parse(); |
} |
/trunk/classes/projet.class.php |
---|
19,7 → 19,7 |
// | License along with this library; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: projet.class.php,v 1.8 2007-04-19 15:34:35 neiluj Exp $ |
// CVS : $Id: projet.class.php,v 1.9 2007-06-25 12:15:06 alexandre_tb Exp $ |
/** |
* Application projet |
* |
31,7 → 31,7 |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.8 $ |
*@version $Revision: 1.9 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
371,42 → 371,43 |
} |
/** |
* Renvoie la liste des documents associés sous forme d'un tableau, avec les |
* Renvoie la liste des documents associes sous forme d'un tableau, avec les |
* informations afférentes. 0 => "nom (cliquable)" |
"Taille" |
"Date |
* de création" "Proriàtaire" "Visibilità" "Action |
* de creation" "Prorietaire" "Visibilite" "Action |
* (cliquable)" |
* |
* @param visibilite visibilite Si visibilite est à prive, tous les fichiers sont renvoyés ainsi qu'une entrée |
* pour indiquer la visibilité du document. |
* @param visibilite visibilite Si visibilite est prive, tous les fichiers sont renvoyes ainsi qu'une entree |
* pour indiquer la visibilite du document. |
* @return Array |
* @access public |
*/ |
function getListesDocuments( $chemin, $chemin_icones = "icones/" ) |
function getListesDocuments( $chemin, $chemin_icones = "icones/", $id_repertoire = '' ) |
{ |
// On réalise une requete sur projet_documents avec une jointure sur l'annuaire |
// et sur gen_type_de_fichier pour envoyer un résultat complet. |
// On realise une requete sur projet_documents avec une jointure sur l'annuaire |
// et sur gen_type_de_fichier pour envoyer un resultat complet. |
// On exclue les fichiers racines cad pd_pere is null |
$requete = "select pd_id from projet_documents where pd_ce_projet=".$this->_id_projet.' order by pd_nom' ; |
$requete = "select pd_id from projet_documents where pd_ce_projet=".$this->_id_projet ; |
if ($id_repertoire != '') $requete .= ' and pd_pere='.$id_repertoire; |
if ($id_repertoire == 0) $requete .= ' and pd_pere=0'; |
$requete .= ' order by pd_nom' ; |
$resultat = $this->_db->query ($requete) ; |
if (DB::isError($resultat)) { |
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ; |
return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ; |
} |
$tableau_document = array() ; |
// Un compteur |
$i = 0 ; |
while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) { |
array_push ($tableau_document, new document ($ligne->pd_id, &$this->_db, $chemin, $chemin_icones)) ; |
} |
return $tableau_document ; |
} // end of member function getListesDocuments |
} |
/** |
* Renvoie un tableau avec tous les répertoires d'un projet, imbriqué. ['rep1'], |
* Renvoie un tableau avec tous les repertoires d'un projet, imbrique. ['rep1'], |
* ['rep2'] => array (['rep21'], ['rep22']), etc . |
* |
* @return Array |
414,21 → 415,56 |
*/ |
function getListeRepertoireHierarchisee( ) |
{ |
// On ne prend que les répertoires |
$requete = "select pd_id from projet_documents where pd_ce_projet=".$this->_id_projet.' and pd_ce_type=0 order by pd_nom' ; |
// On ne prend que les repertoires |
$requete = "select pd_id, pd_pere, pd_nom from projet_documents where pd_ce_projet=".$this->_id_projet.' and pd_ce_type=0 order by pd_nom' ; |
$resultat = $this->_db->query ($requete) ; |
if (DB::isError($resultat)) { |
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ; |
} |
$tableau_document = array() ; |
/* |
while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) { |
array_push ($tableau_document, new document ($ligne->pd_id, $this->_db)); |
} |
*/ |
$tableau = array(); |
$tab = array(); |
return $tableau_document ; |
while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) { |
array_push ($tableau, array ('id' => $ligne->pd_id, |
'id_pere' => $ligne->pd_pere, |
'fils' => array(), |
'label' => $ligne->pd_nom)); |
} |
// la $tableau reste un tableau de valeur a plat |
$i = 0; |
foreach ($tableau as $noeud) { |
// On teste si le noeud est racine si oui on l ajoute a l arbre sinon on ne l ajoute pas |
if ($noeud['id_pere'] == 0) { |
$tab[$i] = $noeud; |
$this->construireArbre($tab[$i], $tableau) ; |
} |
$i++; |
} |
return $tab; |
} // end of member function getListeRepertoireHierarchisee |
function construireArbre(&$noeud, $tableau) { |
$j = 0; |
foreach ($tableau as $element) { |
// pour chaque element on teste |
if ($element['id_pere'] == $noeud['id']) { |
$noeud['fils'][$j]= $element ; |
$this->construireArbre($noeud['fils'][$j],$tableau); |
} |
$j++; |
} |
} |
/** |
* Renvoie un tableau comprenant tous les objets projet de la base. |
440,7 → 476,7 |
function getTousLesProjets(&$objetDB, $exclu = '') |
{ |
$sql = ''; |
if (count($this->_projet_exclu)) { |
if (isset ($this->_projet_exclu) && count($this->_projet_exclu)) { |
$sql = 'where p_id not in ('; |
foreach ($this->_projet_exclu as $valeur) { |
$sql .= $valeur.',' ; |
/trunk/classes/HTML_formulaireCouperColler.class.php |
---|
19,7 → 19,7 |
// | License along with this library; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: HTML_formulaireCouperColler.class.php,v 1.2 2005-09-27 16:39:25 alexandre_tb Exp $ |
// CVS : $Id: HTML_formulaireCouperColler.class.php,v 1.3 2007-06-25 12:15:06 alexandre_tb Exp $ |
/** |
* Application projet |
* |
31,7 → 31,7 |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.2 $ |
*@version $Revision: 1.3 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
39,6 → 39,8 |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
require_once 'HTML/QuickForm.php' ; |
/** |
* class HTML_formulaireCouperColler |
* |
58,20 → 60,15 |
$squelette->setElementTemplate( '<li style="list-style-type: none;">'."\n".'{element}'."\n".'</li>'."\n"); |
$this->addElement('radio', 'projet_repertoire', '', PROJET_RACINE, 0) ; |
if (count ($tableau_repertoire)) { |
$this->addElement('html', '<ul>') ; |
foreach ($tableau_repertoire as $cle => $valeur) { |
if ($valeur->_id_pere ==0) { |
$this->addElement ('radio', 'projet_repertoire', '', $valeur->getNomLong(), $valeur->getIdDocument()) ; |
$sous_tableau = array() ; |
foreach ($tableau_repertoire as $valeur_fils) { |
if ($valeur_fils->_id_pere == $valeur->getIdDocument()) { |
array_push ($sous_tableau, $valeur_fils) ; |
foreach ($tableau_repertoire as $valeur) { |
if ($valeur['id_pere'] ==0) { |
$this->addElement ('radio', 'projet_repertoire', '', $valeur['label'], $valeur['id']) ; |
if (count ($valeur['fils'])) $this->construireArbreRadio ($valeur['fils']); |
} |
} |
if (count ($sous_tableau)) $this->construitLigneRepertoire($sous_tableau) ; |
} |
} |
$this->addElement('html', '</ul>') ; |
} |
88,7 → 85,14 |
$this->addGroup($buttons, null, null, ' '); |
} // end of member function construitFormulaire |
function construireArbreRadio(&$noeud) { |
foreach ($noeud as $val) { |
$this->addElement('html', '<ul>') ; |
$this->construitLigneRepertoire($val) ; |
if (count($val['fils'])) $this->construireArbreRadio ($val['fils']) ; |
$this->addElement('html', '</ul>') ; |
} |
} |
/** |
* |
* |
96,11 → 100,9 |
* |
*/ |
function construitLigneRepertoire($tableau) { |
function construitLigneRepertoire($noeud) { |
$this->addElement('html', '<ul>') ; |
foreach ($tableau as $valeur) { |
$this->addElement('radio', 'projet_repertoire', '', $valeur->getNomLong(), $valeur->getIdDocument()) ; |
} |
$this->addElement('radio', 'projet_repertoire', '', $noeud['label'], $noeud['id']) ; |
$this->addElement('html', '</ul>') ; |
} |
/** |
127,6 → 129,6 |
$res .= '<h2>'.PROJET_CHOISISSEZ_REPERTOIRE.'</h2>' ; |
$res .= HTML_QuickForm::toHTML() ; |
return $res ; |
} // end of member function toHTML |
} // end of HTML_formulaireCouperColler |
} |
} |
?> |
/trunk/classes/ezmlm-php-2.0/services_vpopmail/derniers_messages.php |
---|
13,8 → 13,12 |
ob_start() ; |
if (!$info->show_recentmsgs()) { |
if (!$info) return 'Les fichiers de la liste ne sont pas visible sur le serveur' ; |
if (!$info) { |
ob_end_clean() ; |
echo 'Les fichiers de la liste ne sont pas visible sur le serveur' ; |
exit(); |
} |
} |
$html = ob_get_contents() ; |
ob_end_clean() ; |
/trunk/classes/ezmlm-php-2.0/services_vpopmail/message.php |
---|
14,6 → 14,7 |
$num_message = $actionargs[1] ; |
if ($id_rep =='' || $num_message == '') exit(); |
$html = $message->display ($id_rep.'/'.$num_message) ; |
include_once 'XML/Util.php' ; |
20,6 → 21,17 |
$xml = XML_Util::getXMLDeclaration('1.0', 'ISO-8859-15', 'no') ; |
if (!$html) { |
$xml .= XML_Util::createStartElement ('erreur') ; |
$xml .= 'Le message n\'existe pas'; |
$xml .= XML_Util::createEndElement('erreur') ; |
header ('Content-type: text/xml'); |
echo $xml; |
exit(); |
} |
$xml .= XML_Util::createStartElement ('ezmlm_message', array('domaine' => $domaine, 'liste' => $liste, 'langue' => $langue)) ; |
$xml .= "\n".'<![CDATA[ '.$html.']]>'; |
/trunk/classes/ezmlm-php-2.0/services_vpopmail/liste_abonnes.php |
---|
1,17 → 1,78 |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// +------------------------------------------------------------------------------------------------------+ |
// | PHP version 4.1 | |
// +------------------------------------------------------------------------------------------------------+ |
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) | |
// +------------------------------------------------------------------------------------------------------+ |
// | This library is free software; you can redistribute it and/or | |
// | modify it under the terms of the GNU General Public | |
// | License as published by the Free Software Foundation; either | |
// | version 2.1 of the License, or (at your option) any later version. | |
// | | |
// | This library is distributed in the hope that it will be useful, | |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
// | General Public License for more details. | |
// | | |
// | You should have received a copy of the GNU General Public | |
// | License along with this library; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: liste_abonnes.php,v 1.3 2007-06-25 12:15:06 alexandre_tb Exp $ |
/** |
* Application projet |
* |
* Le service liste abonne |
* |
*@package projet |
//Auteur original : |
*@author Alexandre Granier <alexandre@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.3 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
$repertoire = '/home/vpopmail/domains/'.$domaine.'/'.$liste ; |
exec ('ezmlm-list '.$repertoire, $output, $ret) ; |
/* Le service attend 2 parametres |
* domaine string le nom de domaine de la liste |
* liste string le nom de la liste |
* renvoie string une chaine xml avec la liste des mails des inscrits |
* |
* <ezmlm_liste_abonnes domaine="dom" liste="list"> |
* <email>toto@tsdd...</email> |
* <email>qsdf@fdsq ..</email> |
* ... |
* </ezmlm_liste_abonnes> |
*/ |
include_once 'XML/Util.php' ; |
$xml = XML_Util::getXMLDeclaration('1.0', 'ISO-8859-15', 'no') ; |
// Les 2 parametres doivent etres present |
if (!isset($_GET['domaine']) || !isset($_GET['liste'])) { |
$xml .= XML_Util::createTag('erreur', 'Vous devez spécifier un domaine et une liste'); |
} else { |
$repertoire = '/home/vpopmail/domains/'.$domaine.'/'.$liste ; |
exec ('ezmlm-list '.$repertoire, $output, $ret) ; |
$xml .= XML_Util::createStartElement ('ezmlm_liste_abonnes', array('domaine' => $domaine, 'liste' => $liste)) ; |
foreach ($output as $mail) $xml .= XML_Util::createTag('email', '', $mail) ; |
$xml .= XML_Util::createEndElement('ezmlm_liste_abonnes') ; |
} |
$xml .= XML_Util::createEndElement('ezmlm_liste_abonnes') ; |
header ('Content-type: text/xml'); |
echo $xml ; |
?> |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* $Log: not supported by cvs2svn $ |
* Revision 1.2.2.1 2007-05-11 09:45:35 alexandre_tb |
* ajout de commentaire et de la gestion des erreurs |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/classes/ezmlm-php-2.0/ezmlm-msgdisplay.php |
---|
1,5 → 1,5 |
<?php |
// $Id: ezmlm-msgdisplay.php,v 1.4 2007-04-19 15:34:35 neiluj Exp $ |
// $Id: ezmlm-msgdisplay.php,v 1.5 2007-06-25 12:15:07 alexandre_tb Exp $ |
// |
// ezmlm-msgdisplay.php - ezmlm-php v2.0 |
// -------------------------------------------------------------- |
148,7 → 148,7 |
$numero = substr($decimal, -2) ; |
$fichier_suivant = $numero ; |
} else { |
if ($fichier_suivant < 9)$fichier_suivant = '0'.$fichier_suivant; |
if ($fichier_suivant <= 9)$fichier_suivant = '0'.$fichier_suivant; |
} |
break; |
/trunk/classes/document.class.php |
---|
19,7 → 19,7 |
// | License along with this library; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: document.class.php,v 1.7 2007-04-19 09:22:29 alexandre_tb Exp $ |
// CVS : $Id: document.class.php,v 1.8 2007-06-25 12:15:06 alexandre_tb Exp $ |
/** |
* Application projet |
* |
31,7 → 31,7 |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.7 $ |
*@version $Revision: 1.8 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
116,6 → 116,8 |
* |
*/ |
var $_pd_lien ; |
var $nom_fichier ; |
/** |
* |
* |
128,6 → 130,7 |
{ |
$this->_db = $objetDB ; |
$this->_chemin_icone = $chemin_icones ; |
if ($id_document != "") { |
$requete = "select * from projet_documents where pd_id=".$id_document ; |
$resultat = $this->_db->query ($requete) ; |
136,8 → 139,11 |
} |
$ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ; |
if ($resultat->numRows()>0) { |
fichier::fichier($chemin.$ligne->pd_lien, $this->_db) ; |
$this->nom_fichier = $ligne->pd_lien; |
$this->_id_projet = $ligne->pd_ce_projet; |
$this->_id = $ligne->pd_id ; |
fichier::fichier($chemin.$this->getChemin(), $this->_db) ; |
if (is_object ($this->_type_mime)) $this->_type_mime->setCheminIcone ($chemin_icones) ; |
$this->_id_proprietaire = $ligne->pd_ce_utilisateur ; |
$this->_nom_long = $ligne->pd_nom ; |
145,6 → 151,7 |
$this->_date_mise_a_jour = $ligne->pd_date_de_mise_a_jour ; |
$this->_description = $ligne->pd_description ; |
$this->_pd_lien = $ligne->pd_lien; |
if ($this->_isRacine($ligne->pd_pere)) { |
$this->_id_pere = 0 ; |
} else { |
237,7 → 244,7 |
if ($this->isRepertoire()) { |
return $this->_chemin_icone."repertoire.gif" ; |
} else { |
return $this->_type_mime->getCheminIcone() ; |
if (is_object ($this->_type_mime)) return $this->_type_mime->getCheminIcone() ; |
} |
} // end of member function getCheminIcone |
295,18 → 302,25 |
* @return string |
* @access public |
*/ |
function getChemin( ) |
function getChemin($prefixe = '') |
{ |
if ($this->isRepertoire()) { |
return $this->_id ; |
} else { |
return $this->_chemin ; |
$chemin_repertoire_entre_racine_et_fichier = ''; |
include_once PROJET_CHEMIN_CLASSES.'projet.class.php'; |
$projet = new projet ($this->_db, $this->_id_projet); |
// l arborescence des repertoires |
$tableau_navigation = $this->getPath($this->_id) ; |
if (is_array ($tableau_navigation))$tableau_navigation = array_reverse($tableau_navigation); |
for ($i = 0; $i < count ($tableau_navigation); $i++) { |
$chemin_repertoire_entre_racine_et_fichier.= $tableau_navigation[$i]."/"; |
} |
} // end of member function getChemin |
return $projet->getNomRepertoire().'/'.$chemin_repertoire_entre_racine_et_fichier.$this->nom_fichier ; |
} |
/** |
* Renvoie pour le répertoire courant, les identifiants et les noms de tous les |
* Renvoie pour le repertoire ou le fichier courant, les identifiants et les noms de tous les |
* répertoires père jusqu'à la racine. 0 => ['id'], ['nom'] 1 => [id'], ['nom'] etc. |
* En commençant par la racine et en descendant. Pour la racine id vaut "" et nom |
* vaut "". |
315,11 → 329,12 |
* @return Array |
* @access public |
*/ |
function getCheminIdRepertoire( $id_repertoire, &$objetDB ) |
function getCheminIdRepertoire( $id_doc, &$objetDB ) |
{ |
if ($id_repertoire == "") $id_repertoire = 0; |
if ($id_doc == "") $id_doc = 0; |
// on commence par rechercher le répertoire père, dans la base de donnée |
$requete = "select pd_pere, pd_nom, pd_id from projet_documents where pd_id=$id_repertoire" ; |
$requete = 'select pd_pere, pd_nom, pd_id, pd_ce_type from projet_documents where pd_id='.$id_doc ; |
$resultat = $objetDB->query ($requete) ; |
if (DB::isError($resultat)) { |
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ; |
328,30 → 343,34 |
$chemin_rep_id_nom = array() ; |
if ($resultat->numRows()>0) { |
if ($ligne->pd_pere == 0) { |
$tab = array ($ligne->pd_id, $ligne->pd_nom) ; |
return $tab ; |
return ; //array ($ligne->pd_pere); |
} |
else { |
$requete_pere = "select pd_id, pd_nom from projet_documents where pd_id=$ligne->pd_pere" ; |
$resultat_pere = $objetDB->query ($requete_pere) ; |
if (DB::isError($resultat_pere)) { |
die ("Echec de la requete<br />".$resultat_pere->getMessage()."<br />".$resultat_pere->getDebugInfo()) ; |
array_push ($chemin_rep_id_nom, $ligne->pd_pere) ; |
$tab = document::getCheminIdRepertoire($ligne->pd_pere, $objetDB) ; |
$chemin_rep_id_nom = array_merge ($tab, $chemin_rep_id_nom) ; |
} |
$ligne_pere = $resultat_pere->fetchRow (DB_FETCHMODE_OBJECT) ; |
array_push ($chemin_rep_id_nom, $ligne->pd_id,$ligne->pd_nom) ; |
$tab = document::getCheminIdRepertoire($ligne_pere->pd_id, $objetDB) ; |
$chemin_rep_id_nom = array_merge ($chemin_rep_id_nom, $tab) ; |
return array_reverse($chemin_rep_id_nom); |
} |
function getPath( $id_doc) |
{ |
if ($id_doc == "") $id_doc = 0; |
// on commence par rechercher le répertoire père, dans la base de donnée |
$requete = 'select pd_pere, pd_nom, pd_id, pd_ce_type from projet_documents where pd_id='.$id_doc ; |
$resultat = $GLOBALS['projet_db']->query ($requete) ; |
if (DB::isError($resultat)) { |
return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ; |
} |
$tabl_resultat = array() ; |
for ($i = 0; $i < count ($chemin_rep_id_nom); $i++) { |
$val1 = array_pop ($chemin_rep_id_nom) ; |
$val2 = array_pop ($chemin_rep_id_nom) ; |
array_push ($tabl_resultat, $val2, $val1) ; |
$ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ; |
$chemin_rep_id_nom = array() ; |
if ($resultat->numRows()>0) { |
if ($ligne->pd_pere == 0) { |
return; |
} |
return $tabl_resultat ; |
} // end of member function getCheminIdRepertoire |
array_push ($chemin_rep_id_nom, $ligne->pd_pere) ; |
$chemin_rep_id_nom = array_merge ($chemin_rep_id_nom, document::getPath($ligne->pd_pere) ); |
} |
return $chemin_rep_id_nom; |
} |
/** |
* Calcule le chemin vers le fichier ou le répertoire uploadé |
* renvoie un chaine de la forme dir1/dir2/fichier.ext |
360,27 → 379,25 |
*/ |
function calculeCheminUploaded ($radical) { |
// On recherche le chemin vers le fichier, en fonction du répertoire |
// ici on renomme le fichier à partir du dernier ID de la table gen_voiraussi |
$requete_document = "select pd_id from projet_documents order by pd_id desc limit 1,1" ; |
$resultat_document = $this->_db->query($requete_document) ; |
$ligne_document = $resultat_document->fetchRow(DB_FETCHMODE_OBJECT) ; |
$nouveau_nom = $ligne_document->pd_id + 1 ; |
if (isset($_FILES['fichier']['name'])) { |
$extension = preg_replace("/^([^\.]+)\.(\w+$)/", "\\2", $_FILES['fichier']['name']) ; |
} |
$nouveau_nom = $radical."_".$nouveau_nom.".".$extension ; |
if ($this->_id_pere != '') { |
// On appelle la méthode getCheminIdRepertoire qui renvoie un tableau avec la liste |
// des répertoires jusqu'à la racine, on enlève la racine ($i = 0) et on concatène |
// toutes les entrées pour obtenir le chemin jusqu'au répertoire courant |
$chemin_repertoire_entre_racine_et_repertoire_a_cree = '' ; |
$tableau_navigation = $this->getCheminIdRepertoire($this->_id_pere, $this->_db) ; |
for ($i = 0; $i < count ($tableau_navigation); $i+=2) $chemin_repertoire_entre_racine_et_repertoire_a_cree.= $tableau_navigation[$i]."/"; |
$chemin = $chemin_repertoire_entre_racine_et_repertoire_a_cree.$nouveau_nom ; |
$doc_pere = new document ($this->_id_pere, $this->_db); |
return $doc_pere->getChemin(); |
$tableau_navigation = $this->getPath($this->_id_pere) ; |
for ($i = 0; $i < count ($tableau_navigation); $i++) $chemin_repertoire_entre_racine_et_repertoire_a_cree.= $tableau_navigation[$i]."/"; |
$chemin = $chemin_repertoire_entre_racine_et_repertoire_a_cree ; |
} else { |
// Si l'on est à la racine du projet, le chemin est le nom du fichier |
return $nouveau_nom ; |
// Si l'on est à la racine du projet, le chemin vide |
return $radical ; |
} |
return $chemin ; |
} |
423,7 → 440,8 |
for ($i = 0; $i < count ($tableau_navigation); $i+=2) $chemin_repertoire_entre_racine_et_repertoire_a_cree.= $tableau_navigation[$i]."/"; |
$pd_lien .= $chemin_repertoire_entre_racine_et_repertoire_a_cree ; |
} |
$pd_lien .= SQL_obtenirNouveauId($this->_db, 'projet_documents', 'pd_id')."/" ; |
//$pd_lien .= SQL_obtenirNouveauId($this->_db, 'projet_documents', 'pd_id')."/" ; |
$pd_lien = SQL_obtenirNouveauId($this->_db, 'projet_documents', 'pd_id')."/" ; |
} |
$id = SQL_obtenirNouveauId($this->_db, 'projet_documents', 'pd_id') ; |
441,6 → 459,11 |
return $pd_lien; |
} |
function genereNouveauNom ($radical, $ancien_nom, $id) { |
$extension = preg_replace("/^([^\.]+)\.(\w+$)/", "\\2", $ancien_nom) ; |
$nouveau_nom = $radical."_".$id.".".$extension ; |
return $nouveau_nom; |
} |
/** |
* Met à jour une ligne dans la table projet_document |
485,24 → 508,28 |
*/ |
function deplace( $repertoire_destination, $repertoire_projet ) |
{ |
// On récupère les informations du répertoire cible |
if ($repertoire_destination != 0) { |
$repertoire_cible = new document ($repertoire_destination, $this->_db) ; |
$rep = $repertoire_cible->_pd_lien ; |
$chemin_rep_cible = $repertoire_cible->getChemin(); |
} else { |
$rep = $repertoire_projet.'/' ; |
// Si le repertoire destination est la racine cad id =0 |
// on cree un document qui aura pour chemin le repertoire du projet |
include_once PROJET_CHEMIN_CLASSES.'projet.class.php'; |
$projet = new projet ($this->_db, $this->_id_projet); |
$chemin_rep_cible = $projet->getNomRepertoire().'/'; |
} |
// On récupère le nom du fichier |
$decoupe = explode ('/', $this->_pd_lien) ; |
$nom_fichier = $decoupe[count($decoupe)-1] ; |
$requete = 'update projet_documents set pd_lien="'.$rep.$nom_fichier.'", pd_pere='.$repertoire_destination.' where pd_id='.$this->_id ; |
$nom_fichier = $this->_pd_lien ; |
$requete = 'update projet_documents set pd_pere='.$repertoire_destination.' where pd_id='.$this->_id ; |
$resultat = $this->_db->query ($requete) ; |
if (DB::isError($resultat)) { |
echo ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ; |
return false ; |
} |
return fichier::deplace ($this->_chemin, PROJET_CHEMIN_FICHIER.$rep.$nom_fichier) ; |
//echo $this->_chemin.'<br>'.PROJET_CHEMIN_FICHIER.$chemin_rep_cible.$nom_fichier; |
return fichier::deplace ($this->_chemin, PROJET_CHEMIN_FICHIER.$chemin_rep_cible.$nom_fichier) ; |
} // end of member function deplace |
614,6 → 641,17 |
return round ($taille / $diviseur, $precision).' '.$unite; |
} |
/** |
* Renvoie une liste de document, enfant du document courant |
* qui doit etre un repertoire bien sur |
* |
* @return mixed un tableau de document |
* @access public |
*/ |
function getDocumentsEnfant() { |
} |
} // end of document |
/trunk/classes/HTML_listeParticipants.class.php |
---|
19,7 → 19,7 |
// | License along with this library; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: HTML_listeParticipants.class.php,v 1.3 2006-01-11 10:32:09 alexandre_tb Exp $ |
// CVS : $Id: HTML_listeParticipants.class.php,v 1.4 2007-06-25 12:15:06 alexandre_tb Exp $ |
/** |
* Application projet |
* |
31,7 → 31,7 |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.3 $ |
*@version $Revision: 1.4 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
96,7 → 96,7 |
* @return void |
* @access public |
*/ |
function construitListe( $elements, $tableau_statut = '' ) |
function construitListe( $elements, $tableau_statut = '', &$projet ) |
{ |
for ($i = 0; $i < count ($elements) ; $i++) { |
// L'identifiant de l'utilisateur est le premier élément du tableau |
113,6 → 113,8 |
$this->_url->removeQueryString('statut') ; |
} |
// La colonne avec l inscription a la liste de discussion |
$this->addRow ($elements[$i]) ; |
// mise à jour du champs mail en l'entourant par la balise mailto |
/trunk/classes/HTML_listeDocuments.class.php |
---|
19,7 → 19,7 |
// | License along with this library; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: HTML_listeDocuments.class.php,v 1.8 2007-04-19 15:34:35 neiluj Exp $ |
// CVS : $Id: HTML_listeDocuments.class.php,v 1.9 2007-06-25 12:15:06 alexandre_tb Exp $ |
/** |
* Application projet |
* |
31,7 → 31,7 |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.8 $ |
*@version $Revision: 1.9 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
81,7 → 81,7 |
var $_chemin_icone = "icones/"; |
/** |
* L'identifiant du répertoire que l'on est en train d'observer. |
* L'identifiant du repertoire que l'on est en train d'observer. |
* @access private |
*/ |
var $_id_repertoire; |
98,7 → 98,13 |
* @access private |
*/ |
var $_auth ; |
/** |
* le style d affichage |
* @access private |
*/ |
var $_mode_affichage ; |
/** |
* |
* |
* @param bool utilise_pager Indique l'utilisation ou non du Pager. |
114,6 → 120,7 |
if (is_object($auth)) { |
$this->_auth = $auth ; |
} |
$this->_mode_affichage = 'standart'; |
} // end of member function HTML_listeDocuments |
/** |
123,7 → 130,7 |
* @return void |
* @access public |
*/ |
function __construct( &$url, $utilise_pager = false, $id_repertoire = 0, $auth = '' ) |
function __construct( &$url, $utilise_pager = false, $id_repertoire = 0, $auth = '', $id_projet = '' ) |
{ |
$this->HTML_listeDocuments($url, $utilise_pager, $id_repertoire, $auth); |
139,50 → 146,53 |
function construitEntete( $tableau_label ) |
{ |
$this->addRow ($tableau_label, NULL, 'TH') ; |
} // end of member function construitEntete |
} |
/** |
* |
* |
* @param Array tableau_label Un tableau à deux dimensions avec les labels à afficher dans le corps du |
* @param Array tableau_label Un tableau a deux dimensions avec les labels a afficher dans le corps du |
* tableau. |
* @return void |
* @access public |
*/ |
function construitListe( &$tableau_document, $droits, $mode = '', $objetDB = '') |
function construitListe( &$tableau_document, $droits, $mode = '', $objetDB = '', $id_projet = '') |
{ |
if ($this->_mode_affichage == 'standart') { |
$compteur = 0 ;$class[0] = 'ligne_impaire'; $class[1] = 'ligne_paire' ; |
for ($i = 0; $i < count ($tableau_document) ; $i++) { |
// première condition : est-ce que le fichier a pour père le répertoire courant, si oui on l'affiche |
// Premiere condition : est-ce que le fichier a pour pere le repertoire courant, si oui on l'affiche |
if ($tableau_document[$i]->_id_pere == $this->_id_repertoire || $mode == 'ignore_repertoire') { |
// d'abord l'image |
$icone = '<img src="'.$tableau_document[$i]->getCheminIcone().'" />' ; |
// Si le document est un répertoire, on ajoute id_repertoire au lien. |
// Si le document est un repertoire, on ajoute id_repertoire au lien. |
if ($tableau_document[$i]->isRepertoire()) { |
$this->_url->addQueryString ('id_repertoire', $tableau_document[$i]->getChemin()) ; |
$this->_url->addQueryString ('id_repertoire', $tableau_document[$i]->getIdDocument()) ; |
$lien = $this->_url->getURL() ; |
} else { // Si c'est un fichier, on fait un lien direct |
$lien = $tableau_document[$i]->getChemin() ; |
$this->_url->addQueryString('id_document', $tableau_document[$i]->getIdDocument()); |
$this->_url->addQueryString('service', 'telechargement'); |
$lien = $this->_url->getURL() ; |
$this->_url->removeQueryString('service'); |
} |
// pour éviter des effets de bords, on enlève id_repertoire de l'url |
// dans le cas d'un répertoire, pour les fichiers on le laisse pour |
// qu'après une opération, on reste dans le répertoire où a eu lieu l'opération |
// pour eviter des effets de bords, on enleve id_repertoire de l'url |
// dans le cas d'un repertoire, pour les fichiers on le laisse pour |
// qu'apres une operation, on reste dans le repertoire ou a eu lieu l'operation |
if ($tableau_document[$i]->isRepertoire()) $this->_url->removeQueryString('id_repertoire') ; |
// on insère le lien |
// on insere le lien |
$lien_nom = '<a href="'.$lien.'">'.$icone.' '.$tableau_document[$i]->getNomLong()."</a>\n" ; |
// Pour la taille on divise par 1000 et on écrit Ko |
$taille = round($tableau_document[$i]->getTaille() / 1000).' Ko' ; |
$taille = $tableau_document[$i]->getTailleFormatee(); |
// Récupération de l'auteur |
// Recuperation de l'auteur |
include_once PROJET_CHEMIN_CLASSES.'annuaire.class.php' ; |
$annuaire = new annuaire($objetDB, array('table' => PROJET_ANNUAIRE, 'identifiant' => PROJET_CHAMPS_ID, |
'nom' => PROJET_CHAMPS_NOM, 'prenom' => PROJET_CHAMPS_PRENOM)) ; |
$annuaire->setId($tableau_document[$i]->_id_proprietaire) ; |
$nom_prenom = $annuaire->getInfo('nom').' '.$annuaire->getInfo('prenom') ; |
// On rempli le tableau à donner en paramètre à HTML_Table avec toutes ces infos, une par colonne |
// On rempli le tableau a donner en parametre a HTML_Table avec toutes ces infos, une par colonne |
$ligne_tableau = array($lien_nom, $taille, $nom_prenom, $tableau_document[$i]->getDateMiseAJour()) ; |
if ($droits <= PROJET_DROIT_CONTRIBUTEUR) array_push ($ligne_tableau, $tableau_document[$i]->getVisibilite()) ; |
203,13 → 213,17 |
if ($compteur == 2) $compteur = 0 ; |
} |
$this->_url->removeQueryString('id_document'); |
$this->updateColAttributes(0, array ('class' => 'col1')) ; |
} else { |
} |
} // end of member function construitListe |
/** |
* |
* |
* @param Array actions Un tableau avec les valeurs d'actions comme clé. "couper", modifier", |
* @param Array actions Un tableau avec les valeurs d'actions comme cle. "couper", modifier", |
* "supprimer". |
* @return void |
* @access public |
217,11 → 231,24 |
function setAction( $actions ) |
{ |
$this->_actions = $actions ; |
} // end of member function setAction |
} |
/** |
* |
* |
* @param string le mode, valeur possible standart ou ajax |
* @return void |
* @access public |
*/ |
function setModeAffichage( $mode ) |
{ |
$this->_mode_affichage = $mode ; |
} |
/** |
* |
* |
* @param string chemin Le chemin vers les icones couper, coller ... |
* @return void |
* @access public |
229,17 → 256,18 |
function setCheminIcones( $chemin ) |
{ |
$this->_chemin_icone = $chemin ; |
} // end of member function setCheminIcones |
} |
/** |
* Surcharge de l'opération de la classe mère. Ajoute la navigation dans les |
* répertoires. |
* Surcharge de l'operation de la classe mere. Ajoute la navigation dans les |
* repertoires. |
* |
* @return string |
* @access public |
*/ |
function toHTML( ) |
function toHTML($id_projet = '', $droits) |
{ |
if ($this->_mode_affichage == 'standart') { |
$chemin_navig = "" ; |
if ($this->_id_repertoire != "") { |
$this->_url->removeQueryString(PROJET_VARIABLE_ID_REPERTOIRE) ; |
246,9 → 274,10 |
$chemin_navig = "<p>" ; |
$chemin_navig .= "<a href=\"".$this->_url->getURL()."\">".PROJET_RACINE."</a>\n" ; |
$this->_url->addQueryString(PROJET_VARIABLE_ID_REPERTOIRE, $this->_id_repertoire) ; |
for ($i = 0; $i < count ($this->_chemin_navigation); $i+=2) { |
for ($i = 0; $i < count ($this->_chemin_navigation); $i++) { |
$chemin_navig .= "> " ; |
$nom = $this->_chemin_navigation[$i+1] ; |
$doc = new document ($this->_chemin_navigation[$i], $GLOBALS['projet_db']); |
$nom = $doc->getNomLong() ; |
$this->_url->addQueryString ('id_repertoire', $this->_chemin_navigation[$i]) ; |
$chemin_navig .= "<a href=\"".$this->_url->getURL()."\">".$nom."</a>\n" ; |
} |
258,6 → 287,28 |
if ($this->getRowCount() == 1 && $this->_id_repertoire == '') { |
return '<div>'.PROJET_PAS_DE_DOCUMENTS.'</div>'."\n"; |
} |
} else { |
GEN_stockerFichierScript('dojo', 'api/js/dojo/dojo.js', 'text/javascript'); |
GEN_stockerFichierScript('dojoScriptProjet', 'client/projet/js/arbreDocument.js'); |
$res = '' ; |
$RCPUrl = PROJET_CHEMIN_APPLI.'services/ecouteArbreFichier.php?id_projet='.$id_projet; |
$this->_url->addQueryString(PROJET_VARIABLE_SERVICE, 'ecouteArbreFichier'); |
$RCPUrl = $this->_url->getURL(); |
// Le noeud racine |
if ($droits <= PROJET_DROIT_CONTRIBUTEUR) { |
$tree = '<div dojoType="Tree" DNDMode="between" selector="treeSelector" DNDAcceptTypes="bandTree" widgetId="bandTree" controller="treeController" eventNames="moveTo:nodeRemoved">'; |
} else { |
$tree = '<div dojoType="Tree" selector="treeSelector" DNDAcceptTypes="bandTree" widgetId="bandTree" controller="treeController">'; |
} |
$res .= '<div dojoType="TreeLoadingController" RPCUrl="'.$RCPUrl.'" widgetId="treeController" DNDController="create"></div> |
<div dojoType="TreeSelector" widgetId="treeSelector"></div>'.$tree. |
'<div dojoType="TreeNode" title="Racine" widgetId="rootNode" objectId="root" isFolder="true"></div></div>'; |
} |
return $res ; |
} // end of member function toHTML |
264,7 → 315,7 |
/** |
* |
* |
* @param Array tableau_navigation Un tableau contenant les identifiants et les noms des répertoires. 0 => ["id"], |
* @param Array tableau_navigation Un tableau contenant les identifiants et les noms des repertoires. 0 => ["id"], |
* ["nom"] etc. |
* @return void |
* @access public |
275,7 → 326,7 |
} // end of member function setCheminNavigation |
/** |
* Affiche la légende des actions du module "documents" |
* Affiche la legende des actions du module "documents" |
* |
* @return string |
* @access public |
287,11 → 338,11 |
$res .= "<p><img src=\"".$this->_chemin_icone."/modif.png\" title=\"modifier\" alt=\"modifier\"> ".PROJET_LEGENDE_MODIFIE."</p>\n" ; |
$res .= "<p><img src=\"".$this->_chemin_icone."/trash.gif\" title=\"supprimer\" alt=\"supprimer\"> ".PROJET_LEGENDE_SUPPR."</p>\n" ; |
return $res ; |
} // end of member function affLegende |
} |
/** |
* Renvoie le chemin HTML, depuis le répertoire courant jusqu'à la racine. |
* Renvoie le chemin HTML, depuis le repertoire courant jusqu'a la racine. |
* |
* @return string |
* @access private |
301,13 → 352,11 |
$path = "" ; |
return $path ; |
} // end of member function _getCheminHTML |
} |
/** |
* Renvoie une chaine contenant le code html des icones des actions possibles sur un |
* fichier, c'est à dire couper, modifier, supprimer. |
* fichier, c'est a dire couper, modifier, supprimer. |
* |
* @return string |
* @access private |
318,7 → 367,7 |
$this->_url->addQueryString (PROJET_VARIABLE_ACTION, $this->_actions["couper"]) ; |
$couper = ' '.PROJET_FICHIER_COUPER ; |
if (!$document->isRepertoire()) $couper = '<a href="'.$this->_url->getURL().'">'.$couper.'</a>' ; |
$couper = '<a href="'.$this->_url->getURL().'">'.$couper.'</a>' ; |
$this->_url->addQueryString (PROJET_VARIABLE_ACTION, $this->_actions["modifier"]) ; |
$modifier = '<a href="'.$this->_url->getURL().'">'.PROJET_FICHIER_MODIFIER.'</a> ' ; |
/trunk/classes/fichier.class.php |
---|
19,7 → 19,7 |
// | License along with this library; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: fichier.class.php,v 1.6 2007-04-19 09:25:50 alexandre_tb Exp $ |
// CVS : $Id: fichier.class.php,v 1.7 2007-06-25 12:15:06 alexandre_tb Exp $ |
/** |
* Application projet |
* |
31,7 → 31,7 |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.6 $ |
*@version $Revision: 1.7 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
163,9 → 163,7 |
*/ |
function deplace( $origine, $destination ) |
{ |
if (copy ($origine, $destination )) { |
if (unlink($origine)) return true ; |
} |
if (rename ($origine, $destination )) return true ; |
return false ; |
} // end of member function deplace |