Subversion Repositories Applications.projet

Rev

Rev 408 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 408 Rev 414
Line 69... Line 69...
69
define ('PROJET_ENVOYER_UN_MAIL', 13) ;
69
define ('PROJET_ENVOYER_UN_MAIL', 13) ;
70
define ('PROJET_ENVOYER_UN_MAIL_V', 14) ;
70
define ('PROJET_ENVOYER_UN_MAIL_V', 14) ;
71
define ('PROJET_ACTION_MODIFIER_V', 15) ;
71
define ('PROJET_ACTION_MODIFIER_V', 15) ;
72
define ('PROJET_ACTION_NOUVELLE_LISTE', 16) ;
72
define ('PROJET_ACTION_NOUVELLE_LISTE', 16) ;
73
define ('PROJET_ACTION_NOUVELLE_LISTE_V', 17) ;
73
define ('PROJET_ACTION_NOUVELLE_LISTE_V', 17) ;
74
define ('PROJET_ACTION_MODIFIER_LISTE', 19) ;
-
 
75
define ('PROJET_ACTION_MODIFIER_LISTE_V', 20) ;
-
 
76
define ('PROJET_ACTION_S_INSCRIRE', 21) ;
74
define ('PROJET_ACTION_S_INSCRIRE', 21) ;
77
define ('PROJET_ACTION_CREER_WIKI', 22) ;
75
define ('PROJET_ACTION_CREER_WIKI', 22) ;
78
define ('PROJET_ACTION_SUPPRIMER_WIKI', 23) ;
76
define ('PROJET_ACTION_SUPPRIMER_WIKI', 23) ;
79
define ('PROJET_ACTION_CREER_WIKI_V', 24) ;
77
define ('PROJET_ACTION_CREER_WIKI_V', 24) ;
80
define ('PROJET_ACTION_SUPPRIMER_LISTE', 25) ;
78
define ('PROJET_ACTION_SUPPRIMER_LISTE', 25) ;
Line 104... Line 102...
104
 
102
 
105
/**
103
/**
106
 *  Constantes pour definir les droits
104
 *  Constantes pour definir les droits
107
 *
105
 *
108
 */
106
 */
109
define ('PROJET_DROIT_ADMINISTRATEUR', 0) ;
107
define ('PROJET_DROIT_ADMINISTRATEUR', 1) ;
110
define ('PROJET_DROIT_COORDINATEUR', 2) ;
108
define ('PROJET_DROIT_COORDINATEUR', 2) ;
111
define ('PROJET_DROIT_PROPRIETAIRE', 4) ;
109
define ('PROJET_DROIT_PROPRIETAIRE', 4) ;
112
define ('PROJET_DROIT_CONTRIBUTEUR', 8) ;
110
define ('PROJET_DROIT_CONTRIBUTEUR', 8) ;
113
define ('PROJET_DROIT_AUCUN', 16) ;
111
define ('PROJET_DROIT_AUCUN', 16) ;
Line 114... Line 112...
114
define ('PROJET_DROIT_EN_ATTENTE', 32);
112
define ('PROJET_DROIT_EN_ATTENTE', 32);
115
 
113
 
116
/** Constante pour les notifications
114
/** Constante pour les notifications
117
 * Messages envoyes par la systeme pour prevenir
115
 * Messages envoyes par la systeme pour prevenir
118
 * les utilisateurs de certaines action
116
 * les utilisateurs de certaines action
119
 */
117
 */
120
 
118
 
121
define ('PROJET_NOTIFICATION_DEMANDE_INSCRIPTION', 1);
119
define ('PROJET_NOTIFICATION_DEMANDE_INSCRIPTION', 1);
122
define ('PROJET_NOTIFICATION_ACCEPTATION_INSCRIPTION', 2);
120
define ('PROJET_NOTIFICATION_ACCEPTATION_INSCRIPTION', 2);
123
define ('PROJET_NOTIFICATION_INSCRIPTION_NOUVELLE', 3); // Pour le coordinateur quand quelqu un s inscrit au projet
121
define ('PROJET_NOTIFICATION_INSCRIPTION_NOUVELLE', 3); // Pour le coordinateur quand quelqu un s inscrit au projet 
124
define ('PROJET_NOTIFICATION_DESINSCRIPTION_PROJET', 4);
122
define ('PROJET_NOTIFICATION_DESINSCRIPTION_PROJET', 4);
Line 125... Line 123...
125
define ('PROJET_NOTIFICATION_NOUVEAU_DOC', 5);
123
define ('PROJET_NOTIFICATION_NOUVEAU_DOC', 5);
Line 206... Line 204...
206
	/**
204
	/**
207
     * parametre pour gere l appel a un service en rapport avec ajax
205
     * parametre pour gere l appel a un service en rapport avec ajax
208
     * @access private
206
     * @access private
209
     */
207
     */
210
	var $_service ;
208
	var $_service ;
211
 
209
	
212
    /**
210
    /**
213
     * Methode principale de la classe. Elle permet d'appeler les methodes du modules
211
     * Methode principale de la classe. Elle permet d'appeler les methodes du modules
214
     * projet en fonction de l'action.
212
     * projet en fonction de l'action.
215
     *
213
     *
216
     * @return string
214
     * @return string
217
     * @access public
215
     * @access public
218
     */
216
     */
Line 219... Line 217...
219
 
217
 
220
 
218
 
221
 
219
	
222
    function run( )
220
    function run( )
223
    {
221
    {
224
        // On teste en premier la presence d un appel vers un service
222
        // On teste en premier la presence d un appel vers un service
225
        if ($this->_service != '') {
223
        if ($this->_service != '') {
226
        	if (file_exists(PROJET_CHEMIN_APPLI.'services/'.$this->_service.'.php')) {
224
        	if (file_exists(PROJET_CHEMIN_APPLI.'services/'.$this->_service.'.php')) {
227
                return include_once PROJET_CHEMIN_APPLI.'services/'.$this->_service.'.php' ;
225
                return include_once PROJET_CHEMIN_APPLI.'services/'.$this->_service.'.php' ;
228
            }
226
            }
229
        }
227
        }
230
 
228
        
231
        if ($this->_action == '') {
229
        if ($this->_action == '') {
Line 232... Line 230...
232
            return $this->messageErreur(PROJETCONTROLEUR_ACTION_INVALIDE) ;
230
            return $this->messageErreur(PROJETCONTROLEUR_ACTION_INVALIDE) ;
Line 298... Line 296...
298
            case PROJET_ACTION_NOUVELLE_LISTE : $retour .= $this->formulaireListe(PROJET_ACTION_NOUVELLE_LISTE) ;
296
            case PROJET_ACTION_NOUVELLE_LISTE : $retour .= $this->formulaireListe(PROJET_ACTION_NOUVELLE_LISTE) ;
299
            break ;
297
            break ;
300
            case PROJET_ACTION_NOUVELLE_LISTE_V : $retour .= $this->nouvelleListeValidation() ;
298
            case PROJET_ACTION_NOUVELLE_LISTE_V : $retour .= $this->nouvelleListeValidation() ;
301
                $this->_action = PROJET_ACTION_VOIR_FORUM ;
299
                $this->_action = PROJET_ACTION_VOIR_FORUM ;
302
            break ;
300
            break ;
303
           	case PROJET_ACTION_MODIFIER_LISTE : $retour .= $this->formulaireModificationListe($this->_id_projet) ;
-
 
304
            break ;
-
 
305
            case PROJET_ACTION_MODIFIER_LISTE_V : $retour .= $this->modifierListeValidation($this->_id_projet) ;
-
 
306
                $this->_action = PROJET_ACTION_VOIR_FORUM ;
-
 
307
            break ;
-
 
308
            case PROJET_ACTION_SUPPRIMER_LISTE : $retour .= $this->supprimerListe() ;
301
            case PROJET_ACTION_SUPPRIMER_LISTE : $retour .= $this->supprimerListe() ;
309
                $this->_action = PROJET_ACTION_VOIR_RESUME ;
302
                $this->_action = PROJET_ACTION_VOIR_RESUME ;
310
            break ;
303
            break ;
311
            case PROJET_MODIFIER_DESCRIPTION : $retour .= $this->formulaireProjet(PROJET_MODIFIER_DESCRIPTION_V) ;
304
            case PROJET_MODIFIER_DESCRIPTION : $retour .= $this->formulaireProjet(PROJET_MODIFIER_DESCRIPTION_V) ;
312
            break ;
305
            break ;
Line 413... Line 406...
413
      // Les entetes des tableaux
406
      // Les entetes des tableaux
414
        $tableau_label_statut_action = array (PROJET_GERER, PROJET_GERER, PROJET_GERER_FICHIER, PROJET_VOIR_FICHIER, "---") ;
407
        $tableau_label_statut_action = array (PROJET_GERER, PROJET_GERER, PROJET_GERER_FICHIER, PROJET_VOIR_FICHIER, "---") ;
Line 415... Line 408...
415
 
408
 
416
        $auth = $this->_auth->getAuth() ;                       // Pour raccourcir le code
409
        $auth = $this->_auth->getAuth() ;                       // Pour raccourcir le code
417
        $id_u = $this->_auth->getAuthData(PROJET_CHAMPS_ID) ;   // --------------
410
        $id_u = $this->_auth->getAuthData(PROJET_CHAMPS_ID) ;   // --------------
418
 
411
		
419
		return include_once PROJET_CHEMIN_APPLI.'presentation/'.$this->_presentation.'.php' ;
412
		return include_once PROJET_CHEMIN_APPLI.'presentation/'.$this->_presentation.'.php' ;
420
 
413
		
Line 421... Line 414...
421
    }
414
    }
422
 
415
 
423
    /**
416
    /**
Line 473... Line 466...
473
            $res .= $label_statut.'</h2>'."\n" ;
466
            $res .= $label_statut.'</h2>'."\n" ;
Line 474... Line 467...
474
 
467
 
475
        } else {
468
        } else {
476
            if ($this->_id_projet != '') $res .= '<h2>'.$label_statut.'</h2>'."\n" ;
469
            if ($this->_id_projet != '') $res .= '<h2>'.$label_statut.'</h2>'."\n" ;
477
        }
470
        }
478
 
471
        
479
        if ($this->_id_projet != '') {
472
        if ($this->_id_projet != '') {
480
        	include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
473
        	include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
481
        	$projet = new projet ($this->_db, $this->_id_projet) ;
474
        	$projet = new projet ($this->_db, $this->_id_projet) ;
482
			// Participant
475
			// Participant
483
			if (!$isEnAttente) {
476
			if (!$isEnAttente) {
484
				$res .= '<ul id ="projet_groupe_niv1"><li class="projet_niv1">'.PROJET_CONTRIBUTEUR ;
477
				$res .= '<ul id ="projet_groupe_niv1"><li class="projet_niv1">'.PROJET_CONTRIBUTEUR ;
485
				$res .= '<ul id="projet_groupe_niv2_con">' ;
478
				$res .= '<ul id="projet_groupe_niv2_con">' ;
486
			}
479
			}		
487
	        if ($isCoord || $isContri) {
480
	        if ($isCoord || $isContri) {
488
	        	$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_DESINSCRIPTION_PROJET) ;
481
	        	$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_DESINSCRIPTION_PROJET) ;
489
	        	$res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_SE_DESINSCRIRE."</a></li>\n" ;
482
	        	$res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_SE_DESINSCRIRE."</a></li>\n" ;
490
	        } else {
483
	        } else {
Line 496... Line 489...
496
	        if ($isCoord || $isAdm) {
489
	        if ($isCoord || $isAdm) {
497
	            $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_VOIR_PARTICIPANT) ;
490
	            $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_VOIR_PARTICIPANT) ;
498
	            $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_GESTION_UTILISATEUR."</a></li>\n" ;
491
	            $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_GESTION_UTILISATEUR."</a></li>\n" ;
499
	        }
492
	        }
500
	        $res .= '</ul></li>' ;
493
	        $res .= '</ul></li>' ;
501
 
494
	        
502
	        //document
495
	        //document
503
	        if ($isContri || $isCoord || $isAdm) {
496
	        if ($isContri || $isCoord || $isAdm) {
504
 
497
		        
505
		        // On ajoute l id d un repertoire s il existe
498
		        // On ajoute l id d un repertoire s il existe
506
		        if (isset($this->_id_repertoire)) $this->_url->addQueryString ('id_repertoire', $this->_id_repertoire);
499
		        if (isset($this->_id_repertoire)) $this->_url->addQueryString ('id_repertoire', $this->_id_repertoire);
507
		        $res .= '<li class="projet_niv2">'.PROJET_DOCUMENT ;
500
		        $res .= '<li class="projet_niv2">'.PROJET_DOCUMENT ;
508
		        // L'action "Mettre un fichier en ligne"
501
		        // L'action "Mettre un fichier en ligne"
509
		        $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_NOUVEAU_FICHIER) ;
502
		        $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_NOUVEAU_FICHIER) ;
510
		        $res .= '<ul><li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_METTRE_FICHIER."</a></li>\n" ;
503
		        $res .= '<ul><li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_METTRE_FICHIER."</a></li>\n" ;
511
 
504
		
512
		        // L'action creer un repertoire
505
		        // L'action creer un repertoire
513
		        $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_NOUVEAU_REPERTOIRE) ;
506
		        $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_NOUVEAU_REPERTOIRE) ;
514
		        $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_CREER_REP."</a></li>\n" ;
507
		        $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_CREER_REP."</a></li>\n" ;
515
				$res .= '</ul></li>' ;
508
				$res .= '</ul></li>' ;
516
 
509
	        
517
	        	$this->_url->removeQueryString('id_repertoire');
510
	        	$this->_url->removeQueryString('id_repertoire');
518
				// Forum
511
				// Forum 
519
				$res .= '<li class="projet_niv1">'.PROJET_FORUM ;
512
				$res .= '<li class="projet_niv1">'.PROJET_FORUM ;
520
				$res .= '<ul id="projet_groupe_niv2_for">' ;
513
				$res .= '<ul id="projet_groupe_niv2_for">' ;
521
				if ($projet->avoirListe()) {
514
				if ($projet->avoirListe()) {
522
 
515
					
523
					// On verifie si l'utilisateur est inscrit ou non a la liste et on ajoute le lien
516
					// On verifie si l'utilisateur est inscrit ou non a la liste et on ajoute le lien
524
		            //$projet->getListesAssociees();
517
		            //$projet->getListesAssociees();
525
 
518
		
526
		            include_once PROJET_CHEMIN_CLASSES.'inscription_liste.class.php';
519
		            include_once PROJET_CHEMIN_CLASSES.'inscription_liste.class.php';
527
		            include_once PROJET_CHEMIN_CLASSES.'liste_externe.class.php';
520
		            include_once PROJET_CHEMIN_CLASSES.'liste_externe.class.php';
528
		            foreach ($projet->_listes_associes as $info_liste) {
521
		            foreach ($projet->_listes_associes as $info_liste) {
529
 
522
						
530
						$listes_ext = new liste_externe ($this->_db) ;
523
						$listes_ext = new liste_externe ($this->_db) ;
531
						$tableau_liste = $listes_ext->getListesAssociees($this->_id_projet) ;
524
						$tableau_liste = $listes_ext->getListesAssociees($this->_id_projet) ;
532
						if (count ($tableau_liste) == 0) {
525
						if (count ($tableau_liste) == 0) {
533
			                $inscription_liste = new inscription_liste($this->_db) ;
526
			                $inscription_liste = new inscription_liste($this->_db) ;
534
			                if ($inscription_liste->getStatutInscrit($info_liste->getId(),  $this->_auth) == 0) {
527
			                if ($inscription_liste->getStatutInscrit($info_liste->getId(),  $this->_auth) == 0) {
Line 550... Line 543...
550
		                $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_SUPPRIMER_LISTE) ;
543
		                $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_SUPPRIMER_LISTE) ;
551
		                $texte_liste = PROJET_SUPPRIMER_LISTE ;
544
		                $texte_liste = PROJET_SUPPRIMER_LISTE ;
552
		                $onclic = ' onclick="javascript:return confirm(\''.PROJET_SUPPRIMER_LISTE_CONFIRMATION.'\');"' ;
545
		                $onclic = ' onclick="javascript:return confirm(\''.PROJET_SUPPRIMER_LISTE_CONFIRMATION.'\');"' ;
553
		                $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'"'.$onclic.'>'.$texte_liste.'</a></li>'."\n" ;
546
		                $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'"'.$onclic.'>'.$texte_liste.'</a></li>'."\n" ;
554
		            }
547
		            }
555
 
548
		            
556
				} else {
549
				} else {
557
					if ($isAdm || $isCoord) {
550
					if ($isAdm || $isCoord) {
558
			        	$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_NOUVELLE_LISTE) ;
551
			        	$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_NOUVELLE_LISTE) ;
559
		                $texte_liste = PROJET_CREER_LISTE ;
552
		                $texte_liste = PROJET_CREER_LISTE ;
560
		                $onclic = '' ;
553
		                $onclic = '' ;
Line 562... Line 555...
562
					}
555
					}
563
				}
556
				}
564
				if ($isAdm) {
557
				if ($isAdm) {
565
					$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_REFERENCER_LISTE) ;
558
					$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_REFERENCER_LISTE) ;
566
			        $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_REFERENCER_LISTE.'</a></li>'."\n" ;
559
			        $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_REFERENCER_LISTE.'</a></li>'."\n" ;
567
 
560
					
568
				}
561
				}
569
				$res .= '</ul></li>' ;
562
				$res .= '</ul></li>' ;
570
	        }
563
	        }
571
			// Gestion projet
564
			// Gestion projet
572
			if ($isCoord || $isAdm) {
565
			if ($isCoord || $isAdm) {
Line 574... Line 567...
574
				$res .= '<ul id="projet_group_niv2_ges">' ;
567
				$res .= '<ul id="projet_group_niv2_ges">' ;
575
				// L'action modifier les proprietes du projet
568
				// L'action modifier les proprietes du projet
576
	            $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_MODIFIER_DESCRIPTION) ;
569
	            $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_MODIFIER_DESCRIPTION) ;
577
	            $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_MODIFIER_PROPRIETES."</a></li>\n" ;
570
	            $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_MODIFIER_PROPRIETES."</a></li>\n" ;
578
	            if ($isAdm || (PROJET_UTILISATEURS_COORD && $isCoord)) {
571
	            if ($isAdm || (PROJET_UTILISATEURS_COORD && $isCoord)) {
579
 
-
 
580
		            $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_MODIFIER_LISTE) ;
-
 
581
		            $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'"> Modifier la visibilité de la liste </a></li>'."\n" ;
-
 
582
		            $this->_url->removeQueryString(PROJET_VARIABLE_ACTION) ;
-
 
583
 
-
 
584
		            $this->_url->removeQueryString (PROJET_VARIABLE_ID_PROJET) ;
572
		            $this->_url->removeQueryString (PROJET_VARIABLE_ID_PROJET) ;
585
		            $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_NOUVEAU) ;
573
		            $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_NOUVEAU) ;
586
		            $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_NOUVEAU_PROJET.'</a></li>'."\n" ;
574
		            $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_NOUVEAU_PROJET.'</a></li>'."\n" ;
587
		            $this->_url->removeQueryString(PROJET_VARIABLE_ACTION) ;
575
		            $this->_url->removeQueryString(PROJET_VARIABLE_ACTION) ;
588
 
576
		            
589
		                // L'action supprimer le projet
577
		                // L'action supprimer le projet
590
                    $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_SUPPRESSION_PROJET) ;
578
                    $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_SUPPRESSION_PROJET) ;
591
                    $this->_url->addQueryString(PROJET_VARIABLE_ID_PROJET, $this->_id_projet) ;
579
                    $this->_url->addQueryString(PROJET_VARIABLE_ID_PROJET, $this->_id_projet) ;
592
                    $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'" onclick="javascript:return confirm(\''.PROJET_SUPPRIMER_PROJET_CONFIRMATION.'\');">'
580
                    $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'" onclick="javascript:return confirm(\''.PROJET_SUPPRIMER_PROJET_CONFIRMATION.'\');">'
593
                                .PROJET_SUPPRIMER_LE_PROJET."</a></li>\n" ;
581
                                .PROJET_SUPPRIMER_LE_PROJET."</a></li>\n" ;
594
		        }
582
		        }
595
	            $res .= '</ul></li>' ;
583
	            $res .= '</ul></li>' ;
596
			}
584
			}
597
 
585
			
598
			// Wikini
586
			// Wikini
599
			if ($isAdm) {
587
			if ($isAdm) {
600
				$res .= '<li class="projet_niv1">'.PROJET_WIKINI ;
588
				$res .= '<li class="projet_niv1">'.PROJET_WIKINI ;
601
	           	$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_CREER_WIKI) ;
589
	           	$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_CREER_WIKI) ;
602
	           	$res .= '<ul><li class="projet_niv2"><a href="'.$this->_url->getURL()."\">".PROJET_CREER_WIKI."</a></li>\n" ;
590
	           	$res .= '<ul><li class="projet_niv2"><a href="'.$this->_url->getURL()."\">".PROJET_CREER_WIKI."</a></li>\n" ;
Line 612... Line 600...
612
      			$this->_url->removeQueryString (PROJET_VARIABLE_ID_PROJET) ;
600
      			$this->_url->removeQueryString (PROJET_VARIABLE_ID_PROJET) ;
613
		        $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_NOUVEAU) ;
601
		        $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_NOUVEAU) ;
614
		        $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_NOUVEAU_PROJET.'</a></li>'."\n" ;
602
		        $res .= '<li class="projet_niv2"><a href="'.$this->_url->getURL().'">'.PROJET_NOUVEAU_PROJET.'</a></li>'."\n" ;
615
		        $this->_url->removeQueryString(PROJET_VARIABLE_ACTION) ;
603
		        $this->_url->removeQueryString(PROJET_VARIABLE_ACTION) ;
616
		        $res .= '</ul></li>' ;
604
		        $res .= '</ul></li>' ;
617
        	}
605
        	}	
618
        }
606
        }
619
        $res .= '</ul>' ;
607
        $res .= '</ul>' ;
620
        $res .= "</div>\n" ;
608
        $res .= "</div>\n" ;
621
        $this->_url->removeQueryString (PROJET_VARIABLE_ACTION) ;
609
        $this->_url->removeQueryString (PROJET_VARIABLE_ACTION) ;
622
        $vues = array (PROJET_ACTION_VOIR_RESUME, PROJET_ACTION_VOIR_DESCRIPTION, PROJET_ACTION_VOIR_WIKINI, PROJET_ACTION_VOIR_FORUM, PROJET_ACTION_VOIR_PARTICIPANT);
610
        $vues = array (PROJET_ACTION_VOIR_RESUME, PROJET_ACTION_VOIR_DESCRIPTION, PROJET_ACTION_VOIR_WIKINI, PROJET_ACTION_VOIR_FORUM, PROJET_ACTION_VOIR_PARTICIPANT);
Line 633... Line 621...
633
    function formulaireProjet($action)
621
    function formulaireProjet($action)
634
    {
622
    {
635
	    	if (!$this->_auth->getAuth()) {
623
	    	if (!$this->_auth->getAuth()) {
636
	    		return PROJET_TEXTE_NON_IDENTIFIE;
624
	    		return PROJET_TEXTE_NON_IDENTIFIE;
637
	    	}
625
	    	}
638
 
626
	    	
639
	    	if (fileperms(PROJET_CHEMIN_FICHIER) & 0x0002) {
627
	    	if (fileperms(PROJET_CHEMIN_FICHIER) & 0x0002) {
640
		        $this->_url->addQueryString(PROJET_VARIABLE_ACTION, $action) ;
628
		        $this->_url->addQueryString(PROJET_VARIABLE_ACTION, $action) ;
641
		        include_once PROJET_CHEMIN_CLASSES.'HTML_formulaireProjet.class.php' ;
629
		        include_once PROJET_CHEMIN_CLASSES.'HTML_formulaireProjet.class.php' ;
642
		        $formulaire_projet = new HTML_formulaireProjet('formulaire_projet', 'post',str_replace ("&amp;", "&", $this->_url->getURL())) ;
630
		        $formulaire_projet = new HTML_formulaireProjet('formulaire_projet', 'post',str_replace ("&amp;", "&", $this->_url->getURL())) ;
643
		        $tableau_type = '' ;
631
		        $tableau_type = '' ;
644
		        if (PROJET_UTILISE_TYPE) {
632
		        if (PROJET_UTILISE_TYPE) {
645
		            include_once PROJET_CHEMIN_CLASSES.'projet_type.class.php' ;
633
		            include_once PROJET_CHEMIN_CLASSES.'projet_type.class.php' ;
646
		            $tableau_type = projet_type::getTousLesTypes($this->_db) ;
634
		            $tableau_type = projet_type::getTousLesTypes($this->_db) ;
647
		        }
635
		        }
648
 
636
		        
649
		        /** recuperation des themes */
637
		        /** recuperation des themes */
650
		        include_once PROJET_CHEMIN_CLASSES.'projet_theme.class.php';
638
		        include_once PROJET_CHEMIN_CLASSES.'projet_theme.class.php';
651
		        $tableau_theme = projet_theme::getTousLesThemes($this->_db);
639
		        $tableau_theme = projet_theme::getTousLesThemes($this->_db);
652
 
640
		        
653
		        include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
641
		        include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
654
		        $formulaire_projet->construitFormulaire(projet::getTousLesProjets($this->_db), $tableau_type, $tableau_theme);
642
		        $formulaire_projet->construitFormulaire(projet::getTousLesProjets($this->_db), $tableau_type, $tableau_theme);
655
		        if ($action == PROJET_MODIFIER_DESCRIPTION_V) {
643
		        if ($action == PROJET_MODIFIER_DESCRIPTION_V) {
656
		            $projet = new projet($this->_db, $this->_id_projet) ;
644
		            $projet = new projet($this->_db, $this->_id_projet) ;
657
 
645
		            
658
		            $valeurs_par_defaut = array (   'projet_titre' => $projet->getTitre(),
646
		            $valeurs_par_defaut = array (   'projet_titre' => $projet->getTitre(),
659
		                                            'projet_description' => $projet->getDescription(),
647
		                                            'projet_description' => $projet->getDescription(),
660
		                                            'projet_asso' => $projet->getIdPere(),
648
		                                            'projet_asso' => $projet->getIdPere(),
661
		                                            'projet_wikini' => $projet->getWikini(),
649
		                                            'projet_wikini' => $projet->getWikini(),
662
		                                            'projet_resume' => $projet->getResume(),
650
		                                            'projet_resume' => $projet->getResume(),
663
		                                            'projet_espace_internet' => $projet->getEspaceInternet(),
651
		                                            'projet_espace_internet' => $projet->getEspaceInternet(),
664
		                                            'projet_type'=> $projet->getType(),
652
		                                            'projet_type'=> $projet->getType(),
665
		                                            'projet_moderation' => $projet->isModere(),
653
		                                            'projet_moderation' => $projet->isModere(),
666
		                                        ) ;
654
		                                        ) ;
667
 
655
					
668
		            $formulaire_projet->setDefaults($valeurs_par_defaut) ;
656
		            $formulaire_projet->setDefaults($valeurs_par_defaut) ;
669
		            $themes = $projet->getThemes();
657
		            $themes = $projet->getThemes();
670
		            foreach ($themes as $cle => $valeur) {
658
		            foreach ($themes as $cle => $valeur) {
671
		            	$element = $formulaire_projet->getElement('projet_theme['.$cle.']');
659
		            	$element = $formulaire_projet->getElement('projet_theme['.$cle.']');
672
		            	if (PEAR::isError($element)) return $element->getMessage().' projet_theme['.$cle.']';
660
		            	if (PEAR::isError($element)) return $element->getMessage().' projet_theme['.$cle.']';
673
		            	$element->setChecked(true);
661
		            	$element->setChecked(true);
674
		            }
662
		            }
675
		        } else {
663
		        } else {
676
		        	$formulaire_projet->setDefaults (array ('projet_moderation'=> '0')) ;
664
		        	$formulaire_projet->setDefaults (array ('projet_moderation'=> '0')) ;	
677
		        }
665
		        }
678
		        $res = PROJET_PROPOSER_PROJET ;
666
		        $res = PROJET_PROPOSER_PROJET ;
679
		        return $res . $formulaire_projet->toHTML() ;
667
		        return $res . $formulaire_projet->toHTML() ;
680
	    	} else {
668
	    	} else {
681
	    		return 'Veuillez r&eacute;gler les permissions en &eacute;criture sur '.PROJET_CHEMIN_FICHIER ;
669
	    		return 'Veuillez r&eacute;gler les permissions en &eacute;criture sur '.PROJET_CHEMIN_FICHIER ;
Line 766... Line 754...
766
 
754
 
767
            // On rajoute un champs cache avec l'identifiant du document
755
            // On rajoute un champs cache avec l'identifiant du document
768
            $formulaire_document->addElement ('hidden', 'id_document', $this->_id_document) ;
756
            $formulaire_document->addElement ('hidden', 'id_document', $this->_id_document) ;
769
            $formulaire_document->setDefaults($valeurs_par_defaut) ;
757
            $formulaire_document->setDefaults($valeurs_par_defaut) ;
-
 
758
        } else {
-
 
759
        	include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
-
 
760
        	$projet = new projet ($this->_db, $this->_id_projet) ;
770
        } else {
761
        	$visibilite = $projet->isModere() ? "prive" : "public";
771
            $formulaire_document->setDefaults (array ('document_visibilite'=> 'public')) ;
762
            $formulaire_document->setDefaults (array ('document_visibilite'=> $visibilite)) ;
772
        }
763
        }
Line 773... Line 764...
773
        return $res.$formulaire_document->toHTML() ;
764
        return $res.$formulaire_document->toHTML() ;
Line 816... Line 807...
816
        include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
807
        include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
817
        $projet = new projet ($this->_db, $this->_id_projet) ;
808
        $projet = new projet ($this->_db, $this->_id_projet) ;
818
        $document = new document($this->_id_document, $this->_db, PROJET_CHEMIN_FICHIER) ;
809
        $document = new document($this->_id_document, $this->_db, PROJET_CHEMIN_FICHIER) ;
819
        $document->suppression() ;
810
        $document->suppression() ;
820
        $document->suppressionSQL() ;
811
        $document->suppressionSQL() ;
821
 
812
        
822
        // On verifie s il reste des documents associes au projet et si non on met
813
        // On verifie s il reste des documents associes au projet et si non on met 
823
        // a jour projet.p_avoir_document
814
        // a jour projet.p_avoir_document
824
        if (count ($projet->getListesDocuments(PROJET_CHEMIN_FICHIER)) == 0) $projet->setAvoirDocument(false);
815
        if (count ($projet->getListesDocuments(PROJET_CHEMIN_FICHIER)) == 0) $projet->setAvoirDocument(false); 
825
 
816
        
826
        $this->_url->removeQueryString(PROJET_VARIABLE_ID_DOCUMENT);
817
        $this->_url->removeQueryString(PROJET_VARIABLE_ID_DOCUMENT);
827
        return ;
818
        return ;
Line 828... Line 819...
828
 
819
 
Line 879... Line 870...
879
            $chemin_upload = $document->calculeCheminUploaded($projet->getNomRepertoire()) ;
870
            $chemin_upload = $document->calculeCheminUploaded($projet->getNomRepertoire()) ;
880
			//$GLOBALS['log'] .= '<br>chemin_upload: '.$chemin_upload.'<br>';
871
			//$GLOBALS['log'] .= '<br>chemin_upload: '.$chemin_upload.'<br>';
881
			//$GLOBALS['log'] .= 'projet->getRepertoire() : '.$projet->getNomRepertoire().'<br>';
872
			//$GLOBALS['log'] .= 'projet->getRepertoire() : '.$projet->getNomRepertoire().'<br>';
882
			$id_document = SQL_obtenirNouveauId($this->_db, 'projet_documents', 'pd_id') ;
873
			$id_document = SQL_obtenirNouveauId($this->_db, 'projet_documents', 'pd_id') ;
883
			$nouveau_nom = $document->genereNouveauNom($projet->getNomRepertoire(), $_FILES['fichier']['name'], $id_document);
874
			$nouveau_nom = $document->genereNouveauNom($projet->getNomRepertoire(), $_FILES['fichier']['name'], $id_document);
884
 
875
			
885
            if (!$document->upload (PROJET_CHEMIN_FICHIER.$chemin_upload.'/'.$nouveau_nom)) {
876
            if (!$document->upload (PROJET_CHEMIN_FICHIER.$chemin_upload.'/'.$nouveau_nom)) {
886
                return 'Echec de l\'upload<br />'.
877
                return 'Echec de l\'upload<br />'.
887
                		'Fichier source : '. $_FILES['fichier']['name'];
878
                		'Fichier source : '. $_FILES['fichier']['name'];
888
                		'Fichier destination : '.PROJET_CHEMIN_FICHIER.$projet->getNomRepertoire().'/'.$chemin_upload.'/'.$nouveau_nom ;
879
                		'Fichier destination : '.PROJET_CHEMIN_FICHIER.$projet->getNomRepertoire().'/'.$chemin_upload.'/'.$nouveau_nom ;
889
            }
880
            }
Line 890... Line 881...
890
 
881
 
891
            $document->enregistrerSQL($formulaire_document->getSubmitValues(), $nouveau_nom);
882
            $document->enregistrerSQL($formulaire_document->getSubmitValues(), $nouveau_nom);
892
            // On place a 1 la colonne p_avoir_document
883
            // On place a 1 la colonne p_avoir_document
893
            if (!$projet->avoirDocument()) $projet->setAvoirDocument(true);
884
            if (!$projet->avoirDocument()) $projet->setAvoirDocument(true);
894
 
885
            
895
            // On ajoute une information de session
886
            // On ajoute une information de session
896
            $_SESSION['formulaire_document'] = 'valide';
887
            $_SESSION['formulaire_document'] = 'valide';
897
 
888
            
898
            // Pour notification coordinateur
889
            // Pour notification coordinateur
899
            include_once PROJET_CHEMIN_CLASSES.'annuaire.class.php' ;
890
            include_once PROJET_CHEMIN_CLASSES.'annuaire.class.php' ;
900
        	$utilisateur = new annuaire($this->_db, array('identifiant' => PROJET_CHAMPS_ID,
891
        	$utilisateur = new annuaire($this->_db, array('identifiant' => PROJET_CHAMPS_ID, 
901
							'mail' => PROJET_CHAMPS_MAIL, 'table' => PROJET_ANNUAIRE,
892
							'mail' => PROJET_CHAMPS_MAIL, 'table' => PROJET_ANNUAIRE,
902
							'nom'=> PROJET_CHAMPS_NOM, 'prenom' => PROJET_CHAMPS_PRENOM)) ;
893
							'nom'=> PROJET_CHAMPS_NOM, 'prenom' => PROJET_CHAMPS_PRENOM)) ;
903
            $utilisateur->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
894
            $utilisateur->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
904
	    $this->notifierCoordinateurs(PROJET_NOTIFICATION_NOUVEAU_DOC,
895
	    $this->notifierCoordinateurs(PROJET_NOTIFICATION_NOUVEAU_DOC,
Line 1049... Line 1040...
1049
     * @access public
1040
     * @access public
1050
     */
1041
     */
1051
    function envoyerUnMailFormulaire( )
1042
    function envoyerUnMailFormulaire( )
1052
    {
1043
    {
1053
    	if (!$this->_auth->getAuth()) {
1044
    	if (!$this->_auth->getAuth()) {
1054
    		return PROJET_LISTE_PROJET;
1045
    		return PROJET_LISTE_PROJET;	
1055
    	}
1046
    	}
1056
    	if (isset($_SESSION['formulaire_mail'])) {
1047
    	if (isset($_SESSION['formulaire_mail'])) {
1057
            unset ($_SESSION['formulaire_mail']) ;
1048
            unset ($_SESSION['formulaire_mail']) ;
1058
        }
1049
        }
1059
        $res = '<h1>'.PROJET_ECRIRE_LISTE.'</h1>'."\n" ;
1050
        $res = '<h1>'.PROJET_ECRIRE_LISTE.'</h1>'."\n" ;
Line 1074... Line 1065...
1074
    {
1065
    {
1075
        // Verifications
1066
        // Verifications
1076
        if (isset($_SESSION['formulaire_mail']) && $_SESSION['formulaire_mail'] == 'valide') {
1067
        if (isset($_SESSION['formulaire_mail']) && $_SESSION['formulaire_mail'] == 'valide') {
1077
            return include_once PROJET_CHEMIN_APPLI.'actions/forums.php' ;
1068
            return include_once PROJET_CHEMIN_APPLI.'actions/forums.php' ;
1078
        }
1069
        }
1079
 
1070
        
1080
        $this->_url->addQueryString (PROJET_VARIABLE_ACTION, PROJET_ENVOYER_UN_MAIL_V );
1071
        $this->_url->addQueryString (PROJET_VARIABLE_ACTION, PROJET_ENVOYER_UN_MAIL_V );
1081
        include_once PROJET_CHEMIN_CLASSES.'HTML_formulaireMail.class.php' ;
1072
        include_once PROJET_CHEMIN_CLASSES.'HTML_formulaireMail.class.php' ;
1082
        $formulaire_mail = new HTML_formulaireMail('formulaire_mail', 'post', preg_replace ("/&amp;/", "&", $this->_url->getURL())) ;
1073
        $formulaire_mail = new HTML_formulaireMail('formulaire_mail', 'post', preg_replace ("/&amp;/", "&", $this->_url->getURL())) ;
1083
        $formulaire_mail->construitFormulaire() ;
1074
        $formulaire_mail->construitFormulaire() ;
1084
        if ($formulaire_mail->validate()) {
1075
        if ($formulaire_mail->validate()) {
Line 1125... Line 1116...
1125
        $formulaire_liste = new HTML_formulaireListe('formulaire_liste', 'post',preg_replace ("/&amp;/", "&", $this->_url->getURL())) ;
1116
        $formulaire_liste = new HTML_formulaireListe('formulaire_liste', 'post',preg_replace ("/&amp;/", "&", $this->_url->getURL())) ;
1126
        $formulaire_liste->construitFormulaire() ;
1117
        $formulaire_liste->construitFormulaire() ;
1127
        $formulaire_liste->setDefaults(array('domaine_liste' => PROJET_DOMAINE_LISTE)) ;
1118
        $formulaire_liste->setDefaults(array('domaine_liste' => PROJET_DOMAINE_LISTE)) ;
1128
        $formulaire_liste->updateElementAttr('domaine_liste', array('readonly' => 'readonly')) ;
1119
        $formulaire_liste->updateElementAttr('domaine_liste', array('readonly' => 'readonly')) ;
1129
        return $res.$formulaire_liste->toHTML() ;
1120
        return $res.$formulaire_liste->toHTML() ;
1130
    }
1121
    } 
1131
 
-
 
1132
    function formulaireModificationListe($id_projet) {
-
 
1133
 
-
 
1134
    	include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
-
 
1135
		$projet = new projet ($this->_db, $this->_id_projet) ;
-
 
1136
 
-
 
1137
		$projet->getListesAssociees();
-
 
1138
		//var_dump($projet);
-
 
1139
		$liste_visible = $projet->_listes_associes[0]->getVisibilite();
-
 
1140
 
-
 
1141
    	$res = '<h1> Modification de la visibilité de la liste </h1><br />'."\n" ;
-
 
1142
        $this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_MODIFIER_LISTE_V) ;
-
 
1143
        $res .= '<form action="'.$this->_url->getURL().'" method="post">'.
-
 
1144
        '<label for="liste_visible">Visibilité de la liste </label><input type="checkbox" name="liste_visible" id="liste_visible"';
-
 
1145
		if($liste_visible == 1) {
-
 
1146
			$res .= ' checked="checked" ';
-
 
1147
		}
-
 
1148
 		$res .= ' /> <br /><br />'.
-
 
1149
        '<input type="submit" value="valider" /> '.
-
 
1150
        '</form>';
-
 
1151
 
-
 
1152
		return $res;
-
 
1153
    }
-
 
Line 1154... Line 1122...
1154
 
1122
 
1155
    /**
1123
    /**
1156
     * Transmet au serveur la demande de creation d'une nouvelle liste.
1124
     * Transmet au serveur la demande de creation d'une nouvelle liste.
1157
     *
1125
     *
Line 1200... Line 1168...
1200
        } else {
1168
        } else {
1201
            return $formulaire_liste->toHTML() ;
1169
            return $formulaire_liste->toHTML() ;
1202
        }
1170
        }
1203
    } // end of member function nouvelleListeValidation
1171
    } // end of member function nouvelleListeValidation
Line 1204... Line -...
1204
 
-
 
1205
    function modifierListeValidation($id_projet) {
-
 
1206
 
-
 
1207
        if(isset($_POST['liste_visible'])) {
-
 
1208
			$visibilite = true;
-
 
1209
        } else {
-
 
1210
        	$visibilite = false;
-
 
1211
        }
-
 
1212
 
-
 
1213
		$projet->getListesAssociees();
-
 
1214
		$id_liste = $projet->_listes_associes[0]->getId();
-
 
1215
		$projet->majSQLVisibilite($id_projet,$visibilite);
-
 
1216
 
-
 
1217
		return true;
-
 
1218
    }
-
 
1219
 
1172
 
1220
    /**
1173
    /**
1221
     * Supprime la liste de discussion associee au projet
1174
     * Supprime la liste de discussion associee au projet
1222
     *
1175
     *
1223
     * @return void
1176
     * @return void
Line 1274... Line 1227...
1274
 
1227
 
1275
        // Si le projet n'a pas de liste, on inscrit directement
1228
        // Si le projet n'a pas de liste, on inscrit directement
1276
        if (isset ($this->_id_projet)) {
1229
        if (isset ($this->_id_projet)) {
1277
            include_once PROJET_CHEMIN_CLASSES.'participe.class.php' ;
1230
            include_once PROJET_CHEMIN_CLASSES.'participe.class.php' ;
1278
            $participant = new participe($this->_db) ;
1231
            $participant = new participe($this->_db) ;
1279
 
1232
			
1280
			// On controle si la liste est externe (yahoo) auquel cas on ne presente pas l inscription
1233
			// On controle si la liste est externe (yahoo) auquel cas on ne presente pas l inscription
1281
			include_once PROJET_CHEMIN_CLASSES.'liste_externe.class.php' ;
1234
			include_once PROJET_CHEMIN_CLASSES.'liste_externe.class.php' ;
1282
			$liste_ext = new liste_externe($this->_db);
1235
			$liste_ext = new liste_externe($this->_db);
1283
			$listes = $liste_ext->getListesAssociees($this->_id_projet);
1236
			$listes = $liste_ext->getListesAssociees($this->_id_projet);
Line 1292... Line 1245...
1292
			}
1245
			}
1293
            if (!$projet->avoirListe() || $avoir_liste_externe) {
1246
            if (!$projet->avoirListe() || $avoir_liste_externe) {
1294
            	if ($projet->isModere()) {
1247
            	if ($projet->isModere()) {
1295
                	$participant->setStatut(3, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
1248
                	$participant->setStatut(3, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
1296
            	} else {
1249
            	} else {
1297
            		$participant->setStatut(2, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
1250
            		$participant->setStatut(2, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;     		 
1298
            		$message_retour = '<p class="information">Votre inscription a bien &eacute;t&eacute; prise en compte'.$msg.'</p>';
1251
            		$message_retour = '<p class="information">Votre inscription a bien &eacute;t&eacute; prise en compte'.$msg.'</p>';
1299
            	}
1252
            	}
1300
            	$message_retour = '<p class="information">Votre inscription a bien &eacute;t&eacute; prise en compte. '.$msg.'</p>';
1253
            	$message_retour = '<p class="information">Votre inscription a bien &eacute;t&eacute; prise en compte. '.$msg.'</p>';
1301
    			include_once PROJET_CHEMIN_APPLI.'actions/resume.php' ;
1254
    			include_once PROJET_CHEMIN_APPLI.'actions/resume.php' ;
1302
    			return $retour;
1255
    			return $retour;
1303
            }
1256
            }
1304
        }
1257
        }
1305
        if (isset($_POST['valider_inscription_projet'])) {
1258
        if (isset($_POST['valider_inscription_projet'])) {
1306
            if (isset($_POST['radio_inscription_liste'])) {
1259
            if (isset($_POST['radio_inscription_liste'])) {
1307
            	include_once PROJET_CHEMIN_CLASSES.'annuaire.class.php' ;
1260
            	include_once PROJET_CHEMIN_CLASSES.'annuaire.class.php' ;
1308
            	$utilisateur = new annuaire($this->_db, array('identifiant' => PROJET_CHAMPS_ID,
1261
            	$utilisateur = new annuaire($this->_db, array('identifiant' => PROJET_CHAMPS_ID, 
1309
								'mail' => PROJET_CHAMPS_MAIL, 'table' => PROJET_ANNUAIRE,
1262
								'mail' => PROJET_CHAMPS_MAIL, 'table' => PROJET_ANNUAIRE,
1310
								'nom'=> PROJET_CHAMPS_NOM, 'prenom' => PROJET_CHAMPS_PRENOM)) ;
1263
								'nom'=> PROJET_CHAMPS_NOM, 'prenom' => PROJET_CHAMPS_PRENOM)) ;
1311
	            $utilisateur->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
1264
	            $utilisateur->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
1312
 
1265
                 
1313
            	if (!$projet->isModere()) {
-
 
1314
	                $participant->setStatut(2, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
-
 
1315
 
-
 
1316
	                if ($_POST['radio_inscription_liste'] == 2) {
1266
	                if ($_POST['radio_inscription_liste'] == 2) {
1317
		                include_once PROJET_CHEMIN_CLASSES.'inscription_liste.class.php' ;
1267
		                include_once PROJET_CHEMIN_CLASSES.'inscription_liste.class.php' ;
1318
		                $projet->getListesAssociees() ;
1268
		                $projet->getListesAssociees() ;
1319
		                $inscription_liste = new inscription_liste($this->_db) ;
1269
		                $inscription_liste = new inscription_liste($this->_db) ;
1320
		                $inscription_liste->inscrireUtilisateur( $utilisateur,
1270
		                $inscription_liste->inscrireUtilisateur( $utilisateur,
1321
	                                                        $projet->_listes_associes[0],
1271
	                                                        $projet->_listes_associes[0],
1322
	                                                        $_POST['radio_inscription_liste']) ;
1272
	                                                        $_POST['radio_inscription_liste']) ;
1323
	                }
1273
	                }
-
 
1274
	                
-
 
1275
	            if (!$projet->isModere()) {
-
 
1276
	                $participant->setStatut(2, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
-
 
1277
	                
1324
                    $this->notifierCoordinateurs(PROJET_NOTIFICATION_INSCRIPTION_NOUVELLE, $utilisateur);
1278
                    $this->notifierCoordinateurs(PROJET_NOTIFICATION_INSCRIPTION_NOUVELLE, $utilisateur);
1325
            	} else {
1279
            	} else {
1326
            		$participant->setStatut(3, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
1280
            		$participant->setStatut(3, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
1327
 
1281
            		
1328
            		$this->notifierCoordinateurs(PROJET_NOTIFICATION_DEMANDE_INSCRIPTION, $utilisateur);
1282
            		$this->notifierCoordinateurs(PROJET_NOTIFICATION_DEMANDE_INSCRIPTION, $utilisateur);
1329
            	}
1283
            	}
1330
            }
1284
            }
Line 1331... Line 1285...
1331
 
1285
 
Line 1404... Line 1358...
1404
    function desinscriptionProjet( )
1358
    function desinscriptionProjet( )
1405
    {
1359
    {
1406
        include_once PROJET_CHEMIN_CLASSES.'participe.class.php' ;
1360
        include_once PROJET_CHEMIN_CLASSES.'participe.class.php' ;
1407
        include_once PROJET_CHEMIN_CLASSES.'annuaire.class.php' ;
1361
        include_once PROJET_CHEMIN_CLASSES.'annuaire.class.php' ;
1408
        $participant = new participe($this->_db) ;
1362
        $participant = new participe($this->_db) ;
1409
		$utilisateur = new annuaire($this->_db, array('identifiant' => PROJET_CHAMPS_ID,
1363
		$utilisateur = new annuaire($this->_db, array('identifiant' => PROJET_CHAMPS_ID, 
1410
								'mail' => PROJET_CHAMPS_MAIL, 'table' => PROJET_ANNUAIRE,
1364
								'mail' => PROJET_CHAMPS_MAIL, 'table' => PROJET_ANNUAIRE,
1411
								'nom'=> PROJET_CHAMPS_NOM, 'prenom' => PROJET_CHAMPS_PRENOM)) ;
1365
								'nom'=> PROJET_CHAMPS_NOM, 'prenom' => PROJET_CHAMPS_PRENOM)) ;
1412
	    $utilisateur->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
1366
	    $utilisateur->setId($this->_auth->getAuthData(PROJET_CHAMPS_ID)) ;
1413
 
1367
	    
1414
        // Le statut 4 desinscrit l'utilisateur, dans la methode setStatut
1368
        // Le statut 4 desinscrit l'utilisateur, dans la methode setStatut
1415
        $participant->setStatut(4, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
1369
        $participant->setStatut(4, $this->_auth->getAuthData (PROJET_CHAMPS_ID), $this->_id_projet) ;
1416
        include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
1370
        include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
1417
        $projet = new projet ($this->_db, $this->_id_projet) ;
1371
        $projet = new projet ($this->_db, $this->_id_projet) ;
1418
        $projet->getListesAssociees() ;
1372
        $projet->getListesAssociees() ;
Line 1423... Line 1377...
1423
            include_once PROJET_CHEMIN_CLASSES.'inscription_liste.class.php' ;
1377
            include_once PROJET_CHEMIN_CLASSES.'inscription_liste.class.php' ;
1424
            $desinscription= new inscription_liste($this->_db) ;
1378
            $desinscription= new inscription_liste($this->_db) ;
1425
            $desinscription->desinscrireUtilisateur($annuaire, $projet->_listes_associes[0]) ;
1379
            $desinscription->desinscrireUtilisateur($annuaire, $projet->_listes_associes[0]) ;
1426
        }
1380
        }
1427
        $this->notifierCoordinateurs(PROJET_NOTIFICATION_DESINSCRIPTION_PROJET, $utilisateur);
1381
        $this->notifierCoordinateurs(PROJET_NOTIFICATION_DESINSCRIPTION_PROJET, $utilisateur);
1428
 
1382
        
1429
        // On verifie si l utilisateur est le dernier coordinateur
1383
        // On verifie si l utilisateur est le dernier coordinateur
1430
        // auquel cas on previent les administrateurs
1384
        // auquel cas on previent les administrateurs
1431
        if ($participant->isCoordinateur($this->_auth->getAuthData(PROJET_CHAMPS_ID), $this->_id_projet, $this->_db)) {
1385
        if ($participant->isCoordinateur($this->_auth->getAuthData(PROJET_CHAMPS_ID), $this->_id_projet, $this->_db)) {
1432
        	$coord = $participant->getCoordinateurs($this->_id_projet);
1386
        	$coord = $participant->getCoordinateurs($this->_id_projet);
1433
        	if (count($coord) == 0) {
1387
        	if (count($coord) == 0) {
1434
        		$this->notifierCoordinateurs(PROJET_NOTIFICATION_DESINSCRIPTION_PROJET_DERNIER_COORD, $utilisateur);
1388
        		$this->notifierCoordinateurs(PROJET_NOTIFICATION_DESINSCRIPTION_PROJET_DERNIER_COORD, $utilisateur);
1435
        	}
1389
        	}
1436
        }
1390
        }
1437
        //
1391
        // 
1438
        include_once PROJET_CHEMIN_CLASSES.'liste_externe.class.php';
1392
        include_once PROJET_CHEMIN_CLASSES.'liste_externe.class.php';
1439
        $liste_ext = new liste_externe($this->_db);
1393
        $liste_ext = new liste_externe($this->_db);
1440
		$listes = $liste_ext->getListesAssociees($this->_id_projet);
1394
		$listes = $liste_ext->getListesAssociees($this->_id_projet);
1441
 
1395
		
1442
		$msg = '';
1396
		$msg = '';
1443
		if (count ($listes) != 0) {
1397
		if (count ($listes) != 0) {
1444
			$info_liste = $liste_ext->getInfoListe($listes[0]);
1398
			$info_liste = $liste_ext->getInfoListe($listes[0]);
1445
			$msg = 'Pensez si vous le souhaitez à vous d&eacute;sinscrire de la liste de discussion, h&eacute;berg&eacute;e par Yahoo Groupes.';
1399
			$msg = 'Pensez si vous le souhaitez à vous d&eacute;sinscrire de la liste de discussion, h&eacute;berg&eacute;e par Yahoo Groupes.';
1446
			$msg .= ' Vous pouvez le faire en <a href="mailto:';
1400
			$msg .= ' Vous pouvez le faire en <a href="mailto:';
Line 1460... Line 1414...
1460
     *
1414
     *
1461
     * @return void
1415
     * @return void
1462
     * @access public
1416
     * @access public
1463
     */
1417
     */
1464
    function formulaireWiki( )
1418
    function formulaireWiki( )
1465
    {
1419
    {	
1466
 
-
 
-
 
1420
		$GLOBALS['url']->addQueryString ('act', PROJET_ACTION_CREER_WIKI) ;
-
 
1421
		$GLOBALS['url']->addQueryString (PROJET_VARIABLE_ID_PROJET, $this->_id_projet) ;
1467
		require_once 'client/integrateur_wikini/bibliotheque/iw_admin_wikini.fonct.php';
1422
		require_once 'client/integrateur_wikini/bibliotheque/iw_admin_wikini.fonct.php';
1468
 
-
 
1469
  		$url = &$GLOBALS['_GEN_commun']['url'] ;
-
 
1470
		$url->addQueryString ('act', PROJET_ACTION_CREER_WIKI) ;
-
 
1471
		$url->addQueryString (PROJET_VARIABLE_ID_PROJET, $this->_id_projet) ;
-
 
1472
		$res =admin_afficherContenuCorps();
1423
		$res =admin_afficherContenuCorps();
1473
		$res .= '<br /><a href="'.$this->_url->getURL().'">'.PROJET_RETOUR_RESUME.'</a>';
1424
		$res .= '<br /><a href="'.$this->_url->getURL().'">'.PROJET_RETOUR_RESUME.'</a>';
1474
    	return $res;
1425
    	return $res;
Line 1475... Line 1426...
1475
 
1426
 
Line 1631... Line 1582...
1631
       $this->_prive = 1 ;
1582
       $this->_prive = 1 ;
1632
    } // end of member function exclure
1583
    } // end of member function exclure
Line 1633... Line 1584...
1633
 
1584
 
1634
	/**
1585
	/**
1635
	 * 	retourne une variable locale si la variable $_GET existe
1586
	 * 	retourne une variable locale si la variable $_GET existe
1636
	 *
1587
	 *  
1637
	 */
1588
	 */
1638
	function traiterVariableGet($var, $valeur_par_defaut ='') {
1589
	function traiterVariableGet($var, $valeur_par_defaut ='') {
1639
		if (isset($_GET[$var]) && $_GET[$var] != '') {
1590
		if (isset($_GET[$var]) && $_GET[$var] != '') {
1640
			return $_GET[$var];
1591
			return $_GET[$var];
Line 1658... Line 1609...
1658
                    PROJETCONTROLEUR_PAS_DE_DOCUMENT_SELECTIONNE => 'Pas de fichier s&eacute;lectionn&eacute;',
1609
                    PROJETCONTROLEUR_PAS_DE_DOCUMENT_SELECTIONNE => 'Pas de fichier s&eacute;lectionn&eacute;',
1659
                    PROJETCONTROLEUR_ERREUR_CREATION_REPERTOIRE => 'Impossible de cr&eacute;er le r&eacute;pertoire'
1610
                    PROJETCONTROLEUR_ERREUR_CREATION_REPERTOIRE => 'Impossible de cr&eacute;er le r&eacute;pertoire'
1660
        ) ;
1611
        ) ;
1661
        return '<p class="erreur">'.$messageErreur[$valeur].'</p>' ;
1612
        return '<p class="erreur">'.$messageErreur[$valeur].'</p>' ;
1662
    } // end of member function messageErreur
1613
    } // end of member function messageErreur
1663
 
1614
	
1664
	/** Envoie de mail pour prevenir les coordinateurs d une action sur le projet
1615
	/** Envoie de mail pour prevenir les coordinateurs d une action sur le projet
1665
	 *  Lorsqu un projet n a plus de coordinateur, la notification est
1616
	 *  Lorsqu un projet n a plus de coordinateur, la notification est
1666
	 *  envoyee aux administrateurs
1617
	 *  envoyee aux administrateurs
1667
	 *
1618
	 * 
1668
	 */
1619
	 */
Line 1669... Line 1620...
1669
 
1620
 
1670
    function notifierCoordinateurs ($notification, $utilisateur, $lien = false) {
1621
    function notifierCoordinateurs ($notification, $utilisateur, $lien = false) {
1671
 
1622
		
1672
		include_once PROJET_CHEMIN_CLASSES.'projetTemplate.class.php';
1623
		include_once PROJET_CHEMIN_CLASSES.'projetTemplate.class.php';
1673
 
1624
		
1674
		switch ($notification) {
1625
		switch ($notification) {
1675
			case PROJET_NOTIFICATION_DEMANDE_INSCRIPTION :
1626
			case PROJET_NOTIFICATION_DEMANDE_INSCRIPTION : 
1676
				$sujet = PROJET_TEMPLATE_DEMANDE_INSCRIPTION_SUJET;
1627
				$sujet = PROJET_TEMPLATE_DEMANDE_INSCRIPTION_SUJET;
1677
				$corps = PROJET_TEMPLATE_DEMANDE_INSCRIPTION_CORPS;
1628
				$corps = PROJET_TEMPLATE_DEMANDE_INSCRIPTION_CORPS;
1678
			break;
1629
			break;
1679
			case PROJET_NOTIFICATION_INSCRIPTION_NOUVELLE :
1630
			case PROJET_NOTIFICATION_INSCRIPTION_NOUVELLE :
Line 1690... Line 1641...
1690
			break;
1641
			break;
1691
			case PROJET_NOTIFICATION_DESINSCRIPTION_PROJET_DERNIER_COORD:
1642
			case PROJET_NOTIFICATION_DESINSCRIPTION_PROJET_DERNIER_COORD:
1692
				$sujet = PROJET_TEMPLATE_DESINSCRIPTION_DERNIER_COORD_SUJET;
1643
				$sujet = PROJET_TEMPLATE_DESINSCRIPTION_DERNIER_COORD_SUJET;
1693
				$corps = PROJET_TEMPLATE_DESINSCRIPTION_DERNIER_COORD_CORPS;
1644
				$corps = PROJET_TEMPLATE_DESINSCRIPTION_DERNIER_COORD_CORPS;
1694
			break;
1645
			break;
1695
 
1646
	
1696
		}
1647
		}
1697
 
1648
		
1698
		include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
1649
		include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
1699
        $projet = new projet ($this->_db, $this->_id_projet) ;
1650
        $projet = new projet ($this->_db, $this->_id_projet) ;
1700
        include_once PROJET_CHEMIN_CLASSES.'participe.class.php';
1651
        include_once PROJET_CHEMIN_CLASSES.'participe.class.php';
1701
		$participant = new participe($this->_db) ;
1652
		$participant = new participe($this->_db) ;
1702
		$tableau_coordinateur = $participant->getCoordinateurs($this->_id_projet) ;
1653
		$tableau_coordinateur = $participant->getCoordinateurs($this->_id_projet) ;
1703
 
1654
		
1704
		$objet_mail =& Mail::factory('smtp');
1655
		$objet_mail =& Mail::factory('smtp');
1705
 
1656
		
1706
		$modele = new projetTemplate($GLOBALS['projet_db']);
1657
		$modele = new projetTemplate($GLOBALS['projet_db']);
Line 1707... Line 1658...
1707
 
1658
 
1708
		$sujet_mail = $modele->getTemplate($sujet, PROJET_LANGUE_DEFAUT);
1659
		$sujet_mail = $modele->getTemplate($sujet, PROJET_LANGUE_DEFAUT);
1709
		$corps_mail = $modele->getTemplate($corps, PROJET_LANGUE_DEFAUT);
1660
		$corps_mail = $modele->getTemplate($corps, PROJET_LANGUE_DEFAUT);
1710
 
1661
		
1711
	    if (PEAR::isError($sujet_mail)) $sujet_mail->raiseError ($sujet_mail->getMessage().'<br />'.$sujet_mail->getDebugInfo());
1662
	    if (PEAR::isError($sujet_mail)) $sujet_mail->raiseError ($sujet_mail->getMessage().'<br />'.$sujet_mail->getDebugInfo());
1712
 
1663
	    
1713
	    $corps_mail = str_replace ('{nom}', $utilisateur->getInfo( 'nom'), $corps_mail);
1664
	    $corps_mail = str_replace ('{nom}', $utilisateur->getInfo( 'nom'), $corps_mail);
1714
	    $corps_mail = str_replace ('{prenom}', $utilisateur->getInfo( 'prenom'), $corps_mail);
1665
	    $corps_mail = str_replace ('{prenom}', $utilisateur->getInfo( 'prenom'), $corps_mail);
1715
	    $corps_mail = str_replace ('{nom_projet}', $projet->getTitre(), $corps_mail);
1666
	    $corps_mail = str_replace ('{nom_projet}', $projet->getTitre(), $corps_mail);
1716
	    if($notification == PROJET_NOTIFICATION_NOUVEAU_DOC && $lien) {
1667
	    if($notification == PROJET_NOTIFICATION_NOUVEAU_DOC && $lien) {
1717
		$corps_mail = str_replace ('{lien}', $lien, $corps_mail);
1668
		$corps_mail = str_replace ('{lien}', $lien, $corps_mail);
1718
	    }
1669
	    }
1719
	    else {
1670
	    else {
1720
		$corps_mail = str_replace ('{lien}', str_replace ('&amp;', '&', $this->_url->getURL()), $corps_mail);
1671
		$corps_mail = str_replace ('{lien}', str_replace ('&amp;', '&', $this->_url->getURL()), $corps_mail);
1721
	    }
1672
	    }
1722
 
1673
		
1723
		$entetes['From'] = PROJET_MAIL_ADMINISTRATEUR;
1674
		$entetes['From'] = PROJET_MAIL_ADMINISTRATEUR;
1724
        $entetes['To'] = '';
1675
        $entetes['To'] = '';
1725
        $entetes['Subject'] = trim ($sujet_mail) ;  // le trim est necessaire pour enlever d eventuels retour-chariot qui foutent el l air le message
1676
        $entetes['Subject'] = trim ($sujet_mail) ;  // le trim est necessaire pour enlever d eventuels retour-chariot qui foutent el l air le message 
1726
        $entetes['Date'] = date ('D, M j G:i:s \C\E\S\T Y') ;
1677
        $entetes['Date'] = date ('D, M j G:i:s \C\E\S\T Y') ;
1727
        $entetes['Message-ID'] = md5(time()) ;
1678
        $entetes['Message-ID'] = md5(time()) ;
1728
        $entetes['reply-to'] = $this->_auth->getUserName();
1679
        $entetes['reply-to'] = $this->_auth->getUserName();
1729
        $entetes['Content-Type'] = 'text/plain' ;
1680
        $entetes['Content-Type'] = 'text/plain' ;
1730
 
1681
        
1731
        // 2 cas : 1. il reste des coordinateurs ou notification pour administrateur
1682
        // 2 cas : 1. il reste des coordinateurs ou notification pour administrateur
1732
        // 2. plus de coordinateur ou notification pour administrateur
1683
        // 2. plus de coordinateur ou notification pour administrateur
1733
        if (count ($tableau_coordinateur) != 0 && $notification != PROJET_NOTIFICATION_DESINSCRIPTION_PROJET_DERNIER_COORD) {
1684
        if (count ($tableau_coordinateur) != 0 && $notification != PROJET_NOTIFICATION_DESINSCRIPTION_PROJET_DERNIER_COORD) {
1734
			foreach ($tableau_coordinateur as $coordinateur) {
1685
			foreach ($tableau_coordinateur as $coordinateur) {
1735
				$entetes['To'] .= $coordinateur[3].',';	// Le champs 3 est le mail
1686
				$entetes['To'] .= $coordinateur[3].',';	// Le champs 3 est le mail
1736
 
1687
				
1737
			}
1688
			}
1738
			// On enleve la virgule finale
1689
			// On enleve la virgule finale
1739
 
1690
			
1740
			$entetes['To'] = substr ($entetes['To'], 0, -1);
1691
			$entetes['To'] = substr ($entetes['To'], 0, -1);
1741
 
1692
	
1742
			// on envoie le mail
1693
			// on envoie le mail
1743
			$objet_mail->send($entetes['To'], $entetes, html_entity_decode ($corps_mail));
1694
			$objet_mail->send($entetes['To'], $entetes, html_entity_decode ($corps_mail));
1744
        } else {  // Pour le cas ou il n y a plus de coordinateur, on envoie un message aux administrateurs
1695
        } else {  // Pour le cas ou il n y a plus de coordinateur, on envoie un message aux administrateurs
1745
        	$tableau_administrateur = $participant->getAdministrateurs();
1696
        	$tableau_administrateur = $participant->getAdministrateurs();
1746
        	trigger_error(print_r($tableau_administrateur, true));
1697
        	trigger_error(print_r($tableau_administrateur, true));
1747
        	foreach ($tableau_administrateur as $administrateur) {
1698
        	foreach ($tableau_administrateur as $administrateur) {
1748
				$entetes['To'] .= $administrateur[3].',';	// Le champs 3 est le mail
1699
				$entetes['To'] .= $administrateur[3].',';	// Le champs 3 est le mail
1749
 
1700
				
1750
			}
1701
			}
1751
			// On enleve la virgule finale
1702
			// On enleve la virgule finale
1752
 
1703
			
1753
			$entetes['To'] = substr ($entetes['To'], 0, -1);
1704
			$entetes['To'] = substr ($entetes['To'], 0, -1);
1754
 
1705
	
1755
			// on envoie le mail
1706
			// on envoie le mail
1756
			$objet_mail->send($entetes['To'], $entetes, html_entity_decode ($corps_mail));
1707
			$objet_mail->send($entetes['To'], $entetes, html_entity_decode ($corps_mail));
1757
        }
1708
        }
Line 1758... Line 1709...
1758
	}
1709
	}
Line 1759... Line 1710...
1759
 
1710
 
1760
 
1711
 
1761
} // end of projetControleur
1712
} // end of projetControleur
1762
 
1713
 
1763
class bouton {
1714
class bouton {
1764
	static function toHTML($lien, $label, $id, $class='projet_bouton_action') {
1715
	static function toHTML($lien, $label, $id, $class='projet_bouton_action') {
1765
 
1716
		
1766
		if ($lien != '#') {
1717
		if ($lien != '#') {
1767
			$balise_a_debut = '<a href="'.$lien.'"'.($id == 'cross'? ' onclick="javascript:return confirm(\''.$label.' ?\');"':'').'>';
1718
			$balise_a_debut = '<a href="'.$lien.'"'.($id == 'cross'? ' onclick="javascript:return confirm(\''.$label.' ?\');"':'').'>';
1768
			$balise_a_fin = '</a>';
1719
			$balise_a_fin = '</a>';	
1769
		} else {
1720
		} else {