Rev 2 | Rev 39 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*vim: set expandtab tabstop=4 shiftwidth=4: */// +------------------------------------------------------------------------------------------------------+// | PHP version 4.1 |// +------------------------------------------------------------------------------------------------------+// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |// +------------------------------------------------------------------------------------------------------+// | This library is free software; you can redistribute it and/or |// | modify it under the terms of the GNU General Public |// | License as published by the Free Software Foundation; either |// | version 2.1 of the License, or (at your option) any later version. |// | |// | This library is distributed in the hope that it will be useful, |// | but WITHOUT ANY WARRANTY; without even the implied warranty of |// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |// | General Public License for more details. |// | |// | You should have received a copy of the GNU General Public |// | License along with this library; if not, write to the Free Software |// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |// +------------------------------------------------------------------------------------------------------+// CVS : $Id: forums.php,v 1.2 2005-09-27 16:43:53 alexandre_tb Exp $/*** Application projet** Action forums**@package projet//Auteur original :*@author Alexandre Granier <alexandre@tela-botanica.org>//Autres auteurs :*@author Aucun*@copyright Tela-Botanica 2000-2005*@version $Revision: 1.2 $// +------------------------------------------------------------------------------------------------------+*/// +------------------------------------------------------------------------------------------------------+// | ENTETE du PROGRAMME |// +------------------------------------------------------------------------------------------------------+include_once (PROJET_CHEMIN_CLASSES.'HTML_formulaireMail.php') ;// RAPPEL IMPORTANT// On se situe dans la méthode run() de la classe projetControleur//// création de l'objet projet courant$projet = new projet ($this->_db, $this->_id_projet) ;$liste_ext_res = '' ;$sortie_liste = '' ;if ($projet->avoirListe()) {foreach ($projet->_listes_associes as $info_liste) {ob_start() ;$id_u = $this->_auth->getAuthData(PROJET_CHAMPS_ID) ;if ($this->_auth->getAuth()) {$participant = new participe($this->_db) ;$isCoord = $participant->isCoordinateur($id_u, $this->_id_projet, $this->_db) ;if ($isCoord) $droits = PROJET_DROIT_COORDINATEUR ;$isAdm = participe::isAdministrateur($this->_auth->getAuthData(PROJET_CHAMPS_ID), $this->_db) ;if ($isAdm) $droits = PROJET_DROIT_ADMINISTRATEUR ;if ($isAdm) $isCoord = true ;} else {$droits = PROJET_DROIT_AUCUN;}if ($info_liste->isPublic() || $droits <= PROJET_DROIT_CONTRIBUTEUR) {$liste = new ezmlm_php() ;// Paramétrage de la liste$liste->listdir = PROJET_CHEMIN_LISTES.$info_liste->getDomaine().'/'.$info_liste->getNom();$liste->listname = $info_liste->getNom() ;$liste->listdomain = $info_liste->getDomaine();if (isset ($GLOBALS['action']) && $GLOBALS['action'] != '') {$liste->set_action($GLOBALS['action']) ;$liste->set_actionargs($GLOBALS['actionargs']) ;} else {$liste->set_action('list_info') ;}$liste->sendheaders = false;$liste->sendbody = false;$liste->sendfooters = false;$liste->forcehref = $this->_url->getURL() ;print '<a href="mailto:'.$info_liste->getAdresseEnvoi().'">' . $info_liste->getAdresseEnvoi() ;print "</a><br />\n";print '<h2>'.PROJET_TOUS_LES_MESSAGES.'</h2>'."\n";$info = new ezmlm_threads();if (!$info) return 'Les fichiers de la liste ne sont pas visible sur le serveur' ;$this->_url->addQueryString(PROJET_VARIABLE_ACTION, $this->_action) ;$info->forcehref = $this->_url->getURL();$info->listdir = $liste->listdir ;$info->listname = $info_liste->getNom();$info->listdomain = $info_liste->getDomaine() ;if (!$info->listmessages()) {if (!$info) return 'Les fichiers de la liste ne sont pas visible sur le serveur' ;}$this->_url->addQueryString(PROJET_VARIABLE_ACTION, $this->_action) ;// On teste si l'on vient d'une réponse à un email, si oui// on modifie $liste->action pour renvoyer le message auquelon vient de répondreif (isset($_POST['messageid'])) {$liste->action = 'show_msg' ;}switch ($liste->action) {case "show_msg":if (count($liste->actionargs) < 2) {$liste->error(EZMLM_INVALID_SYNTAX,TRUE);}$show_msg = new ezmlm_msgdisplay();$show_msg->listdir = $liste->listdir ;$show_msg->forcehref = $this->_url->getURL();$show_msg->listname = $info_liste->getNom() ;$show_msg->_auth = & $this->_auth ;// actionargs[0] contient le nom du répertoire et actionargs[1] le nom du fichier// On appelle la fonction qui affiche un fichierprint'<h2>'.PROJET_DERNIERS_MESSAGES.'</h2>'."\n" ;$show_msg->display($liste->actionargs[0] . "/" . $liste->actionargs[1]);break;case "list_info":$info = new ezmlm_listinfo();if (!$info) print 'Les fichiers de la liste ne sont pas visible sur le serveur' ;$info->forcehref = $this->_url->getURL();$info->listdir = $liste->listdir ;$info->listname = $info_liste->getNom();$info->listdomain = $info_liste->getDomaine() ;print'<h2>'.PROJET_DERNIERS_MESSAGES.'</h2>'."\n" ;if (!$info->show_recentmsgs()) {echo 'Pas de message dans cette liste' ;}break;case "show_threads":$threads = new ezmlm_threads();$this->_url->addQueryString(PROJET_VARIABLE_ACTION, $this->_action) ;$threads->forcehref = $this->_url->getURL() ;$threads->listdir = $liste->listdir ;$threads->listname = $info_liste->getNom() ;$threads->listdomain = $info_liste->getDomaine() ;$threads->tempdir = PROJET_CHEMIN_APPLI.'/tmp' ;$threads->load($liste->actionargs[0]);break;case "show_author_msgs" :$author = new ezmlm_author();$author->listdir = $liste->listdir ;$author->listname = $info_liste->getNom() ;$author->listdomain = $info_liste->getDomaine() ;$author->forcehref = $this->_url->getURL() ;$author->display($liste->actionargs[0]);break;break ;case 'show_month' :$info = new ezmlm_listinfo();if (!$info) return 'Les fichiers de la liste ne sont pas visible sur le serveur' ;$info->forcehref = $this->_url->getURL();$info->listdir = $liste->listdir ;$info->listname = $info_liste->getNom();$info->listdomain = $info_liste->getDomaine() ;echo '[ '.$info->makelink('action=show_threads&actionargs[]='.$liste->actionargs[0], 'par fil de discussion').' ]' ;print'<h2>'.PROJET_MESSAGE_DU_MOIS.$GLOBALS['mois'][((int)substr($liste->actionargs[0],4,2) / 1)-1] .', ' .substr($liste->actionargs[0],0,4). '</h2>'."\n" ;if (!$info->show_month($liste->actionargs[0])) {echo 'Pas de message dans cette liste' ;}break;case 'repondre' :if (count($liste->actionargs) < 2) {$liste->error(EZMLM_INVALID_SYNTAX,TRUE);}$repondre = new ezmlm_repondre();$repondre->listdir = $liste->listdir ;$this->_url->removeQueryString (PROJET_VARIABLE_ACTION) ;$repondre->forcehref = $this->_url->getURL();$repondre->listname = $info_liste->getNom() ;// actionargs[0] contient le nom du répertoire et actionargs[1] le nom du fichier// On appelle la fonction qui affiche un fichierprint'<h2>'.PROJET_REDIGER_REPONSE.'</h2>'."\n" ;$repondre->repondre($liste->actionargs[0] . "/" . $liste->actionargs[1]);break;}} else {print PROJET_MESSAGE_LISTE_PRIVEE ;}$sortie_liste = ob_get_contents() ;ob_end_clean() ;}}include_once PROJET_CHEMIN_CLASSES.'liste_externe.class.php' ;$listes_ext = new liste_externe ($this->_db) ;$tableau_liste = $listes_ext->getListesAssociees($this->_id_projet) ;if (count ($tableau_liste) != 0) {//$liste_ext_res .= '<h2>'.PROJET_LISTES_ASSOCIEES.'</h2>'."\n" ;for ($i = 0; $i < count ($tableau_liste); $i++) {$info_liste = $listes_ext->getInfoListe($tableau_liste[$i]) ;$liste_ext_res .= '<p><a href="'.$info_liste->AGO_A_URLGRP.'">'.$info_liste->AGO_A_URLGRP.'</a></p>'."\n" ;$liste_ext_res .= '<br />'."\n" ;}}$retour .= '<h1>'.PROJET_PROJET.' : '.$projet->getTitre()."</h1>" ;$retour .= '<h2>'.PROJET_ADRESSE_ECRIRE.'</h2>'."\n" ;$retour .= $sortie_liste ;$retour .= $liste_ext_res ;?>