Line 18... |
Line 18... |
18 |
// | You should have received a copy of the GNU General Public |
|
18 |
// | You should have received a copy of the GNU General Public |
|
19 |
// | License along with this library; if not, write to the Free Software |
|
19 |
// | License along with this library; if not, write to the Free Software |
|
20 |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
20 |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
21 |
// +------------------------------------------------------------------------------------------------------+
|
21 |
// +------------------------------------------------------------------------------------------------------+
|
Line 22... |
Line 22... |
22 |
|
22 |
|
Line 23... |
Line 23... |
23 |
// CVS : $Id: projetControleur.class.php,v 1.42 2008-05-21 14:36:12 alexandre_tb Exp $
|
23 |
// CVS : $Id: projetControleur.class.php,v 1.43 2008-08-25 15:06:59 alexandre_tb Exp $
|
24 |
|
24 |
|
25 |
/**
|
25 |
/**
|
26 |
* Application projet
|
26 |
* Application projet
|
Line 31... |
Line 31... |
31 |
//Auteur original :
|
31 |
//Auteur original :
|
32 |
*@author Alexandre Granier <alexandre@tela-botanica.org>
|
32 |
*@author Alexandre Granier <alexandre@tela-botanica.org>
|
33 |
//Autres auteurs :
|
33 |
//Autres auteurs :
|
34 |
*@author Aucun
|
34 |
*@author Aucun
|
35 |
*@copyright Tela-Botanica 2000-2004
|
35 |
*@copyright Tela-Botanica 2000-2004
|
36 |
*@version $Revision: 1.42 $
|
36 |
*@version $Revision: 1.43 $
|
37 |
// +------------------------------------------------------------------------------------------------------+
|
37 |
// +------------------------------------------------------------------------------------------------------+
|
38 |
*/
|
38 |
*/
|
Line 39... |
Line 39... |
39 |
|
39 |
|
40 |
// +------------------------------------------------------------------------------------------------------+
|
40 |
// +------------------------------------------------------------------------------------------------------+
|
Line 108... |
Line 108... |
108 |
define ('PROJET_DROIT_COORDINATEUR', 2) ;
|
108 |
define ('PROJET_DROIT_COORDINATEUR', 2) ;
|
109 |
define ('PROJET_DROIT_PROPRIETAIRE', 4) ;
|
109 |
define ('PROJET_DROIT_PROPRIETAIRE', 4) ;
|
110 |
define ('PROJET_DROIT_CONTRIBUTEUR', 8) ;
|
110 |
define ('PROJET_DROIT_CONTRIBUTEUR', 8) ;
|
111 |
define ('PROJET_DROIT_AUCUN', 16) ;
|
111 |
define ('PROJET_DROIT_AUCUN', 16) ;
|
112 |
define ('PROJET_DROIT_EN_ATTENTE', 32);
|
112 |
define ('PROJET_DROIT_EN_ATTENTE', 32);
|
- |
|
113 |
|
- |
|
114 |
/** Constante pour les notifications
|
- |
|
115 |
* Messages envoyes par la systeme pour prevenir
|
- |
|
116 |
* les utilisateurs de certaines action
|
- |
|
117 |
*/
|
- |
|
118 |
|
- |
|
119 |
define ('PROJET_NOTIFICATION_DEMANDE_INSCRIPTION', 1);
|
- |
|
120 |
define ('PROJET_NOTIFICATION_ACCEPTATION_INSCRIPTION', 2);
|
- |
|
121 |
define ('PROJET_NOTIFICATION_INSCRIPTION_NOUVELLE', 3); // Pour le coordinateur quand quelqu un s inscrit au projet
|
- |
|
122 |
define ('PROJET_NOTIFICATION_DESINSCRIPTION_PROJET', 4);
|
- |
|
123 |
define ('PROJET_NOTIFICATION_NOUVEAU_DOC', 5);
|
- |
|
124 |
|
113 |
/**
|
125 |
/**
|
114 |
* class projetControleur
|
126 |
* class projetControleur
|
115 |
* Cette classe sert a lancer les diverses applications du module projet, en
|
127 |
* Cette classe sert a lancer les diverses applications du module projet, en
|
116 |
* fonction des parametre de l'URL GET ou POST. La methode principale est run()
|
128 |
* fonction des parametre de l'URL GET ou POST. La methode principale est run()
|
117 |
*/
|
129 |
*/
|
Line 312... |
Line 324... |
312 |
$this->_action = PROJET_ACTION_VOIR_RESUME ;
|
324 |
$this->_action = PROJET_ACTION_VOIR_RESUME ;
|
313 |
break ;
|
325 |
break ;
|
314 |
case PROJET_ACTION_SUPPRIMER_WIKI : $retour .= $this->supprimerWiki();
|
326 |
case PROJET_ACTION_SUPPRIMER_WIKI : $retour .= $this->supprimerWiki();
|
315 |
$this->_action = PROJET_ACTION_VOIR_RESUME ;
|
327 |
$this->_action = PROJET_ACTION_VOIR_RESUME ;
|
316 |
break ;
|
328 |
break ;
|
317 |
case PROJET_ACTION_INSCRIPTION_LISTE : $retour .= $this->inscriptionListe() ;
|
329 |
case PROJET_ACTION_INSCRIPTION_LISTE : $message_retour = $this->inscriptionListe() ;
|
318 |
$this->_action = PROJET_ACTION_VOIR_FORUM ;
|
330 |
$this->_action = PROJET_ACTION_VOIR_FORUM ;
|
319 |
break ;
|
331 |
break ;
|
320 |
case PROJET_ACTION_DESINSCRIPTION_LISTE : $retour .= $this->desinscriptionListe() ;
|
332 |
case PROJET_ACTION_DESINSCRIPTION_LISTE : $message_retour = $this->desinscriptionListe() ;
|
321 |
$this->_action = PROJET_ACTION_VOIR_FORUM ;
|
333 |
$this->_action = PROJET_ACTION_VOIR_FORUM ;
|
322 |
break ;
|
334 |
break ;
|
323 |
case PROJET_ACTION_REFERENCER_LISTE : $retour .= $this->referencerListeExterne() ;
|
335 |
case PROJET_ACTION_REFERENCER_LISTE : $retour .= $this->referencerListeExterne() ;
|
324 |
break ;
|
336 |
break ;
|
325 |
case PROJET_ACTION_REFERENCER_LISTE_V : $retour .= $this->referencerListeExterneValidation() ;
|
337 |
case PROJET_ACTION_REFERENCER_LISTE_V : $retour .= $this->referencerListeExterneValidation() ;
|
Line 378... |
Line 390... |
378 |
$this->_url = $urlObjet ;
|
390 |
$this->_url = $urlObjet ;
|
379 |
}
|
391 |
}
|
380 |
} // end of member function projetControleur
|
392 |
} // end of member function projetControleur
|
Line 381... |
Line 393... |
381 |
|
393 |
|
382 |
/**
|
394 |
/**
|
383 |
* Renvoie la liste des projets auquel participe la personne loguée, avec son
|
395 |
* Renvoie la liste des projets auquel participe la personne logguee, avec son
|
384 |
* statut et un lien vers l'action pour gérer le projet.
|
396 |
* statut et un lien vers l'action pour gerer le projet.
|
385 |
*
|
397 |
*
|
386 |
* @return string
|
398 |
* @return string
|
387 |
* @access public
|
399 |
* @access public
|
388 |
*/
|
400 |
*/
|
Line 505... |
Line 517... |
505 |
|
517 |
|
506 |
// On verifie si l'utilisateur est inscrit ou non a la liste et on ajoute le lien
|
518 |
// On verifie si l'utilisateur est inscrit ou non a la liste et on ajoute le lien
|
Line 507... |
Line 519... |
507 |
//$projet->getListesAssociees();
|
519 |
//$projet->getListesAssociees();
|
- |
|
520 |
|
508 |
|
521 |
include_once PROJET_CHEMIN_CLASSES.'inscription_liste.class.php';
|
509 |
include_once PROJET_CHEMIN_CLASSES.'inscription_liste.class.php';
|
522 |
include_once PROJET_CHEMIN_CLASSES.'liste_externe.class.php';
|
- |
|
523 |
foreach ($projet->_listes_associes as $info_liste) {
|
- |
|
524 |
|
- |
|
525 |
$listes_ext = new liste_externe ($this->_db) ;
|
510 |
foreach ($projet->_listes_associes as $info_liste) {
|
526 |
$tableau_liste = $listes_ext->getListesAssociees($this->_id_projet) ;
|
511 |
|
527 |
if (count ($tableau_liste) == 0) {
|
512 |
$inscription_liste = new inscription_liste($this->_db) ;
|
528 |
$inscription_liste = new inscription_liste($this->_db) ;
|
513 |
if ($inscription_liste->getStatutInscrit($info_liste->getId(), $this->_auth) == 0) {
|
529 |
if ($inscription_liste->getStatutInscrit($info_liste->getId(), $this->_auth) == 0) {
|
514 |
$action_inscription = PROJET_ACTION_INSCRIPTION_LISTE ;
|
530 |
$action_inscription = PROJET_ACTION_INSCRIPTION_LISTE ;
|
515 |
$label_inscription = PROJET_RECEVOIR_MESSAGES ;
|
531 |
$label_inscription = PROJET_RECEVOIR_MESSAGES ;
|
516 |
} else {
|
532 |
} else {
|
517 |
// L'action envoyer un mail
|
533 |
// L'action envoyer un mail
|
518 |
$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ENVOYER_UN_MAIL) ;
|
534 |
$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ENVOYER_UN_MAIL) ;
|
519 |
$res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_ECRIRE_LISTE.'</a></li>'."\n" ;
|
535 |
$res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_ECRIRE_LISTE.'</a></li>'."\n" ;
|
520 |
$action_inscription = PROJET_ACTION_DESINSCRIPTION_LISTE ;
|
536 |
$action_inscription = PROJET_ACTION_DESINSCRIPTION_LISTE ;
|
521 |
$label_inscription = PROJET_NE_PAS_RECEVOIR_MESSAGES ;
|
537 |
$label_inscription = PROJET_NE_PAS_RECEVOIR_MESSAGES ;
|
522 |
}
|
538 |
}
|
523 |
$this->_url->addQueryString(PROJET_VARIABLE_ACTION, $action_inscription) ;
|
539 |
$this->_url->addQueryString(PROJET_VARIABLE_ACTION, $action_inscription) ;
|
- |
|
540 |
$res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">';
|
524 |
$res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">';
|
541 |
$res .= $label_inscription.'</a></li> ';
|
525 |
$res .= $label_inscription.'</a></li> ';
|
542 |
}
|
526 |
}
|
543 |
}
|
527 |
if ($isAdm || (PROJET_UTILISATEURS_COORD && $isCoord)) {
|
544 |
if ($isAdm || (PROJET_UTILISATEURS_COORD && $isCoord)) {
|
528 |
$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_SUPPRIMER_LISTE) ;
|
545 |
$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_SUPPRIMER_LISTE) ;
|
Line 590... |
Line 607... |
590 |
}
|
607 |
}
|
591 |
}
|
608 |
}
|
592 |
$res .= '</ul>' ;
|
609 |
$res .= '</ul>' ;
|
593 |
$res .= "</div>\n" ;
|
610 |
$res .= "</div>\n" ;
|
594 |
$this->_url->removeQueryString (PROJET_VARIABLE_ACTION) ;
|
611 |
$this->_url->removeQueryString (PROJET_VARIABLE_ACTION) ;
|
- |
|
612 |
$vues = array (PROJET_ACTION_VOIR_RESUME, PROJET_ACTION_VOIR_DESCRIPTION, PROJET_ACTION_VOIR_WIKINI, PROJET_ACTION_VOIR_FORUM, PROJET_ACTION_VOIR_PARTICIPANT);
|
- |
|
613 |
if (isset($_REQUEST[PROJET_VARIABLE_ACTION]) && in_array ($_REQUEST[PROJET_VARIABLE_ACTION], $vues)) $this->_url->addQueryString(PROJET_VARIABLE_ACTION, $_REQUEST[PROJET_VARIABLE_ACTION]);
|
595 |
return $res ;
|
614 |
return $res ;
|
596 |
} // end of member function menuGeneral
|
615 |
} // end of member function menuGeneral
|
Line 597... |
Line 616... |
597 |
|
616 |
|
598 |
/**
|
617 |
/**
|
Line 855... |
Line 874... |
855 |
return 'Echec de l\'upload<br />'.
|
874 |
return 'Echec de l\'upload<br />'.
|
856 |
'Fichier source : '. $_FILES['fichier']['name'];
|
875 |
'Fichier source : '. $_FILES['fichier']['name'];
|
857 |
'Fichier destination : '.PROJET_CHEMIN_FICHIER.$projet->getNomRepertoire().'/'.$chemin_upload.'/'.$nouveau_nom ;
|
876 |
'Fichier destination : '.PROJET_CHEMIN_FICHIER.$projet->getNomRepertoire().'/'.$chemin_upload.'/'.$nouveau_nom ;
|
858 |
}
|
877 |
}
|
Line 859... |
Line -... |
859 |
|
- |
|
860 |
|
- |
|
861 |
//$document->enregistrerSQL($formulaire_document->getSubmitValues(), $projet->getNomRepertoire().'/'.$chemin_upload) ;
|
878 |
|
862 |
$retour = $document->enregistrerSQL($formulaire_document->getSubmitValues(), $nouveau_nom);
|
879 |
$document->enregistrerSQL($formulaire_document->getSubmitValues(), $nouveau_nom);
|
863 |
// On place a 1 la colonne p_avoir_document
|
880 |
// On place a 1 la colonne p_avoir_document
|
Line 864... |
Line 881... |
864 |
if (!$projet->avoirDocument()) $projet->setAvoirDocument(true);
|
881 |
if (!$projet->avoirDocument()) $projet->setAvoirDocument(true);
|
865 |
|
882 |
|
- |
|
883 |
// On ajoute une information de session
|
- |
|
884 |
$_SESSION['formulaire_document'] = 'valide';
|
- |
|
885 |
|
- |
|
886 |
// Pour notification coordinateur
|
- |
|
887 |
include_once PROJET_CHEMIN_CLASSES.'annuaire.class.php' ;
|
- |
|
888 |
$utilisateur = new annuaire($this->_db, array('identifiant' => PROJET_CHAMPS_ID,
|
- |
|
889 |
'mail' => PROJET_CHAMPS_MAIL, 'table' => PROJET_ANNUAIRE,
|
- |
|
890 |
'nom'=> PROJET_CHAMPS_NOM, 'prenom' => PROJET_CHAMPS_PRENOM)) ;
|
866 |
// On ajoute une information de session
|
891 |
$utilisateur->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
|
867 |
$_SESSION['formulaire_document'] = 'valide';
|
892 |
$this->notifierCoordinateurs(PROJET_NOTIFICATION_NOUVEAU_DOC, $utilisateur);
|
868 |
} else {
|
893 |
} else {
|
869 |
return $formulaire_document->toHTML() ;
|
894 |
return $formulaire_document->toHTML() ;
|
870 |
}
|
895 |
}
|
871 |
return $retour;
|
- |
|
Line 872... |
Line 896... |
872 |
unset ($projet) ;
|
896 |
return $retour;
|
873 |
} // end of member function nouveauFichierValidation
|
897 |
}
|
874 |
|
898 |
|
875 |
/**
|
899 |
/**
|
Line 1026... |
Line 1050... |
1026 |
|
1050 |
|
1027 |
$vue_liste_document->construitEntete($entete_liste) ;
|
1051 |
$vue_liste_document->construitEntete($entete_liste) ;
|
Line 1028... |
Line 1052... |
1028 |
$vue_liste_document->construitListe ($liste_documents, $droits) ;
|
1052 |
$vue_liste_document->construitListe ($liste_documents, $droits) ;
|
1029 |
|
1053 |
|
1030 |
$wiki_res = '' ;
|
1054 |
$wiki_res = '' ;
|
1031 |
// Les wikinis associés au projet
|
1055 |
// Les wikinis associes au projet
|
1032 |
if ($projet->getWikini()) {
|
1056 |
if ($projet->getWikini()) {
|
1033 |
$wiki_res .= '<div><a href="'.PROJET_URL_WIKINI.'wakka.php?wiki=PagePrincipale&wikini='.$projet->getWikini().'">'.PROJET_URL_WIKINI.'</a>' ;
|
1057 |
$wiki_res .= '<div><a href="'.PROJET_URL_WIKINI.'wakka.php?wiki=PagePrincipale&wikini='.$projet->getWikini().'">'.PROJET_URL_WIKINI.'</a>' ;
|
1034 |
if ($this->_auth->getAuth() && $isCoord) {
|
1058 |
if ($this->_auth->getAuth() && $isCoord) {
|
Line 1038... |
Line 1062... |
1038 |
$wiki_res .= '</div>' ;
|
1062 |
$wiki_res .= '</div>' ;
|
1039 |
} else {
|
1063 |
} else {
|
1040 |
$wiki_res .= '<div>'.PROJET_WIKINI_PAS.'</div>'."\n" ;
|
1064 |
$wiki_res .= '<div>'.PROJET_WIKINI_PAS.'</div>'."\n" ;
|
1041 |
}
|
1065 |
}
|
1042 |
// On charge les listes de discussion du projet
|
1066 |
// On charge les listes de discussion du projet
|
1043 |
// Pour le moment seul ezmlm est supportée
|
1067 |
// Pour le moment seul ezmlm est supportee
|
Line 1044... |
Line 1068... |
1044 |
|
1068 |
|
1045 |
$projet->getListesAssociees();
|
1069 |
$projet->getListesAssociees();
|
Line 1046... |
Line 1070... |
1046 |
$sortie_liste = '' ;
|
1070 |
$sortie_liste = '' ;
|
Line 1092... |
Line 1116... |
1092 |
$liste->error(EZMLM_INVALID_SYNTAX,TRUE);
|
1116 |
$liste->error(EZMLM_INVALID_SYNTAX,TRUE);
|
1093 |
}
|
1117 |
}
|
1094 |
$show_msg = new ezmlm_msgdisplay();
|
1118 |
$show_msg = new ezmlm_msgdisplay();
|
1095 |
$show_msg->listdir = $liste->listdir ;
|
1119 |
$show_msg->listdir = $liste->listdir ;
|
1096 |
$show_msg->forcehref = $this->_url->getURL();
|
1120 |
$show_msg->forcehref = $this->_url->getURL();
|
1097 |
// actionargs[0] contient le nom du répertoire et actionargs[1] le nom du fichier
|
1121 |
// actionargs[0] contient le nom du repertoire et actionargs[1] le nom du fichier
|
1098 |
// On appelle la fonction qui affiche un fichier
|
1122 |
// On appelle la fonction qui affiche un fichier
|
1099 |
$show_msg->display($liste->actionargs[0] . "/" . $liste->actionargs[1]);
|
1123 |
$show_msg->display($liste->actionargs[0] . "/" . $liste->actionargs[1]);
|
1100 |
break;
|
1124 |
break;
|
Line 1101... |
Line 1125... |
1101 |
|
1125 |
|
Line 1482... |
Line 1506... |
1482 |
|
1506 |
|
1483 |
// Si le projet n'a pas de liste, on inscrit directement
|
1507 |
// Si le projet n'a pas de liste, on inscrit directement
|
1484 |
if (isset ($this->_id_projet)) {
|
1508 |
if (isset ($this->_id_projet)) {
|
1485 |
include_once PROJET_CHEMIN_CLASSES.'participe.class.php' ;
|
1509 |
include_once PROJET_CHEMIN_CLASSES.'participe.class.php' ;
|
1486 |
$participant = new participe($this->_db) ;
|
1510 |
$participant = new participe($this->_db) ;
|
- |
|
1511 |
|
- |
|
1512 |
// On controle si la liste est externe (yahoo) auquel cas on ne presente pas l inscription
|
- |
|
1513 |
include_once PROJET_CHEMIN_CLASSES.'liste_externe.class.php' ;
|
- |
|
1514 |
$liste_ext = new liste_externe($this->_db);
|
- |
|
1515 |
$listes = $liste_ext->getListesAssociees($this->_id_projet);
|
- |
|
1516 |
$info_liste = $liste_ext->getInfoListe($listes[0]);
|
- |
|
1517 |
if (count ($listes) != 0) {
|
- |
|
1518 |
$avoir_liste_externe = true;
|
- |
|
1519 |
$msg = '';
|
- |
|
1520 |
$msg = 'Pour vous inscrire à la liste de discussion, hébergée par Yahoo Groupes, <a href="mailto:';
|
- |
|
1521 |
$msg .= $info_liste->AGO_A_MAILABO.'">cliquez ici</a>';
|
- |
|
1522 |
} else {
|
- |
|
1523 |
$avoir_liste_externe = false;
|
1487 |
|
1524 |
}
|
1488 |
if (!$projet->avoirListe()) {
|
1525 |
if (!$projet->avoirListe() || $avoir_liste_externe) {
|
1489 |
if ($projet->isModere()) {
|
1526 |
if ($projet->isModere()) {
|
1490 |
$participant->setStatut(3, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
|
1527 |
$participant->setStatut(3, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
|
1491 |
} else {
|
1528 |
} else {
|
- |
|
1529 |
$participant->setStatut(2, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
|
1492 |
$participant->setStatut(2, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
|
1530 |
$message_retour = '<p class="information">Votre inscription a bien été prise en compte'.$msg.'</p>';
|
- |
|
1531 |
}
|
- |
|
1532 |
$message_retour = '<p class="information">Votre inscription a bien été prise en compte. '.$msg.'</p>';
|
1493 |
}
|
1533 |
include_once PROJET_CHEMIN_APPLI.'actions/resume.php' ;
|
1494 |
return $this->mesProjets() ;
|
1534 |
return $retour;
|
1495 |
}
|
1535 |
}
|
1496 |
}
|
1536 |
}
|
1497 |
if (isset($_POST['valider_inscription_projet'])) {
|
1537 |
if (isset($_POST['valider_inscription_projet'])) {
|
1498 |
if (isset($_POST['radio_inscription_liste'])) {
|
1538 |
if (isset($_POST['radio_inscription_liste'])) {
|
Line 1503... |
Line 1543... |
1503 |
$utilisateur->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
|
1543 |
$utilisateur->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
|
Line 1504... |
Line 1544... |
1504 |
|
1544 |
|
1505 |
if (!$projet->isModere()) {
|
1545 |
if (!$projet->isModere()) {
|
Line -... |
Line 1546... |
- |
|
1546 |
$participant->setStatut(2, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
|
1506 |
$participant->setStatut(2, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
|
1547 |
|
1507 |
|
1548 |
if ($_POST['radio_inscription_liste'] == 2) {
|
1508 |
include_once PROJET_CHEMIN_CLASSES.'inscription_liste.class.php' ;
|
1549 |
include_once PROJET_CHEMIN_CLASSES.'inscription_liste.class.php' ;
|
1509 |
$projet->getListesAssociees() ;
|
1550 |
$projet->getListesAssociees() ;
|
1510 |
$inscription_liste = new inscription_liste($this->_db) ;
|
1551 |
$inscription_liste = new inscription_liste($this->_db) ;
|
1511 |
$inscription_liste->inscrireUtilisateur( $utilisateur,
|
1552 |
$inscription_liste->inscrireUtilisateur( $utilisateur,
|
- |
|
1553 |
$projet->_listes_associes[0],
|
- |
|
1554 |
$_POST['radio_inscription_liste']) ;
|
1512 |
$projet->_listes_associes[0],
|
1555 |
}
|
1513 |
$_POST['radio_inscription_liste']) ;
|
1556 |
$this->notifierCoordinateurs(PROJET_NOTIFICATION_INSCRIPTION_NOUVELLE, $utilisateur);
|
1514 |
} else {
|
- |
|
1515 |
$participant->setStatut(3, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
|
- |
|
1516 |
$tableau_coordinateur = $participant->getCoordinateurs($this->_id_projet) ;
|
- |
|
1517 |
|
- |
|
1518 |
$entetes['From'] = $this->_auth->getUserName();
|
- |
|
1519 |
$entetes['To'] = '';
|
- |
|
1520 |
$entetes['Subject'] = PROJET_DEMANDE_INSCRIPTION ;
|
- |
|
1521 |
$entetes['Date'] = date ('D, M j G:i:s \C\E\S\T Y') ;
|
- |
|
1522 |
$entetes['Message-ID'] = md5(time()) ;
|
- |
|
1523 |
$entetes['reply-to'] = '' ;
|
- |
|
1524 |
$entetes['Content-Type'] = 'text/plain' ;
|
- |
|
1525 |
|
- |
|
1526 |
$objet_mail =& Mail::factory('smtp');
|
- |
|
1527 |
require_once PROJET_CHEMIN_BIBLIOTHEQUE_API.'pear/HTML/Template/IT.php';
|
- |
|
1528 |
$tpl = new HTML_Template_IT() ;
|
- |
|
1529 |
// Le gabarit du mail est dans un template
|
- |
|
1530 |
// template 1
|
- |
|
1531 |
$requete = 'select pt_template from projet_template where pt_id_template=1'.
|
- |
|
1532 |
' and pt_i18n like "%'.PROJET_LANGUE_DEFAUT.'"' ;
|
- |
|
1533 |
|
- |
|
1534 |
if (!$tpl -> setTemplate($this->_db->getOne ($requete))) {
|
- |
|
1535 |
echo 'erreur' ;
|
- |
|
1536 |
}
|
- |
|
1537 |
$tpl->setVariable('nom', $utilisateur->getInfo( 'nom')) ;
|
- |
|
1538 |
$tpl->setVariable('prenom', $utilisateur->getInfo( 'prenom')) ;
|
- |
|
1539 |
$tpl->setVariable('nom_projet', $projet->getTitre()) ;
|
- |
|
1540 |
$tpl->setVariable('lien', str_replace ('&', '&', $this->_url->getURL())) ;
|
- |
|
1541 |
|
- |
|
1542 |
foreach ($tableau_coordinateur as $coordinateur) {
|
- |
|
1543 |
$entetes['To'] .= $coordinateur[3].','; // Le champs 3 est le mail
|
- |
|
1544 |
|
- |
|
Line 1545... |
Line -... |
1545 |
}
|
- |
|
1546 |
// On enleve la virgule finale
|
- |
|
1547 |
|
- |
|
1548 |
$entetes['To'] = substr ($entetes['To'], 0, -1);
|
1557 |
} else {
|
1549 |
|
1558 |
$participant->setStatut(3, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
|
1550 |
// on envoie le mail
|
1559 |
|
Line 1551... |
Line 1560... |
1551 |
$objet_mail->send($entetes['To'], $entetes, html_entity_decode ($tpl->get()));
|
1560 |
$this->notifierCoordinateurs(PROJET_NOTIFICATION_DEMANDE_INSCRIPTION, $utilisateur);
|
1552 |
}
|
1561 |
}
|
1553 |
}
|
1562 |
}
|
- |
|
1563 |
|
- |
|
1564 |
if ($this->_presentation != 'arbre') {
|
1554 |
|
1565 |
if ($projet->isModere()) return '<h1>'.$projet->getTitre().'</h1>'.
|
- |
|
1566 |
str_replace ('nom_du_projet', $projet->getTitre(), PROJET_LAIUS_INSCRIPTION_MODERE);
|
- |
|
1567 |
else {
|
1555 |
if ($this->_presentation != 'arbre') {
|
1568 |
$message_retour = '<p class="information">Votre inscription a bien été prise en compte'.$msg.'</p>';
|
1556 |
if ($projet->isModere()) return '<h1>'.$projet->getTitre().'</h1>'.
|
1569 |
include_once PROJET_CHEMIN_APPLI.'actions/resume.php' ;
|
1557 |
str_replace ('nom_du_projet', $projet->getTitre(), PROJET_LAIUS_INSCRIPTION_MODERE);
|
1570 |
return $retour;
|
1558 |
else $this->_action = PROJET_ACTION_VOIR_RESUME;
|
1571 |
}
|
1559 |
} else {
|
1572 |
} else {
|
Line 1586... |
Line 1599... |
1586 |
$projet->getListesAssociees() ;
|
1599 |
$projet->getListesAssociees() ;
|
1587 |
$utilisateur = new annuaire($this->_db, array('identifiant' => PROJET_CHAMPS_ID, 'mail' => PROJET_CHAMPS_MAIL, 'table' => PROJET_ANNUAIRE)) ;
|
1600 |
$utilisateur = new annuaire($this->_db, array('identifiant' => PROJET_CHAMPS_ID, 'mail' => PROJET_CHAMPS_MAIL, 'table' => PROJET_ANNUAIRE)) ;
|
1588 |
$utilisateur->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
|
1601 |
$utilisateur->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
|
1589 |
$inscription_liste = new inscription_liste($this->_db) ;
|
1602 |
$inscription_liste = new inscription_liste($this->_db) ;
|
1590 |
$inscription_liste->inscrireUtilisateur( $utilisateur, $projet->_listes_associes[0], 2) ; // 2 est la statut inscription normale
|
1603 |
$inscription_liste->inscrireUtilisateur( $utilisateur, $projet->_listes_associes[0], 2) ; // 2 est la statut inscription normale
|
- |
|
1604 |
return '<p class="information">Vous êtes inscrit à la liste</p>';
|
1591 |
} // end of member function inscriptionListe
|
1605 |
} // end of member function inscriptionListe
|
Line 1592... |
Line 1606... |
1592 |
|
1606 |
|
1593 |
/**
|
1607 |
/**
|
1594 |
* Inscrit l'utilisateur logué à la liste dont le paraître est en post.
|
1608 |
* Inscrit l'utilisateur loggue a la liste dont le parametre est en post.
|
1595 |
*
|
1609 |
*
|
1596 |
* @return void
|
1610 |
* @return void
|
1597 |
* @access public
|
1611 |
* @access public
|
1598 |
*/
|
1612 |
*/
|
Line 1608... |
Line 1622... |
1608 |
'mail' => PROJET_CHAMPS_MAIL,
|
1622 |
'mail' => PROJET_CHAMPS_MAIL,
|
1609 |
'table' => PROJET_ANNUAIRE)) ;
|
1623 |
'table' => PROJET_ANNUAIRE)) ;
|
1610 |
$utilisateur->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
|
1624 |
$utilisateur->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
|
1611 |
$inscription_liste = new inscription_liste($this->_db) ;
|
1625 |
$inscription_liste = new inscription_liste($this->_db) ;
|
1612 |
$inscription_liste->desinscrireUtilisateur( $utilisateur, $projet->_listes_associes[0], $_GET['inscription_liste']) ;
|
1626 |
$inscription_liste->desinscrireUtilisateur( $utilisateur, $projet->_listes_associes[0], $_GET['inscription_liste']) ;
|
- |
|
1627 |
return '<p class="information">Vous avez été désinscrit de la liste</p>';
|
1613 |
}
|
1628 |
}
|
1614 |
} // end of member function inscriptionListe
|
1629 |
} // end of member function inscriptionListe
|
1615 |
/**
|
1630 |
/**
|
1616 |
* desinscrit un utilisateur à un projet
|
1631 |
* desinscrit un utilisateur d un projet
|
1617 |
*
|
1632 |
*
|
1618 |
* @return void
|
1633 |
* @return void
|
1619 |
* @access public
|
1634 |
* @access public
|
1620 |
*/
|
1635 |
*/
|
1621 |
function desinscriptionProjet( )
|
1636 |
function desinscriptionProjet( )
|
1622 |
{
|
1637 |
{
|
1623 |
include_once PROJET_CHEMIN_CLASSES.'participe.class.php' ;
|
1638 |
include_once PROJET_CHEMIN_CLASSES.'participe.class.php' ;
|
- |
|
1639 |
include_once PROJET_CHEMIN_CLASSES.'annuaire.class.php' ;
|
1624 |
$participant = new participe($this->_db) ;
|
1640 |
$participant = new participe($this->_db) ;
|
- |
|
1641 |
$utilisateur = new annuaire($this->_db, array('identifiant' => PROJET_CHAMPS_ID,
|
- |
|
1642 |
'mail' => PROJET_CHAMPS_MAIL, 'table' => PROJET_ANNUAIRE,
|
- |
|
1643 |
'nom'=> PROJET_CHAMPS_NOM, 'prenom' => PROJET_CHAMPS_PRENOM)) ;
|
- |
|
1644 |
$utilisateur->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
|
1625 |
|
1645 |
|
1626 |
// Le statut 4 désinscrit l'utilisateur, dans la méthode setStatut
|
1646 |
// Le statut 4 desinscrit l'utilisateur, dans la methode setStatut
|
1627 |
$participant->setStatut(4, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
|
1647 |
$participant->setStatut(4, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
|
1628 |
include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
|
1648 |
include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
|
1629 |
$projet = new projet ($this->_db, $this->_id_projet) ;
|
1649 |
$projet = new projet ($this->_db, $this->_id_projet) ;
|
1630 |
$projet->getListesAssociees() ;
|
1650 |
$projet->getListesAssociees() ;
|
1631 |
if ($projet->avoirListe()) {
|
1651 |
if ($projet->avoirListe()) {
|
Line 1634... |
Line 1654... |
1634 |
$annuaire->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
|
1654 |
$annuaire->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
|
1635 |
include_once PROJET_CHEMIN_CLASSES.'inscription_liste.class.php' ;
|
1655 |
include_once PROJET_CHEMIN_CLASSES.'inscription_liste.class.php' ;
|
1636 |
$desinscription= new inscription_liste($this->_db) ;
|
1656 |
$desinscription= new inscription_liste($this->_db) ;
|
1637 |
$desinscription->desinscrireUtilisateur($annuaire, $projet->_listes_associes[0]) ;
|
1657 |
$desinscription->desinscrireUtilisateur($annuaire, $projet->_listes_associes[0]) ;
|
1638 |
}
|
1658 |
}
|
- |
|
1659 |
$this->notifierCoordinateurs(PROJET_NOTIFICATION_DESINSCRIPTION_PROJET, $utilisateur);
|
- |
|
1660 |
include_once PROJET_CHEMIN_CLASSES.'liste_externe.class.php';
|
- |
|
1661 |
$liste_ext = new liste_externe($this->_db);
|
- |
|
1662 |
$listes = $liste_ext->getListesAssociees($this->_id_projet);
|
- |
|
1663 |
$info_liste = $liste_ext->getInfoListe($listes[0]);
|
- |
|
1664 |
$msg = '';
|
- |
|
1665 |
if (count ($listes) != 0) {
|
- |
|
1666 |
$msg = 'Pensez si vous le souhaitez à vous désinscrire de la liste de discussion, hébergée par Yahoo Groupes.';
|
- |
|
1667 |
$msg .= ' Vous pouvez le faire en <a href="mailto:';
|
- |
|
1668 |
$msg .= $info_liste->AGO_A_MAILDESA.'">cliquez ici</a>';
|
- |
|
1669 |
}
|
1639 |
if ($this->_presentation != 'arbre') {
|
1670 |
if ($this->_presentation != 'arbre') {
|
- |
|
1671 |
$message_retour = '<p class="information">Votre désinscription a bien été prise en compte. '.$msg.'</p>';
|
1640 |
include_once PROJET_CHEMIN_APPLI.'actions/resume.php' ;
|
1672 |
include_once PROJET_CHEMIN_APPLI.'actions/resume.php' ;
|
1641 |
return $retour ;
|
1673 |
return $retour ;
|
1642 |
} else {
|
1674 |
} else {
|
1643 |
$this->_action = PROJET_ACTION_VOIR_RESUME;
|
1675 |
$this->_action = PROJET_ACTION_VOIR_RESUME;
|
1644 |
}
|
1676 |
}
|
1645 |
} // end of member function inscriptionProjet
|
1677 |
}
|
Line 1646... |
Line 1678... |
1646 |
|
1678 |
|
1647 |
/**
|
1679 |
/**
|
1648 |
* Renvoie le formulaire de création d'un wiki
|
1680 |
* Renvoie le formulaire de creation d'un wiki
|
1649 |
*
|
1681 |
*
|
1650 |
* @return void
|
1682 |
* @return void
|
1651 |
* @access public
|
1683 |
* @access public
|
1652 |
*/
|
1684 |
*/
|
Line 1848... |
Line 1880... |
1848 |
PROJETCONTROLEUR_PAS_DE_DOCUMENT_SELECTIONNE => 'Pas de fichier sélectionné',
|
1880 |
PROJETCONTROLEUR_PAS_DE_DOCUMENT_SELECTIONNE => 'Pas de fichier sélectionné',
|
1849 |
PROJETCONTROLEUR_ERREUR_CREATION_REPERTOIRE => 'Impossible de créer le répertoire'
|
1881 |
PROJETCONTROLEUR_ERREUR_CREATION_REPERTOIRE => 'Impossible de créer le répertoire'
|
1850 |
) ;
|
1882 |
) ;
|
1851 |
return '<p class="erreur">'.$messageErreur[$valeur].'</p>' ;
|
1883 |
return '<p class="erreur">'.$messageErreur[$valeur].'</p>' ;
|
1852 |
} // end of member function messageErreur
|
1884 |
} // end of member function messageErreur
|
- |
|
1885 |
|
- |
|
1886 |
/** Envoie de mail pour prevenir les coordinateurs d une action sur le projet
|
- |
|
1887 |
*
|
- |
|
1888 |
*
|
- |
|
1889 |
*/
|
Line -... |
Line 1890... |
- |
|
1890 |
|
- |
|
1891 |
function notifierCoordinateurs ($notification, $utilisateur) {
|
- |
|
1892 |
|
- |
|
1893 |
include_once PROJET_CHEMIN_CLASSES.'projetTemplate.class.php';
|
- |
|
1894 |
|
- |
|
1895 |
switch ($notification) {
|
- |
|
1896 |
case PROJET_NOTIFICATION_DEMANDE_INSCRIPTION :
|
- |
|
1897 |
$sujet = PROJET_TEMPLATE_DEMANDE_INSCRIPTION_SUJET;
|
- |
|
1898 |
$corps = PROJET_TEMPLATE_DEMANDE_INSCRIPTION_CORPS;
|
- |
|
1899 |
break;
|
- |
|
1900 |
case PROJET_NOTIFICATION_INSCRIPTION_NOUVELLE :
|
- |
|
1901 |
$sujet = PROJET_TEMPLATE_INSCRIPTION_NOUVELLE_SUJET;
|
- |
|
1902 |
$corps = PROJET_TEMPLATE_INSCRIPTION_NOUVELLE_CORPS;
|
- |
|
1903 |
break;
|
- |
|
1904 |
case PROJET_NOTIFICATION_DESINSCRIPTION_PROJET :
|
- |
|
1905 |
$sujet = PROJET_TEMPLATE_DESINSCRIPTION_SUJET;
|
- |
|
1906 |
$corps = PROJET_TEMPLATE_DESINSCRIPTION_CORPS;
|
- |
|
1907 |
break;
|
- |
|
1908 |
case PROJET_NOTIFICATION_NOUVEAU_DOC:
|
- |
|
1909 |
$sujet = PROJET_TEMPLATE_NOUVEAU_DOC_SUJET;
|
- |
|
1910 |
$corps = PROJET_TEMPLATE_NOUVEAU_DOC_CORPS;
|
- |
|
1911 |
break;
|
- |
|
1912 |
|
- |
|
1913 |
}
|
- |
|
1914 |
|
- |
|
1915 |
include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
|
- |
|
1916 |
$projet = new projet ($this->_db, $this->_id_projet) ;
|
- |
|
1917 |
include_once PROJET_CHEMIN_CLASSES.'participe.class.php';
|
- |
|
1918 |
$participant = new participe($this->_db) ;
|
- |
|
1919 |
$tableau_coordinateur = $participant->getCoordinateurs($this->_id_projet) ;
|
- |
|
1920 |
|
- |
|
1921 |
$objet_mail =& Mail::factory('smtp');
|
- |
|
1922 |
|
- |
|
1923 |
|
- |
|
1924 |
|
Line -... |
Line 1925... |
- |
|
1925 |
$modele = new projetTemplate($GLOBALS['projet_db']);
|
- |
|
1926 |
|
- |
|
1927 |
$sujet_mail = $modele->getTemplate($sujet, PROJET_LANGUE_DEFAUT);
|
- |
|
1928 |
$corps_mail = $modele->getTemplate($corps, PROJET_LANGUE_DEFAUT);
|
- |
|
1929 |
|
- |
|
1930 |
if (PEAR::isError($sujet_mail)) $sujet_mail->raiseError ($sujet_mail->getMessage().'<br />'.$sujet_mail->getDebugInfo());
|
- |
|
1931 |
|
- |
|
1932 |
$corps_mail = str_replace ('{nom}', $utilisateur->getInfo( 'nom'), $corps_mail);
|
- |
|
1933 |
$corps_mail = str_replace ('{prenom}', $utilisateur->getInfo( 'prenom'), $corps_mail);
|
- |
|
1934 |
$corps_mail = str_replace ('{nom_projet}', $projet->getTitre(), $corps_mail);
|
- |
|
1935 |
$corps_mail = str_replace ('{lien}', str_replace ('&', '&', $this->_url->getURL()), $corps_mail);
|
- |
|
1936 |
|
- |
|
1937 |
$entetes['From'] = PROJET_MAIL_ADMINISTRATEUR;
|
- |
|
1938 |
$entetes['To'] = '';
|
- |
|
1939 |
$entetes['Subject'] = trim ($sujet_mail) ; // le trim est necessaire pour enlever d eventuels retour-chariot qui foutent el l air le message
|
- |
|
1940 |
$entetes['Date'] = date ('D, M j G:i:s \C\E\S\T Y') ;
|
- |
|
1941 |
$entetes['Message-ID'] = md5(time()) ;
|
- |
|
1942 |
$entetes['reply-to'] = $this->_auth->getUserName();
|
- |
|
1943 |
$entetes['Content-Type'] = 'text/plain' ;
|
- |
|
1944 |
|
- |
|
1945 |
foreach ($tableau_coordinateur as $coordinateur) {
|
- |
|
1946 |
$entetes['To'] .= $coordinateur[3].','; // Le champs 3 est le mail
|
- |
|
1947 |
|
- |
|
1948 |
}
|
- |
|
1949 |
// On enleve la virgule finale
|
- |
|
1950 |
|
- |
|
1951 |
$entetes['To'] = substr ($entetes['To'], 0, -1);
|
- |
|
1952 |
|
- |
|
1953 |
// on envoie le mail
|
Line 1853... |
Line 1954... |
1853 |
|
1954 |
$objet_mail->send($entetes['To'], $entetes, html_entity_decode ($corps_mail));
|
Line 1854... |
Line 1955... |
1854 |
|
1955 |
}
|
1855 |
|
1956 |
|
- |
|
1957 |
|
- |
|
1958 |
} // end of projetControleur
|
- |
|
1959 |
|
- |
|
1960 |
class bouton {
|
- |
|
1961 |
static function toHTML($lien, $label, $id, $class='projet_bouton_action') {
|
- |
|
1962 |
|
- |
|
1963 |
if ($lien != '#') {
|
- |
|
1964 |
$balise_a_debut = '<a href="'.$lien.'"'.($id == 'cross'? ' onclick="javascript:return confirm(\''.$label.' ?\');"':'').'>';
|
1856 |
|
1965 |
$balise_a_fin = '</a>';
|
1857 |
} // end of projetControleur
|
1966 |
} else {
|
1858 |
|
1967 |
$balise_a_debut = '';
|
1859 |
class bouton {
|
1968 |
$balise_a_fin = '';
|
- |
|
1969 |
}
|
- |
|
1970 |
return '<div id="bouton_'.$id.'" class="'.$class.'">' .
|
- |
|
1971 |
$balise_a_debut.'<img src="'.PROJET_CHEMIN_ICONES.$id.'.png" alt="'.$label.'" />'.$label.$balise_a_fin.'</div>';
|
1860 |
static function toHTML($lien, $label, $id) {
|
1972 |
}
|
- |
|
1973 |
}
|
- |
|
1974 |
/* +--Fin du code ----------------------------------------------------------------------------------------+
|
1861 |
return '<div id="bouton_'.$id.'" class="projet_bouton_action">' .
|
1975 |
*
|
1862 |
'<a href="'.$lien.'"><img src="'.PROJET_CHEMIN_ICONES.$id.'.png" alt="'.$label.'" />'.$label.'</a></div>';
|
1976 |
* $Log: not supported by cvs2svn $
|