/trunk/client/bottin/bibliotheque/bottin.class.php |
---|
26,11 → 26,11 |
*@version 05 avril 2006 |
// +-----------------------------------------------------------------------------------------------+ |
// |
// $Id: bottin.class.php,v 1.1 2006-12-13 13:26:52 alexandre_tb Exp $ |
// $Id: bottin.class.php,v 1.2 2007-05-25 14:31:24 alexandre_tb Exp $ |
// FICHIER : $RCSfile: bottin.class.php,v $ |
// AUTEUR : $Author: alexandre_tb $ |
// VERSION : $Revision: 1.1 $ |
// DATE : $Date: 2006-12-13 13:26:52 $ |
// VERSION : $Revision: 1.2 $ |
// DATE : $Date: 2007-05-25 14:31:24 $ |
*/ |
82,8 → 82,145 |
} |
} |
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() { |
// Recuperation de la configuration |
$requete = 'select * from inscription_configuration'; |
$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 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 = ''; |
$table = new HTML_Table(); |
$table->addRow(array (INS_NOM, INS_EMAIL, INS_VILLE, INS_DATE_INS, INS_ACTION), '', 'TH'); |
$GLOBALS['ins_url']->addQueryString(ANN_NOM_VARIABLE_ACTION, ANN_ACTION_VALIDER_INSCRIPTION); |
$action = '<a href="'.$GLOBALS['ins_url']->getURL().'">'.'</a>'; |
foreach ($tableau as $demandeur) { |
$table->addRow(array($demandeur['nom'].' '.$demandeur['prenom'], $demandeur['email'], $demandeur['ville'], $demandeur['date'])); |
} |
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'éviter 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, INS_NOUVELLE_INSCRIPTION_A_MODERE) ; |
} |
return INS_MESSAGE_EN_ATTENTE ; |
} |
} |
//-- Fin du code source ------------------------------------------------------------ |
/* |
* $Log: not supported by cvs2svn $ |
* Revision 1.1 2006/12/13 13:26:52 alexandre_tb |
* version initiale |
* |
*/ |
?> |
/trunk/client/bottin/bibliotheque/bottin.fonct.php |
---|
605,9 → 605,18 |
/** |
* Inscription_demande |
* |
* @param array les valeurs renvoyés par le formulaire |
* @return |
* Cette fonction insere dans la table inscription_demande |
* les donnees saisies dans le formulaire |
* et envoi un mail de confirmation a l utilisateur |
* Ce mail contient un lien pour valider l inscription |
* |
* Le mail peut etre modifier via le modele de inscription_template |
* ayant pour it_id_template = 2 |
* |
* @param array les valeurs renvoyes par le formulaire |
* @return void |
*/ |
function inscription_demande($valeurs) { |
// On stocke les informations dans un variable de session |
665,7 → 674,7 |
$GLOBALS['AUTH']->login() ; |
// inscription à la lettre d'information |
if (INS_CHAMPS_LETTRE != '' && isset ($valeurs['lettre'])) { |
inscription_lettre(INS_MAIL_INSCRIPTION_LISTE) ; |
//inscription_lettre($GLOBALS['ins_config']['ic_mail_inscription_news']) ; |
} |
} |
797,11 → 806,11 |
if (INS_CHAMPS_LETTRE != '') { |
if (isset($valeur['lettre'])) { |
$req .= ', '.INS_CHAMPS_LETTRE.'="'.$valeur['lettre'].'" '; |
inscription_lettre('inscrire'); |
//inscription_lettre('inscrire'); |
} |
else { |
$req .= ', '.INS_CHAMPS_LETTRE.'=0 '; |
inscription_lettre('desinscrire'); |
//inscription_lettre('desinscrire'); |
} |
} |
828,6 → 837,9 |
} |
if (INS_UTILISE_WIKINI && isset ($valeur['nom_wiki'])) $req .= ','.INS_CHAMPS_NOM_WIKINI.'="'.$valeur['nom_wiki'].'"'; |
if ($GLOBALS['ins_config']['ic_google_key']) { |
$req .= ', a_longitude="'.$valeur['longitude'].'", a_latitude="'.$valeur['latitude'].'"'; |
} |
return $req ; |
} |
870,6 → 882,10 |
$valeurs_par_defaut['visible'] = $ligne[INS_CHAMPS_VISIBLE] ; |
$valeurs_par_defaut['sigle_structure'] = $ligne[INS_CHAMPS_SIGLE_STRUCTURE] ; |
if (INS_CHAMPS_NUM_AGREMENT != '') $valeurs_par_defaut['num_agrement'] = $ligne[INS_CHAMPS_NUM_AGREMENT] ; |
if ($GLOBALS['ins_config']['ic_google_key']) { |
$valeurs_par_defaut['longitude'] = $ligne['a_longitude'] ; |
$valeurs_par_defaut['latitude'] = $ligne['a_latitude'] ; |
} |
return $valeurs_par_defaut ; |
} |
1287,6 → 1303,9 |
//-- Fin du code source ------------------------------------------------------------ |
/* |
* $Log$ |
* Revision 1.13 2007/04/20 14:04:38 alexandre_tb |
* inclusion de QuickForm qui manquait |
* |
* Revision 1.12 2007/04/11 08:30:12 neiluj |
* remise en état du CVS... |
* |
/trunk/client/bottin/bibliotheque/inscription.fonct.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: inscription.fonct.php,v 1.28 2007-04-20 08:39:37 alexandre_tb Exp $ |
// CVS : $Id: inscription.fonct.php,v 1.29 2007-05-25 14:32:17 alexandre_tb Exp $ |
/** |
* Fonctions du module inscription |
* |
31,7 → 31,7 |
//Autres auteurs : |
*@author Florian Schmitt <florian@ecole-et-nature.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.28 $ $Date: 2007-04-20 08:39:37 $ |
*@version $Revision: 1.29 $ $Date: 2007-05-25 14:32:17 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
96,23 → 96,7 |
mail ($GLOBALS['email'], 'Inscription', $tpl->get(), 'From: '.INS_MAIL_ADMIN_APRES_INSCRIPTION) ; |
} |
/** |
* |
* @param array les valeurs renvoyés par le formulaire |
* @return |
*/ |
function inscription_validee($valeurs) { |
insertion($valeurs) ; |
$GLOBALS['AUTH']->username = $valeurs['email'] ; |
$GLOBALS['AUTH']->password = $valeurs['mot_de_passe'] ; |
// On loggue l'utilisateur |
$GLOBALS['AUTH']->login() ; |
// inscription à la lettre d'information |
if (INS_CHAMPS_LETTRE != '' && isset ($valeurs['lettre'])) { |
inscription_lettre(INS_MAIL_INSCRIPTION_LISTE) ; |
} |
} |
/** |
* Renvoie l'accueil de l'inscription |
266,6 → 250,9 |
$req .= ",".INS_CHAMPS_DEPARTEMENT."='$n_dpt'"; |
} |
if (INS_UTILISE_WIKINI && isset ($valeur['nom_wiki'])) $req .= ','.INS_CHAMPS_NOM_WIKINI.'="'.$valeur['nom_wiki'].'"'; |
if ($GLOBALS['ins_config']['ic_google_key']) { |
$req .= ', a_longitude="'.$valeur['longitude'].'", a_latitude="'.$valeur['latitude'].'"'; |
} |
return $req ; |
} |
312,123 → 299,6 |
} |
/** info() - Renvoie une fiche d'information sur la personne ou la structure |
* |
* @param integer identifiant de la fiche a afficher, mettre -1 pour voir sa propre fiche |
* @param text nom de l'onglet de la fiche |
* |
* @return text Code HTML de la fiche |
*/ |
function info($id=-1, $type_info='fiche') { |
if ($id==-1) $id=$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID); |
$requete = 'SELECT * FROM '.INS_ANNUAIRE.' WHERE '.INS_ANNUAIRE.'.' |
.INS_CHAMPS_ID.'="'.$id.'"' ; |
$resultat = $GLOBALS['ins_db'] -> query($requete) ; |
if (DB::isError($resultat)) { |
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ; |
} |
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ; |
//voir la présentation de la fiche |
if ($type_info=='fiche') { |
if ($ligne[INS_CHAMPS_EST_STRUCTURE] == 1) { |
$res = '<h1>'.$ligne[INS_CHAMPS_NOM].'</h1>'."\n"; |
$res .= '<h2>'.INS_FICHE_STRUCTURE.'</h2>'."\n" ; |
$res .= '<ul class="affiche_infos">'."\n"; |
$res .= ligne_inscription(INS_SIGLE_DE_LA_STRUCTURE, $ligne[INS_CHAMPS_SIGLE_STRUCTURE]) ; |
if (INS_CHAMPS_NUM_AGREMENT != '') $res .= ligne_inscription(INS_NUM_AGREMENT, $ligne[INS_CHAMPS_NUM_AGREMENT]) ; |
} else { |
$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n"; |
$res .= '<h2>'.INS_FICHE_PERSONNELLE.'</h2>'."\n" ; |
$res .= '<ul class="affiche_infos">'."\n"; |
} |
$res .= ligne_inscription(INS_ADRESSE_1, $ligne[INS_CHAMPS_ADRESSE_1]) ; |
$res .= ligne_inscription(INS_ADRESSE_2, $ligne[INS_CHAMPS_ADRESSE_2]) ; |
$res .= ligne_inscription(INS_CODE_POSTAL, $ligne[INS_CHAMPS_CODE_POSTAL]) ; |
$res .= ligne_inscription(INS_VILLE, $ligne[INS_CHAMPS_VILLE]) ; |
$pays = new ListeDePays($GLOBALS['ins_db']) ; |
$res .= ligne_inscription(INS_PAYS, $pays->getNomPays($ligne[INS_CHAMPS_PAYS], INS_LANGUE_DEFAUT)) ; |
$res .= ligne_inscription(INS_TELEPHONE, $ligne[INS_CHAMPS_TELEPHONE]) ; |
$res .= ligne_inscription(INS_FAX, $ligne[INS_CHAMPS_FAX]) ; |
if (INS_UTILISE_WIKINI) { |
$res .= ligne_inscription (INS_NOM_WIKI, $ligne[INS_CHAMPS_NOM_WIKINI]) ; |
} |
if ($ligne[INS_CHAMPS_SITE_INTERNET]!='') { |
$res .= ligne_inscription(INS_SITE_INTERNET, '<a href="'.$ligne[INS_CHAMPS_SITE_INTERNET].'" onclick="javascript:window.open(this.href);return false;">'.$ligne[INS_CHAMPS_SITE_INTERNET].'</a>'); |
} |
if ($GLOBALS['AUTH']->getAuth()) $res .= ligne_inscription(INS_EMAIL, '<a href="mailto:'.$ligne[INS_CHAMPS_MAIL].'">'.$ligne[INS_CHAMPS_MAIL].'</a>'); |
else $res .= '<br /><p class="zone_info">'.INS_PAS_IDENTIFIE.'</p>'."\n"; |
$res .= '</ul>'."\n"; |
if ($id==$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID)) { |
$res .= '<br />'."\n"; |
$res .= '<ul>'."\n"; |
if ($ligne[INS_CHAMPS_VISIBLE] == 1) { |
$res .= '<li>'.INS_VOUS_APPARAISSEZ.'</li>'."\n"; |
} else $res .= '<li>'.INS_VOUS_APPARAISSEZ_PAS.'</li>'."\n"; |
if (INS_CHAMPS_LETTRE != '') { |
if ($ligne[INS_CHAMPS_LETTRE] == 1) { |
$res .= '<li>'.INS_VOUS_RECEVEZ_LETTRE.'</li>'."\n"; |
} else $res .= '<li>'.INS_VOUS_RECEVEZ_PAS_LETTRE.'</li>'."\n"; |
} |
$res .= '</ul>'."\n"; |
$res .= '<br />'."\n"; |
$res .= '<ul>'."\n";; |
$res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&action=modifier&form_structure='.$ligne[INS_CHAMPS_EST_STRUCTURE].'">'.INS_MODIFIER_INSCRIPTION.'</a></li>'."\n" ; |
$res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&action=supprimer&form_structure='.$ligne[INS_CHAMPS_EST_STRUCTURE].'" onclick="javascript:return confirm(\''.INS_SUPPRIMER_INSCRIPTION.'?\');">'.INS_SUPPRIMER_INSCRIPTION.'</a></li>'."\n" ; |
$res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&action=deconnexion">'.INS_DECONNEXION.'</a></li>'."\n" ; |
$res .= '</ul>'."\n"; |
} |
//voir les abonnements presents dans les applis clientes |
} elseif ($type_info=='abonnement') { |
$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n"; |
$res .= '<h2>'.INS_GESTION_DES_ABONNEMENTS.'</h2>'."\n" ; |
// Appel des actions d'abonnement des applications clientes |
$d = dir(GEN_CHEMIN_CLIENT); |
$abonnement=''; |
$abonnements=''; |
while (false !== ($repertoire = $d->read())) { |
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.'bibliotheque'.GEN_SEP.$repertoire.'.abonnement.inc.php')) { |
require_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.'bibliotheque'.GEN_SEP.$repertoire.'.abonnement.inc.php' ; |
$abonnements .= $abonnement; |
} |
} |
$d->close(); |
$res .= $abonnements; |
//voir les actus |
} elseif ($type_info=='actus') { |
$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n"; |
$res .= '<h2>'.INS_ACTUALITES_DEPOSEES.'</h2>'."\n" ; |
require_once GEN_CHEMIN_CLIENT.'bazar'.GEN_SEP.'configuration'.GEN_SEP.'baz_config.inc.php'; |
require_once GEN_CHEMIN_CLIENT.'bazar'.GEN_SEP.'bibliotheque'.GEN_SEP.'bazar.fonct.rss.php'; |
$_GET['action']=1; |
$res .= RSSversHTML(gen_RSS('', '', $id, 1, ''), 0, 'jma', 0); |
//voir les ressources |
} elseif ($type_info=='ressources') { |
$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n"; |
$res .= '<h2>'.INS_RESSOURCES_ASSOCIEES.'</h2>'."\n" ; |
$requete = 'SELECT bf_id_fiche, bf_titre FROM bazar_fiche, bazar_appropriation WHERE ba_ce_id_fiche=bf_id_fiche AND ba_ce_id_structure='.$id ; |
$resultat = $GLOBALS['ins_db'] -> query($requete) ; |
$res .= '<ul>'."\n"; |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) { |
$res .= '<li><a href="'.INS_URL_BAZAR.'&action=8&id_fiche='.$ligne['bf_id_fiche'].'" onclick="window.open(this.href,\'_blank\');return false;">'.$ligne['bf_titre'].'</a></li>'."\n"; |
} |
$res .= '</ul><br />'."\n"; |
//voir les competences |
} elseif ($type_info=='competences') { |
$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n"; |
$res .= '<h2>'.INS_COMPETENCES_ASSOCIEES.'</h2>'."\n" ; |
} |
return $res ; |
} |
/** ligne_inscription() - Renvoie une ligne avec label et valeur |
* |
* @param string label Le label |
517,32 → 387,7 |
} |
/** |
* Inscrit un adhérent à la lettre d'actualité par l'envoie d'un email subscribe / unsubscribe |
* à la liste |
* |
* @global AUTH Un objet PEAR::Auth |
* @return boolean true en cas de succès |
*/ |
function inscription_lettre($action) { |
include_once PAP_CHEMIN_RACINE.'api/pear/Mail.php' ; |
$mail = & Mail::factory ('smtp') ; |
$email = $GLOBALS['AUTH']->getUsername() ; |
$headers ['Return-Path'] = $email ; |
$headers ['From'] = "<".$email.">" ; |
$headers ['Subject'] = $action ; |
$headers ['Reply-To'] = $email ; |
$mail -> send ($action, $headers, "") ; |
if (PEAR::isError ($mail)) { |
echo '<p class="erreur">Le mail n\'est pas parti...</p>' ; |
return false ; |
} |
return true ; |
} |
/** |
* |
* @global ins_db Un pointeur vers un objet PEAR::DB connecté |
* @return |
*/ |
657,37 → 502,6 |
} |
//============================================================================== |
/** function create_new_random($n,$type) permet de générer un nombre de caractères aléatoires. |
* |
* |
* |
* ENTREE : |
* - $n : créer un 'mot' de $n caractères |
* - $type : permet de définir la liste des caractères disponibles |
* |
* SORTIE : chaine de $n caractères pris dans une liste $type |
*/ |
function create_new_random($n,$type="") |
{ |
$str = ""; |
switch ($type){ |
default:{ |
$chaine = "abcdefghkmnpqrstuvwxyzABCDEFGHKLMNPQRSTUVWXYZ23456789"; |
} |
break; |
} |
srand((double)microtime()*1000000); |
for($i = 0; $i < $n; $i++){ |
$str .= $chaine[rand()%strlen($chaine)]; |
} |
return "$str"; |
} |
//============================================================================== |
/** function nextId () Renvoie le prochain identifiant numérique libre d'une table |
* |
* On passe en paramètre le nom de la table et l'identifiant de la base selon PEAR DB |
716,6 → 530,9 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.28 2007/04/20 08:39:37 alexandre_tb |
* correction de commentaire |
* |
* Revision 1.27 2007/04/11 08:30:12 neiluj |
* remise en état du CVS... |
* |
/trunk/client/bottin/inscription.admin.php |
---|
25,8 → 25,9 |
*@package bottin |
//Auteur original : |
*@author Florian Schmitt <florian@ecole-et-nature.org> |
*@author Alexandre Granier <alexandre@tela-botanica.org> |
//Autres auteurs : |
*@copyright Tela-Botanica 2000-2004 |
*@copyright Tela-Botanica 2000-2007 |
*@version $Revision$ $Date$ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
71,17 → 72,9 |
// Gestion des boutons de l'interface |
if (isset($_POST['afficheur_annuler'])) { |
return false; |
} else if (isset($_POST['afficheur_enregistrer_quitter'])) { |
$requete = 'UPDATE gen_menu SET gm_application_arguments="type_annuaire='.$_POST['type_annuaire'].'" WHERE gm_id_menu='.$_GET['adme_menu_id']; |
$resultat = $this->objet_pear_db->query($requete) ; |
if (DB::isError($resultat)) { |
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ; |
} |
return false; |
} |
} |
//-------------------------------------------------------------------------------------------------------------- |
// Gestion des valeurs par defauts, en fonctions des donnees sauvees dans carto_config |
$requete = 'SELECT gm_application_arguments FROM gen_menu WHERE gm_id_menu='.$_GET['adme_menu_id']; |
$resultat = $this->objet_pear_db->query($requete) ; |
if (DB::isError($resultat)) { |
105,17 → 98,49 |
$valeurs_par_defaut['type_annuaire']=0; |
} |
//------------------------------------------------------------------------------------------------------------- |
// Si le formulaire vient d etre poste, on met a jour la table inscription_configuration |
if (isset($_POST['enregistrer_quitter'])) { |
$req = 'update inscription_configuration set '. |
'ic_formulaire_structure="'.$_POST['ic_formulaire_structure'].'", '. |
'ic_url_bazar="'.$_POST['ic_url_bazar'].'", '. |
(isset ($_POST['ic_inscription_modere']) ? 'ic_inscription_modere="'.$_POST['ic_inscription_modere'].'", ':''). |
'ic_mail_moderateur="'.$_POST['ic_mail_moderateur'].'", '. |
'ic_sujet_mail="'.$_POST['ic_sujet_mail'].'", '. |
'ic_utilise_nom_wiki="'.$_POST['ic_utilise_nom_wiki'].'", '. |
(isset ($_POST['ic_genere_nom_wiki']) ? 'ic_genere_nom_wiki="'.$_POST['ic_genere_nom_wiki'].'", ':''). |
(isset ($_POST['ic_utilise_reecriture_url']) ? 'ic_utilise_reecriture_url="'.$_POST['ic_utilise_reecriture_url'].'", ':''). |
'ic_url_prefixe="'.$_POST['ic_url_prefixe'].'", '. |
(isset ($_POST['ic_mail_valide_inscription']) ? 'ic_mail_valide_inscription="'.$_POST['ic_mail_valide_inscription'].'", ':''). |
'ic_google_key="'.$_POST['ic_google_key'].'", '. |
'ic_mail_admin_apres_inscription="'.$_POST['ic_mail_admin_apres_inscription'].'"'; |
//$this->objet_pear_db->query($req); |
// On place la configuration dans gm_application_arguments de la table gen_menu |
$requete = 'update gen_menu set gm_application_arguments = \''.serialize($_POST).'" where gm_id_menu="'. |
$_REQUEST['adme_menu_id'].'\''; |
$resultat = $this->objet_pear_db->query($requete); |
if (DB::isError($resultat)) { |
return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ; |
} |
} |
// Requete pour recuperer les valeurs de la table inscription_config |
$requete = 'select * from inscription_configuration'; |
$resultat = $this->objet_pear_db->getRow($requete, '', DB_FETCHMODE_ASSOC) ; |
$resultat = $this->objet_pear_db->query($requete) ; |
if (DB::isError($resultat)) { |
return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ; |
} |
if (!is_object($resultat)) { |
$this->sortie_xhtml .= 'ok'; |
} else { |
if ($resultat->numRows() == 0) { |
return 'La table inscription_configuration est vide. Il faut qu\'elle contienne au moins une ligne'; |
} |
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC); |
//------------------------------------------------------------------------------------------------------------- |
// Gestion du formulaire |
$this->objet_pear_url->addQueryString('adme_site_id', $_GET['adme_site_id']); |
142,17 → 167,16 |
$form->addElement('textarea', 'ic_mail_moderateur', INS_MAILS_MODERATEURS, array('cols' => 30, 'rows' => 4)); |
$form->addElement('checkbox', 'ic_mail_valide_inscription', INS_INSCRIPTION_VERIFICATION_EMAIL); |
$form->addElement('textarea', 'ic_mail_admin_apres_inscription', INS_MAILS_ADMIN, array('cols' => 30, 'rows' => 4)); |
$form->addElement('text', 'ic_sujet_mail', INS_SUJET_MAIL_CONFIRMATION); |
$form->addElement('text', 'ic_sujet_mail', INS_SUJET_MAIL_CONFIRMATION, array('size' => '60')); |
$form->addElement('checkbox', 'ic_utilise_nom_wiki', INS_CHAMPS_WIKI); |
$form->addElement('checkbox', 'ic_genere_nom_wiki', INS_GENERE_NOM_WIKI); |
$form->addElement('checkbox', 'ic_utilise_reecriture_url', INS_REECRITURE_URL); |
$form->addElement('text', 'ic_url_prefixe', INS_PREFIXE_URL); |
$form->addElement('submit', 'afficheur_enregistrer_quitter', INS_ENREGISTRER_ET_QUITTER); |
$form->addElement('text', 'ic_google_key', INS_GOOGLE_KEY, array('size' => '60')); |
$form->addElement('submit', 'enregistrer_quitter', INS_ENREGISTRER_ET_QUITTER); |
$form->addElement('button', 'afficheur_annuler', INS_ANNULER); |
//$liste_bouton_fin = '</ul>'."\n"; |
//$form->addElement('html', $liste_bouton_fin); |
foreach ($resultat as $cle => $valeur) $valeurs_par_defaut[$cle] = $valeur ; |
$form->setDefaults($valeurs_par_defaut); |
$form->setDefaults($ligne); |
$this->sortie_xhtml .= $form->toHTML()."\n"; |
return $this->sortie_xhtml; |
} |
/trunk/client/bottin/inscription.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: inscription.php,v 1.23 2007-04-11 08:30:12 neiluj Exp $ |
// CVS : $Id: inscription.php,v 1.24 2007-05-25 14:31:10 alexandre_tb Exp $ |
/** |
* Inscription |
* |
31,8 → 31,8 |
*@author Alexandre GRANIER <alexandre@tela-botanica.org> |
//Autres auteurs : |
*@author Florian SCHMITT <florian@ecole-et-nature.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.23 $ $Date: 2007-04-11 08:30:12 $ |
*@copyright Tela-Botanica 2000-2007 |
*@version $Revision: 1.24 $ $Date: 2007-05-25 14:31:10 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
41,7 → 41,8 |
// +------------------------------------------------------------------------------------------------------+ |
include_once 'configuration/bottin.config.inc.php'; |
include_once INS_CHEMIN_APPLI.'bibliotheque/bottin.fonct.php'; |
include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.fonct.php'; |
include_once INS_CHEMIN_APPLI.'bibliotheque/bottin.class.php'; |
// Inclusion d'une classe personnalisé si elle existe |
if (file_exists (INS_CHEMIN_APPLI.'bibliotheque/inscription.class.local.php')) { |
include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.class.local.php' ; |
71,7 → 72,9 |
function afficherContenuCorps() { |
$res = '<h1>'.INS_TITRE_INSCRIPTION.'</h1>'."\n" ; |
// Recuperation de la configuration |
$GLOBALS ['ins_config'] = inscription::getConfig(); |
//cas de la déconnexion---------------------------------------------------------------------------------- |
if ($_REQUEST['action'] == 'deconnexion') { |
$GLOBALS['AUTH']->logout() ; |
92,11 → 95,15 |
$nom_wiki = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_NOM_WIKINI) ; |
desinscription_interwikini_users($nom_wiki) ; |
} |
$msg = ''; |
// Appel des actions desinscriptions des applications clientes |
$d = dir(GEN_CHEMIN_CLIENT); |
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' ; |
if ($repertoire != '.' || $repertoire != '..') { |
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' ; |
} |
if ($msg != '') $res .= $msg; |
} |
$d->close(); |
119,6 → 126,9 |
//cas de la saisie ou la modification de l'inscription individuelle ou structure |
if (($_REQUEST['action'] == 'modifier')or($_REQUEST['action'] == 'modifier_v')or($_REQUEST['action'] == 'inscription')or($_REQUEST['action'] == 'inscription_v')) { |
$formulaire = new HTML_formulaireInscription('formulaire_inscription', 'post', preg_replace('/&/', '&', $GLOBALS['ins_url']->getURL()), '_self', '', 0) ; |
if ($_REQUEST['action'] == 'modifier') { |
$formulaire->setDefaults(inscription_formulaire_defaults()) ; |
} |
$formulaire->construitFormulaire(preg_replace('/&/', '&', $GLOBALS['ins_url']->getURL())); |
if (isset($_REQUEST['form_structure'])) { |
if ($_REQUEST['form_structure']==1) { |
148,17 → 158,22 |
if ($_REQUEST['action'] == 'inscription_v') { |
if ($formulaire->validate()) { |
if (INS_MAIL_VALIDATION_INSCRIPTION) { |
if ($GLOBALS['ins_config']['ic_mail_valide_inscription']) { |
$formulaire->process('inscription_demande', false) ; |
return $res.INS_MESSAGE_INSCRIPTION; |
} else { |
if ($GLOBALS['ins_config']['ic_inscription_modere']) { |
return inscription::demandeInscriptionModere($formulaire->getSubmitValues()); |
} |
$formulaire->process('inscription_validee', false) ; |
$id_utilisateur = $GLOBALS['ins_db']->getOne('SELECT MAX('.INS_CHAMPS_ID.') FROM '.INS_ANNUAIRE) ; |
// Appel des actions des inscriptions des applications clientes |
$d = dir(GEN_CHEMIN_CLIENT); |
while (false !== ($repertoire = $d->read())) { |
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php')) |
include_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php' ; |
if ($repertoire != '.' && $repertoire != '..') { |
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php')) |
include_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php' ; |
} |
} |
$d->close(); |
return $res.info(); |
181,42 → 196,63 |
} |
//cas de la validation par mail d'une inscription-------------------------------------------------------- |
if ((INS_MAIL_VALIDATION_INSCRIPTION)and(isset($_GET['id']))) { |
$requete = 'SELECT id_donnees FROM inscription_demande WHERE id_identifiant_session="'.$_GET['id'].'"' ; |
$resultat = $GLOBALS['ins_db']->query($requete) ; |
if (DB::isError ($resultat)) { |
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ; |
} |
if ($resultat->numRows() == 0) { |
return $res.INS_MESSAGE_EXPIRATION; |
} |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ; |
$donnees = unserialize (stripslashes($ligne->id_donnees)) ; |
$id_utilisateur = inscription_insertion($donnees) ; |
$GLOBALS['AUTH']->username = $donnees['email'] ; |
$GLOBALS['AUTH']->password = $donnees['mot_de_passe'] ; |
if ($GLOBALS['ins_config']['ic_mail_valide_inscription'] && isset($_GET['id'])) { |
// On loggue l'utilisateur |
$GLOBALS['AUTH']->login() ; |
// si l inscription est modere on place la demande en attente |
// et on envoie un mail au moderateur |
// inscription à la lettre d'information |
if (isset ($donnees['lettre'])) { |
inscription_lettre(INS_MAIL_INSCRIPTION_LISTE) ; |
if ($GLOBALS['ins_config']['ic_inscription_modere']) { |
$requete_attente = 'insert into inscription_attente select * from inscription_demande where id_identifiant_session="'. |
$_GET['id'].'"'; |
$resultat = $GLOBALS['ins_db']->query($requete_attente); |
if (DB::isError ($resultat)) { |
return ("Echec de la requete : $requete<br />".$resultat->getMessage()); |
} |
$mails_moderateur = split ('/\n/', $GLOBALS['ins_config']['ic_mail_moderateur']); |
foreach ($mails_moderateur as $mail) { |
mail ($mail, INS_MODERATION_SUJET, INS_NOUVELLE_INSCRIPTION_A_MODERE) ; |
} |
} else { |
$requete = 'SELECT id_donnees FROM inscription_demande WHERE id_identifiant_session="'.$_GET['id'].'"' ; |
$resultat = $GLOBALS['ins_db']->query($requete) ; |
if (DB::isError ($resultat)) { |
return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ; |
} |
if ($resultat->numRows() == 0) { |
return $res.INS_MESSAGE_EXPIRATION; |
} |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ; |
$donnees = unserialize (stripslashes($ligne->id_donnees)) ; |
$id_utilisateur = inscription_insertion($donnees) ; |
$GLOBALS['AUTH']->username = $donnees['email'] ; |
$GLOBALS['AUTH']->password = $donnees['mot_de_passe'] ; |
// On loggue l'utilisateur |
$GLOBALS['AUTH']->login() ; |
// inscription à la lettre d'information |
if (isset ($donnees['lettre'])) { |
inscription_lettre($GLOBALS['ins_config']['ic_mail_inscription_news']) ; |
} |
// Appel des actions des inscriptions des applications clientes |
$d = dir(GEN_CHEMIN_CLIENT); |
while (false !== ($repertoire = $d->read())) { |
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php')) |
include_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php' ; |
} |
$d->close(); |
envoie_mail() ; |
} |
// On supprime la demande d'inscription |
$requete = 'delete from inscription_demande where id_identifiant_session="'.$_GET['id'].'"' ; |
$resultat = $GLOBALS['ins_db']->query($requete) ; |
if (DB::isError($resultat)) { |
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ; |
return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ; |
} |
// Appel des actions desinscriptions des applications clientes |
$d = dir(GEN_CHEMIN_CLIENT); |
while (false !== ($repertoire = $d->read())) { |
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php')) |
include_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php' ; |
} |
$d->close(); |
envoie_mail() ; |
} |
if ((!$GLOBALS['AUTH']->getAuth())&&($_REQUEST['action']!='inscription')&&($_REQUEST['action']!='inscription_v')) { |
238,6 → 274,9 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.23 2007/04/11 08:30:12 neiluj |
* remise en état du CVS... |
* |
* Revision 1.20.2.1 2007/01/26 10:32:59 alexandre_tb |
* suppression d un notice |
* |