/trunk/client/projet/classes/ezmlm-php-2.0/ezmlm-threads.php |
---|
1,5 → 1,5 |
<?php |
// $Id: ezmlm-threads.php,v 1.3 2005-10-17 16:21:47 alexandre_tb Exp $ |
// $Id: ezmlm-threads.php,v 1.4 2006-04-19 13:50:13 alexandre_tb Exp $ |
// |
// ezmlm-threads.php - ezmlm-php v2.0 |
// -------------------------------------------------------------- |
297,7 → 297,7 |
if ($i < 10) { $key2 = "0" . $i; } |
else { $key2 = $i; } |
if (isset($threadcount[$key][$key2]) && $threadcount[$key][$key2] > 0) { |
$res .= "<td bgcolor=\"" . $this->tablecolours[0] . "\" align=center valign=\"middle\">"; |
$res .= "<td bgcolor=\"" . $this->tablecolours[0] . "\" valign=\"middle\">"; |
$res .= $this->makelink("action=show_month&actionargs[]=$key$key2",$threadcount[$key][$key2]); |
$res .= "</td>"; |
} else { |
/trunk/client/projet/classes/ezmlm-php-2.0/ezmlm-msgdisplay.php |
---|
1,5 → 1,5 |
<?php |
// $Id: ezmlm-msgdisplay.php,v 1.2 2005-09-27 16:43:08 alexandre_tb Exp $ |
// $Id: ezmlm-msgdisplay.php,v 1.3 2006-04-19 13:50:04 alexandre_tb Exp $ |
// |
// ezmlm-msgdisplay.php - ezmlm-php v2.0 |
// -------------------------------------------------------------- |
161,7 → 161,7 |
$mailDecode->parts[$i]->ctype_secondary, PROJET_CHEMIN_ICONES) ; |
} |
$corps .= '<a href="'.PROJET_CHEMIN_APPLI.'synchroliste/fichier_attache.php?nom_liste='.$this->listname. |
$corps .= '<a href="'.PROJET_CHEMIN_APPLI.'fichier_attache.php?nom_liste='.$this->listname. |
'&actionargs[]='.$numero_mois. |
'&actionargs[]='.$numero_mail; |
189,7 → 189,7 |
$mimeType = new type_fichier_mime($GLOBALS['projet_db'], $mailDecode->ctype_primary.'/'.$mailDecode->ctype_secondary,PROJET_CHEMIN_ICONES) ; |
if ($mimeType->getIdType() != 12) { |
$corps .= '<a href="'.PROJET_CHEMIN_APPLI.'synchroliste/fichier_attache.php?nom_liste='.$this->listname.'&actionargs[]='. |
$corps .= '<a href="'.PROJET_CHEMIN_APPLI.'fichier_attache.php?nom_liste='.$this->listname.'&actionargs[]='. |
$numero_mois.'&actionargs[]='. |
$numero_mail.'&actionargs[]='.$i.'">'. |
'<img src="'.$mimeType->getCheminIcone().'" alt="'.$mailDecode->ctype_parameters['name'].'" /> ' ; |
/trunk/client/projet/classes/ezmlmAccessObject.class.php |
---|
New file |
0,0 → 1,246 |
<?php |
//vim: set expandtab tabstop=4 shiftwidth=4: |
// Copyright (C) 1999-2006 Tela Botanica (accueil@tela-botanica.org) |
// |
// Ce logiciel est un programme informatique servant à gérer du contenu et des |
// applications web. |
// Ce logiciel est régi par la licence CeCILL soumise au droit français et |
// respectant les principes de diffusion des logiciels libres. Vous pouvez |
// utiliser, modifier et/ou redistribuer ce programme sous les conditions |
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA |
// sur le site "http://www.cecill.info". |
// En contrepartie de l'accessibilité au code source et des droits de copie, |
// de modification et de redistribution accordés par cette licence, il n'est |
// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, |
// seule une responsabilité restreinte pèse sur l'auteur du programme, le |
// titulaire des droits patrimoniaux et les concédants successifs. |
// A cet égard l'attention de l'utilisateur est attirée sur les risques |
// associés au chargement, à l'utilisation, à la modification et/ou au |
// développement et à la reproduction du logiciel par l'utilisateur étant |
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à |
// manipuler et qui le réserve donc à des développeurs et des professionnels |
// avertis possédant des connaissances informatiques approfondies. Les |
// utilisateurs sont donc invités à charger et tester l'adéquation du |
// logiciel à leurs besoins dans des conditions permettant d'assurer la |
// sécurité de leurs systèmes et ou de leurs données et, plus généralement, |
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. |
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez |
// pris connaissance de la licence CeCILL, et que vous en avez accepté les |
// termes. |
// ---- |
// CVS : $Id: ezmlmAccessObject.class.php,v 1.1 2006-04-19 13:49:48 alexandre_tb Exp $ |
/** |
* Application projet |
* |
* La classe ezmlmAccessObject |
* |
*@package projet |
//Auteur original : |
*@author Alexandre Granier <alexandre@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2006 |
*@version $Revision: 1.1 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
/** Etend XML_Parser_Simple */ |
require_once 'XML/Parser/Simple.php' ; |
/** |
* Les codes erreurs |
*/ |
define ('EZMLM_ACCESS_OBJECT_ACTION_NON_SUPPORTEE', 206) ; |
/** |
* classe ezmlmAccessObject parse les fichiers XML |
* issue de ezmlm |
* |
* @category XML |
* @package projet |
* @author alex |
*/ |
class ezmlmAccessObject extends XML_Parser_Simple { |
/** |
* Le domaine de la liste |
*/ |
var $domaine ; |
/** |
* Le nom de la liste |
*/ |
var $liste ; |
/** |
* Les actions valides |
*/ |
var $actions_supportees = array ('calendrier_messages', |
'message'); |
/** |
* l'action sélectionnée |
*/ |
var $action ; |
/** |
* La langue 'fr-FR' |
*/ |
var $langue ; |
/** |
* L'url de base |
*/ |
var $url ; |
/** |
* L'identifiant du répertoire |
*/ |
var $identifiant_repertoire ; |
/** |
* Identifiant message |
*/ |
var $identifiant_message; |
/** |
* L'identifiant du répertoire |
*/ |
var $_numeroRepertoireSuivant ; |
var $_numeraRepertoirePrecedent; |
/** |
* Identifiant message |
*/ |
var $_numeroFichierSuivant; |
var $_numeroFichierPrecedent; |
/** |
* Creation de l'objet d'accès |
* |
* |
*/ |
function ezmlmAccessObject ($action, $domaine, $liste, $langue = 'fr', $url = '') { |
$this->XML_Parser_Simple(null, 'func') ; |
$this->action = $action ; |
$this->domaine = $domaine ; |
$this->liste = $liste ; |
$this->langue = $langue ; |
$this->url = $url ; |
} |
/** |
* Gestion des balises |
* |
* Cette méthode spécifie les balises reconnus par ezmlmAccessObject |
* Elle remplace la méthode handleElement de XML_Parser_Simple |
* |
* @access public |
* @param string nom de l'élément (Voir la doc de PHP) |
* @param array attributes |
* @param |
* @link http://fr.php.net/manual/fr/ref.xml.php manuel |
*/ |
function handleElement_ezmlm_message ($name, $attribs, $data) { |
echo $data ; |
} |
function handleElement_message_suivant ($name, $attribs, $data) { |
$this->_numeroRepertoireSuivant = $attribs['NUMERO_REPERTOIRE'] ; |
$this->_numeroFichierSuivant = $attribs['NUMERO'] ; |
} |
function handleElement_message_precedent ($name, $attribs, $data) { |
$this->_numeroRepertoirePrecedent = $attribs['NUMERO_REPERTOIRE'] ; |
$this->_numeroFichierPrecedent = $attribs['NUMERO'] ; |
} |
function handleElement_ezmlm_calendrier_messages ($name, $attribs, $data) { echo $data ; } |
/** |
* Choix de l'action |
* |
* Liste des actions : |
* 'calendrier_messages' |
* |
* @access public |
* @param string une action qui doit être supporté |
*/ |
function setAction($action) { |
// vérification de l'action |
if (!in_array($action, $this->actions_supportees)) { |
return raiseError(EZMLM_ACCESS_OBJECT_ACTION_NON_SUPPORTEE) ; |
} |
$this->action = $action ; |
// Libere les ressources (XML_Parser::free) |
$this->free(); |
// Charge la nouvelle action |
$this->load() ; |
} |
/** |
* Charge une action |
* |
* cad affecte un fichier xml au parser |
* |
* @access public |
*/ |
function load() { |
$chemin_fichier_xml = PROJET_SERVEUR_VPOPMAIL.'/'.$this->action.'.php?domaine='. |
$this->domaine.'&liste='.$this->liste.'&langue='. |
$this->langue ; |
if ($this->url != '') $chemin_fichier_xml.= '&url='.urlencode($this->url) ; |
if (isset ($this->identifiant_repertoire)) |
$chemin_fichier_xml .= '&actionargs[]='.$this->identifiant_repertoire ; |
if (isset ($this->identifiant_message)) |
$chemin_fichier_xml .= '&actionargs[]='.$this->identifiant_message ; |
$this->setInputFile($chemin_fichier_xml) ; |
} |
/** |
* Précise un message à extraire |
* |
* On indique le numéro de répertoire ezmlm et le numéro du message |
* @param integer le numéro du répertoire |
* @param integer le numéro du message |
* |
*/ |
function setIdMessage ($identifiant_repertoire, $identifiant_message) { |
$this->identifiant_repertoire = $identifiant_repertoire ; |
$this->identifiant_message = $identifiant_message ; |
} |
/** |
* Renvoi le numero du repertoire suivant |
* |
* |
*/ |
function getNumeroRepertoireSuivant() { return $this->_numeroRepertoireSuivant; } |
function getNumeroFichierSuivant () { return $this->_numeroFichierSuivant ; } |
function getNumeroRepertoirePrecedent() { return $this->_numeroRepertoirePrecedent; } |
function getNumeroFichierPrecedent () { return $this->_numeroFichierPrecedent ; } |
} |
?> |
/trunk/client/projet/actions/forums.php |
---|
19,7 → 19,7 |
// | License along with this library; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: forums.php,v 1.8 2005-11-28 11:19:30 alexandre_tb Exp $ |
// CVS : $Id: forums.php,v 1.9 2006-04-19 13:49:31 alexandre_tb Exp $ |
/** |
* Application projet |
* |
31,7 → 31,7 |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2005 |
*@version $Revision: 1.8 $ |
*@version $Revision: 1.9 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
41,6 → 41,7 |
include_once (PROJET_CHEMIN_CLASSES.'HTML_formulaireMail.class.php') ; |
include_once (PROJET_CHEMIN_CLASSES.'inscription_liste.class.php') ; |
include_once (PROJET_CHEMIN_CLASSES.'ezmlmAccessObject.class.php') ; |
// RAPPEL IMPORTANT |
// On se situe dans la méthode run() de la classe projetControleur |
// |
112,19 → 113,17 |
print '<a href="'.$this->_url->getURL().'">'.PROJET_ECRIRE_LISTE.'</a><br />'; |
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) ; |
$this->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_VOIR_FORUM); |
$xml_parser = &new ezmlmAccessObject('calendrier_messages', $info_liste->getDomaine(), |
$info_liste->getNom(), $GLOBALS['lang'], |
$this->_url->getURL()) ; |
$xml_parser->load(); |
$resultat = $xml_parser->parse() ; |
$xml_parser->reset(); |
//$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épondre |
if (isset($_POST['messageid'])) { |
135,15 → 134,47 |
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 fichier |
print'<h2>'.PROJET_DERNIERS_MESSAGES.'</h2>'."\n" ; |
$show_msg->display($liste->actionargs[0] . "/" . $liste->actionargs[1]); |
$xml_parser->setAction ('message'); |
$xml_parser->setIdMessage($liste->actionargs[0], $liste->actionargs[1]) ; |
$xml_parser->load(); |
ob_start (); |
$xml_parser->parse() ; |
$mail = ob_get_contents() ; |
ob_end_clean(); |
$mimeDecode = new Mail_mimeDecode($mail) ; |
$mailDecode = $mimeDecode->decode(array('decode_bodies' => 'true', |
'include_bodies' => 'true')) ; |
$message = new ezmlm_msgdisplay() ; |
$message->listname = $info_liste->getNom(); |
if ($xml_parser->getNumeroFichierPrecedent() != '') { |
$this->_url->addQueryString ('action', 'show_msg'); |
print '[<a href="' . $this->_url->getURL(). '&actionargs[]='. |
$xml_parser->getNumeroRepertoirePrecedent().'&actionargs[]='. |
$xml_parser->getNumeroFichierPrecedent(). |
'">'.PROJET_PRECEDENT.'</a>]'; |
} else { |
print '['.PROJET_PRECEDENT.']' ; |
} |
if ($xml_parser->getNumeroFichierSuivant() != '') { |
print '[<a href="' .$this->_url->getURL().'&actionargs[]='.$xml_parser->getNumeroRepertoireSuivant() |
.'&actionargs[]='.$xml_parser->getNumeroFichierSuivant().'">'.PROJET_SUIVANT. '</a>]'; |
} else { |
print '['.PROJET_SUIVANT.']' ; |
} |
$this->_url->addQueryString ('action', 'repondre'); |
print '[<a href="'.$this->_url->getURL().'&actionargs[]='.$liste->actionargs[0]. |
'&actionargs[]='.$liste->actionargs[1].'">'.PROJET_REPONDRE.'</a>]'; |
print '<div class="message">' ; |
print $message->parse_entete_mail($mailDecode) ; |
$message->parse_template($mailDecode, $liste->actionargs[1], $liste->actionargs[0]); |
print $message->message_rendu; |
print '</div>' ; |
break; |
case "list_info": |
177,7 → 208,6 |
$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' ; |