Rev 1421 | Blame | Last modification | View Log | RSS feed
<?php
//vim: set expandtab tabstop=4 shiftwidth=4:
// +-----------------------------------------------------------------------------------------------+
// | PHP version 4.0 |
// +-----------------------------------------------------------------------------------------------+
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group |
// +-----------------------------------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/2_02.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +-----------------------------------------------------------------------------------------------+
/**
*
*Fichier des fonctions du bottin
*
*@package bottin
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org.org>
//Autres auteurs :
*@copyright Outils-reseaux 2006-2040
*@version 05 avril 2006
// +-----------------------------------------------------------------------------------------------+
//
// $Id: bottin.class.php,v 1.3 2007-06-01 13:47:47 alexandre_tb Exp $
// FICHIER : $RCSfile: bottin.class.php,v $
// AUTEUR : $Author: alexandre_tb $
// VERSION : $Revision: 1.3 $
// DATE : $Date: 2007-06-01 13:47:47 $
*/
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
require_once PAP_CHEMIN_API_PEAR.'PEAR.php';
class lettresAlphabet extends PEAR {
var $url;
var $variable_lettre ;
/**
* Constructeur
*
* @param Net_URL un objet Net_URL
* @param string $variable_lettre le nom de la variable $_GET qui sera place dans l URL
* @return void
* @access public
*/
function lettresAlphabet($url, $variable_lettre = 'lettre') {
$this->url = $url ;
$this->variable_lettre = $variable_lettre ;
}
/**
* Renvoie le code HTML d une liste avec les lettres
*
* @return string HTML
* @access public
*/
function toHMTL() {
$res = '<ul class="liste_lettre">'."\n" ;
for ($i = 65 ; $i <91 ; $i++) {
$this->url->addQueryString($this->variable_lettre, chr($i)) ;
$res .= "\t".'<li class="liste_lettre"><a class="lien_alphabet" '.
'href="'.
$this->url->getURL().'">';
$res .= chr($i) ;
$res .= '</a></li>'."\n";
}
$res .= '</ul>';
return $res ;
}
}
class inscription extends PEAR {
/**
* Constructeur
*
*
* @return void
* @access public
*/
function inscription() {
}
/**
* Renvoie le code HTML d une liste avec les lettres
*
* @global Un pointeur vers une connexion de base de donnee $GLOBALS['ins_url']
* @return array ['ic_param'] les parametres tels que dans la table inscription_config
* @access public
*/
function getConfig($id_inscription = '') {
// Recuperation de la configuration
$requete = 'select * from inscription_configuration';
if ($id_inscription != '') $requete .= ' where ic_id_inscription="'.$id_inscription.'"';
$resultat = $GLOBALS['ins_db']->query($requete);
if (DB::isError($resultat)) return "Echec de la requete : $requete<br />".$resultat->getMessage() ;
if ($resultat->numRows() != 0) {
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
return $ligne;
} else {
return $this->raiseError('La table inscription_configuration est vide...');
}
}
/**
* Renvoi un tableau avec les informations de inscription_attente
*
* @global Un pointeur vers une connexion de base de donnee $GLOBALS['ins_db']
* @return array Un tableau ['id'], ['nom'], ['prenom'] ... ou la chaine vide si il n'y a personne en attente
* @access public
*/
function getInscritEnAttenteModeration() {
$requete = 'select * from inscription_attente';
$resultat = $GLOBALS['ins_db']->query($requete);
$tableau_inscrit = array();
if (DB::isError($resultat)) return "Echec de la requete : $requete<br />".$resultat->getMessage() ;
if ($resultat->numRows() != 0) {
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$donnees = unserialize (stripslashes($ligne->ia_donnees)) ;
array_push ($tableau_inscrit, array_merge (array('id' => $ligne->ia_id_inscription, 'date' => $ligne->ia_date), $donnees));
}
return $tableau_inscrit;
} else {
return '';
}
}
/** Renvoi le tableau HTML des inscrits en attente
*
* @global $GLOBALS['ins_url'] un objet Net_URL avec l url courante
* @param array Un tableau de tableau d inscrit avec ['id'],['nom'],['prenom'],['email'],['ville'],['date']
* @return string Un tableau HTML
*/
function getTableauEnAttente($tableau) {
$html = '';
if (empty ($tableau)) {
return INS_PAS_D_INSCRIT_EN_ATTENTE;
}
$table = new HTML_Table();
$table->addRow(array (INS_NOM, INS_EMAIL, INS_VILLE, INS_DATE_INS, INS_ACTION), '', 'TH');
$action = '<a href="'.$GLOBALS['ins_url']->getURL().'">'.'</a>';
foreach ($tableau as $demandeur) {
// L identifiant du demandeur dans l url
$GLOBALS['ins_url']->addQueryString (INS_VARIABLE_ID_DEMANDEUR, $demandeur['id']) ;
$GLOBALS['ins_url']->addQueryString(ANN_VARIABLE_ACTION, ANN_ACTION_VALIDER_INSCRIPTION);
$valide = '<a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_VALIDER.'</a> / ';
$GLOBALS['ins_url']->addQueryString(ANN_VARIABLE_ACTION, ANN_ACTION_SUPPRIMER_DEMANDE_INSCRIPTION);
$valide .= '<a href="'.$GLOBALS['ins_url']->getURL().
'" onclick="javascript:return confirm(\''.INS_SUPPRIMER.' ?\')">'.INS_SUPPRIMER.'</a>';
$table->addRow(array($demandeur['nom'].' '.(isset($demandeur['prenom']) ? $demandeur['prenom']: ''), $demandeur['email'],
$demandeur['ville'], $demandeur['date'], $valide));
}
return $table->toHTML();
}
/**
* Renvoie un tableau avec les moderateurs de l inscription
* ceux du champs ic_mail_moderateur
*
* @return array Un tableau de mail de moderateur
*/
function getModerateurs() {
}
/**
* Insere une demande d inscription dans la table inscription_attente et
* envoi un mail aux moderateurs
*
* @param string Un identifiant de session, soit genere aleatoirement soit venu de la tablea inscription_demande
* @global array la globale $GLOBALS['ins_config']
* @global mixed un pointeur vers une base de donnees $GLOBALS['ins_db']
* @return string Un message a renvoye a l utilisateur indiquant que sa demande a ete prise en compte
*/
function demandeInscriptionModere($valeurs) {
// On stocke les informations dans un variable de session
// On coupe l'identifiant de session pour ne prendre que les 8 premiers caractères
// afin d'eviter d'obtenir une url trop longue
$chaine = substr (session_id(), 0, 8) ;
$requete_verif = 'select * from inscription_attente where ia_id_inscription="'.$chaine.'"' ;
$resultat_verif = $GLOBALS['ins_db']->query ($requete_verif) ;
if ($resultat_verif->numRows() != 0) {
$requete_suppression = 'delete from inscription_attente where ia_id_inscription="'.$chaine.'"' ;
$GLOBALS['ins_db']->query ($requete_suppression) ;
}
$requete = 'insert into inscription_attente set ia_id_inscription="'.$chaine.'", ia_donnees="'.
addslashes(serialize($valeurs)).'", ia_date=NOW()' ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError ($resultat)) {
echo ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
// On envoie un email aux moderateurs
require_once PAP_CHEMIN_RACINE.'api/pear/HTML/Template/IT.php';
$tpl = new HTML_Template_IT() ;
// Le gabarit du mail est dans un template
// template 3
$url = $GLOBALS['ins_url']->getURL();
$requete = 'select it_template from inscription_template where it_id_template=3'.
' and it_i18n like "%'.INS_LANGUE_DEFAUT.'"' ;
if (!$tpl -> setTemplate($GLOBALS['ins_db']->getOne ($requete))) {
echo 'erreur' ;
}
$tpl->setVariable('URL_INSCRIPTION', $url) ;
$mails_moderateur = split ('/\n/', $GLOBALS['ins_config']['ic_mail_moderateur']);
foreach ($mails_moderateur as $mail) {
mail ($mail, INS_MODERATION_SUJET, html_entity_decode(INS_NOUVELLE_INSCRIPTION_A_MODERE)) ;
}
return INS_MESSAGE_EN_ATTENTE ;
}
/**
* Valide une demande d inscription
* Transfere les donnees de la table inscription_attente vers annuaire
*
* Envoie un email d avertissement a l inscrit
*
* @global array la globale ins_config
*/
function validerInscription() {
$requete = 'SELECT ia_donnees FROM inscription_attente WHERE ia_id_inscription="'.$_GET[INS_VARIABLE_ID_DEMANDEUR].'"' ;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError ($resultat)) {
return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
$donnees = unserialize (stripslashes($ligne->ia_donnees)) ;
// dans les donnees serialisees, on recupere l identifiant de l inscription
// pour charger la globale ins_config
$GLOBALS['ins_config'] = inscription::getConfig($donnees['id_inscription']);
$id_utilisateur = inscription_insertion($donnees) ;
// Envoie du mail
$destinataire = $donnees['email'];
$sujet = $GLOBALS['ins_config']['ic_sujet_mail_inscription_prise_en_compte'];
$corps = $GLOBALS['ins_config']['ic_corps_mail_inscription_prise_en_compte'];
if (!mail ($destinataire, $sujet, $corps)) return 'erreur dans l\'envoi du mail';
inscription::supprimerDemandeInscription();
}
/**
* Supprime une demande d inscription dans la table inscription_attente
*
* @global string l indentifiant de la demande
* @global mixed la globale ins_db
*/
function supprimerDemandeInscription() {
// Suppression de la ligne dans inscription_attente
$req_sup = 'delete from inscription_attente where ia_id_inscription="'.$_GET[INS_VARIABLE_ID_DEMANDEUR].'"';
$res_sup = $GLOBALS['ins_db']->query ($req_sup);
if (DB::isError ($res_sup)) {
return ("Echec de la requete : $req_sup<br />".$res_sup->getMessage()) ;
}
}
/**
* Supprimer un inscrit de l annuaire et appelle les fichiers
* client appli.desinscription.inc.php
*
* @static
* @global int l identifiant de l inscrit
* @global mixed la globale ins_db
*/
function supprimerInscription() {
$queryLogin = 'select '.INS_CHAMPS_MAIL.' from '.INS_ANNUAIRE.' where '.INS_CHAMPS_ID.'='.$_GET[INS_VARIABLE_ID_INSCRIT] ;
$resultLogin = $GLOBALS['ins_db']->query($queryLogin) ;
$rowLogin = $resultLogin->fetchRow(DB_FETCHMODE_ASSOC) ;
$mail = $rowLogin[INS_CHAMPS_MAIL];
// suppression
$query = 'delete from '.INS_ANNUAIRE.' where '.INS_CHAMPS_ID.'='.$_GET[INS_VARIABLE_ID_INSCRIT] ;
$resultat = $GLOBALS['ins_db']->query($query);
if (DB::isError ($resultat)) {
return ("Echec de la requete : $req_sup<br />".$res_sup->getMessage()) ;
}
// Appel des actions desinscriptions des applications clientes
$d = dir(GEN_CHEMIN_CLIENT);
$id_utilisateur = $_GET[INS_VARIABLE_ID_INSCRIT];
while (false !== ($repertoire = $d->read())) {
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.desinscription.inc.php'))
include_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.desinscription.inc.php' ;
}
$d->close();
}
}
//-- Fin du code source ------------------------------------------------------------
/*
* $Log: not supported by cvs2svn $
* Revision 1.2 2007-05-25 14:31:24 alexandre_tb
* en cours
*
* Revision 1.1 2006/12/13 13:26:52 alexandre_tb
* version initiale
*
*/
?>